diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index ccf5026..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(rm:*)", - "Bash(grep:*)", - "Bash(npm run build:*)", - "Bash(curl:*)", - "Bash(npm run lint:*)", - "Bash(sed:*)", - "Bash(find:*)", - "Bash(npm run typecheck:*)", - "Bash(npm install)", - "Bash(ls:*)", - "Bash(npx next lint:*)", - "Bash(npx tsc:*)", - "Bash(rg:*)", - "Bash(npm run type-check:*)", - "Bash(npx next build:*)" - ], - "deny": [] - } -} \ No newline at end of file diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 0000000..e5d488b --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,23 @@ +# Security Policy + +Python Security Response Team (PSRT) members balance security work against many +other responsibilities. Please be thoughtful about the time and attention your +report requires. Repeated failure to respect this will result in future reports +being rejected, or the reporter being banned from the `python` GitHub organization, +regardless of technical merit. + +## Reporting a Vulnerability + +Submit a vulnerability report using GitHub Security Advisories. + +Reports should be a few sentences describing the vulnerability. Ideally include +a proof-of-concept script that reproduces the issue and provides a clear +indication of whether the vulnerability is still present. Reports must be +plain-text only, including attachments. No PDFs, binaries, notebooks, or other +files that cannot be safely reviewed. If your proof-of-concept depends on a +specially constructed binary file, please include a script to construct it +rather than the file itself. Ideally, include a minimal patch with the mitigation +for the report. + +Reports that do not contain a potential security vulnerability (such as spam or +requesting compliance or due-diligence work) will be discarded without a reply. \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..776d165 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,26 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/frontend" + schedule: + interval: "quarterly" + cooldown: + default-days: 7 + groups: + # Batch low-risk minor/patch bumps into a single PR to cut review noise; + # major bumps open as individual PRs. + npm-minor-patch: + update-types: + - "minor" + - "patch" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "quarterly" + cooldown: + default-days: 7 + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index f412573..a8af6c8 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -31,17 +31,22 @@ on: description: 'Make flags for CPython build' required: false default: '-j' + llvm: + description: 'LLVM version to use' + required: false + default: '19' jobs: benchmark: - runs-on: ubuntu-latest + # Keep in sync with the Ubuntu version CPython's CI runs on + runs-on: ubuntu-26.04 steps: - name: Checkout memory tracker - uses: actions/checkout@v4 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.11' @@ -61,8 +66,13 @@ jobs: # Install CPython dependencies using their script cd cpython sudo .github/workflows/posix-deps-apt.sh - - # Install Memray dependencies + + # Install JIT dependencies + if [ "${{ inputs.binary_id }}" = "jit" ]; then + sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ inputs.llvm }} + fi + + # Install Memray dependencies sudo apt-get install -y \ python3-dev \ libdebuginfod-dev \ @@ -73,6 +83,10 @@ jobs: env: MEMORY_TRACKER_TOKEN: ${{ secrets.MEMORY_TRACKER_TOKEN }} run: | + if [ "${{ inputs.binary_id }}" = "jit" ]; then + export PATH="$(llvm-config-${{ inputs.llvm }} --bindir):$PATH" + fi + # Build command with conditional flags CMD="memory-tracker benchmark '${{ github.event.inputs.commit_range }}'" CMD="$CMD --repo-path ./cpython" @@ -98,7 +112,7 @@ jobs: - name: Upload benchmark results (if failed) if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: benchmark-logs path: | @@ -108,7 +122,7 @@ jobs: - name: Upload benchmark results (on success) if: success() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: benchmark-results path: ./benchmark_results/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fed5b27..6a77b6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,11 +1,98 @@ -name: Dummy-CI +name: CI -on: [push] +on: + push: + branches: [main] + pull_request: jobs: - build: + check-lockfile: + name: Check backend lockfile is up to date + if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Pass - run: echo Success! + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + fetch-depth: 0 + - name: Ensure lockfiles are updated when .in files change + run: | + BASE=${{ github.event.pull_request.base.sha }} + HEAD=${{ github.event.pull_request.head.sha }} + CHANGED=$(git diff --name-only "$BASE" "$HEAD") + FAIL=0 + if echo "$CHANGED" | grep -q 'backend/requirements\.in$'; then + if ! echo "$CHANGED" | grep -q 'backend/requirements\.txt$'; then + echo "::error::backend/requirements.in was modified but backend/requirements.txt was not." + FAIL=1 + fi + if ! echo "$CHANGED" | grep -q 'backend/requirements-dev\.txt$'; then + echo "::error::backend/requirements.in was modified but backend/requirements-dev.txt was not." + FAIL=1 + fi + fi + if echo "$CHANGED" | grep -q 'backend/requirements-dev\.in$'; then + if ! echo "$CHANGED" | grep -q 'backend/requirements-dev\.txt$'; then + echo "::error::backend/requirements-dev.in was modified but backend/requirements-dev.txt was not." + FAIL=1 + fi + fi + if [ "$FAIL" -eq 1 ]; then + echo "::error::Please run pip-compile to regenerate lockfiles. See README for instructions." + exit 1 + fi + + backend-tests: + name: Backend tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + fetch-depth: 0 + - name: Check for backend changes + id: changes + run: | + if [ "${{ github.event_name }}" = "push" ]; then + CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} 2>/dev/null \ + || git diff --name-only HEAD~1 HEAD 2>/dev/null \ + || echo "backend/") + else + CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}) + fi + if echo "$CHANGED" | grep -Eq '^(backend/|\.github/workflows/ci\.yml$)'; then + echo "backend=true" >> "$GITHUB_OUTPUT" + fi + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + if: steps.changes.outputs.backend == 'true' + with: + python-version: "3.13" + cache: pip + cache-dependency-path: backend/requirements-dev.txt + - name: Install backend dependencies + if: steps.changes.outputs.backend == 'true' + working-directory: backend + run: python -m pip install -r requirements-dev.txt + - name: Run Ruff + if: steps.changes.outputs.backend == 'true' + working-directory: backend + run: python -m ruff check . + - name: Run tests + if: steps.changes.outputs.backend == 'true' + working-directory: backend + run: python -m pytest tests/ -v --cov=app --cov-report=term-missing + + frontend-lint: + name: Frontend Lint & Typecheck + runs-on: ubuntu-latest + defaults: + run: + working-directory: frontend + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: 20 + cache: npm + cache-dependency-path: frontend/package-lock.json + - run: npm ci + - run: npm run lint + - run: npm run typecheck diff --git a/.github/workflows/daily-benchmark.yml b/.github/workflows/daily-benchmark.yml new file mode 100644 index 0000000..7a78779 --- /dev/null +++ b/.github/workflows/daily-benchmark.yml @@ -0,0 +1,181 @@ +name: Daily Memory Tracker Benchmark + +on: + schedule: + # Run daily at 23:00 UTC (EOD) to pick up all commits from the day + - cron: '0 23 * * *' + workflow_dispatch: + inputs: + target_date: + description: 'Date to get commits from (YYYY-MM-DD, defaults to today)' + required: false + type: string + environment_id: + description: 'Environment ID' + required: false + default: 'gh_actions' + server_url: + description: 'Memory tracker server URL' + required: false + default: 'https://memory.python.org' + cpython_repo: + description: 'CPython repository URL' + required: false + default: 'https://github.com/python/cpython.git' + llvm: + description: 'LLVM version to use for JIT builds' + required: false + default: '19' + +jobs: + benchmark-builds: + # Keep in sync with the Ubuntu version CPython's CI runs on + runs-on: ubuntu-26.04 + strategy: + matrix: + build_config: + - binary_id: 'default' + configure_flags: '-C' + description: 'Default build' + install_deps: 'standard' + - binary_id: 'debug' + configure_flags: '--with-pydebug' + description: 'Debug build' + install_deps: 'standard' + - binary_id: 'jit' + configure_flags: '--enable-experimental-jit' + description: 'JIT build' + install_deps: 'jit' + - binary_id: 'lto-pgo' + configure_flags: '--with-lto --enable-optimizations' + description: 'LTO-PGO build' + install_deps: 'standard' + - binary_id: 'nogil' + configure_flags: '--disable-gil' + description: 'Free-threaded build' + install_deps: 'standard' + fail-fast: false + + steps: + - name: Checkout memory tracker + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + + - name: Set up Python + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: '3.11' + + - name: Clone CPython repository and get commits + run: | + git clone ${{ github.event.inputs.cpython_repo || 'https://github.com/python/cpython.git' }} cpython + cd cpython + git fetch --all + + # Determine target date + if [ -n "${{ github.event.inputs.target_date }}" ]; then + TARGET_DATE="${{ github.event.inputs.target_date }}" + else + TARGET_DATE=$(date -u +%Y-%m-%d) + fi + + echo "Getting commits from date: $TARGET_DATE" + + # Get the last commit from the target date + LAST_COMMIT=$(git log --since="$TARGET_DATE 00:00:00 UTC" --until="$TARGET_DATE 23:59:59 UTC" --pretty=format:"%H" -n 1) + + if [ -z "$LAST_COMMIT" ]; then + echo "No commits found for date $TARGET_DATE" + exit 1 + else + echo "Found last commit for date $TARGET_DATE: $LAST_COMMIT" + echo "COMMIT_RANGE=$LAST_COMMIT" >> $GITHUB_ENV + echo "COMMIT_COUNT=1" >> $GITHUB_ENV + + echo "Commit to benchmark: $LAST_COMMIT" + fi + + - name: Print environment variables + run: | + echo "=== Environment Variables ===" + echo "COMMIT_RANGE: $COMMIT_RANGE" + echo "COMMIT_COUNT: $COMMIT_COUNT" + echo "Binary ID: ${{ matrix.build_config.binary_id }}" + echo "Description: ${{ matrix.build_config.description }}" + echo "Configure flags: ${{ matrix.build_config.configure_flags }}" + echo "Install deps: ${{ matrix.build_config.install_deps }}" + echo "==========================" + + - name: Install memory tracker worker + run: | + cd worker + pip install -e . + + - name: Install build dependencies + run: | + # Install CPython dependencies using their script + cd cpython + sudo .github/workflows/posix-deps-apt.sh + + # Install JIT dependencies if needed + if [ "${{ matrix.build_config.install_deps }}" = "jit" ]; then + sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ github.event.inputs.llvm || '19' }} + fi + + # Install Memray dependencies + sudo apt-get install -y \ + python3-dev \ + libdebuginfod-dev \ + libunwind-dev \ + liblz4-dev + + - name: Run memory benchmark for commit range - ${{ matrix.build_config.description }} + env: + MEMORY_TRACKER_TOKEN: ${{ secrets.MEMORY_TRACKER_TOKEN }} + run: | + if [ "${{ matrix.build_config.install_deps }}" = "jit" ]; then + export PATH="$(llvm-config-${{ github.event.inputs.llvm || '19' }} --bindir):$PATH" + export LLVM_VERSION="${{ github.event.inputs.llvm || '19' }}" + echo "LLVM Path: $(llvm-config-${{ github.event.inputs.llvm || '19' }} --bindir)" + echo "Clang version: $(clang-${{ github.event.inputs.llvm || '19' }} --version || echo 'clang-${{ github.event.inputs.llvm || '19' }} not found')" + fi + + # Build command for commit range + memory-tracker benchmark "$COMMIT_RANGE" \ + --repo-path ./cpython \ + --binary-id "${{ matrix.build_config.binary_id }}" \ + --environment-id "${{ github.event.inputs.environment_id || 'gh_actions' }}" \ + --api-base "${{ github.event.inputs.server_url || 'https://memory.python.org' }}" \ + --output-dir ./benchmark_results \ + --configure-flags="${{ matrix.build_config.configure_flags }}" \ + --force \ + -vv + + - name: Upload benchmark results (if failed) + if: failure() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: benchmark-logs-${{ matrix.build_config.binary_id }} + path: | + *.log + ./benchmark_results/ + retention-days: 7 + + - name: Upload benchmark results (on success) + if: success() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: benchmark-results-${{ matrix.build_config.binary_id }} + path: ./benchmark_results/ + retention-days: 30 + + summary: + needs: benchmark-builds + if: always() + runs-on: ubuntu-latest + + steps: + - name: Print summary + run: | + echo "Daily benchmark run completed" + echo "Benchmark jobs completed with status: ${{ needs.benchmark-builds.result }}" + echo "Binary types benchmarked: default, debug, jit, lto-pgo, nogil" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1698798..87cf2a5 100644 --- a/.gitignore +++ b/.gitignore @@ -167,3 +167,6 @@ cython_debug/ #Nextjs stuff frontend/*.next + +# Worker benchmark output +benchmark_results/ diff --git a/README.md b/README.md index d71f06e..524fe16 100644 --- a/README.md +++ b/README.md @@ -13,49 +13,69 @@ This project consists of three main components: ## Quick Start ### Prerequisites -- Python 3.8+ -- Node.js 16+ -- CPython source repository (for benchmarking) +- Docker Engine 20.10+ and Docker Compose 2.0+ +- CPython source repository (for benchmarking with the worker) ### Setup & Installation ```bash -# Install all dependencies and set up database -make setup +# Copy environment config +cp .env.example .env -# Or install components separately -make install # Install frontend + backend dependencies -make init-db # Initialize SQLite database -make populate-db # Add mock data for development +# Build and start all services +docker compose -f docker-compose.dev.yml up --build ``` ### Development -```bash -# Start both frontend and backend servers -make dev -# Or start them individually -make dev-frontend # Frontend on http://localhost:9002 -make dev-backend # Backend API on http://localhost:8000 -``` +Services start automatically with hot reload: +- Frontend: http://localhost:9002 +- Backend API: http://localhost:8000 +- API Documentation: http://localhost:8000/api/docs ## Development Commands ### Testing + ```bash -npm run lint # Frontend linting (in frontend directory) -npm run typecheck # TypeScript type checking +# Backend tests +docker compose -f docker-compose.dev.yml exec backend python -m pytest tests/ -v + +# With coverage report +docker compose -f docker-compose.dev.yml exec backend python -m pytest tests/ --cov=app --cov-report=term-missing + +# Frontend checks +docker compose -f docker-compose.dev.yml exec frontend npm run lint +docker compose -f docker-compose.dev.yml exec frontend npm run typecheck ``` -### Database Management +Backend tests use an in-memory SQLite database, independent of the +PostgreSQL instance used in development. Each test gets a fresh database +with empty tables. Fixtures in `backend/tests/conftest.py` provide +pre-built model instances (commits, binaries, environments, runs, +benchmark results, auth tokens) that tests can depend on as needed. +Requests go through `httpx.AsyncClient` with FastAPI's ASGI transport, +so the full request/response cycle (middleware, dependency injection, +validation) is exercised without a running server. + +Both checks run in CI on pushes to `main` and on pull requests. + +### Populating Mock Data ```bash -make reset-db # Drop and recreate database with fresh data -make populate-db # Add mock benchmark data +docker compose -f docker-compose.dev.yml exec backend python scripts/populate_db.py ``` -### Production +### Updating Backend Dependencies ```bash -make build # Build frontend for production -make clean # Clean up generated files and caches +# Edit backend/requirements.in, then regenerate both lockfiles: +docker run --rm -v "$(pwd)/backend:/app" -w /app python:3.13-slim-bookworm \ + sh -c "pip install --quiet pip-tools && \ + pip-compile --strip-extras --generate-hashes \ + --output-file requirements.txt requirements.in && \ + pip-compile --strip-extras --generate-hashes \ + --output-file requirements-dev.txt requirements-dev.in" + +# Rebuild the backend container: +docker compose -f docker-compose.dev.yml up --build -d backend ``` ## Worker Setup @@ -91,10 +111,30 @@ memory-tracker benchmark /path/to/cpython HEAD~5..HEAD \ ```bash # Development with hot reload -docker-compose -f docker-compose.dev.yml up +docker compose -f docker-compose.dev.yml up # Production deployment -docker-compose up +docker compose up +``` + +## Local Development (not recommended) + +Running services directly on the host is possible but not recommended. +Docker Compose ensures consistent Python/Node versions, database setup, +and dependency isolation across all platforms. + +### Prerequisites +- Python 3.13+ +- Node.js 20+ + +```bash +make setup # Install deps, init DB, populate mock data +make dev # Start frontend + backend with hot reload +make test # Run backend tests +make reset-db # Drop and recreate database with fresh data +make populate-db # Populate the DB with mock data +make build # Build frontend for production +make clean # Clean up generated files and caches ``` ## Usage Examples @@ -130,7 +170,7 @@ memory-tracker benchmark ~/cpython HEAD~10..HEAD \ ## Contributing 1. Follow the existing code style and conventions -2. Run tests before committing: `make test` +2. Run tests before committing 3. Use TypeScript for all frontend code 4. Follow the repository patterns for new features 5. Never commit secrets or authentication tokens diff --git a/backend/.coveragerc b/backend/.coveragerc new file mode 100644 index 0000000..0099493 --- /dev/null +++ b/backend/.coveragerc @@ -0,0 +1,2 @@ +[run] +concurrency = greenlet diff --git a/backend/Dockerfile b/backend/Dockerfile index 2d1d0b8..a7047ed 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -12,9 +12,6 @@ RUN apt-get update && apt-get install -y \ # Copy requirements first to leverage Docker layer caching COPY requirements.txt . -# Install PostgreSQL adapter -RUN pip install --no-cache-dir asyncpg psycopg2-binary - # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt diff --git a/backend/Dockerfile.dev b/backend/Dockerfile.dev index c2be3d3..7eb4894 100644 --- a/backend/Dockerfile.dev +++ b/backend/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM python:3.11-slim +FROM python:3.13-slim-bookworm WORKDIR /app @@ -7,10 +7,10 @@ RUN apt-get update && apt-get install -y \ gcc \ && rm -rf /var/lib/apt/lists/* -COPY requirements.txt . +COPY requirements-dev.txt . -# Install Python dependencies -RUN pip install --no-cache-dir -r requirements.txt +# Install Python dependencies (dev lockfile includes test tooling) +RUN pip install --no-cache-dir -r requirements-dev.txt # The source code will be mounted as a volume, so we don't copy it here diff --git a/backend/app/admin_auth.py b/backend/app/admin_auth.py index 5eb2f72..a239f39 100644 --- a/backend/app/admin_auth.py +++ b/backend/app/admin_auth.py @@ -12,8 +12,7 @@ from .database import get_database from .models import AdminSession -from .oauth import github_oauth, GitHubUser -from .config import get_settings +from .oauth import GitHubUser logger = logging.getLogger(__name__) @@ -52,7 +51,7 @@ async def get_admin_session( select(AdminSession).where( and_( AdminSession.session_token == session_token, - AdminSession.is_active == True, + AdminSession.is_active.is_(True), AdminSession.expires_at > datetime.now(UTC).replace(tzinfo=None), ) ) @@ -77,7 +76,7 @@ async def cleanup_expired_sessions(db: AsyncSession) -> None: select(AdminSession).where( and_( AdminSession.expires_at <= datetime.now(UTC).replace(tzinfo=None), - AdminSession.is_active == True, + AdminSession.is_active.is_(True), ) ) ) @@ -99,6 +98,19 @@ async def require_admin_auth( Dependency to require admin authentication. Checks for admin session cookie and validates it. """ + # Uncomment to bypass authentication for testing + # fake_session = AdminSession( + # session_token="test_token", + # github_user_id=12345, + # github_username="test_admin", + # github_name="Test Admin", + # github_email="test@example.com", + # github_avatar_url="https://github.com/identicons/test.png", + # created_at=datetime.now(UTC).replace(tzinfo=None), + # expires_at=datetime.now(UTC).replace(tzinfo=None) + timedelta(hours=24), + # is_active=True + # ) + # return fake_session if not admin_session_token: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, @@ -116,7 +128,6 @@ async def require_admin_auth( detail="Authentication service unavailable", headers={"WWW-Authenticate": "Bearer"}, ) - if not session: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, diff --git a/backend/app/auth.py b/backend/app/auth.py index ac96404..e98bd17 100644 --- a/backend/app/auth.py +++ b/backend/app/auth.py @@ -1,10 +1,9 @@ """Authentication utilities for the Memory Tracker API.""" -from fastapi import Depends, HTTPException, status, Header +from fastapi import Depends, Header from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials from sqlalchemy.ext.asyncio import AsyncSession from typing import Annotated -import logging from . import models, crud from .database import get_database diff --git a/backend/app/config.py b/backend/app/config.py index 02a8ecd..2a92e2e 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -3,9 +3,8 @@ All settings are loaded from environment variables with sensible defaults. """ -from typing import List, Optional, Union +from typing import List from pydantic_settings import BaseSettings -from pydantic import field_validator from functools import lru_cache diff --git a/backend/app/crud.py b/backend/app/crud.py index fc63fc6..422ea1a 100644 --- a/backend/app/crud.py +++ b/backend/app/crud.py @@ -4,7 +4,6 @@ from sqlalchemy import select, desc, and_, func, text from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy.orm import selectinload, joinedload, contains_eager from typing import List, Optional, Dict, Any from datetime import datetime, UTC import logging @@ -203,55 +202,6 @@ async def get_runs( return result.scalars().all() -async def get_runs_with_commits( - db: AsyncSession, - commit_sha: Optional[str] = None, - binary_id: Optional[str] = None, - environment_id: Optional[str] = None, - skip: int = 0, - limit: int = 100, -) -> List[tuple]: - """Get runs with their associated commit information.""" - query = ( - select(models.Run, models.Commit) - .join(models.Commit, models.Run.commit_sha == models.Commit.sha) - .order_by(desc(models.Run.timestamp)) - ) - - if commit_sha: - # Use prefix matching (starts with) for commit SHA - query = query.where(models.Run.commit_sha.ilike(f"{commit_sha}%")) - if binary_id: - query = query.where(models.Run.binary_id == binary_id) - if environment_id: - query = query.where(models.Run.environment_id == environment_id) - - query = query.offset(skip).limit(limit) - result = await db.execute(query) - return result.all() - - -async def count_runs( - db: AsyncSession, - commit_sha: Optional[str] = None, - binary_id: Optional[str] = None, - environment_id: Optional[str] = None, -) -> int: - """Count total runs matching the filter criteria.""" - query = select(func.count(models.Run.run_id)) - - if commit_sha: - # Use prefix matching (starts with) for commit SHA - query = query.where(models.Run.commit_sha.ilike(f"{commit_sha}%")) - if binary_id: - query = query.where(models.Run.binary_id == binary_id) - if environment_id: - query = query.where(models.Run.environment_id == environment_id) - - result = await db.execute(query) - return result.scalar() or 0 - - async def create_run(db: AsyncSession, run: schemas.RunCreate) -> models.Run: # Convert timezone-aware timestamp to timezone-naive for database storage timestamp = run.timestamp @@ -306,7 +256,7 @@ async def create_benchmark_result( allocation_histogram=result.result_json.allocation_histogram, total_allocated_bytes=result.result_json.total_allocated_bytes, top_allocating_functions=[ - func.dict() for func in result.result_json.top_allocating_functions + func.model_dump() for func in result.result_json.top_allocating_functions ], flamegraph_html=result.flamegraph_html, ) @@ -460,7 +410,10 @@ async def get_auth_token_by_token( """Get an auth token by its token value.""" result = await db.execute( select(models.AuthToken).where( - and_(models.AuthToken.token == token, models.AuthToken.is_active == True) + and_( + models.AuthToken.token == token, + models.AuthToken.is_active.is_(True), + ) ) ) return result.scalars().first() @@ -514,7 +467,7 @@ async def get_admin_users(db: AsyncSession) -> List[models.AdminUser]: """Get all admin users.""" result = await db.execute( select(models.AdminUser) - .where(models.AdminUser.is_active == True) + .where(models.AdminUser.is_active.is_(True)) .order_by(models.AdminUser.added_at) ) return result.scalars().all() @@ -528,7 +481,7 @@ async def get_admin_user_by_username( select(models.AdminUser).where( and_( models.AdminUser.github_username == username, - models.AdminUser.is_active == True, + models.AdminUser.is_active.is_(True), ) ) ) diff --git a/backend/app/database.py b/backend/app/database.py index 789f737..4cb1615 100644 --- a/backend/app/database.py +++ b/backend/app/database.py @@ -1,6 +1,8 @@ +from contextlib import asynccontextmanager +from typing import AsyncGenerator + import logging from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker -from sqlalchemy.orm import sessionmaker from sqlalchemy.exc import OperationalError, StatementError from .models import Base from .config import get_settings @@ -85,11 +87,6 @@ async def drop_tables(): async with engine.begin() as conn: await conn.run_sync(Base.metadata.drop_all) - -from contextlib import asynccontextmanager -from typing import AsyncGenerator - - @asynccontextmanager async def transaction_scope() -> AsyncGenerator[AsyncSession, None]: """ diff --git a/backend/app/factory.py b/backend/app/factory.py index 1e3e206..ff5b74e 100644 --- a/backend/app/factory.py +++ b/backend/app/factory.py @@ -3,6 +3,8 @@ import uuid import time import logging +from contextlib import asynccontextmanager +from typing import AsyncIterator from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware @@ -31,6 +33,36 @@ def create_app(settings=None) -> FastAPI: if settings is None: settings = get_settings() + @asynccontextmanager + async def lifespan(app: FastAPI) -> AsyncIterator[None]: + # Configure logging using the app state before the app starts serving. + app.state.logging_manager.configure_logging() + + # Disable uvicorn access logs to avoid duplication + uvicorn_logger = logging.getLogger("uvicorn.access") + uvicorn_logger.disabled = True + + logger = get_logger("api.startup") + logger.info( + "Application starting up", + extra={ + "log_level": settings.log_level, + "log_format": settings.log_format, + "api_version": settings.api_version, + }, + ) + await create_tables() + logger.info("Database tables created successfully") + + # Ensure initial admin user exists + from .database import AsyncSessionLocal + from .crud import ensure_initial_admin + + async with AsyncSessionLocal() as db: + await ensure_initial_admin(db, settings.admin_initial_username) + + yield + # Create FastAPI instance app = FastAPI( title=settings.api_title, @@ -38,6 +70,7 @@ def create_app(settings=None) -> FastAPI: docs_url="/api/docs", redoc_url="/api/redoc", openapi_url="/api/openapi.json", + lifespan=lifespan, ) # Store dependencies in app state @@ -133,35 +166,6 @@ async def log_requests(request: Request, call_next): return response - # Configure startup event - @app.on_event("startup") - async def startup_event(): - # Configure logging using the app state - app.state.logging_manager.configure_logging() - - # Disable uvicorn access logs to avoid duplication - uvicorn_logger = logging.getLogger("uvicorn.access") - uvicorn_logger.disabled = True - - logger = get_logger("api.startup") - logger.info( - "Application starting up", - extra={ - "log_level": settings.log_level, - "log_format": settings.log_format, - "api_version": settings.api_version, - }, - ) - await create_tables() - logger.info("Database tables created successfully") - - # Ensure initial admin user exists - from .database import AsyncSessionLocal - from .crud import ensure_initial_admin - - async with AsyncSessionLocal() as db: - await ensure_initial_admin(db, settings.admin_initial_username) - # Include routers app.include_router(health.router) app.include_router(commits.router) diff --git a/backend/app/logging_utils.py b/backend/app/logging_utils.py index fc7a0da..c8d30c3 100644 --- a/backend/app/logging_utils.py +++ b/backend/app/logging_utils.py @@ -1,7 +1,7 @@ """Logging utilities for sanitizing sensitive data.""" import re -from typing import Any, Dict, List, Union +from typing import Any, Dict, List # Patterns for sensitive data SENSITIVE_PATTERNS = [ diff --git a/backend/app/models.py b/backend/app/models.py index d3b9b5e..5f414b7 100644 --- a/backend/app/models.py +++ b/backend/app/models.py @@ -1,6 +1,7 @@ from sqlalchemy import ( Column, Integer, + BigInteger, String, DateTime, Text, @@ -10,8 +11,7 @@ Boolean, UniqueConstraint, ) -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import relationship +from sqlalchemy.orm import declarative_base, relationship from datetime import datetime, UTC Base = declarative_base() @@ -118,9 +118,9 @@ class BenchmarkResult(Base): id = Column(String(200), primary_key=True) run_id = Column(String(100), ForeignKey("runs.run_id"), nullable=False) benchmark_name = Column(String(100), nullable=False) - high_watermark_bytes = Column(Integer, nullable=False) + high_watermark_bytes = Column(BigInteger, nullable=False) allocation_histogram = Column(JSON, nullable=False) # Array of [size, count] tuples - total_allocated_bytes = Column(Integer, nullable=False) + total_allocated_bytes = Column(BigInteger, nullable=False) top_allocating_functions = Column(JSON, nullable=False) # Array of function objects flamegraph_html = Column(Text, nullable=True) # HTML content of the flamegraph @@ -198,3 +198,29 @@ class AdminSession(Base): Index("idx_admin_sessions_active", "is_active"), Index("idx_admin_sessions_expires", "expires_at"), ) + + +class MemrayBuildFailure(Base): + __tablename__ = "memray_build_failures" + + id = Column(Integer, primary_key=True, autoincrement=True) + commit_sha = Column(String(40), nullable=False) + binary_id = Column(String(50), ForeignKey("binaries.id"), nullable=False) + environment_id = Column(String(50), ForeignKey("environments.id"), nullable=False) + error_message = Column(Text, nullable=False) + failure_timestamp = Column( + DateTime, nullable=False, default=lambda: datetime.now(UTC).replace(tzinfo=None) + ) + commit_timestamp = Column(DateTime, nullable=False) # Timestamp of the failing commit + + binary = relationship("Binary") + environment = relationship("Environment") + + __table_args__ = ( + UniqueConstraint( + "binary_id", "environment_id", name="unique_binary_env_failure" + ), + Index("idx_memray_failures_timestamp", "failure_timestamp"), + Index("idx_memray_failures_commit_timestamp", "commit_timestamp"), + Index("idx_memray_failures_binary_env", "binary_id", "environment_id"), + ) diff --git a/backend/app/oauth.py b/backend/app/oauth.py index c3aac8e..559121d 100644 --- a/backend/app/oauth.py +++ b/backend/app/oauth.py @@ -4,9 +4,9 @@ import secrets import logging -from typing import Optional, Dict, Any +from typing import Optional from authlib.integrations.httpx_client import AsyncOAuth2Client -from fastapi import HTTPException, Request +from fastapi import HTTPException from pydantic import BaseModel from sqlalchemy.ext.asyncio import AsyncSession diff --git a/backend/app/routers/admin.py b/backend/app/routers/admin.py index 541e9c4..3a39205 100644 --- a/backend/app/routers/admin.py +++ b/backend/app/routers/admin.py @@ -5,10 +5,11 @@ import logging from datetime import datetime, UTC -from typing import List, Optional +from typing import List, Optional, Dict, Any from fastapi import APIRouter, Depends, HTTPException, status, Response, Request -from sqlalchemy import select, delete, func +from sqlalchemy import select, delete, func, text, desc, and_ from sqlalchemy.ext.asyncio import AsyncSession +import sqlparse from ..database import get_database from ..admin_auth import ( @@ -22,18 +23,21 @@ Binary, Environment, Run, - AdminUser, AuthToken, BenchmarkResult, + MemrayBuildFailure, + Commit, ) from ..schemas import ( BinaryCreate, Binary as BinarySchema, EnvironmentCreate, Environment as EnvironmentSchema, + MemrayFailurePublic, ) from .. import crud from pydantic import BaseModel +import re logger = logging.getLogger(__name__) @@ -83,6 +87,46 @@ class TokenAnalytics(BaseModel): recent_active_tokens: int +# Pydantic schemas for Commits management +class CommitUpdate(BaseModel): + message: Optional[str] = None + author: Optional[str] = None + python_major: Optional[int] = None + python_minor: Optional[int] = None + python_patch: Optional[int] = None + + +class CommitResponse(BaseModel): + sha: str + timestamp: datetime + message: str + author: str + python_major: int + python_minor: int + python_patch: int + run_count: Optional[int] = None + + +# Pydantic schemas for BenchmarkResults management +class BenchmarkResultUpdate(BaseModel): + high_watermark_bytes: Optional[int] = None + total_allocated_bytes: Optional[int] = None + allocation_histogram: Optional[List[List[int]]] = None + top_allocating_functions: Optional[List[Dict[str, Any]]] = None + + +class BenchmarkResultResponse(BaseModel): + id: str + run_id: str + benchmark_name: str + high_watermark_bytes: int + total_allocated_bytes: int + allocation_histogram: List[List[int]] + top_allocating_functions: List[Dict[str, Any]] + has_flamegraph: bool + + + router = APIRouter(prefix="/api/admin", tags=["admin"]) @@ -363,101 +407,6 @@ async def delete_environment( return {"success": True} -# Runs Management -@router.get("/runs") -async def list_runs( - admin_session: AdminSession = Depends(require_admin_auth), - db: AsyncSession = Depends(get_database), - skip: int = 0, - limit: int = 50, # Reduced default limit for performance - commit_sha: Optional[str] = None, - binary_id: Optional[str] = None, - environment_id: Optional[str] = None, -): - """List runs with their commit information and pagination.""" - # Limit maximum page size to prevent performance issues - limit = min(limit, 100) - - # Get runs with commit information - runs_with_commits = await crud.get_runs_with_commits( - db, - commit_sha=commit_sha, - binary_id=binary_id, - environment_id=environment_id, - skip=skip, - limit=limit, - ) - - # Get total count for pagination - total_count = await crud.count_runs( - db, - commit_sha=commit_sha, - binary_id=binary_id, - environment_id=environment_id, - ) - - # Format the response to include both run and commit data - formatted_runs = [] - for run, commit in runs_with_commits: - formatted_runs.append( - { - "run_id": run.run_id, - "commit_sha": run.commit_sha, - "binary_id": run.binary_id, - "environment_id": run.environment_id, - "python_major": run.python_major, - "python_minor": run.python_minor, - "python_patch": run.python_patch, - "timestamp": run.timestamp, - "commit": { - "sha": commit.sha, - "timestamp": commit.timestamp, - "message": commit.message, - "author": commit.author, - "python_major": commit.python_major, - "python_minor": commit.python_minor, - "python_patch": commit.python_patch, - }, - } - ) - - return { - "runs": formatted_runs, - "pagination": { - "skip": skip, - "limit": limit, - "total": total_count, - "has_more": skip + len(formatted_runs) < total_count, - }, - } - - -@router.delete("/runs/{run_id}") -async def delete_run( - run_id: str, - admin_session: AdminSession = Depends(require_admin_auth), - db: AsyncSession = Depends(get_database), -): - """Delete a run and its associated benchmark results.""" - # Check if run exists - result = await db.execute(select(Run).where(Run.run_id == run_id)) - run = result.scalars().first() - - if not run: - raise HTTPException( - status_code=status.HTTP_404_NOT_FOUND, - detail="Run not found", - ) - - # First delete all benchmark results for this run - await db.execute(delete(BenchmarkResult).where(BenchmarkResult.run_id == run_id)) - - # Then delete the run - await db.execute(delete(Run).where(Run.run_id == run_id)) - await db.commit() - - return {"success": True} - # Admin Users Management @router.get("/users", response_model=List[AdminUserResponse]) @@ -674,7 +623,7 @@ async def get_token_analytics( total_tokens = total_result.scalar() active_result = await db.execute( - select(func.count(AuthToken.id)).where(AuthToken.is_active == True) + select(func.count(AuthToken.id)).where(AuthToken.is_active) ) active_tokens = active_result.scalar() @@ -698,3 +647,685 @@ async def get_token_analytics( never_used_tokens=total_tokens - used_tokens, recent_active_tokens=recent_active, ) + + +# Commits Management +@router.get("/commits", response_model=List[CommitResponse]) +async def list_commits( + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), + skip: int = 0, + limit: int = 50, + sha: Optional[str] = None, + author: Optional[str] = None, + python_version: Optional[str] = None, +): + """List commits with filtering and pagination.""" + limit = min(limit, 100) # Prevent excessive data loading + + query = select(Commit, func.count(Run.run_id).label("run_count")).outerjoin(Run).group_by(Commit.sha) + + if sha: + query = query.where(Commit.sha.ilike(f"{sha}%")) + if author: + query = query.where(Commit.author.ilike(f"%{author}%")) + if python_version: + try: + major, minor = python_version.split(".")[:2] + query = query.where( + and_( + Commit.python_major == int(major), + Commit.python_minor == int(minor) + ) + ) + except (ValueError, IndexError): + pass # Invalid version format, ignore filter + + query = query.order_by(desc(Commit.timestamp)).offset(skip).limit(limit) + + result = await db.execute(query) + commits_with_counts = result.all() + + commit_responses = [] + for commit, run_count in commits_with_counts: + commit_responses.append( + CommitResponse( + sha=commit.sha, + timestamp=commit.timestamp, + message=commit.message, + author=commit.author, + python_major=commit.python_major, + python_minor=commit.python_minor, + python_patch=commit.python_patch, + run_count=run_count, + ) + ) + + return commit_responses + + +@router.get("/commits/{sha}", response_model=CommitResponse) +async def get_commit( + sha: str, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Get a specific commit by SHA.""" + result = await db.execute( + select(Commit, func.count(Run.run_id).label("run_count")) + .outerjoin(Run) + .where(Commit.sha == sha) + .group_by(Commit.sha) + ) + commit_data = result.first() + + if not commit_data: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Commit not found", + ) + + commit, run_count = commit_data + return CommitResponse( + sha=commit.sha, + timestamp=commit.timestamp, + message=commit.message, + author=commit.author, + python_major=commit.python_major, + python_minor=commit.python_minor, + python_patch=commit.python_patch, + run_count=run_count, + ) + + +@router.put("/commits/{sha}", response_model=CommitResponse) +async def update_commit( + sha: str, + commit_update: CommitUpdate, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Update a commit's metadata.""" + result = await db.execute(select(Commit).where(Commit.sha == sha)) + commit = result.scalars().first() + + if not commit: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Commit not found", + ) + + # Update fields if provided + if commit_update.message is not None: + commit.message = commit_update.message + if commit_update.author is not None: + commit.author = commit_update.author + if commit_update.python_major is not None: + commit.python_major = commit_update.python_major + if commit_update.python_minor is not None: + commit.python_minor = commit_update.python_minor + if commit_update.python_patch is not None: + commit.python_patch = commit_update.python_patch + + await db.commit() + await db.refresh(commit) + + # Get run count + run_count_result = await db.execute( + select(func.count(Run.run_id)).where(Run.commit_sha == sha) + ) + run_count = run_count_result.scalar() or 0 + + return CommitResponse( + sha=commit.sha, + timestamp=commit.timestamp, + message=commit.message, + author=commit.author, + python_major=commit.python_major, + python_minor=commit.python_minor, + python_patch=commit.python_patch, + run_count=run_count, + ) + + +@router.delete("/commits/{sha}") +async def delete_commit( + sha: str, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Delete a commit and all associated runs and benchmark results.""" + result = await db.execute(select(Commit).where(Commit.sha == sha)) + commit = result.scalars().first() + + if not commit: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Commit not found", + ) + + # Get all runs for this commit + runs_result = await db.execute(select(Run.run_id).where(Run.commit_sha == sha)) + run_ids = [row[0] for row in runs_result.fetchall()] + + # Delete all benchmark results for runs associated with this commit + if run_ids: + await db.execute( + delete(BenchmarkResult).where(BenchmarkResult.run_id.in_(run_ids)) + ) + + # Delete all runs for this commit + await db.execute(delete(Run).where(Run.commit_sha == sha)) + + # Finally delete the commit + await db.execute(delete(Commit).where(Commit.sha == sha)) + await db.commit() + + return {"success": True} + + +# BenchmarkResults Management +@router.get("/benchmark-results", response_model=List[BenchmarkResultResponse]) +async def list_benchmark_results( + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), + skip: int = 0, + limit: int = 50, + run_id: Optional[str] = None, + benchmark_name: Optional[str] = None, + min_memory: Optional[int] = None, + max_memory: Optional[int] = None, +): + """List benchmark results with filtering and pagination.""" + limit = min(limit, 100) # Prevent excessive data loading + + query = select(BenchmarkResult) + + if run_id: + query = query.where(BenchmarkResult.run_id.ilike(f"{run_id}%")) + if benchmark_name: + query = query.where(BenchmarkResult.benchmark_name.ilike(f"%{benchmark_name}%")) + if min_memory is not None: + query = query.where(BenchmarkResult.high_watermark_bytes >= min_memory) + if max_memory is not None: + query = query.where(BenchmarkResult.high_watermark_bytes <= max_memory) + + query = query.order_by(desc(BenchmarkResult.id)).offset(skip).limit(limit) + + result = await db.execute(query) + benchmark_results = result.scalars().all() + + result_responses = [] + for br in benchmark_results: + result_responses.append( + BenchmarkResultResponse( + id=br.id, + run_id=br.run_id, + benchmark_name=br.benchmark_name, + high_watermark_bytes=br.high_watermark_bytes, + total_allocated_bytes=br.total_allocated_bytes, + allocation_histogram=br.allocation_histogram, + top_allocating_functions=br.top_allocating_functions, + has_flamegraph=br.flamegraph_html is not None, + ) + ) + + return result_responses + + +@router.get("/benchmark-results/{result_id}", response_model=BenchmarkResultResponse) +async def get_benchmark_result( + result_id: str, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Get a specific benchmark result by ID.""" + result = await db.execute( + select(BenchmarkResult).where(BenchmarkResult.id == result_id) + ) + benchmark_result = result.scalars().first() + + if not benchmark_result: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Benchmark result not found", + ) + + return BenchmarkResultResponse( + id=benchmark_result.id, + run_id=benchmark_result.run_id, + benchmark_name=benchmark_result.benchmark_name, + high_watermark_bytes=benchmark_result.high_watermark_bytes, + total_allocated_bytes=benchmark_result.total_allocated_bytes, + allocation_histogram=benchmark_result.allocation_histogram, + top_allocating_functions=benchmark_result.top_allocating_functions, + has_flamegraph=benchmark_result.flamegraph_html is not None, + ) + + +@router.get("/benchmark-results/{result_id}/flamegraph") +async def get_benchmark_result_flamegraph( + result_id: str, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Get the flamegraph HTML for a benchmark result.""" + result = await db.execute( + select(BenchmarkResult.flamegraph_html).where(BenchmarkResult.id == result_id) + ) + flamegraph_html = result.scalar() + + if flamegraph_html is None: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Flamegraph not found for this benchmark result", + ) + + return {"flamegraph_html": flamegraph_html} + + +@router.put("/benchmark-results/{result_id}", response_model=BenchmarkResultResponse) +async def update_benchmark_result( + result_id: str, + result_update: BenchmarkResultUpdate, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Update a benchmark result's data.""" + result = await db.execute( + select(BenchmarkResult).where(BenchmarkResult.id == result_id) + ) + benchmark_result = result.scalars().first() + + if not benchmark_result: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Benchmark result not found", + ) + + # Update fields if provided + if result_update.high_watermark_bytes is not None: + benchmark_result.high_watermark_bytes = result_update.high_watermark_bytes + if result_update.total_allocated_bytes is not None: + benchmark_result.total_allocated_bytes = result_update.total_allocated_bytes + if result_update.allocation_histogram is not None: + benchmark_result.allocation_histogram = result_update.allocation_histogram + if result_update.top_allocating_functions is not None: + benchmark_result.top_allocating_functions = result_update.top_allocating_functions + + await db.commit() + await db.refresh(benchmark_result) + + return BenchmarkResultResponse( + id=benchmark_result.id, + run_id=benchmark_result.run_id, + benchmark_name=benchmark_result.benchmark_name, + high_watermark_bytes=benchmark_result.high_watermark_bytes, + total_allocated_bytes=benchmark_result.total_allocated_bytes, + allocation_histogram=benchmark_result.allocation_histogram, + top_allocating_functions=benchmark_result.top_allocating_functions, + has_flamegraph=benchmark_result.flamegraph_html is not None, + ) + + +@router.delete("/benchmark-results/{result_id}") +async def delete_benchmark_result( + result_id: str, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Delete a specific benchmark result.""" + result = await db.execute( + select(BenchmarkResult).where(BenchmarkResult.id == result_id) + ) + benchmark_result = result.scalars().first() + + if not benchmark_result: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Benchmark result not found", + ) + + await db.execute(delete(BenchmarkResult).where(BenchmarkResult.id == result_id)) + await db.commit() + + return {"success": True} + + +@router.post("/benchmark-results/bulk-delete") +async def bulk_delete_benchmark_results( + result_ids: List[str], + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Bulk delete benchmark results by IDs.""" + if not result_ids: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="No result IDs provided", + ) + + if len(result_ids) > 100: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Cannot delete more than 100 results at once", + ) + + deleted_count = await db.execute( + delete(BenchmarkResult).where(BenchmarkResult.id.in_(result_ids)) + ) + await db.commit() + + return { + "success": True, + "deleted_count": deleted_count.rowcount, + "requested_count": len(result_ids), + } + + +# Query Console - for advanced database operations +class QueryRequest(BaseModel): + query: str + read_only: bool = True + + +class QueryResult(BaseModel): + success: bool + rows: Optional[List[Dict[str, Any]]] = None + affected_rows: Optional[int] = None + error: Optional[str] = None + execution_time_ms: Optional[float] = None + column_names: Optional[List[str]] = None + + +@router.post("/query", response_model=QueryResult) +async def execute_query( + query_request: QueryRequest, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Execute a custom SQL query with safety checks.""" + import time + + query = query_request.query.strip() + + if not query: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Query cannot be empty", + ) + + # Simple read-only check + query_upper = query.upper() + is_write_operation = any(keyword in query_upper for keyword in ["INSERT", "UPDATE", "DELETE", "DROP", "TRUNCATE", "ALTER", "CREATE"]) + + # Block write operations in read-only mode + if query_request.read_only and is_write_operation: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Write operations not allowed in read-only mode", + ) + + # Limit query length + if len(query) > 10000: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Query too long (max 10,000 characters)", + ) + + # Add LIMIT to SELECT queries without one (for safety) + if query_upper.startswith("SELECT") and "LIMIT" not in query_upper: + # Remove trailing semicolon if present, then add LIMIT + query = query.rstrip().rstrip(';') + query += " LIMIT 1000" + + start_time = time.time() + + # Get admin username now while in async context + admin_username = admin_session.github_username + + try: + # Handle single statement queries properly + if query_upper.startswith("SELECT") or query_upper.startswith("WITH"): + # For SELECT queries, execute and fetch results + result = await db.execute(text(query)) + rows = result.fetchall() + + # Convert to list of dictionaries + if rows: + column_names = list(result.keys()) + rows_data = [dict(zip(column_names, row)) for row in rows] + else: + column_names = list(result.keys()) if result.keys() else [] + rows_data = [] + + execution_time = (time.time() - start_time) * 1000 + + return QueryResult( + success=True, + rows=rows_data, + column_names=column_names, + execution_time_ms=round(execution_time, 2), + ) + else: + # For non-SELECT queries (INSERT, UPDATE, DELETE, etc.) + # Handle multiple statements if needed + statements = [stmt.strip() for stmt in sqlparse.split(query) if stmt.strip()] + + total_affected_rows = 0 + for stmt in statements: + stmt_result = await db.execute(text(stmt)) + total_affected_rows += stmt_result.rowcount + + await db.commit() + execution_time = (time.time() - start_time) * 1000 + + return QueryResult( + success=True, + affected_rows=total_affected_rows, + execution_time_ms=round(execution_time, 2), + ) + + except Exception as e: + await db.rollback() + execution_time = (time.time() - start_time) * 1000 + + logger.error(f"Query execution failed: {e}", extra={ + "query": query, + "admin_user": admin_username, + }) + + return QueryResult( + success=False, + error=str(e), + execution_time_ms=round(execution_time, 2), + ) + + +@router.get("/query/tables") +async def list_database_tables( + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """List all tables in the database.""" + try: + # This query works for most SQL databases + result = await db.execute(text(""" + SELECT table_name + FROM information_schema.tables + WHERE table_schema = 'public' OR table_schema = 'main' + ORDER BY table_name + """)) + + tables = [row[0] for row in result.fetchall()] + return {"tables": tables} + + except Exception: + # Fallback for SQLite or other databases + try: + result = await db.execute(text(""" + SELECT name FROM sqlite_master + WHERE type='table' + ORDER BY name + """)) + tables = [row[0] for row in result.fetchall()] + return {"tables": tables} + except Exception as e: + logger.error(f"Failed to list tables: {e}") + return {"tables": [], "error": str(e)} + + +@router.get("/query/schema/{table_name}") +async def get_table_schema( + table_name: str, + admin_session: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Get the schema for a specific table.""" + try: + # Prevent SQL injection by validating table name + if not re.match(r'^[a-zA-Z_][a-zA-Z0-9_]*$', table_name): + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Invalid table name", + ) + + # Get column information + result = await db.execute(text(f""" + SELECT column_name, data_type, is_nullable, column_default + FROM information_schema.columns + WHERE table_name = '{table_name}' + ORDER BY ordinal_position + """)) + + columns = [] + for row in result.fetchall(): + columns.append({ + "name": row[0], + "type": row[1], + "nullable": row[2] == "YES", + "default": row[3], + }) + + return {"table_name": table_name, "columns": columns} + + except Exception: + # Fallback for SQLite + try: + result = await db.execute(text(f"PRAGMA table_info({table_name})")) + columns = [] + for row in result.fetchall(): + columns.append({ + "name": row[1], + "type": row[2], + "nullable": not bool(row[3]), + "default": row[4], + }) + + return {"table_name": table_name, "columns": columns} + + except Exception as e: + logger.error(f"Failed to get schema for table {table_name}: {e}") + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=f"Table not found or error accessing schema: {str(e)}", + ) + + + + +@router.get("/memray-failures", response_model=List[MemrayFailurePublic]) +async def get_memray_failures( + current_user: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Get all memray build failures.""" + result = await db.execute( + select( + MemrayBuildFailure.id, + MemrayBuildFailure.commit_sha, + MemrayBuildFailure.binary_id, + MemrayBuildFailure.environment_id, + Binary.name.label("binary_name"), + Environment.name.label("environment_name"), + MemrayBuildFailure.error_message, + MemrayBuildFailure.failure_timestamp, + MemrayBuildFailure.commit_timestamp, + ) + .join(Binary) + .join(Environment) + .order_by(desc(MemrayBuildFailure.failure_timestamp)) + ) + failures = result.fetchall() + + return [ + { + "id": failure.id, + "commit_sha": failure.commit_sha, + "binary_id": failure.binary_id, + "environment_id": failure.environment_id, + "binary_name": failure.binary_name, + "environment_name": failure.environment_name, + "error_message": failure.error_message, + "failure_timestamp": failure.failure_timestamp, + "commit_timestamp": failure.commit_timestamp, + } + for failure in failures + ] + + +@router.delete("/memray-failures/{failure_id}") +async def delete_memray_failure( + failure_id: int, + current_user: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Delete a memray build failure record.""" + result = await db.execute( + select(MemrayBuildFailure).where(MemrayBuildFailure.id == failure_id) + ) + failure = result.scalars().first() + + if not failure: + raise HTTPException(status_code=404, detail="Memray failure not found") + + await db.delete(failure) + await db.commit() + + return {"message": "Memray failure deleted successfully"} + + +@router.get("/memray-failures/summary") +async def get_memray_failures_summary( + current_user: AdminSession = Depends(require_admin_auth), + db: AsyncSession = Depends(get_database), +): + """Get summary of current memray failures by environment.""" + result = await db.execute( + select( + MemrayBuildFailure.binary_id, + MemrayBuildFailure.environment_id, + Binary.name.label("binary_name"), + Environment.name.label("environment_name"), + MemrayBuildFailure.commit_sha, + MemrayBuildFailure.failure_timestamp, + MemrayBuildFailure.commit_timestamp, + ) + .join(Binary) + .join(Environment) + .order_by(desc(MemrayBuildFailure.failure_timestamp)) + ) + failures = result.fetchall() + + return [ + { + "binary_id": failure.binary_id, + "binary_name": failure.binary_name, + "environment_id": failure.environment_id, + "environment_name": failure.environment_name, + "commit_sha": failure.commit_sha, + "failure_timestamp": failure.failure_timestamp, + "commit_timestamp": failure.commit_timestamp, + } + for failure in failures + ] diff --git a/backend/app/routers/benchmarks.py b/backend/app/routers/benchmarks.py index dea0a1b..ac16cd3 100644 --- a/backend/app/routers/benchmarks.py +++ b/backend/app/routers/benchmarks.py @@ -73,10 +73,7 @@ async def get_diff_table( db, commit_sha=commit_sha, binary_id=binary_id, environment_id=environment_id ) if not runs: - raise HTTPException( - status_code=404, - detail="No runs found for this commit, binary, and environment", - ) + return [] current_run = runs[0] # Get the latest run current_results = await crud.get_benchmark_results(db, run_id=current_run.run_id) diff --git a/backend/app/routers/binaries.py b/backend/app/routers/binaries.py index 21a2da0..5b0b6d7 100644 --- a/backend/app/routers/binaries.py +++ b/backend/app/routers/binaries.py @@ -19,7 +19,7 @@ async def get_binaries(db: AsyncSession = Depends(get_database)): try: binaries = await crud.get_binaries(db) - logger.info(f"Successfully retrieved binaries", extra={"count": len(binaries)}) + logger.info("Successfully retrieved binaries", extra={"count": len(binaries)}) return [ schemas.Binary( @@ -34,7 +34,7 @@ async def get_binaries(db: AsyncSession = Depends(get_database)): for binary in binaries ] except Exception as e: - logger.error(f"Failed to fetch binaries", extra={"error": str(e)}) + logger.error("Failed to fetch binaries", extra={"error": str(e)}) raise HTTPException(status_code=500, detail="Failed to fetch binaries") diff --git a/backend/app/routers/commits.py b/backend/app/routers/commits.py index 15d9d71..2fb5d6b 100644 --- a/backend/app/routers/commits.py +++ b/backend/app/routers/commits.py @@ -20,11 +20,11 @@ async def get_commits( db: AsyncSession = Depends(get_database), ): logger = get_logger("api.commits") - logger.info(f"Fetching commits", extra={"skip": skip, "limit": limit}) + logger.info("Fetching commits", extra={"skip": skip, "limit": limit}) try: commits = await crud.get_commits(db, skip=skip, limit=limit) - logger.info(f"Successfully retrieved commits", extra={"count": len(commits)}) + logger.info("Successfully retrieved commits", extra={"count": len(commits)}) return [ schemas.Commit( @@ -41,23 +41,23 @@ async def get_commits( for commit in commits ] except Exception as e: - logger.error(f"Failed to fetch commits", extra={"error": str(e)}) + logger.error("Failed to fetch commits", extra={"error": str(e)}) raise HTTPException(status_code=500, detail="Failed to fetch commits") @router.get("/commits/{sha}", response_model=schemas.Commit) async def get_commit(sha: str, db: AsyncSession = Depends(get_database)): logger = get_logger("api.commits") - logger.info(f"Fetching commit by SHA", extra={"sha": sha}) + logger.info("Fetching commit by SHA", extra={"sha": sha}) try: commit = await crud.get_commit_by_sha(db, sha=sha) if commit is None: - logger.warning(f"Commit not found", extra={"sha": sha}) + logger.warning("Commit not found", extra={"sha": sha}) raise HTTPException(status_code=404, detail="Commit not found") logger.info( - f"Successfully retrieved commit", + "Successfully retrieved commit", extra={ "sha": commit.sha[:8], "author": commit.author, @@ -79,7 +79,7 @@ async def get_commit(sha: str, db: AsyncSession = Depends(get_database)): except HTTPException: raise except Exception as e: - logger.error(f"Failed to fetch commit", extra={"sha": sha, "error": str(e)}) + logger.error("Failed to fetch commit", extra={"sha": sha, "error": str(e)}) raise HTTPException(status_code=500, detail="Failed to fetch commit") diff --git a/backend/app/routers/public.py b/backend/app/routers/public.py index 0624df3..82e4c4b 100644 --- a/backend/app/routers/public.py +++ b/backend/app/routers/public.py @@ -9,7 +9,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from ..database import get_database -from ..models import AdminUser +from ..models import AdminUser, MemrayBuildFailure, Binary, Environment from ..schemas import AdminUserPublic logger = logging.getLogger(__name__) @@ -25,9 +25,56 @@ async def get_maintainers( # Only return active admin users result = await db.execute( select(AdminUser) - .where(AdminUser.is_active == True) + .where(AdminUser.is_active) .order_by(AdminUser.added_at) ) admin_users = result.scalars().all() return admin_users + + +@router.get("/memray-status") +async def get_memray_status( + db: AsyncSession = Depends(get_database), +): + """Get current memray build status - public endpoint.""" + # Get current failures (there should be at most one per binary+environment due to unique constraint) + result = await db.execute( + select( + MemrayBuildFailure.binary_id, + MemrayBuildFailure.environment_id, + Binary.name.label("binary_name"), + Environment.name.label("environment_name"), + MemrayBuildFailure.commit_timestamp, + MemrayBuildFailure.commit_sha, + MemrayBuildFailure.error_message, + MemrayBuildFailure.failure_timestamp, + ) + .join(Binary) + .join(Environment) + .order_by(MemrayBuildFailure.commit_timestamp.desc()) + ) + failures = result.fetchall() + + # Build summary of affected environments + affected_environments = [] + for failure in failures: + affected_environments.append({ + "binary_id": failure.binary_id, + "environment_id": failure.environment_id, + "binary_name": failure.binary_name, + "environment_name": failure.environment_name, + "latest_failure": failure.commit_timestamp, + "commit_sha": failure.commit_sha, + "error_message": failure.error_message, + "failure_timestamp": failure.failure_timestamp, + }) + + has_failures = len(affected_environments) > 0 + + return { + "has_failures": has_failures, + "failure_count": len(affected_environments), + "affected_environments": affected_environments, + "message": "Memray build issues detected" if has_failures else "All environments healthy", + } diff --git a/backend/app/routers/upload.py b/backend/app/routers/upload.py index 1b1904f..c73e605 100644 --- a/backend/app/routers/upload.py +++ b/backend/app/routers/upload.py @@ -2,13 +2,13 @@ from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy import select, delete, desc, func, update, and_ +from sqlalchemy import select, desc, func, update, and_, delete from sqlalchemy.exc import IntegrityError from datetime import datetime import logging from .. import schemas, crud, models -from ..database import get_database, transaction_scope +from ..database import get_database from ..auth import get_current_token router = APIRouter(prefix="/api", tags=["upload"]) @@ -75,7 +75,7 @@ async def cleanup_old_flamegraphs_if_needed( ) try: - result = await db.execute(cleanup_query) + await db.execute(cleanup_query) await db.commit() verify_result = await db.execute(count_query) @@ -180,10 +180,23 @@ async def upload_worker_run( # Validate configure flags - the registered binary flags must be a subset of uploaded flags configure_vars = metadata.get("configure_vars", {}) uploaded_config_args = configure_vars.get("CONFIG_ARGS", "") - uploaded_flags = ( - set(uploaded_config_args.split()) if uploaded_config_args else set() - ) - registered_flags = set(binary.flags) if binary.flags else set() + + # Strip quotes from each flag and filter out non-configure flags + def clean_flag(flag): + """Remove surrounding quotes from a flag.""" + return flag.strip().strip("'\"") + + # Split and clean uploaded flags, filtering out environment variables + raw_uploaded_flags = uploaded_config_args.split() if uploaded_config_args else [] + uploaded_flags = set() + for flag in raw_uploaded_flags: + cleaned = clean_flag(flag) + # Only include flags that start with -- (configure flags) + if cleaned.startswith('--'): + uploaded_flags.add(cleaned) + + # Clean registered flags too for consistency + registered_flags = {clean_flag(flag) for flag in (binary.flags or [])} logger.debug( f"Configure flags validation: registered={sorted(registered_flags)}, uploaded={sorted(uploaded_flags)}" @@ -197,12 +210,13 @@ async def upload_worker_run( f"Upload failed: Configure flags mismatch for binary '{binary_id}'. " f"Missing flags: {sorted(missing_flags)}, " f"Required: {sorted(registered_flags)}, " - f"Provided: {sorted(uploaded_flags)}" + f"Provided: {sorted(uploaded_flags)}, " + f"Raw CONFIG_ARGS: '{uploaded_config_args}'" ) raise HTTPException( status_code=400, - detail=f"Binary '{binary_id}' requires configure flags {sorted(missing_flags)} but upload only has {sorted(uploaded_flags)}. " - f"Registered configure flags {sorted(registered_flags)} must be a subset of upload configure flags.", + detail=f"Binary '{binary_id}' requires configure flags {sorted(list(registered_flags))} but upload only has {sorted(list(uploaded_flags))}. " + f"Registered configure flags must be a subset of upload configure flags.", ) logger.info(f"Configure flags validation passed for binary '{binary_id}'") @@ -247,7 +261,7 @@ async def upload_worker_run( ) try: - new_run = await crud.create_run(db, run_data) + await crud.create_run(db, run_data) logger.info(f"Successfully created run record: {run_id}") # Create benchmark results @@ -308,6 +322,15 @@ async def upload_worker_run( # Clean up old flamegraphs if we have more than 100 runs for this environment await cleanup_old_flamegraphs_if_needed(db, environment_id, max_flamegraphs=100) + # Clear any memray build failures for this binary+environment since upload succeeded + await db.execute( + delete(models.MemrayBuildFailure).where( + models.MemrayBuildFailure.binary_id == binary_id, + models.MemrayBuildFailure.environment_id == environment_id + ) + ) + await db.commit() + return { "message": "Worker run uploaded successfully", "run_id": run_id, @@ -319,8 +342,18 @@ async def upload_worker_run( } except IntegrityError as e: - # Handle unique constraint violation for duplicate commit+binary+environment - if "unique_commit_binary_env" in str(e).lower(): + # Check for duplicate run constraint violation. + # asyncpg exposes constraint_name directly on the original exception; + # fall back to string matching for other backends (e.g. SQLite). + constraint = getattr(getattr(e, "orig", None), "constraint_name", None) + is_duplicate = ( + constraint == "unique_commit_binary_env" + if constraint is not None + else "commit_sha" in str(e).lower() + and "binary_id" in str(e).lower() + and "environment_id" in str(e).lower() + ) + if is_duplicate: logger.error( f"Upload failed: Duplicate run for commit {commit_sha[:8]}, binary '{binary_id}', environment '{environment_id}'" ) @@ -341,3 +374,101 @@ async def upload_worker_run( raise HTTPException( status_code=500, detail=f"Failed to upload worker run: {str(e)}" ) + + +@router.post("/report-memray-failure", response_model=dict) +async def report_memray_failure( + failure_data: schemas.MemrayFailureReport, + db: AsyncSession = Depends(get_database), + current_token: models.AuthToken = Depends(get_current_token), +): + """Report a memray build failure for a specific commit and environment.""" + logger = logging.getLogger(__name__) + + logger.info( + f"Authenticated memray failure report from token '{current_token.name}' for commit {failure_data.commit_sha[:8]}, " + f"binary_id='{failure_data.binary_id}', environment_id='{failure_data.environment_id}'" + ) + + # Validate binary exists + binary = await crud.get_binary_by_id(db, binary_id=failure_data.binary_id) + if not binary: + logger.error(f"Memray failure report failed: Binary '{failure_data.binary_id}' not found") + raise HTTPException( + status_code=400, + detail=f"Binary '{failure_data.binary_id}' not found." + ) + + # Validate environment exists + environment = await crud.get_environment_by_id(db, environment_id=failure_data.environment_id) + if not environment: + logger.error(f"Memray failure report failed: Environment '{failure_data.environment_id}' not found") + raise HTTPException( + status_code=400, + detail=f"Environment '{failure_data.environment_id}' not found." + ) + + # Check if this failure is newer than any existing failure for this binary+environment + existing_failure = await db.execute( + select(models.MemrayBuildFailure) + .where( + models.MemrayBuildFailure.binary_id == failure_data.binary_id, + models.MemrayBuildFailure.environment_id == failure_data.environment_id + ) + ) + existing_failure = existing_failure.scalars().first() + + if existing_failure: + # Check if the new failure is from a newer commit + if failure_data.commit_timestamp <= existing_failure.commit_timestamp: + logger.info( + f"Ignoring memray failure for {failure_data.commit_sha[:8]} as it's not newer than existing failure" + ) + return { + "message": "Memray failure ignored (not newer than existing failure)", + "commit_sha": failure_data.commit_sha, + "binary_id": failure_data.binary_id, + "environment_id": failure_data.environment_id, + } + + # Update existing failure with newer information + existing_failure.commit_sha = failure_data.commit_sha + existing_failure.error_message = failure_data.error_message + existing_failure.failure_timestamp = datetime.now() + existing_failure.commit_timestamp = failure_data.commit_timestamp + + try: + await db.commit() + logger.info(f"Updated existing memray failure record for binary '{failure_data.binary_id}', environment '{failure_data.environment_id}'") + except Exception as e: + logger.error(f"Failed to update memray failure record: {e}") + raise HTTPException( + status_code=500, detail=f"Failed to update memray failure record: {str(e)}" + ) + else: + # Create new failure record + failure_record = models.MemrayBuildFailure( + commit_sha=failure_data.commit_sha, + binary_id=failure_data.binary_id, + environment_id=failure_data.environment_id, + error_message=failure_data.error_message, + failure_timestamp=datetime.now(), + commit_timestamp=failure_data.commit_timestamp + ) + + try: + db.add(failure_record) + await db.commit() + logger.info(f"Created new memray failure record for commit {failure_data.commit_sha[:8]}") + except Exception as e: + logger.error(f"Failed to create memray failure record: {e}") + raise HTTPException( + status_code=500, detail=f"Failed to create memray failure record: {str(e)}" + ) + + return { + "message": "Memray failure reported successfully", + "commit_sha": failure_data.commit_sha, + "binary_id": failure_data.binary_id, + "environment_id": failure_data.environment_id, + } diff --git a/backend/app/schemas.py b/backend/app/schemas.py index ed093e7..c2541b4 100644 --- a/backend/app/schemas.py +++ b/backend/app/schemas.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel +from pydantic import BaseModel, ConfigDict from typing import List, Optional, Dict, Any, Tuple from datetime import datetime @@ -22,8 +22,7 @@ class CommitCreate(CommitBase): class Commit(CommitBase): - class Config: - from_attributes = True + model_config = ConfigDict(from_attributes=True) class BinaryBase(BaseModel): @@ -45,8 +44,7 @@ class BinaryCreate(BinaryBase): class Binary(BinaryBase): - class Config: - from_attributes = True + model_config = ConfigDict(from_attributes=True) class EnvironmentBase(BaseModel): @@ -60,8 +58,7 @@ class EnvironmentCreate(EnvironmentBase): class Environment(EnvironmentBase): - class Config: - from_attributes = True + model_config = ConfigDict(from_attributes=True) class RunBase(BaseModel): @@ -78,8 +75,7 @@ class RunCreate(RunBase): class Run(RunBase): - class Config: - from_attributes = True + model_config = ConfigDict(from_attributes=True) class TopAllocatingFunction(BaseModel): @@ -111,8 +107,7 @@ class BenchmarkResultCreate(BaseModel): class BenchmarkResult(BenchmarkResultBase): - class Config: - from_attributes = True + model_config = ConfigDict(from_attributes=True) # Worker upload schemas @@ -181,5 +176,26 @@ class AdminUserPublic(BaseModel): added_at: datetime is_active: bool - class Config: - from_attributes = True + model_config = ConfigDict(from_attributes=True) + + +class MemrayFailureReport(BaseModel): + commit_sha: str + commit_timestamp: datetime + binary_id: str + environment_id: str + error_message: str + + +class MemrayFailurePublic(BaseModel): + id: int + commit_sha: str + binary_id: str + environment_id: str + binary_name: str + environment_name: str + error_message: str + failure_timestamp: datetime + commit_timestamp: datetime + + model_config = ConfigDict(from_attributes=True) diff --git a/backend/pytest.ini b/backend/pytest.ini new file mode 100644 index 0000000..6f94355 --- /dev/null +++ b/backend/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +testpaths = tests +asyncio_mode = auto diff --git a/backend/requirements-dev.in b/backend/requirements-dev.in new file mode 100644 index 0000000..bcd863f --- /dev/null +++ b/backend/requirements-dev.in @@ -0,0 +1,5 @@ +-r requirements.in +pytest +pytest-asyncio +pytest-cov +ruff diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt new file mode 100644 index 0000000..8dc51ed --- /dev/null +++ b/backend/requirements-dev.txt @@ -0,0 +1,1138 @@ +# +# This file is autogenerated by pip-compile with Python 3.14 +# by the following command: +# +# pip-compile --generate-hashes --output-file=requirements-dev.txt --strip-extras requirements-dev.in +# +aiosqlite==0.22.1 \ + --hash=sha256:043e0bd78d32888c0a9ca90fc788b38796843360c855a7262a532813133a0650 \ + --hash=sha256:21c002eb13823fad740196c5a2e9d8e62f6243bd9e7e4a1f87fb5e44ecb4fceb + # via -r requirements.in +annotated-doc==0.0.4 \ + --hash=sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320 \ + --hash=sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4 + # via fastapi +annotated-types==0.7.0 \ + --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ + --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 + # via pydantic +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c + # via + # httpx + # starlette + # watchfiles +asyncpg==0.31.0 \ + --hash=sha256:027eaa61361ec735926566f995d959ade4796f6a49d3bde17e5134b9964f9ba8 \ + --hash=sha256:04d19392716af6b029411a0264d92093b6e5e8285ae97a39957b9a9c14ea72be \ + --hash=sha256:0b17c89312c2f4ccea222a3a6571f7df65d4ba2c0e803339bfc7bed46a96d3be \ + --hash=sha256:0bfbcc5b7ffcd9b75ab1558f00db2ae07db9c80637ad1b2469c43df79d7a5ae2 \ + --hash=sha256:0c89ccf741c067614c9b5fc7f1fc6f3b61ab05ae4aaa966e6fd6b93097c7d20d \ + --hash=sha256:12b3b2e39dc5470abd5e98c8d3373e4b1d1234d9fbdedf538798b2c13c64460a \ + --hash=sha256:18c83b03bc0d1b23e6230f5bf8d4f217dc9bc08644ce0502a9d91dc9e634a9c7 \ + --hash=sha256:19857a358fc811d82227449b7ca40afb46e75b33eb8897240c3839dd8b744218 \ + --hash=sha256:1b41f1afb1033f2b44f3234993b15096ddc9cd71b21a42dbd87fc6a57b43d65d \ + --hash=sha256:22bc525ebbdc24d1261ecbf6f504998244d4e3be1721784b5f64664d61fbe602 \ + --hash=sha256:22be6e02381bab3101cd502d9297ac71e2f966c86e20e78caead9934c98a8af6 \ + --hash=sha256:2657204552b75f8288de08ca60faf4a99a65deef3a71d1467454123205a88fab \ + --hash=sha256:2d076d42eb583601179efa246c5d7ae44614b4144bc1c7a683ad1222814ed095 \ + --hash=sha256:334dec28cf20d7f5bb9e45b39546ddf247f8042a690bff9b9573d00086e69cb5 \ + --hash=sha256:37a58919cfef2448a920df00d1b2f821762d17194d0dbf355d6dde8d952c04f9 \ + --hash=sha256:37fc6c00a814e18eef51833545d1891cac9aa69140598bb076b4cd29b3e010b9 \ + --hash=sha256:3b1fbcb0e396a5ca435a8826a87e5c2c2cc0c8c68eb6fadf82168056b0e53a8c \ + --hash=sha256:3df118d94f46d85b2e434fd62c84cb66d5834d5a890725fe625f498e72e4d5ec \ + --hash=sha256:3faa62f997db0c9add34504a68ac2c342cfee4d57a0c3062fcf0d86c7f9cb1e8 \ + --hash=sha256:480c4befbdf079c14c9ca43c8c5e1fe8b6296c96f1f927158d4f1e750aacc047 \ + --hash=sha256:54a64f91839ba59008eccf7aad2e93d6e3de688d796f35803235ea1c4898ae1e \ + --hash=sha256:5a4af56edf82a701aece93190cc4e094d2df7d33f6e915c222fb09efbb5afc24 \ + --hash=sha256:6d11b198111a72f47154fa03b85799f9be63701e068b43f84ac25da0bda9cb31 \ + --hash=sha256:72d6bdcbc93d608a1158f17932de2321f68b1a967a13e014998db87a72ed3186 \ + --hash=sha256:795416369c3d284e1837461909f58418ad22b305f955e625a4b3a2521d80a5f3 \ + --hash=sha256:831712dd3cf117eec68575a9b50da711893fd63ebe277fc155ecae1c6c9f0f61 \ + --hash=sha256:8df714dba348efcc162d2adf02d213e5fab1bd9f557e1305633e851a61814a7a \ + --hash=sha256:8ea599d45c361dfbf398cb67da7fd052affa556a401482d3ff1ee99bd68808a1 \ + --hash=sha256:9322b563e2661a52e3cdbc93eed3be7748b289f792e0011cb2720d278b366ce2 \ + --hash=sha256:98cc158c53f46de7bb677fd20c417e264fc02b36d901cc2a43bd6cb0dc6dbfd2 \ + --hash=sha256:9ea33213ac044171f4cac23740bed9a3805abae10e7025314cfbd725ec670540 \ + --hash=sha256:a429e842a3a4b4ea240ea52d7fe3f82d5149853249306f7ff166cb9948faa46c \ + --hash=sha256:a8d758dac9d2e723e173d286ef5e574f0b350ec00e9186fce84d0fc5f6a8e6b8 \ + --hash=sha256:aad7a33913fb8bcb5454313377cc330fbb19a0cd5faa7272407d8a0c4257b671 \ + --hash=sha256:b44c31e1efc1c15188ef183f287c728e2046abb1d26af4d20858215d50d91fad \ + --hash=sha256:ba5f8886e850882ff2c2ace5732300e99193823e8107e2c53ef01c1ebfa1e85d \ + --hash=sha256:bb223567dea5f47c45d347f2bde5486be8d9f40339f27217adb3fb1c3be51298 \ + --hash=sha256:bc2b685f400ceae428f79f78b58110470d7b4466929a7f78d455964b17ad1008 \ + --hash=sha256:bd4107bb7cdd0e9e65fae66a62afd3a249663b844fa34d479f6d5b3bef9c04c3 \ + --hash=sha256:bd5b6efff3c17c3202d4b37189969acf8927438a238c6257f66be3c426beba20 \ + --hash=sha256:bdb957706da132e982cc6856bb2f7b740603472b54c3ebc77fe60ea3e57e1bd2 \ + --hash=sha256:bef056aa502ee34204c161c72ca1f3c274917596877f825968368b2c33f585f4 \ + --hash=sha256:c0807be46c32c963ae40d329b3a686356e417f674c976c07fa49f1b30303f109 \ + --hash=sha256:c0e0822b1038dc7253b337b0f3f676cadc4ac31b126c5d42691c39691962e403 \ + --hash=sha256:c1a9c5b71d2371a2290bc93336cd05ba4ec781683cab292adbddc084f89443c6 \ + --hash=sha256:c1e1ab5bc65373d92dd749d7308c5b26fb2dc0fbe5d3bf68a32b676aa3bcd24a \ + --hash=sha256:c204fab1b91e08b0f47e90a75d1b3c62174dab21f670ad6c5d0f243a228f015b \ + --hash=sha256:c989386c83940bfbd787180f2b1519415e2d3d6277a70d9d0f0145ac73500735 \ + --hash=sha256:cea3a0b2a14f95834cee29432e4ddc399b95700eb1d51bbc5bfee8f31fa07b2b \ + --hash=sha256:dc5f2fa9916f292e5c5c8b2ac2813763bcd7f58e130055b4ad8a0531314201ab \ + --hash=sha256:e009abc333464ff18b8f6fd146addffd9aaf63e79aa3bb40ab7a4c332d0c5e9e \ + --hash=sha256:e5d5098f63beeae93512ee513d4c0c53dc12e9aa2b7a1af5a81cddf93fe4e4da \ + --hash=sha256:e6974f36eb9a224d8fb428bcf66bd411aa12cf57c2967463178149e73d4de366 \ + --hash=sha256:ebb3cde58321a1f89ce41812be3f2a98dddedc1e76d0838aba1d724f1e4e1a95 \ + --hash=sha256:eee690960e8ab85063ba93af2ce128c0f52fd655fdff9fdb1a28df01329f031d \ + --hash=sha256:f6b56b91bb0ffc328c4e3ed113136cddd9deefdf5f79ab448598b9772831df44 \ + --hash=sha256:f890de5e1e4f7e14023619399a471ce4b71f5418cd67a51853b9910fdfa73696 + # via -r requirements.in +authlib==1.6.9 \ + --hash=sha256:d8f2421e7e5980cc1ddb4e32d3f5fa659cfaf60d8eaf3281ebed192e4ab74f04 \ + --hash=sha256:f08b4c14e08f0861dc18a32357b33fbcfd2ea86cfe3fe149484b4d764c4a0ac3 + # via -r requirements.in +certifi==2026.2.25 \ + --hash=sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa \ + --hash=sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7 + # via + # httpcore + # httpx +cffi==2.0.0 \ + --hash=sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb \ + --hash=sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b \ + --hash=sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f \ + --hash=sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9 \ + --hash=sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44 \ + --hash=sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2 \ + --hash=sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c \ + --hash=sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75 \ + --hash=sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65 \ + --hash=sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e \ + --hash=sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a \ + --hash=sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e \ + --hash=sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25 \ + --hash=sha256:2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a \ + --hash=sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe \ + --hash=sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b \ + --hash=sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91 \ + --hash=sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592 \ + --hash=sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187 \ + --hash=sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c \ + --hash=sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1 \ + --hash=sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94 \ + --hash=sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba \ + --hash=sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb \ + --hash=sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165 \ + --hash=sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529 \ + --hash=sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca \ + --hash=sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c \ + --hash=sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6 \ + --hash=sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c \ + --hash=sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0 \ + --hash=sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743 \ + --hash=sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63 \ + --hash=sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5 \ + --hash=sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5 \ + --hash=sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4 \ + --hash=sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d \ + --hash=sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b \ + --hash=sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93 \ + --hash=sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205 \ + --hash=sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27 \ + --hash=sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512 \ + --hash=sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d \ + --hash=sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c \ + --hash=sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037 \ + --hash=sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26 \ + --hash=sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322 \ + --hash=sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb \ + --hash=sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c \ + --hash=sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8 \ + --hash=sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4 \ + --hash=sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414 \ + --hash=sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9 \ + --hash=sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664 \ + --hash=sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9 \ + --hash=sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775 \ + --hash=sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739 \ + --hash=sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc \ + --hash=sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062 \ + --hash=sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe \ + --hash=sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9 \ + --hash=sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92 \ + --hash=sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5 \ + --hash=sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13 \ + --hash=sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d \ + --hash=sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26 \ + --hash=sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f \ + --hash=sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495 \ + --hash=sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b \ + --hash=sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6 \ + --hash=sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c \ + --hash=sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef \ + --hash=sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5 \ + --hash=sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18 \ + --hash=sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad \ + --hash=sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3 \ + --hash=sha256:de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7 \ + --hash=sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5 \ + --hash=sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534 \ + --hash=sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49 \ + --hash=sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2 \ + --hash=sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5 \ + --hash=sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453 \ + --hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf + # via cryptography +click==8.3.1 \ + --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \ + --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6 + # via uvicorn +coverage==7.13.4 \ + --hash=sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246 \ + --hash=sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459 \ + --hash=sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129 \ + --hash=sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6 \ + --hash=sha256:0fc31c787a84f8cd6027eba44010517020e0d18487064cd3d8968941856d1415 \ + --hash=sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf \ + --hash=sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80 \ + --hash=sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11 \ + --hash=sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0 \ + --hash=sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b \ + --hash=sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9 \ + --hash=sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b \ + --hash=sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f \ + --hash=sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505 \ + --hash=sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47 \ + --hash=sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55 \ + --hash=sha256:296f8b0af861d3970c2a4d8c91d48eb4dd4771bcef9baedec6a9b515d7de3def \ + --hash=sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689 \ + --hash=sha256:2a09cfa6a5862bc2fc6ca7c3def5b2926194a56b8ab78ffcf617d28911123012 \ + --hash=sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5 \ + --hash=sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3 \ + --hash=sha256:2cb0f1e000ebc419632bbe04366a8990b6e32c4e0b51543a6484ffe15eaeda95 \ + --hash=sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9 \ + --hash=sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601 \ + --hash=sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997 \ + --hash=sha256:33901f604424145c6e9c2398684b92e176c0b12df77d52db81c20abd48c3794c \ + --hash=sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac \ + --hash=sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c \ + --hash=sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa \ + --hash=sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750 \ + --hash=sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3 \ + --hash=sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d \ + --hash=sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12 \ + --hash=sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a \ + --hash=sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932 \ + --hash=sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356 \ + --hash=sha256:4fc7fa81bbaf5a02801b65346c8b3e657f1d93763e58c0abdf7c992addd81a92 \ + --hash=sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148 \ + --hash=sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39 \ + --hash=sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634 \ + --hash=sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6 \ + --hash=sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72 \ + --hash=sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98 \ + --hash=sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef \ + --hash=sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3 \ + --hash=sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9 \ + --hash=sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0 \ + --hash=sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a \ + --hash=sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9 \ + --hash=sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552 \ + --hash=sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc \ + --hash=sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f \ + --hash=sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525 \ + --hash=sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940 \ + --hash=sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a \ + --hash=sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23 \ + --hash=sha256:8041b6c5bfdc03257666e9881d33b1abc88daccaf73f7b6340fb7946655cd10f \ + --hash=sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc \ + --hash=sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b \ + --hash=sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056 \ + --hash=sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7 \ + --hash=sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb \ + --hash=sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a \ + --hash=sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd \ + --hash=sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea \ + --hash=sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126 \ + --hash=sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299 \ + --hash=sha256:9d107aff57a83222ddbd8d9ee705ede2af2cc926608b57abed8ef96b50b7e8f9 \ + --hash=sha256:a32ebc02a1805adf637fc8dec324b5cdacd2e493515424f70ee33799573d661b \ + --hash=sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00 \ + --hash=sha256:a6f94a7d00eb18f1b6d403c91a88fd58cfc92d4b16080dfdb774afc8294469bf \ + --hash=sha256:aa3feb8db2e87ff5e6d00d7e1480ae241876286691265657b500886c98f38bda \ + --hash=sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2 \ + --hash=sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5 \ + --hash=sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d \ + --hash=sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9 \ + --hash=sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9 \ + --hash=sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b \ + --hash=sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa \ + --hash=sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092 \ + --hash=sha256:bb28c0f2cf2782508a40cec377935829d5fcc3ad9a3681375af4e84eb34b6b58 \ + --hash=sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea \ + --hash=sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26 \ + --hash=sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea \ + --hash=sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9 \ + --hash=sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053 \ + --hash=sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f \ + --hash=sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0 \ + --hash=sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3 \ + --hash=sha256:e101609bcbbfb04605ea1027b10dc3735c094d12d40826a60f897b98b1c30256 \ + --hash=sha256:e24f9156097ff9dc286f2f913df3a7f63c0e333dcafa3c196f2c18b4175ca09a \ + --hash=sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903 \ + --hash=sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91 \ + --hash=sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd \ + --hash=sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505 \ + --hash=sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7 \ + --hash=sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0 \ + --hash=sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2 \ + --hash=sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a \ + --hash=sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71 \ + --hash=sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985 \ + --hash=sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242 \ + --hash=sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d \ + --hash=sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af \ + --hash=sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c \ + --hash=sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0 + # via pytest-cov +cryptography==46.0.5 \ + --hash=sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72 \ + --hash=sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235 \ + --hash=sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9 \ + --hash=sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356 \ + --hash=sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257 \ + --hash=sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad \ + --hash=sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4 \ + --hash=sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c \ + --hash=sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614 \ + --hash=sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed \ + --hash=sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31 \ + --hash=sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229 \ + --hash=sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0 \ + --hash=sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731 \ + --hash=sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b \ + --hash=sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4 \ + --hash=sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4 \ + --hash=sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263 \ + --hash=sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595 \ + --hash=sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1 \ + --hash=sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678 \ + --hash=sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48 \ + --hash=sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76 \ + --hash=sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0 \ + --hash=sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18 \ + --hash=sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d \ + --hash=sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d \ + --hash=sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1 \ + --hash=sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981 \ + --hash=sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7 \ + --hash=sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82 \ + --hash=sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2 \ + --hash=sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4 \ + --hash=sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663 \ + --hash=sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c \ + --hash=sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d \ + --hash=sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a \ + --hash=sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a \ + --hash=sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d \ + --hash=sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b \ + --hash=sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a \ + --hash=sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826 \ + --hash=sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee \ + --hash=sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9 \ + --hash=sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648 \ + --hash=sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da \ + --hash=sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2 \ + --hash=sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2 \ + --hash=sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87 + # via authlib +fastapi==0.135.1 \ + --hash=sha256:46e2fc5745924b7c840f71ddd277382af29ce1cdb7d5eab5bf697e3fb9999c9e \ + --hash=sha256:d04115b508d936d254cea545b7312ecaa58a7b3a0f84952535b4c9afae7668cd + # via -r requirements.in +greenlet==3.3.2 \ + --hash=sha256:02b0a8682aecd4d3c6c18edf52bc8e51eacdd75c8eac52a790a210b06aa295fd \ + --hash=sha256:18cb1b7337bca281915b3c5d5ae19f4e76d35e1df80f4ad3c1a7be91fadf1082 \ + --hash=sha256:1a9172f5bf6bd88e6ba5a84e0a68afeac9dc7b6b412b245dd64f52d83c81e55b \ + --hash=sha256:1e692b2dae4cc7077cbb11b47d258533b48c8fde69a33d0d8a82e2fe8d8531d5 \ + --hash=sha256:1ebd458fa8285960f382841da585e02201b53a5ec2bac6b156fc623b5ce4499f \ + --hash=sha256:1fb39a11ee2e4d94be9a76671482be9398560955c9e568550de0224e41104727 \ + --hash=sha256:20154044d9085151bc309e7689d6f7ba10027f8f5a8c0676ad398b951913d89e \ + --hash=sha256:2eaf067fc6d886931c7962e8c6bede15d2f01965560f3359b27c80bde2d151f2 \ + --hash=sha256:34308836d8370bddadb41f5a7ce96879b72e2fdfb4e87729330c6ab52376409f \ + --hash=sha256:394ead29063ee3515b4e775216cb756b2e3b4a7e55ae8fd884f17fa579e6b327 \ + --hash=sha256:3ceec72030dae6ac0c8ed7591b96b70410a8be370b6a477b1dbc072856ad02bd \ + --hash=sha256:4375a58e49522698d3e70cc0b801c19433021b5c37686f7ce9c65b0d5c8677d2 \ + --hash=sha256:43e99d1749147ac21dde49b99c9abffcbc1e2d55c67501465ef0930d6e78e070 \ + --hash=sha256:442b6057453c8cb29b4fb36a2ac689382fc71112273726e2423f7f17dc73bf99 \ + --hash=sha256:45abe8eb6339518180d5a7fa47fa01945414d7cca5ecb745346fc6a87d2750be \ + --hash=sha256:4c956a19350e2c37f2c48b336a3afb4bff120b36076d9d7fb68cb44e05d95b79 \ + --hash=sha256:508c7f01f1791fbc8e011bd508f6794cb95397fdb198a46cb6635eb5b78d85a7 \ + --hash=sha256:527fec58dc9f90efd594b9b700662ed3fb2493c2122067ac9c740d98080a620e \ + --hash=sha256:59b3e2c40f6706b05a9cd299c836c6aa2378cabe25d021acd80f13abf81181cf \ + --hash=sha256:5d0e35379f93a6d0222de929a25ab47b5eb35b5ef4721c2b9cbcc4036129ff1f \ + --hash=sha256:63d10328839d1973e5ba35e98cccbca71b232b14051fd957b6f8b6e8e80d0506 \ + --hash=sha256:64970c33a50551c7c50491671265d8954046cb6e8e2999aacdd60e439b70418a \ + --hash=sha256:6c6f8ba97d17a1e7d664151284cb3315fc5f8353e75221ed4324f84eb162b395 \ + --hash=sha256:8b466dff7a4ffda6ca975979bab80bdadde979e29fc947ac3be4451428d8b0e4 \ + --hash=sha256:8c1fdd7d1b309ff0da81d60a9688a8bd044ac4e18b250320a96fc68d31c209ca \ + --hash=sha256:8c4dd0f3997cf2512f7601563cc90dfb8957c0cff1e3a1b23991d4ea1776c492 \ + --hash=sha256:8d1658d7291f9859beed69a776c10822a0a799bc4bfe1bd4272bb60e62507dab \ + --hash=sha256:8e2cd90d413acbf5e77ae41e5d3c9b3ac1d011a756d7284d7f3f2b806bbd6358 \ + --hash=sha256:8e4ab3cfb02993c8cc248ea73d7dae6cec0253e9afa311c9b37e603ca9fad2ce \ + --hash=sha256:94ad81f0fd3c0c0681a018a976e5c2bd2ca2d9d94895f23e7bb1af4e8af4e2d5 \ + --hash=sha256:97245cc10e5515dbc8c3104b2928f7f02b6813002770cfaffaf9a6e0fc2b94ef \ + --hash=sha256:9bc885b89709d901859cf95179ec9f6bb67a3d2bb1f0e88456461bd4b7f8fd0d \ + --hash=sha256:a2a5be83a45ce6188c045bcc44b0ee037d6a518978de9a5d97438548b953a1ac \ + --hash=sha256:a443358b33c4ec7b05b79a7c8b466f5d275025e750298be7340f8fc63dff2a55 \ + --hash=sha256:a7945dd0eab63ded0a48e4dcade82939783c172290a7903ebde9e184333ca124 \ + --hash=sha256:aa6ac98bdfd716a749b84d4034486863fd81c3abde9aa3cf8eff9127981a4ae4 \ + --hash=sha256:ab0c7e7901a00bc0a7284907273dc165b32e0d109a6713babd04471327ff7986 \ + --hash=sha256:ac8d61d4343b799d1e526db579833d72f23759c71e07181c2d2944e429eb09cd \ + --hash=sha256:ad0c8917dd42a819fe77e6bdfcb84e3379c0de956469301d9fd36427a1ca501f \ + --hash=sha256:ae9e21c84035c490506c17002f5c8ab25f980205c3e61ddb3a2a2a2e6c411fcb \ + --hash=sha256:b26b0f4428b871a751968285a1ac9648944cea09807177ac639b030bddebcea4 \ + --hash=sha256:b568183cf65b94919be4438dc28416b234b678c608cafac8874dfeeb2a9bbe13 \ + --hash=sha256:b6997d360a4e6a4e936c0f9625b1c20416b8a0ea18a8e19cabbefc712e7397ab \ + --hash=sha256:b8bddc5b73c9720bea487b3bffdb1840fe4e3656fba3bd40aa1489e9f37877ff \ + --hash=sha256:c04c5e06ec3e022cbfe2cd4a846e1d4e50087444f875ff6d2c2ad8445495cf1a \ + --hash=sha256:c2e47408e8ce1c6f1ceea0dffcdf6ebb85cc09e55c7af407c99f1112016e45e9 \ + --hash=sha256:c56692189a7d1c7606cb794be0a8381470d95c57ce5be03fb3d0ef57c7853b86 \ + --hash=sha256:ccd21bb86944ca9be6d967cf7691e658e43417782bce90b5d2faeda0ff78a7dd \ + --hash=sha256:cd6f9e2bbd46321ba3bbb4c8a15794d32960e3b0ae2cc4d49a1a53d314805d71 \ + --hash=sha256:d248d8c23c67d2291ffd47af766e2a3aa9fa1c6703155c099feb11f526c63a92 \ + --hash=sha256:d3a62fa76a32b462a97198e4c9e99afb9ab375115e74e9a83ce180e7a496f643 \ + --hash=sha256:e26e72bec7ab387ac80caa7496e0f908ff954f31065b0ffc1f8ecb1338b11b54 \ + --hash=sha256:e3cb43ce200f59483eb82949bf1835a99cf43d7571e900d7c8d5c62cdf25d2f9 + # via sqlalchemy +h11==0.16.0 \ + --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ + --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 + # via + # httpcore + # uvicorn +httpcore==1.0.9 \ + --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ + --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 + # via httpx +httptools==0.7.1 \ + --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ + --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ + --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ + --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ + --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ + --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ + --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ + --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ + --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ + --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ + --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ + --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ + --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ + --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ + --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ + --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ + --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ + --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ + --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ + --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ + --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ + --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ + --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ + --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ + --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ + --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ + --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ + --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ + --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ + --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ + --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ + --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ + --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ + --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ + --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ + --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ + --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ + --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ + --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ + --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ + --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ + --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ + --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 + # via uvicorn +httpx==0.28.1 \ + --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ + --hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad + # via -r requirements.in +idna==3.11 \ + --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ + --hash=sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902 + # via + # anyio + # httpx +iniconfig==2.3.0 \ + --hash=sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730 \ + --hash=sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12 + # via pytest +packaging==26.0 \ + --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \ + --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529 + # via pytest +pluggy==1.6.0 \ + --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ + --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 + # via + # pytest + # pytest-cov +psycopg2-binary==2.9.11 \ + --hash=sha256:00ce1830d971f43b667abe4a56e42c1e2d594b32da4802e44a73bacacb25535f \ + --hash=sha256:04195548662fa544626c8ea0f06561eb6203f1984ba5b4562764fbeb4c3d14b1 \ + --hash=sha256:0da4de5c1ac69d94ed4364b6cbe7190c1a70d325f112ba783d83f8440285f152 \ + --hash=sha256:0e8480afd62362d0a6a27dd09e4ca2def6fa50ed3a4e7c09165266106b2ffa10 \ + --hash=sha256:20e7fb94e20b03dcc783f76c0865f9da39559dcc0c28dd1a3fce0d01902a6b9c \ + --hash=sha256:2c226ef95eb2250974bf6fa7a842082b31f68385c4f3268370e3f3870e7859ee \ + --hash=sha256:2d11098a83cca92deaeaed3d58cfd150d49b3b06ee0d0852be466bf87596899e \ + --hash=sha256:2e164359396576a3cc701ba8af4751ae68a07235d7a380c631184a611220d9a4 \ + --hash=sha256:304fd7b7f97eef30e91b8f7e720b3db75fee010b520e434ea35ed1ff22501d03 \ + --hash=sha256:31b32c457a6025e74d233957cc9736742ac5a6cb196c6b68499f6bb51390bd6a \ + --hash=sha256:32770a4d666fbdafab017086655bcddab791d7cb260a16679cc5a7338b64343b \ + --hash=sha256:366df99e710a2acd90efed3764bb1e28df6c675d33a7fb40df9b7281694432ee \ + --hash=sha256:37d8412565a7267f7d79e29ab66876e55cb5e8e7b3bbf94f8206f6795f8f7e7e \ + --hash=sha256:4012c9c954dfaccd28f94e84ab9f94e12df76b4afb22331b1f0d3154893a6316 \ + --hash=sha256:41360b01c140c2a03d346cec3280cf8a71aa07d94f3b1509fa0161c366af66b4 \ + --hash=sha256:44fc5c2b8fa871ce7f0023f619f1349a0aa03a0857f2c96fbc01c657dcbbdb49 \ + --hash=sha256:47f212c1d3be608a12937cc131bd85502954398aaa1320cb4c14421a0ffccf4c \ + --hash=sha256:4bdab48575b6f870f465b397c38f1b415520e9879fdf10a53ee4f49dcbdf8a21 \ + --hash=sha256:4dca1f356a67ecb68c81a7bc7809f1569ad9e152ce7fd02c2f2036862ca9f66b \ + --hash=sha256:5c6ff3335ce08c75afaed19e08699e8aacf95d4a260b495a4a8545244fe2ceb3 \ + --hash=sha256:5f3f2732cf504a1aa9e9609d02f79bea1067d99edf844ab92c247bbca143303b \ + --hash=sha256:62b6d93d7c0b61a1dd6197d208ab613eb7dcfdcca0a49c42ceb082257991de9d \ + --hash=sha256:691c807d94aecfbc76a14e1408847d59ff5b5906a04a23e12a89007672b9e819 \ + --hash=sha256:763c93ef1df3da6d1a90f86ea7f3f806dc06b21c198fa87c3c25504abec9404a \ + --hash=sha256:84011ba3109e06ac412f95399b704d3d6950e386b7994475b231cf61eec2fc1f \ + --hash=sha256:865f9945ed1b3950d968ec4690ce68c55019d79e4497366d36e090327ce7db14 \ + --hash=sha256:875039274f8a2361e5207857899706da840768e2a775bf8c65e82f60b197df02 \ + --hash=sha256:8b81627b691f29c4c30a8f322546ad039c40c328373b11dff7490a3e1b517855 \ + --hash=sha256:8c55b385daa2f92cb64b12ec4536c66954ac53654c7f15a203578da4e78105c0 \ + --hash=sha256:91537a8df2bde69b1c1db01d6d944c831ca793952e4f57892600e96cee95f2cd \ + --hash=sha256:92e3b669236327083a2e33ccfa0d320dd01b9803b3e14dd986a4fc54aa00f4e1 \ + --hash=sha256:9b52a3f9bb540a3e4ec0f6ba6d31339727b2950c9772850d6545b7eae0b9d7c5 \ + --hash=sha256:9bd81e64e8de111237737b29d68039b9c813bdf520156af36d26819c9a979e5f \ + --hash=sha256:9c55460033867b4622cda1b6872edf445809535144152e5d14941ef591980edf \ + --hash=sha256:9d3a9edcfbe77a3ed4bc72836d466dfce4174beb79eda79ea155cc77237ed9e8 \ + --hash=sha256:a1cf393f1cdaf6a9b57c0a719a1068ba1069f022a59b8b1fe44b006745b59757 \ + --hash=sha256:a28d8c01a7b27a1e3265b11250ba7557e5f72b5ee9e5f3a2fa8d2949c29bf5d2 \ + --hash=sha256:a311f1edc9967723d3511ea7d2708e2c3592e3405677bf53d5c7246753591fbb \ + --hash=sha256:a6c0e4262e089516603a09474ee13eabf09cb65c332277e39af68f6233911087 \ + --hash=sha256:ab8905b5dcb05bf3fb22e0cf90e10f469563486ffb6a96569e51f897c750a76a \ + --hash=sha256:b31e90fdd0f968c2de3b26ab014314fe814225b6c324f770952f7d38abf17e3c \ + --hash=sha256:b33fabeb1fde21180479b2d4667e994de7bbf0eec22832ba5d9b5e4cf65b6c6d \ + --hash=sha256:b637d6d941209e8d96a072d7977238eea128046effbf37d1d8b2c0764750017d \ + --hash=sha256:b6aed9e096bf63f9e75edf2581aa9a7e7186d97ab5c177aa6c87797cd591236c \ + --hash=sha256:b8fb3db325435d34235b044b199e56cdf9ff41223a4b9752e8576465170bb38c \ + --hash=sha256:ba34475ceb08cccbdd98f6b46916917ae6eeb92b5ae111df10b544c3a4621dc4 \ + --hash=sha256:be9b840ac0525a283a96b556616f5b4820e0526addb8dcf6525a0fa162730be4 \ + --hash=sha256:bf940cd7e7fec19181fdbc29d76911741153d51cab52e5c21165f3262125685e \ + --hash=sha256:c0377174bf1dd416993d16edc15357f6eb17ac998244cca19bc67cdc0e2e5766 \ + --hash=sha256:c3cb3a676873d7506825221045bd70e0427c905b9c8ee8d6acd70cfcbd6e576d \ + --hash=sha256:c47676e5b485393f069b4d7a811267d3168ce46f988fa602658b8bb901e9e64d \ + --hash=sha256:c665f01ec8ab273a61c62beeb8cce3014c214429ced8a308ca1fc410ecac3a39 \ + --hash=sha256:cffe9d7697ae7456649617e8bb8d7a45afb71cd13f7ab22af3e5c61f04840908 \ + --hash=sha256:d526864e0f67f74937a8fce859bd56c979f5e2ec57ca7c627f5f1071ef7fee60 \ + --hash=sha256:d57c9c387660b8893093459738b6abddbb30a7eab058b77b0d0d1c7d521ddfd7 \ + --hash=sha256:d6fe6b47d0b42ce1c9f1fa3e35bb365011ca22e39db37074458f27921dca40f2 \ + --hash=sha256:db4fd476874ccfdbb630a54426964959e58da4c61c9feba73e6094d51303d7d8 \ + --hash=sha256:e0deeb03da539fa3577fcb0b3f2554a97f7e5477c246098dbb18091a4a01c16f \ + --hash=sha256:e35b7abae2b0adab776add56111df1735ccc71406e56203515e228a8dc07089f \ + --hash=sha256:ebb415404821b6d1c47353ebe9c8645967a5235e6d88f914147e7fd411419e6f \ + --hash=sha256:edcb3aeb11cb4bf13a2af3c53a15b3d612edeb6409047ea0b5d6a21a9d744b34 \ + --hash=sha256:ef7a6beb4beaa62f88592ccc65df20328029d721db309cb3250b0aae0fa146c3 \ + --hash=sha256:efff12b432179443f54e230fdf60de1f6cc726b6c832db8701227d089310e8aa \ + --hash=sha256:f07c9c4a5093258a03b28fab9b4f151aa376989e7f35f855088234e656ee6a94 \ + --hash=sha256:f090b7ddd13ca842ebfe301cd587a76a4cf0913b1e429eb92c1be5dbeb1a19bc \ + --hash=sha256:fa0f693d3c68ae925966f0b14b8edda71696608039f4ed61b1fe9ffa468d16db \ + --hash=sha256:fcf21be3ce5f5659daefd2b3b3b6e4727b028221ddc94e6c1523425579664747 + # via -r requirements.in +pycparser==3.0 \ + --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ + --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 + # via cffi +pydantic==2.12.5 \ + --hash=sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49 \ + --hash=sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d + # via + # -r requirements.in + # fastapi + # pydantic-settings +pydantic-core==2.41.5 \ + --hash=sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90 \ + --hash=sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740 \ + --hash=sha256:0384e2e1021894b1ff5a786dbf94771e2986ebe2869533874d7e43bc79c6f504 \ + --hash=sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84 \ + --hash=sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33 \ + --hash=sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c \ + --hash=sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0 \ + --hash=sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e \ + --hash=sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0 \ + --hash=sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a \ + --hash=sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34 \ + --hash=sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2 \ + --hash=sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3 \ + --hash=sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815 \ + --hash=sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14 \ + --hash=sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba \ + --hash=sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375 \ + --hash=sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf \ + --hash=sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963 \ + --hash=sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1 \ + --hash=sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808 \ + --hash=sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553 \ + --hash=sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1 \ + --hash=sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2 \ + --hash=sha256:299e0a22e7ae2b85c1a57f104538b2656e8ab1873511fd718a1c1c6f149b77b5 \ + --hash=sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470 \ + --hash=sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2 \ + --hash=sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b \ + --hash=sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660 \ + --hash=sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c \ + --hash=sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093 \ + --hash=sha256:346285d28e4c8017da95144c7f3acd42740d637ff41946af5ce6e5e420502dd5 \ + --hash=sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594 \ + --hash=sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008 \ + --hash=sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a \ + --hash=sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a \ + --hash=sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd \ + --hash=sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284 \ + --hash=sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586 \ + --hash=sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869 \ + --hash=sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294 \ + --hash=sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f \ + --hash=sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66 \ + --hash=sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51 \ + --hash=sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc \ + --hash=sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97 \ + --hash=sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a \ + --hash=sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d \ + --hash=sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9 \ + --hash=sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c \ + --hash=sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07 \ + --hash=sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36 \ + --hash=sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e \ + --hash=sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05 \ + --hash=sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e \ + --hash=sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941 \ + --hash=sha256:707625ef0983fcfb461acfaf14de2067c5942c6bb0f3b4c99158bed6fedd3cf3 \ + --hash=sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612 \ + --hash=sha256:753e230374206729bf0a807954bcc6c150d3743928a73faffee51ac6557a03c3 \ + --hash=sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b \ + --hash=sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe \ + --hash=sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146 \ + --hash=sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11 \ + --hash=sha256:7b93a4d08587e2b7e7882de461e82b6ed76d9026ce91ca7915e740ecc7855f60 \ + --hash=sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd \ + --hash=sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b \ + --hash=sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c \ + --hash=sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a \ + --hash=sha256:873e0d5b4fb9b89ef7c2d2a963ea7d02879d9da0da8d9d4933dee8ee86a8b460 \ + --hash=sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1 \ + --hash=sha256:8bfeaf8735be79f225f3fefab7f941c712aaca36f1128c9d7e2352ee1aa87bdf \ + --hash=sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf \ + --hash=sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858 \ + --hash=sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2 \ + --hash=sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9 \ + --hash=sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2 \ + --hash=sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3 \ + --hash=sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6 \ + --hash=sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770 \ + --hash=sha256:a75dafbf87d6276ddc5b2bf6fae5254e3d0876b626eb24969a574fff9149ee5d \ + --hash=sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc \ + --hash=sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23 \ + --hash=sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26 \ + --hash=sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa \ + --hash=sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8 \ + --hash=sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d \ + --hash=sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3 \ + --hash=sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d \ + --hash=sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034 \ + --hash=sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9 \ + --hash=sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1 \ + --hash=sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56 \ + --hash=sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b \ + --hash=sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c \ + --hash=sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a \ + --hash=sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e \ + --hash=sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9 \ + --hash=sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5 \ + --hash=sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a \ + --hash=sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556 \ + --hash=sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e \ + --hash=sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49 \ + --hash=sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2 \ + --hash=sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9 \ + --hash=sha256:e4f4a984405e91527a0d62649ee21138f8e3d0ef103be488c1dc11a80d7f184b \ + --hash=sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc \ + --hash=sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb \ + --hash=sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0 \ + --hash=sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8 \ + --hash=sha256:e8465ab91a4bd96d36dde3263f06caa6a8a6019e4113f24dc753d79a8b3a3f82 \ + --hash=sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69 \ + --hash=sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b \ + --hash=sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c \ + --hash=sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75 \ + --hash=sha256:f0cd744688278965817fd0839c4a4116add48d23890d468bc436f78beb28abf5 \ + --hash=sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f \ + --hash=sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad \ + --hash=sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b \ + --hash=sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7 \ + --hash=sha256:f41eb9797986d6ebac5e8edff36d5cef9de40def462311b3eb3eeded1431e425 \ + --hash=sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52 + # via pydantic +pydantic-settings==2.13.1 \ + --hash=sha256:b4c11847b15237fb0171e1462bf540e294affb9b86db4d9aa5c01730bdbe4025 \ + --hash=sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237 + # via -r requirements.in +pygments==2.19.2 \ + --hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \ + --hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b + # via pytest +pytest==9.0.2 \ + --hash=sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b \ + --hash=sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11 + # via + # -r requirements-dev.in + # pytest-asyncio + # pytest-cov +pytest-asyncio==1.3.0 \ + --hash=sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5 \ + --hash=sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5 + # via -r requirements-dev.in +pytest-cov==7.0.0 \ + --hash=sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1 \ + --hash=sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861 + # via -r requirements-dev.in +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 + # via -r requirements.in +python-dotenv==1.2.2 \ + --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ + --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 + # via + # pydantic-settings + # uvicorn +python-multipart==0.0.22 \ + --hash=sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155 \ + --hash=sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58 + # via -r requirements.in +pyyaml==6.0.3 \ + --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ + --hash=sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a \ + --hash=sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3 \ + --hash=sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956 \ + --hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6 \ + --hash=sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c \ + --hash=sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65 \ + --hash=sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a \ + --hash=sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0 \ + --hash=sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b \ + --hash=sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1 \ + --hash=sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6 \ + --hash=sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7 \ + --hash=sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e \ + --hash=sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007 \ + --hash=sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310 \ + --hash=sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4 \ + --hash=sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9 \ + --hash=sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295 \ + --hash=sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea \ + --hash=sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0 \ + --hash=sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e \ + --hash=sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac \ + --hash=sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9 \ + --hash=sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7 \ + --hash=sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35 \ + --hash=sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb \ + --hash=sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b \ + --hash=sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69 \ + --hash=sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5 \ + --hash=sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b \ + --hash=sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c \ + --hash=sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369 \ + --hash=sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd \ + --hash=sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824 \ + --hash=sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198 \ + --hash=sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065 \ + --hash=sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c \ + --hash=sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c \ + --hash=sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764 \ + --hash=sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196 \ + --hash=sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b \ + --hash=sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00 \ + --hash=sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac \ + --hash=sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8 \ + --hash=sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e \ + --hash=sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28 \ + --hash=sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3 \ + --hash=sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5 \ + --hash=sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4 \ + --hash=sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b \ + --hash=sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf \ + --hash=sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5 \ + --hash=sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702 \ + --hash=sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8 \ + --hash=sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788 \ + --hash=sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da \ + --hash=sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d \ + --hash=sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc \ + --hash=sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c \ + --hash=sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba \ + --hash=sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f \ + --hash=sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917 \ + --hash=sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 \ + --hash=sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26 \ + --hash=sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f \ + --hash=sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b \ + --hash=sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be \ + --hash=sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c \ + --hash=sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3 \ + --hash=sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6 \ + --hash=sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926 \ + --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0 + # via uvicorn +ruff==0.15.6 \ + --hash=sha256:13f4594b04e42cd24a41da653886b04d2ff87adbf57497ed4f728b0e8a4866f8 \ + --hash=sha256:1c22e6f02c16cfac3888aa636e9eba857254d15bbacc9906c9689fdecb1953ab \ + --hash=sha256:3bd9967851a25f038fc8b9ae88a7fbd1b609f30349231dffaa37b6804923c4bb \ + --hash=sha256:542aaf1de3154cea088ced5a819ce872611256ffe2498e750bbae5247a8114e9 \ + --hash=sha256:55a1ad63c5a6e54b1f21b7514dfadc0c7fb40093fa22e95143cf3f64ebdcd512 \ + --hash=sha256:70789d3e7830b848b548aae96766431c0dc01a6c78c13381f423bf7076c66d15 \ + --hash=sha256:70d263770d234912374493e8cc1e7385c5d49376e41dfa51c5c3453169dc581c \ + --hash=sha256:7c98c3b16407b2cf3d0f2b80c80187384bc92c6774d85fefa913ecd941256fff \ + --hash=sha256:8394c7bb153a4e3811a4ecdacd4a8e6a4fa8097028119160dffecdcdf9b56ae4 \ + --hash=sha256:85b042377c2a5561131767974617006f99f7e13c63c111b998f29fc1e58a4cfb \ + --hash=sha256:8dc473ba093c5ec238bb1e7429ee676dca24643c471e11fbaa8a857925b061c0 \ + --hash=sha256:98893c4c0aadc8e448cfa315bd0cc343a5323d740fe5f28ef8a3f9e21b381f7e \ + --hash=sha256:aee25bc84c2f1007ecb5037dff75cef00414fdf17c23f07dc13e577883dca406 \ + --hash=sha256:bbf67d39832404812a2d23020dda68fee7f18ce15654e96fb1d3ad21a5fe436c \ + --hash=sha256:c34de3dd0b0ba203be50ae70f5910b17188556630e2178fd7d79fc030eb0d837 \ + --hash=sha256:cef49e30bc5a86a6a92098a7fbf6e467a234d90b63305d6f3ec01225a9d092e0 \ + --hash=sha256:e2ed8aea2f3fe57886d3f00ea5b8aae5bf68d5e195f487f037a955ff9fbaac9e \ + --hash=sha256:ee7dcfaad8b282a284df4aa6ddc2741b3f4a18b0555d626805555a820ea181c3 + # via -r requirements-dev.in +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 + # via python-dateutil +sqlalchemy==2.0.48 \ + --hash=sha256:01f6bbd4308b23240cf7d3ef117557c8fd097ec9549d5d8a52977544e35b40ad \ + --hash=sha256:07edba08061bc277bfdc772dd2a1a43978f5a45994dd3ede26391b405c15221e \ + --hash=sha256:10853a53a4a00417a00913d270dddda75815fcb80675874285f41051c094d7dd \ + --hash=sha256:1182437cb2d97988cfea04cf6cdc0b0bb9c74f4d56ec3d08b81e23d621a28cc6 \ + --hash=sha256:144921da96c08feb9e2b052c5c5c1d0d151a292c6135623c6b2c041f2a45f9e0 \ + --hash=sha256:1a89ce07ad2d4b8cfc30bd5889ec40613e028ed80ef47da7d9dd2ce969ad30e0 \ + --hash=sha256:1b4c575df7368b3b13e0cebf01d4679f9a28ed2ae6c1cd0b1d5beffb6b2007dc \ + --hash=sha256:1ccd42229aaac2df431562117ac7e667d702e8e44afdb6cf0e50fa3f18160f0b \ + --hash=sha256:2645b7d8a738763b664a12a1542c89c940daa55196e8d73e55b169cc5c99f65f \ + --hash=sha256:288937433bd44e3990e7da2402fabc44a3c6c25d3704da066b85b89a85474ae0 \ + --hash=sha256:34634e196f620c7a61d18d5cf7dc841ca6daa7961aed75d532b7e58b309ac894 \ + --hash=sha256:348174f228b99f33ca1f773e85510e08927620caa59ffe7803b37170df30332b \ + --hash=sha256:36ac4ddc3d33e852da9cb00ffb08cea62ca05c39711dc67062ca2bb1fae35fd8 \ + --hash=sha256:3713e21ea67bca727eecd4a24bf68bcd414c403faae4989442be60994301ded0 \ + --hash=sha256:389b984139278f97757ea9b08993e7b9d1142912e046ab7d82b3fbaeb0209131 \ + --hash=sha256:426c5ca86415d9b8945c7073597e10de9644802e2ff502b8e1f11a7a2642856b \ + --hash=sha256:4599a95f9430ae0de82b52ff0d27304fe898c17cb5f4099f7438a51b9998ac77 \ + --hash=sha256:49b7bddc1eebf011ea5ab722fdbe67a401caa34a350d278cc7733c0e88fecb1f \ + --hash=sha256:53667b5f668991e279d21f94ccfa6e45b4e3f4500e7591ae59a8012d0f010dcb \ + --hash=sha256:546572a1793cc35857a2ffa1fe0e58571af1779bcc1ffa7c9fb0839885ed69a9 \ + --hash=sha256:583849c743e0e3c9bb7446f5b5addeacedc168d657a69b418063dfdb2d90081c \ + --hash=sha256:5aee45fd2c6c0f2b9cdddf48c48535e7471e42d6fb81adfde801da0bd5b93241 \ + --hash=sha256:5b193a7e29fd9fa56e502920dca47dffe60f97c863494946bd698c6058a55658 \ + --hash=sha256:5ca74f37f3369b45e1f6b7b06afb182af1fd5dde009e4ffd831830d98cbe5fe7 \ + --hash=sha256:68549c403f79a8e25984376480959975212a670405e3913830614432b5daa07a \ + --hash=sha256:69f5bc24904d3bc3640961cddd2523e361257ef68585d6e364166dfbe8c78fae \ + --hash=sha256:6bb85c546591569558571aa1b06aba711b26ae62f111e15e56136d69920e1616 \ + --hash=sha256:6f7b7243850edd0b8b97043f04748f31de50cf426e939def5c16bedb540698f7 \ + --hash=sha256:7001dc9d5f6bb4deb756d5928eaefe1930f6f4179da3924cbd95ee0e9f4dce89 \ + --hash=sha256:7a936f1bb23d370b7c8cc079d5fce4c7d18da87a33c6744e51a93b0f9e97e9b3 \ + --hash=sha256:7c998f2ace8bf76b453b75dbcca500d4f4b9dd3908c13e89b86289b37784848b \ + --hash=sha256:7cddca31edf8b0653090cbb54562ca027c421c58ddde2c0685f49ff56a1690e0 \ + --hash=sha256:8183dc57ae7d9edc1346e007e840a9f3d6aa7b7f165203a99e16f447150140d2 \ + --hash=sha256:82745b03b4043e04600a6b665cb98697c4339b24e34d74b0a2ac0a2488b6f94d \ + --hash=sha256:841a94c66577661c1f088ac958cd767d7c9bf507698f45afffe7a4017049de76 \ + --hash=sha256:858e433f12b0e5b3ed2f8da917433b634f4937d0e8793e5cb33c54a1a01df565 \ + --hash=sha256:908a3fa6908716f803b86896a09a2c4dde5f5ce2bb07aacc71ffebb57986ce99 \ + --hash=sha256:9764014ef5e58aab76220c5664abb5d47d5bc858d9debf821e55cfdd0f128485 \ + --hash=sha256:9c7d0a77e36b5f4b01ca398482230ab792061d243d715299b44a0b55c89fe617 \ + --hash=sha256:a5b429eb84339f9f05e06083f119ad814e6d85e27ecbdf9c551dfdbb128eaf8a \ + --hash=sha256:a66fe406437dd65cacd96a72689a3aaaecaebbcd62d81c5ac1c0fdbeac835096 \ + --hash=sha256:a6b764fb312bd35e47797ad2e63f0d323792837a6ac785a4ca967019357d2bc7 \ + --hash=sha256:b19151e76620a412c2ac1c6f977ab1b9fa7ad43140178345136456d5265b32ed \ + --hash=sha256:b8438ec5594980d405251451c5b7ea9aa58dda38eb7ac35fb7e4c696712ee24f \ + --hash=sha256:b8fc3454b4f3bd0a368001d0e968852dad45a873f8b4babd41bc302ec851a099 \ + --hash=sha256:bcb8ebbf2e2c36cfe01a94f2438012c6a9d494cf80f129d9753bcdf33bfc35a6 \ + --hash=sha256:d404dc897ce10e565d647795861762aa2d06ca3f4a728c5e9a835096c7059018 \ + --hash=sha256:d612c976cbc2d17edfcc4c006874b764e85e990c29ce9bd411f926bbfb02b9a2 \ + --hash=sha256:d64177f443594c8697369c10e4bbcac70ef558e0f7921a1de7e4a3d1734bcf67 \ + --hash=sha256:d854b3970067297f3a7fbd7a4683587134aa9b3877ee15aa29eea478dc68f933 \ + --hash=sha256:d8fcccbbc0c13c13702c471da398b8cd72ba740dca5859f148ae8e0e8e0d3e7e \ + --hash=sha256:e004aa9248e8cb0a5f9b96d003ca7c1c0a5da8decd1066e7b53f59eb8ce7c62b \ + --hash=sha256:e214d546c8ecb5fc22d6e6011746082abf13a9cf46eefb45769c7b31407c97b5 \ + --hash=sha256:e2d0d88686e3d35a76f3e15a34e8c12d73fc94c1dea1cd55782e695cc14086dd \ + --hash=sha256:e2f35b4cccd9ed286ad62e0a3c3ac21e06c02abc60e20aa51a3e305a30f5fa79 \ + --hash=sha256:e3070c03701037aa418b55d36532ecb8f8446ed0135acb71c678dbdf12f5b6e4 \ + --hash=sha256:e5e088bf43f6ee6fec7dbf1ef7ff7774a616c236b5c0cb3e00662dd71a56b571 \ + --hash=sha256:e83e3f959aaa1c9df95c22c528096d94848a1bc819f5d0ebf7ee3df0ca63db6c \ + --hash=sha256:f0dcbc588cd5b725162c076eb9119342f6579c7f7f55057bb7e3c6ff27e13121 \ + --hash=sha256:f27f9da0a7d22b9f981108fd4b62f8b5743423388915a563e651c20d06c1f457 \ + --hash=sha256:f8649a14caa5f8a243628b1d61cf530ad9ae4578814ba726816adb1121fc493e \ + --hash=sha256:fac0fa4e4f55f118fd87177dacb1c6522fe39c28d498d259014020fec9164c29 \ + --hash=sha256:fd08b90d211c086181caed76931ecfa2bdfc83eea3cfccdb0f82abc6c4b876cb + # via -r requirements.in +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e + # via -r requirements.in +starlette==0.52.1 \ + --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ + --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 + # via fastapi +typing-extensions==4.15.0 \ + --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 + # via + # fastapi + # pydantic + # pydantic-core + # sqlalchemy + # typing-inspection +typing-inspection==0.4.2 \ + --hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \ + --hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464 + # via + # fastapi + # pydantic + # pydantic-settings +uvicorn==0.42.0 \ + --hash=sha256:96c30f5c7abe6f74ae8900a70e92b85ad6613b745d4879eb9b16ccad15645359 \ + --hash=sha256:9b1f190ce15a2dd22e7758651d9b6d12df09a13d51ba5bf4fc33c383a48e1775 + # via -r requirements.in +uvloop==0.22.1 \ + --hash=sha256:017bd46f9e7b78e81606329d07141d3da446f8798c6baeec124260e22c262772 \ + --hash=sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e \ + --hash=sha256:05e4b5f86e621cf3927631789999e697e58f0d2d32675b67d9ca9eb0bca55743 \ + --hash=sha256:0ae676de143db2b2f60a9696d7eca5bb9d0dd6cc3ac3dad59a8ae7e95f9e1b54 \ + --hash=sha256:1489cf791aa7b6e8c8be1c5a080bae3a672791fcb4e9e12249b05862a2ca9cec \ + --hash=sha256:17d4e97258b0172dfa107b89aa1eeba3016f4b1974ce85ca3ef6a66b35cbf659 \ + --hash=sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8 \ + --hash=sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad \ + --hash=sha256:286322a90bea1f9422a470d5d2ad82d38080be0a29c4dd9b3e6384320a4d11e7 \ + --hash=sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35 \ + --hash=sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289 \ + --hash=sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142 \ + --hash=sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77 \ + --hash=sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733 \ + --hash=sha256:481c990a7abe2c6f4fc3d98781cc9426ebd7f03a9aaa7eb03d3bfc68ac2a46bd \ + --hash=sha256:4a968a72422a097b09042d5fa2c5c590251ad484acf910a651b4b620acd7f193 \ + --hash=sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74 \ + --hash=sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0 \ + --hash=sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6 \ + --hash=sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473 \ + --hash=sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21 \ + --hash=sha256:55502bc2c653ed2e9692e8c55cb95b397d33f9f2911e929dc97c4d6b26d04242 \ + --hash=sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705 \ + --hash=sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702 \ + --hash=sha256:57df59d8b48feb0e613d9b1f5e57b7532e97cbaf0d61f7aa9aa32221e84bc4b6 \ + --hash=sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f \ + --hash=sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e \ + --hash=sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d \ + --hash=sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370 \ + --hash=sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4 \ + --hash=sha256:7cd375a12b71d33d46af85a3343b35d98e8116134ba404bd657b3b1d15988792 \ + --hash=sha256:80eee091fe128e425177fbd82f8635769e2f32ec9daf6468286ec57ec0313efa \ + --hash=sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079 \ + --hash=sha256:a592b043a47ad17911add5fbd087c76716d7c9ccc1d64ec9249ceafd735f03c2 \ + --hash=sha256:ac33ed96229b7790eb729702751c0e93ac5bc3bcf52ae9eccbff30da09194b86 \ + --hash=sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6 \ + --hash=sha256:b45649628d816c030dba3c80f8e2689bab1c89518ed10d426036cdc47874dfc4 \ + --hash=sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3 \ + --hash=sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21 \ + --hash=sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c \ + --hash=sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e \ + --hash=sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25 \ + --hash=sha256:c3e5c6727a57cb6558592a95019e504f605d1c54eb86463ee9f7a2dbd411c820 \ + --hash=sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9 \ + --hash=sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88 \ + --hash=sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2 \ + --hash=sha256:ea721dd3203b809039fcc2983f14608dae82b212288b346e0bfe46ec2fab0b7c \ + --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ + --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 + # via uvicorn +watchfiles==1.1.1 \ + --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ + --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ + --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ + --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ + --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ + --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ + --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ + --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ + --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ + --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ + --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ + --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ + --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ + --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ + --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ + --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ + --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ + --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ + --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ + --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ + --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ + --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ + --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ + --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ + --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ + --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ + --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ + --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ + --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ + --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ + --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ + --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ + --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ + --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ + --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ + --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ + --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ + --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ + --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ + --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ + --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ + --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ + --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ + --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ + --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ + --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ + --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ + --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ + --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ + --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ + --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ + --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ + --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ + --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ + --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ + --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ + --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ + --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ + --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ + --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ + --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ + --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ + --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ + --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ + --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ + --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ + --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ + --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ + --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ + --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ + --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ + --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ + --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ + --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ + --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ + --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ + --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ + --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ + --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ + --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ + --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ + --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ + --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ + --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ + --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ + --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ + --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ + --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ + --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ + --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ + --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ + --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ + --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ + --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ + --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ + --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ + --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ + --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ + --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ + --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ + --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ + --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ + --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ + --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ + --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ + --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ + --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ + --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ + --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf + # via uvicorn +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 + # via uvicorn diff --git a/backend/requirements.in b/backend/requirements.in new file mode 100644 index 0000000..028c512 --- /dev/null +++ b/backend/requirements.in @@ -0,0 +1,13 @@ +fastapi>=0.115.0 +uvicorn[standard]>=0.30.0 +pydantic +pydantic-settings +sqlalchemy +aiosqlite +asyncpg +psycopg2-binary +python-multipart +python-dateutil +httpx +authlib>=1.2.0 +sqlparse diff --git a/backend/requirements.txt b/backend/requirements.txt index 917d20f..dcab722 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,13 +1,977 @@ -fastapi==0.104.1 -uvicorn[standard]==0.24.0 -pydantic -pydantic-settings -sqlalchemy -aiosqlite -asyncpg -python-multipart -python-dateutil -pytest -pytest-asyncio -httpx -authlib>=1.2.0 +# +# This file is autogenerated by pip-compile with Python 3.13 +# by the following command: +# +# pip-compile --generate-hashes --output-file=requirements.txt --strip-extras requirements.in +# +aiosqlite==0.22.1 \ + --hash=sha256:043e0bd78d32888c0a9ca90fc788b38796843360c855a7262a532813133a0650 \ + --hash=sha256:21c002eb13823fad740196c5a2e9d8e62f6243bd9e7e4a1f87fb5e44ecb4fceb + # via -r requirements.in +annotated-doc==0.0.4 \ + --hash=sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320 \ + --hash=sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4 + # via fastapi +annotated-types==0.7.0 \ + --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ + --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 + # via pydantic +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c + # via + # httpx + # starlette + # watchfiles +asyncpg==0.31.0 \ + --hash=sha256:027eaa61361ec735926566f995d959ade4796f6a49d3bde17e5134b9964f9ba8 \ + --hash=sha256:04d19392716af6b029411a0264d92093b6e5e8285ae97a39957b9a9c14ea72be \ + --hash=sha256:0b17c89312c2f4ccea222a3a6571f7df65d4ba2c0e803339bfc7bed46a96d3be \ + --hash=sha256:0bfbcc5b7ffcd9b75ab1558f00db2ae07db9c80637ad1b2469c43df79d7a5ae2 \ + --hash=sha256:0c89ccf741c067614c9b5fc7f1fc6f3b61ab05ae4aaa966e6fd6b93097c7d20d \ + --hash=sha256:12b3b2e39dc5470abd5e98c8d3373e4b1d1234d9fbdedf538798b2c13c64460a \ + --hash=sha256:18c83b03bc0d1b23e6230f5bf8d4f217dc9bc08644ce0502a9d91dc9e634a9c7 \ + --hash=sha256:19857a358fc811d82227449b7ca40afb46e75b33eb8897240c3839dd8b744218 \ + --hash=sha256:1b41f1afb1033f2b44f3234993b15096ddc9cd71b21a42dbd87fc6a57b43d65d \ + --hash=sha256:22bc525ebbdc24d1261ecbf6f504998244d4e3be1721784b5f64664d61fbe602 \ + --hash=sha256:22be6e02381bab3101cd502d9297ac71e2f966c86e20e78caead9934c98a8af6 \ + --hash=sha256:2657204552b75f8288de08ca60faf4a99a65deef3a71d1467454123205a88fab \ + --hash=sha256:2d076d42eb583601179efa246c5d7ae44614b4144bc1c7a683ad1222814ed095 \ + --hash=sha256:334dec28cf20d7f5bb9e45b39546ddf247f8042a690bff9b9573d00086e69cb5 \ + --hash=sha256:37a58919cfef2448a920df00d1b2f821762d17194d0dbf355d6dde8d952c04f9 \ + --hash=sha256:37fc6c00a814e18eef51833545d1891cac9aa69140598bb076b4cd29b3e010b9 \ + --hash=sha256:3b1fbcb0e396a5ca435a8826a87e5c2c2cc0c8c68eb6fadf82168056b0e53a8c \ + --hash=sha256:3df118d94f46d85b2e434fd62c84cb66d5834d5a890725fe625f498e72e4d5ec \ + --hash=sha256:3faa62f997db0c9add34504a68ac2c342cfee4d57a0c3062fcf0d86c7f9cb1e8 \ + --hash=sha256:480c4befbdf079c14c9ca43c8c5e1fe8b6296c96f1f927158d4f1e750aacc047 \ + --hash=sha256:54a64f91839ba59008eccf7aad2e93d6e3de688d796f35803235ea1c4898ae1e \ + --hash=sha256:5a4af56edf82a701aece93190cc4e094d2df7d33f6e915c222fb09efbb5afc24 \ + --hash=sha256:6d11b198111a72f47154fa03b85799f9be63701e068b43f84ac25da0bda9cb31 \ + --hash=sha256:72d6bdcbc93d608a1158f17932de2321f68b1a967a13e014998db87a72ed3186 \ + --hash=sha256:795416369c3d284e1837461909f58418ad22b305f955e625a4b3a2521d80a5f3 \ + --hash=sha256:831712dd3cf117eec68575a9b50da711893fd63ebe277fc155ecae1c6c9f0f61 \ + --hash=sha256:8df714dba348efcc162d2adf02d213e5fab1bd9f557e1305633e851a61814a7a \ + --hash=sha256:8ea599d45c361dfbf398cb67da7fd052affa556a401482d3ff1ee99bd68808a1 \ + --hash=sha256:9322b563e2661a52e3cdbc93eed3be7748b289f792e0011cb2720d278b366ce2 \ + --hash=sha256:98cc158c53f46de7bb677fd20c417e264fc02b36d901cc2a43bd6cb0dc6dbfd2 \ + --hash=sha256:9ea33213ac044171f4cac23740bed9a3805abae10e7025314cfbd725ec670540 \ + --hash=sha256:a429e842a3a4b4ea240ea52d7fe3f82d5149853249306f7ff166cb9948faa46c \ + --hash=sha256:a8d758dac9d2e723e173d286ef5e574f0b350ec00e9186fce84d0fc5f6a8e6b8 \ + --hash=sha256:aad7a33913fb8bcb5454313377cc330fbb19a0cd5faa7272407d8a0c4257b671 \ + --hash=sha256:b44c31e1efc1c15188ef183f287c728e2046abb1d26af4d20858215d50d91fad \ + --hash=sha256:ba5f8886e850882ff2c2ace5732300e99193823e8107e2c53ef01c1ebfa1e85d \ + --hash=sha256:bb223567dea5f47c45d347f2bde5486be8d9f40339f27217adb3fb1c3be51298 \ + --hash=sha256:bc2b685f400ceae428f79f78b58110470d7b4466929a7f78d455964b17ad1008 \ + --hash=sha256:bd4107bb7cdd0e9e65fae66a62afd3a249663b844fa34d479f6d5b3bef9c04c3 \ + --hash=sha256:bd5b6efff3c17c3202d4b37189969acf8927438a238c6257f66be3c426beba20 \ + --hash=sha256:bdb957706da132e982cc6856bb2f7b740603472b54c3ebc77fe60ea3e57e1bd2 \ + --hash=sha256:bef056aa502ee34204c161c72ca1f3c274917596877f825968368b2c33f585f4 \ + --hash=sha256:c0807be46c32c963ae40d329b3a686356e417f674c976c07fa49f1b30303f109 \ + --hash=sha256:c0e0822b1038dc7253b337b0f3f676cadc4ac31b126c5d42691c39691962e403 \ + --hash=sha256:c1a9c5b71d2371a2290bc93336cd05ba4ec781683cab292adbddc084f89443c6 \ + --hash=sha256:c1e1ab5bc65373d92dd749d7308c5b26fb2dc0fbe5d3bf68a32b676aa3bcd24a \ + --hash=sha256:c204fab1b91e08b0f47e90a75d1b3c62174dab21f670ad6c5d0f243a228f015b \ + --hash=sha256:c989386c83940bfbd787180f2b1519415e2d3d6277a70d9d0f0145ac73500735 \ + --hash=sha256:cea3a0b2a14f95834cee29432e4ddc399b95700eb1d51bbc5bfee8f31fa07b2b \ + --hash=sha256:dc5f2fa9916f292e5c5c8b2ac2813763bcd7f58e130055b4ad8a0531314201ab \ + --hash=sha256:e009abc333464ff18b8f6fd146addffd9aaf63e79aa3bb40ab7a4c332d0c5e9e \ + --hash=sha256:e5d5098f63beeae93512ee513d4c0c53dc12e9aa2b7a1af5a81cddf93fe4e4da \ + --hash=sha256:e6974f36eb9a224d8fb428bcf66bd411aa12cf57c2967463178149e73d4de366 \ + --hash=sha256:ebb3cde58321a1f89ce41812be3f2a98dddedc1e76d0838aba1d724f1e4e1a95 \ + --hash=sha256:eee690960e8ab85063ba93af2ce128c0f52fd655fdff9fdb1a28df01329f031d \ + --hash=sha256:f6b56b91bb0ffc328c4e3ed113136cddd9deefdf5f79ab448598b9772831df44 \ + --hash=sha256:f890de5e1e4f7e14023619399a471ce4b71f5418cd67a51853b9910fdfa73696 + # via -r requirements.in +authlib==1.6.9 \ + --hash=sha256:d8f2421e7e5980cc1ddb4e32d3f5fa659cfaf60d8eaf3281ebed192e4ab74f04 \ + --hash=sha256:f08b4c14e08f0861dc18a32357b33fbcfd2ea86cfe3fe149484b4d764c4a0ac3 + # via -r requirements.in +certifi==2026.2.25 \ + --hash=sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa \ + --hash=sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7 + # via + # httpcore + # httpx +cffi==2.0.0 \ + --hash=sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb \ + --hash=sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b \ + --hash=sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f \ + --hash=sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9 \ + --hash=sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44 \ + --hash=sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2 \ + --hash=sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c \ + --hash=sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75 \ + --hash=sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65 \ + --hash=sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e \ + --hash=sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a \ + --hash=sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e \ + --hash=sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25 \ + --hash=sha256:2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a \ + --hash=sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe \ + --hash=sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b \ + --hash=sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91 \ + --hash=sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592 \ + --hash=sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187 \ + --hash=sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c \ + --hash=sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1 \ + --hash=sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94 \ + --hash=sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba \ + --hash=sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb \ + --hash=sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165 \ + --hash=sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529 \ + --hash=sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca \ + --hash=sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c \ + --hash=sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6 \ + --hash=sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c \ + --hash=sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0 \ + --hash=sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743 \ + --hash=sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63 \ + --hash=sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5 \ + --hash=sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5 \ + --hash=sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4 \ + --hash=sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d \ + --hash=sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b \ + --hash=sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93 \ + --hash=sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205 \ + --hash=sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27 \ + --hash=sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512 \ + --hash=sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d \ + --hash=sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c \ + --hash=sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037 \ + --hash=sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26 \ + --hash=sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322 \ + --hash=sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb \ + --hash=sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c \ + --hash=sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8 \ + --hash=sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4 \ + --hash=sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414 \ + --hash=sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9 \ + --hash=sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664 \ + --hash=sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9 \ + --hash=sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775 \ + --hash=sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739 \ + --hash=sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc \ + --hash=sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062 \ + --hash=sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe \ + --hash=sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9 \ + --hash=sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92 \ + --hash=sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5 \ + --hash=sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13 \ + --hash=sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d \ + --hash=sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26 \ + --hash=sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f \ + --hash=sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495 \ + --hash=sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b \ + --hash=sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6 \ + --hash=sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c \ + --hash=sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef \ + --hash=sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5 \ + --hash=sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18 \ + --hash=sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad \ + --hash=sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3 \ + --hash=sha256:de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7 \ + --hash=sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5 \ + --hash=sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534 \ + --hash=sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49 \ + --hash=sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2 \ + --hash=sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5 \ + --hash=sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453 \ + --hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf + # via cryptography +click==8.3.1 \ + --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \ + --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6 + # via uvicorn +cryptography==46.0.5 \ + --hash=sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72 \ + --hash=sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235 \ + --hash=sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9 \ + --hash=sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356 \ + --hash=sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257 \ + --hash=sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad \ + --hash=sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4 \ + --hash=sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c \ + --hash=sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614 \ + --hash=sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed \ + --hash=sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31 \ + --hash=sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229 \ + --hash=sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0 \ + --hash=sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731 \ + --hash=sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b \ + --hash=sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4 \ + --hash=sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4 \ + --hash=sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263 \ + --hash=sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595 \ + --hash=sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1 \ + --hash=sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678 \ + --hash=sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48 \ + --hash=sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76 \ + --hash=sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0 \ + --hash=sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18 \ + --hash=sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d \ + --hash=sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d \ + --hash=sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1 \ + --hash=sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981 \ + --hash=sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7 \ + --hash=sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82 \ + --hash=sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2 \ + --hash=sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4 \ + --hash=sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663 \ + --hash=sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c \ + --hash=sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d \ + --hash=sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a \ + --hash=sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a \ + --hash=sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d \ + --hash=sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b \ + --hash=sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a \ + --hash=sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826 \ + --hash=sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee \ + --hash=sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9 \ + --hash=sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648 \ + --hash=sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da \ + --hash=sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2 \ + --hash=sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2 \ + --hash=sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87 + # via authlib +fastapi==0.135.1 \ + --hash=sha256:46e2fc5745924b7c840f71ddd277382af29ce1cdb7d5eab5bf697e3fb9999c9e \ + --hash=sha256:d04115b508d936d254cea545b7312ecaa58a7b3a0f84952535b4c9afae7668cd + # via -r requirements.in +greenlet==3.3.2 \ + --hash=sha256:02b0a8682aecd4d3c6c18edf52bc8e51eacdd75c8eac52a790a210b06aa295fd \ + --hash=sha256:18cb1b7337bca281915b3c5d5ae19f4e76d35e1df80f4ad3c1a7be91fadf1082 \ + --hash=sha256:1a9172f5bf6bd88e6ba5a84e0a68afeac9dc7b6b412b245dd64f52d83c81e55b \ + --hash=sha256:1e692b2dae4cc7077cbb11b47d258533b48c8fde69a33d0d8a82e2fe8d8531d5 \ + --hash=sha256:1ebd458fa8285960f382841da585e02201b53a5ec2bac6b156fc623b5ce4499f \ + --hash=sha256:1fb39a11ee2e4d94be9a76671482be9398560955c9e568550de0224e41104727 \ + --hash=sha256:20154044d9085151bc309e7689d6f7ba10027f8f5a8c0676ad398b951913d89e \ + --hash=sha256:2eaf067fc6d886931c7962e8c6bede15d2f01965560f3359b27c80bde2d151f2 \ + --hash=sha256:34308836d8370bddadb41f5a7ce96879b72e2fdfb4e87729330c6ab52376409f \ + --hash=sha256:394ead29063ee3515b4e775216cb756b2e3b4a7e55ae8fd884f17fa579e6b327 \ + --hash=sha256:3ceec72030dae6ac0c8ed7591b96b70410a8be370b6a477b1dbc072856ad02bd \ + --hash=sha256:4375a58e49522698d3e70cc0b801c19433021b5c37686f7ce9c65b0d5c8677d2 \ + --hash=sha256:43e99d1749147ac21dde49b99c9abffcbc1e2d55c67501465ef0930d6e78e070 \ + --hash=sha256:442b6057453c8cb29b4fb36a2ac689382fc71112273726e2423f7f17dc73bf99 \ + --hash=sha256:45abe8eb6339518180d5a7fa47fa01945414d7cca5ecb745346fc6a87d2750be \ + --hash=sha256:4c956a19350e2c37f2c48b336a3afb4bff120b36076d9d7fb68cb44e05d95b79 \ + --hash=sha256:508c7f01f1791fbc8e011bd508f6794cb95397fdb198a46cb6635eb5b78d85a7 \ + --hash=sha256:527fec58dc9f90efd594b9b700662ed3fb2493c2122067ac9c740d98080a620e \ + --hash=sha256:59b3e2c40f6706b05a9cd299c836c6aa2378cabe25d021acd80f13abf81181cf \ + --hash=sha256:5d0e35379f93a6d0222de929a25ab47b5eb35b5ef4721c2b9cbcc4036129ff1f \ + --hash=sha256:63d10328839d1973e5ba35e98cccbca71b232b14051fd957b6f8b6e8e80d0506 \ + --hash=sha256:64970c33a50551c7c50491671265d8954046cb6e8e2999aacdd60e439b70418a \ + --hash=sha256:6c6f8ba97d17a1e7d664151284cb3315fc5f8353e75221ed4324f84eb162b395 \ + --hash=sha256:8b466dff7a4ffda6ca975979bab80bdadde979e29fc947ac3be4451428d8b0e4 \ + --hash=sha256:8c1fdd7d1b309ff0da81d60a9688a8bd044ac4e18b250320a96fc68d31c209ca \ + --hash=sha256:8c4dd0f3997cf2512f7601563cc90dfb8957c0cff1e3a1b23991d4ea1776c492 \ + --hash=sha256:8d1658d7291f9859beed69a776c10822a0a799bc4bfe1bd4272bb60e62507dab \ + --hash=sha256:8e2cd90d413acbf5e77ae41e5d3c9b3ac1d011a756d7284d7f3f2b806bbd6358 \ + --hash=sha256:8e4ab3cfb02993c8cc248ea73d7dae6cec0253e9afa311c9b37e603ca9fad2ce \ + --hash=sha256:94ad81f0fd3c0c0681a018a976e5c2bd2ca2d9d94895f23e7bb1af4e8af4e2d5 \ + --hash=sha256:97245cc10e5515dbc8c3104b2928f7f02b6813002770cfaffaf9a6e0fc2b94ef \ + --hash=sha256:9bc885b89709d901859cf95179ec9f6bb67a3d2bb1f0e88456461bd4b7f8fd0d \ + --hash=sha256:a2a5be83a45ce6188c045bcc44b0ee037d6a518978de9a5d97438548b953a1ac \ + --hash=sha256:a443358b33c4ec7b05b79a7c8b466f5d275025e750298be7340f8fc63dff2a55 \ + --hash=sha256:a7945dd0eab63ded0a48e4dcade82939783c172290a7903ebde9e184333ca124 \ + --hash=sha256:aa6ac98bdfd716a749b84d4034486863fd81c3abde9aa3cf8eff9127981a4ae4 \ + --hash=sha256:ab0c7e7901a00bc0a7284907273dc165b32e0d109a6713babd04471327ff7986 \ + --hash=sha256:ac8d61d4343b799d1e526db579833d72f23759c71e07181c2d2944e429eb09cd \ + --hash=sha256:ad0c8917dd42a819fe77e6bdfcb84e3379c0de956469301d9fd36427a1ca501f \ + --hash=sha256:ae9e21c84035c490506c17002f5c8ab25f980205c3e61ddb3a2a2a2e6c411fcb \ + --hash=sha256:b26b0f4428b871a751968285a1ac9648944cea09807177ac639b030bddebcea4 \ + --hash=sha256:b568183cf65b94919be4438dc28416b234b678c608cafac8874dfeeb2a9bbe13 \ + --hash=sha256:b6997d360a4e6a4e936c0f9625b1c20416b8a0ea18a8e19cabbefc712e7397ab \ + --hash=sha256:b8bddc5b73c9720bea487b3bffdb1840fe4e3656fba3bd40aa1489e9f37877ff \ + --hash=sha256:c04c5e06ec3e022cbfe2cd4a846e1d4e50087444f875ff6d2c2ad8445495cf1a \ + --hash=sha256:c2e47408e8ce1c6f1ceea0dffcdf6ebb85cc09e55c7af407c99f1112016e45e9 \ + --hash=sha256:c56692189a7d1c7606cb794be0a8381470d95c57ce5be03fb3d0ef57c7853b86 \ + --hash=sha256:ccd21bb86944ca9be6d967cf7691e658e43417782bce90b5d2faeda0ff78a7dd \ + --hash=sha256:cd6f9e2bbd46321ba3bbb4c8a15794d32960e3b0ae2cc4d49a1a53d314805d71 \ + --hash=sha256:d248d8c23c67d2291ffd47af766e2a3aa9fa1c6703155c099feb11f526c63a92 \ + --hash=sha256:d3a62fa76a32b462a97198e4c9e99afb9ab375115e74e9a83ce180e7a496f643 \ + --hash=sha256:e26e72bec7ab387ac80caa7496e0f908ff954f31065b0ffc1f8ecb1338b11b54 \ + --hash=sha256:e3cb43ce200f59483eb82949bf1835a99cf43d7571e900d7c8d5c62cdf25d2f9 + # via sqlalchemy +h11==0.16.0 \ + --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ + --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 + # via + # httpcore + # uvicorn +httpcore==1.0.9 \ + --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ + --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 + # via httpx +httptools==0.7.1 \ + --hash=sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c \ + --hash=sha256:0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad \ + --hash=sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1 \ + --hash=sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78 \ + --hash=sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb \ + --hash=sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03 \ + --hash=sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6 \ + --hash=sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df \ + --hash=sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5 \ + --hash=sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321 \ + --hash=sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346 \ + --hash=sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650 \ + --hash=sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657 \ + --hash=sha256:49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28 \ + --hash=sha256:5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023 \ + --hash=sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca \ + --hash=sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed \ + --hash=sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66 \ + --hash=sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3 \ + --hash=sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca \ + --hash=sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3 \ + --hash=sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2 \ + --hash=sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4 \ + --hash=sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70 \ + --hash=sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9 \ + --hash=sha256:ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4 \ + --hash=sha256:aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517 \ + --hash=sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a \ + --hash=sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270 \ + --hash=sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05 \ + --hash=sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e \ + --hash=sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568 \ + --hash=sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96 \ + --hash=sha256:d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf \ + --hash=sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b \ + --hash=sha256:de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a \ + --hash=sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b \ + --hash=sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c \ + --hash=sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274 \ + --hash=sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60 \ + --hash=sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5 \ + --hash=sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec \ + --hash=sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362 + # via uvicorn +httpx==0.28.1 \ + --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ + --hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad + # via -r requirements.in +idna==3.11 \ + --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ + --hash=sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902 + # via + # anyio + # httpx +psycopg2-binary==2.9.11 \ + --hash=sha256:00ce1830d971f43b667abe4a56e42c1e2d594b32da4802e44a73bacacb25535f \ + --hash=sha256:04195548662fa544626c8ea0f06561eb6203f1984ba5b4562764fbeb4c3d14b1 \ + --hash=sha256:0da4de5c1ac69d94ed4364b6cbe7190c1a70d325f112ba783d83f8440285f152 \ + --hash=sha256:0e8480afd62362d0a6a27dd09e4ca2def6fa50ed3a4e7c09165266106b2ffa10 \ + --hash=sha256:20e7fb94e20b03dcc783f76c0865f9da39559dcc0c28dd1a3fce0d01902a6b9c \ + --hash=sha256:2c226ef95eb2250974bf6fa7a842082b31f68385c4f3268370e3f3870e7859ee \ + --hash=sha256:2d11098a83cca92deaeaed3d58cfd150d49b3b06ee0d0852be466bf87596899e \ + --hash=sha256:2e164359396576a3cc701ba8af4751ae68a07235d7a380c631184a611220d9a4 \ + --hash=sha256:304fd7b7f97eef30e91b8f7e720b3db75fee010b520e434ea35ed1ff22501d03 \ + --hash=sha256:31b32c457a6025e74d233957cc9736742ac5a6cb196c6b68499f6bb51390bd6a \ + --hash=sha256:32770a4d666fbdafab017086655bcddab791d7cb260a16679cc5a7338b64343b \ + --hash=sha256:366df99e710a2acd90efed3764bb1e28df6c675d33a7fb40df9b7281694432ee \ + --hash=sha256:37d8412565a7267f7d79e29ab66876e55cb5e8e7b3bbf94f8206f6795f8f7e7e \ + --hash=sha256:4012c9c954dfaccd28f94e84ab9f94e12df76b4afb22331b1f0d3154893a6316 \ + --hash=sha256:41360b01c140c2a03d346cec3280cf8a71aa07d94f3b1509fa0161c366af66b4 \ + --hash=sha256:44fc5c2b8fa871ce7f0023f619f1349a0aa03a0857f2c96fbc01c657dcbbdb49 \ + --hash=sha256:47f212c1d3be608a12937cc131bd85502954398aaa1320cb4c14421a0ffccf4c \ + --hash=sha256:4bdab48575b6f870f465b397c38f1b415520e9879fdf10a53ee4f49dcbdf8a21 \ + --hash=sha256:4dca1f356a67ecb68c81a7bc7809f1569ad9e152ce7fd02c2f2036862ca9f66b \ + --hash=sha256:5c6ff3335ce08c75afaed19e08699e8aacf95d4a260b495a4a8545244fe2ceb3 \ + --hash=sha256:5f3f2732cf504a1aa9e9609d02f79bea1067d99edf844ab92c247bbca143303b \ + --hash=sha256:62b6d93d7c0b61a1dd6197d208ab613eb7dcfdcca0a49c42ceb082257991de9d \ + --hash=sha256:691c807d94aecfbc76a14e1408847d59ff5b5906a04a23e12a89007672b9e819 \ + --hash=sha256:763c93ef1df3da6d1a90f86ea7f3f806dc06b21c198fa87c3c25504abec9404a \ + --hash=sha256:84011ba3109e06ac412f95399b704d3d6950e386b7994475b231cf61eec2fc1f \ + --hash=sha256:865f9945ed1b3950d968ec4690ce68c55019d79e4497366d36e090327ce7db14 \ + --hash=sha256:875039274f8a2361e5207857899706da840768e2a775bf8c65e82f60b197df02 \ + --hash=sha256:8b81627b691f29c4c30a8f322546ad039c40c328373b11dff7490a3e1b517855 \ + --hash=sha256:8c55b385daa2f92cb64b12ec4536c66954ac53654c7f15a203578da4e78105c0 \ + --hash=sha256:91537a8df2bde69b1c1db01d6d944c831ca793952e4f57892600e96cee95f2cd \ + --hash=sha256:92e3b669236327083a2e33ccfa0d320dd01b9803b3e14dd986a4fc54aa00f4e1 \ + --hash=sha256:9b52a3f9bb540a3e4ec0f6ba6d31339727b2950c9772850d6545b7eae0b9d7c5 \ + --hash=sha256:9bd81e64e8de111237737b29d68039b9c813bdf520156af36d26819c9a979e5f \ + --hash=sha256:9c55460033867b4622cda1b6872edf445809535144152e5d14941ef591980edf \ + --hash=sha256:9d3a9edcfbe77a3ed4bc72836d466dfce4174beb79eda79ea155cc77237ed9e8 \ + --hash=sha256:a1cf393f1cdaf6a9b57c0a719a1068ba1069f022a59b8b1fe44b006745b59757 \ + --hash=sha256:a28d8c01a7b27a1e3265b11250ba7557e5f72b5ee9e5f3a2fa8d2949c29bf5d2 \ + --hash=sha256:a311f1edc9967723d3511ea7d2708e2c3592e3405677bf53d5c7246753591fbb \ + --hash=sha256:a6c0e4262e089516603a09474ee13eabf09cb65c332277e39af68f6233911087 \ + --hash=sha256:ab8905b5dcb05bf3fb22e0cf90e10f469563486ffb6a96569e51f897c750a76a \ + --hash=sha256:b31e90fdd0f968c2de3b26ab014314fe814225b6c324f770952f7d38abf17e3c \ + --hash=sha256:b33fabeb1fde21180479b2d4667e994de7bbf0eec22832ba5d9b5e4cf65b6c6d \ + --hash=sha256:b637d6d941209e8d96a072d7977238eea128046effbf37d1d8b2c0764750017d \ + --hash=sha256:b6aed9e096bf63f9e75edf2581aa9a7e7186d97ab5c177aa6c87797cd591236c \ + --hash=sha256:b8fb3db325435d34235b044b199e56cdf9ff41223a4b9752e8576465170bb38c \ + --hash=sha256:ba34475ceb08cccbdd98f6b46916917ae6eeb92b5ae111df10b544c3a4621dc4 \ + --hash=sha256:be9b840ac0525a283a96b556616f5b4820e0526addb8dcf6525a0fa162730be4 \ + --hash=sha256:bf940cd7e7fec19181fdbc29d76911741153d51cab52e5c21165f3262125685e \ + --hash=sha256:c0377174bf1dd416993d16edc15357f6eb17ac998244cca19bc67cdc0e2e5766 \ + --hash=sha256:c3cb3a676873d7506825221045bd70e0427c905b9c8ee8d6acd70cfcbd6e576d \ + --hash=sha256:c47676e5b485393f069b4d7a811267d3168ce46f988fa602658b8bb901e9e64d \ + --hash=sha256:c665f01ec8ab273a61c62beeb8cce3014c214429ced8a308ca1fc410ecac3a39 \ + --hash=sha256:cffe9d7697ae7456649617e8bb8d7a45afb71cd13f7ab22af3e5c61f04840908 \ + --hash=sha256:d526864e0f67f74937a8fce859bd56c979f5e2ec57ca7c627f5f1071ef7fee60 \ + --hash=sha256:d57c9c387660b8893093459738b6abddbb30a7eab058b77b0d0d1c7d521ddfd7 \ + --hash=sha256:d6fe6b47d0b42ce1c9f1fa3e35bb365011ca22e39db37074458f27921dca40f2 \ + --hash=sha256:db4fd476874ccfdbb630a54426964959e58da4c61c9feba73e6094d51303d7d8 \ + --hash=sha256:e0deeb03da539fa3577fcb0b3f2554a97f7e5477c246098dbb18091a4a01c16f \ + --hash=sha256:e35b7abae2b0adab776add56111df1735ccc71406e56203515e228a8dc07089f \ + --hash=sha256:ebb415404821b6d1c47353ebe9c8645967a5235e6d88f914147e7fd411419e6f \ + --hash=sha256:edcb3aeb11cb4bf13a2af3c53a15b3d612edeb6409047ea0b5d6a21a9d744b34 \ + --hash=sha256:ef7a6beb4beaa62f88592ccc65df20328029d721db309cb3250b0aae0fa146c3 \ + --hash=sha256:efff12b432179443f54e230fdf60de1f6cc726b6c832db8701227d089310e8aa \ + --hash=sha256:f07c9c4a5093258a03b28fab9b4f151aa376989e7f35f855088234e656ee6a94 \ + --hash=sha256:f090b7ddd13ca842ebfe301cd587a76a4cf0913b1e429eb92c1be5dbeb1a19bc \ + --hash=sha256:fa0f693d3c68ae925966f0b14b8edda71696608039f4ed61b1fe9ffa468d16db \ + --hash=sha256:fcf21be3ce5f5659daefd2b3b3b6e4727b028221ddc94e6c1523425579664747 + # via -r requirements.in +pycparser==3.0 \ + --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ + --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 + # via cffi +pydantic==2.12.5 \ + --hash=sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49 \ + --hash=sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d + # via + # -r requirements.in + # fastapi + # pydantic-settings +pydantic-core==2.41.5 \ + --hash=sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90 \ + --hash=sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740 \ + --hash=sha256:0384e2e1021894b1ff5a786dbf94771e2986ebe2869533874d7e43bc79c6f504 \ + --hash=sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84 \ + --hash=sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33 \ + --hash=sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c \ + --hash=sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0 \ + --hash=sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e \ + --hash=sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0 \ + --hash=sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a \ + --hash=sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34 \ + --hash=sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2 \ + --hash=sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3 \ + --hash=sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815 \ + --hash=sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14 \ + --hash=sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba \ + --hash=sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375 \ + --hash=sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf \ + --hash=sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963 \ + --hash=sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1 \ + --hash=sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808 \ + --hash=sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553 \ + --hash=sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1 \ + --hash=sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2 \ + --hash=sha256:299e0a22e7ae2b85c1a57f104538b2656e8ab1873511fd718a1c1c6f149b77b5 \ + --hash=sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470 \ + --hash=sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2 \ + --hash=sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b \ + --hash=sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660 \ + --hash=sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c \ + --hash=sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093 \ + --hash=sha256:346285d28e4c8017da95144c7f3acd42740d637ff41946af5ce6e5e420502dd5 \ + --hash=sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594 \ + --hash=sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008 \ + --hash=sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a \ + --hash=sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a \ + --hash=sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd \ + --hash=sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284 \ + --hash=sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586 \ + --hash=sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869 \ + --hash=sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294 \ + --hash=sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f \ + --hash=sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66 \ + --hash=sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51 \ + --hash=sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc \ + --hash=sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97 \ + --hash=sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a \ + --hash=sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d \ + --hash=sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9 \ + --hash=sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c \ + --hash=sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07 \ + --hash=sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36 \ + --hash=sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e \ + --hash=sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05 \ + --hash=sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e \ + --hash=sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941 \ + --hash=sha256:707625ef0983fcfb461acfaf14de2067c5942c6bb0f3b4c99158bed6fedd3cf3 \ + --hash=sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612 \ + --hash=sha256:753e230374206729bf0a807954bcc6c150d3743928a73faffee51ac6557a03c3 \ + --hash=sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b \ + --hash=sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe \ + --hash=sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146 \ + --hash=sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11 \ + --hash=sha256:7b93a4d08587e2b7e7882de461e82b6ed76d9026ce91ca7915e740ecc7855f60 \ + --hash=sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd \ + --hash=sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b \ + --hash=sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c \ + --hash=sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a \ + --hash=sha256:873e0d5b4fb9b89ef7c2d2a963ea7d02879d9da0da8d9d4933dee8ee86a8b460 \ + --hash=sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1 \ + --hash=sha256:8bfeaf8735be79f225f3fefab7f941c712aaca36f1128c9d7e2352ee1aa87bdf \ + --hash=sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf \ + --hash=sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858 \ + --hash=sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2 \ + --hash=sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9 \ + --hash=sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2 \ + --hash=sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3 \ + --hash=sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6 \ + --hash=sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770 \ + --hash=sha256:a75dafbf87d6276ddc5b2bf6fae5254e3d0876b626eb24969a574fff9149ee5d \ + --hash=sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc \ + --hash=sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23 \ + --hash=sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26 \ + --hash=sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa \ + --hash=sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8 \ + --hash=sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d \ + --hash=sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3 \ + --hash=sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d \ + --hash=sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034 \ + --hash=sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9 \ + --hash=sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1 \ + --hash=sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56 \ + --hash=sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b \ + --hash=sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c \ + --hash=sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a \ + --hash=sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e \ + --hash=sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9 \ + --hash=sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5 \ + --hash=sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a \ + --hash=sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556 \ + --hash=sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e \ + --hash=sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49 \ + --hash=sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2 \ + --hash=sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9 \ + --hash=sha256:e4f4a984405e91527a0d62649ee21138f8e3d0ef103be488c1dc11a80d7f184b \ + --hash=sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc \ + --hash=sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb \ + --hash=sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0 \ + --hash=sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8 \ + --hash=sha256:e8465ab91a4bd96d36dde3263f06caa6a8a6019e4113f24dc753d79a8b3a3f82 \ + --hash=sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69 \ + --hash=sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b \ + --hash=sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c \ + --hash=sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75 \ + --hash=sha256:f0cd744688278965817fd0839c4a4116add48d23890d468bc436f78beb28abf5 \ + --hash=sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f \ + --hash=sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad \ + --hash=sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b \ + --hash=sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7 \ + --hash=sha256:f41eb9797986d6ebac5e8edff36d5cef9de40def462311b3eb3eeded1431e425 \ + --hash=sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52 + # via pydantic +pydantic-settings==2.13.1 \ + --hash=sha256:b4c11847b15237fb0171e1462bf540e294affb9b86db4d9aa5c01730bdbe4025 \ + --hash=sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237 + # via -r requirements.in +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 + # via -r requirements.in +python-dotenv==1.2.2 \ + --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ + --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 + # via + # pydantic-settings + # uvicorn +python-multipart==0.0.22 \ + --hash=sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155 \ + --hash=sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58 + # via -r requirements.in +pyyaml==6.0.3 \ + --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ + --hash=sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a \ + --hash=sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3 \ + --hash=sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956 \ + --hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6 \ + --hash=sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c \ + --hash=sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65 \ + --hash=sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a \ + --hash=sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0 \ + --hash=sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b \ + --hash=sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1 \ + --hash=sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6 \ + --hash=sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7 \ + --hash=sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e \ + --hash=sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007 \ + --hash=sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310 \ + --hash=sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4 \ + --hash=sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9 \ + --hash=sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295 \ + --hash=sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea \ + --hash=sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0 \ + --hash=sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e \ + --hash=sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac \ + --hash=sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9 \ + --hash=sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7 \ + --hash=sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35 \ + --hash=sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb \ + --hash=sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b \ + --hash=sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69 \ + --hash=sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5 \ + --hash=sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b \ + --hash=sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c \ + --hash=sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369 \ + --hash=sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd \ + --hash=sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824 \ + --hash=sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198 \ + --hash=sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065 \ + --hash=sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c \ + --hash=sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c \ + --hash=sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764 \ + --hash=sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196 \ + --hash=sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b \ + --hash=sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00 \ + --hash=sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac \ + --hash=sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8 \ + --hash=sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e \ + --hash=sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28 \ + --hash=sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3 \ + --hash=sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5 \ + --hash=sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4 \ + --hash=sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b \ + --hash=sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf \ + --hash=sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5 \ + --hash=sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702 \ + --hash=sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8 \ + --hash=sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788 \ + --hash=sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da \ + --hash=sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d \ + --hash=sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc \ + --hash=sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c \ + --hash=sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba \ + --hash=sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f \ + --hash=sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917 \ + --hash=sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 \ + --hash=sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26 \ + --hash=sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f \ + --hash=sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b \ + --hash=sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be \ + --hash=sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c \ + --hash=sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3 \ + --hash=sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6 \ + --hash=sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926 \ + --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0 + # via uvicorn +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 + # via python-dateutil +sqlalchemy==2.0.48 \ + --hash=sha256:01f6bbd4308b23240cf7d3ef117557c8fd097ec9549d5d8a52977544e35b40ad \ + --hash=sha256:07edba08061bc277bfdc772dd2a1a43978f5a45994dd3ede26391b405c15221e \ + --hash=sha256:10853a53a4a00417a00913d270dddda75815fcb80675874285f41051c094d7dd \ + --hash=sha256:1182437cb2d97988cfea04cf6cdc0b0bb9c74f4d56ec3d08b81e23d621a28cc6 \ + --hash=sha256:144921da96c08feb9e2b052c5c5c1d0d151a292c6135623c6b2c041f2a45f9e0 \ + --hash=sha256:1a89ce07ad2d4b8cfc30bd5889ec40613e028ed80ef47da7d9dd2ce969ad30e0 \ + --hash=sha256:1b4c575df7368b3b13e0cebf01d4679f9a28ed2ae6c1cd0b1d5beffb6b2007dc \ + --hash=sha256:1ccd42229aaac2df431562117ac7e667d702e8e44afdb6cf0e50fa3f18160f0b \ + --hash=sha256:2645b7d8a738763b664a12a1542c89c940daa55196e8d73e55b169cc5c99f65f \ + --hash=sha256:288937433bd44e3990e7da2402fabc44a3c6c25d3704da066b85b89a85474ae0 \ + --hash=sha256:34634e196f620c7a61d18d5cf7dc841ca6daa7961aed75d532b7e58b309ac894 \ + --hash=sha256:348174f228b99f33ca1f773e85510e08927620caa59ffe7803b37170df30332b \ + --hash=sha256:36ac4ddc3d33e852da9cb00ffb08cea62ca05c39711dc67062ca2bb1fae35fd8 \ + --hash=sha256:3713e21ea67bca727eecd4a24bf68bcd414c403faae4989442be60994301ded0 \ + --hash=sha256:389b984139278f97757ea9b08993e7b9d1142912e046ab7d82b3fbaeb0209131 \ + --hash=sha256:426c5ca86415d9b8945c7073597e10de9644802e2ff502b8e1f11a7a2642856b \ + --hash=sha256:4599a95f9430ae0de82b52ff0d27304fe898c17cb5f4099f7438a51b9998ac77 \ + --hash=sha256:49b7bddc1eebf011ea5ab722fdbe67a401caa34a350d278cc7733c0e88fecb1f \ + --hash=sha256:53667b5f668991e279d21f94ccfa6e45b4e3f4500e7591ae59a8012d0f010dcb \ + --hash=sha256:546572a1793cc35857a2ffa1fe0e58571af1779bcc1ffa7c9fb0839885ed69a9 \ + --hash=sha256:583849c743e0e3c9bb7446f5b5addeacedc168d657a69b418063dfdb2d90081c \ + --hash=sha256:5aee45fd2c6c0f2b9cdddf48c48535e7471e42d6fb81adfde801da0bd5b93241 \ + --hash=sha256:5b193a7e29fd9fa56e502920dca47dffe60f97c863494946bd698c6058a55658 \ + --hash=sha256:5ca74f37f3369b45e1f6b7b06afb182af1fd5dde009e4ffd831830d98cbe5fe7 \ + --hash=sha256:68549c403f79a8e25984376480959975212a670405e3913830614432b5daa07a \ + --hash=sha256:69f5bc24904d3bc3640961cddd2523e361257ef68585d6e364166dfbe8c78fae \ + --hash=sha256:6bb85c546591569558571aa1b06aba711b26ae62f111e15e56136d69920e1616 \ + --hash=sha256:6f7b7243850edd0b8b97043f04748f31de50cf426e939def5c16bedb540698f7 \ + --hash=sha256:7001dc9d5f6bb4deb756d5928eaefe1930f6f4179da3924cbd95ee0e9f4dce89 \ + --hash=sha256:7a936f1bb23d370b7c8cc079d5fce4c7d18da87a33c6744e51a93b0f9e97e9b3 \ + --hash=sha256:7c998f2ace8bf76b453b75dbcca500d4f4b9dd3908c13e89b86289b37784848b \ + --hash=sha256:7cddca31edf8b0653090cbb54562ca027c421c58ddde2c0685f49ff56a1690e0 \ + --hash=sha256:8183dc57ae7d9edc1346e007e840a9f3d6aa7b7f165203a99e16f447150140d2 \ + --hash=sha256:82745b03b4043e04600a6b665cb98697c4339b24e34d74b0a2ac0a2488b6f94d \ + --hash=sha256:841a94c66577661c1f088ac958cd767d7c9bf507698f45afffe7a4017049de76 \ + --hash=sha256:858e433f12b0e5b3ed2f8da917433b634f4937d0e8793e5cb33c54a1a01df565 \ + --hash=sha256:908a3fa6908716f803b86896a09a2c4dde5f5ce2bb07aacc71ffebb57986ce99 \ + --hash=sha256:9764014ef5e58aab76220c5664abb5d47d5bc858d9debf821e55cfdd0f128485 \ + --hash=sha256:9c7d0a77e36b5f4b01ca398482230ab792061d243d715299b44a0b55c89fe617 \ + --hash=sha256:a5b429eb84339f9f05e06083f119ad814e6d85e27ecbdf9c551dfdbb128eaf8a \ + --hash=sha256:a66fe406437dd65cacd96a72689a3aaaecaebbcd62d81c5ac1c0fdbeac835096 \ + --hash=sha256:a6b764fb312bd35e47797ad2e63f0d323792837a6ac785a4ca967019357d2bc7 \ + --hash=sha256:b19151e76620a412c2ac1c6f977ab1b9fa7ad43140178345136456d5265b32ed \ + --hash=sha256:b8438ec5594980d405251451c5b7ea9aa58dda38eb7ac35fb7e4c696712ee24f \ + --hash=sha256:b8fc3454b4f3bd0a368001d0e968852dad45a873f8b4babd41bc302ec851a099 \ + --hash=sha256:bcb8ebbf2e2c36cfe01a94f2438012c6a9d494cf80f129d9753bcdf33bfc35a6 \ + --hash=sha256:d404dc897ce10e565d647795861762aa2d06ca3f4a728c5e9a835096c7059018 \ + --hash=sha256:d612c976cbc2d17edfcc4c006874b764e85e990c29ce9bd411f926bbfb02b9a2 \ + --hash=sha256:d64177f443594c8697369c10e4bbcac70ef558e0f7921a1de7e4a3d1734bcf67 \ + --hash=sha256:d854b3970067297f3a7fbd7a4683587134aa9b3877ee15aa29eea478dc68f933 \ + --hash=sha256:d8fcccbbc0c13c13702c471da398b8cd72ba740dca5859f148ae8e0e8e0d3e7e \ + --hash=sha256:e004aa9248e8cb0a5f9b96d003ca7c1c0a5da8decd1066e7b53f59eb8ce7c62b \ + --hash=sha256:e214d546c8ecb5fc22d6e6011746082abf13a9cf46eefb45769c7b31407c97b5 \ + --hash=sha256:e2d0d88686e3d35a76f3e15a34e8c12d73fc94c1dea1cd55782e695cc14086dd \ + --hash=sha256:e2f35b4cccd9ed286ad62e0a3c3ac21e06c02abc60e20aa51a3e305a30f5fa79 \ + --hash=sha256:e3070c03701037aa418b55d36532ecb8f8446ed0135acb71c678dbdf12f5b6e4 \ + --hash=sha256:e5e088bf43f6ee6fec7dbf1ef7ff7774a616c236b5c0cb3e00662dd71a56b571 \ + --hash=sha256:e83e3f959aaa1c9df95c22c528096d94848a1bc819f5d0ebf7ee3df0ca63db6c \ + --hash=sha256:f0dcbc588cd5b725162c076eb9119342f6579c7f7f55057bb7e3c6ff27e13121 \ + --hash=sha256:f27f9da0a7d22b9f981108fd4b62f8b5743423388915a563e651c20d06c1f457 \ + --hash=sha256:f8649a14caa5f8a243628b1d61cf530ad9ae4578814ba726816adb1121fc493e \ + --hash=sha256:fac0fa4e4f55f118fd87177dacb1c6522fe39c28d498d259014020fec9164c29 \ + --hash=sha256:fd08b90d211c086181caed76931ecfa2bdfc83eea3cfccdb0f82abc6c4b876cb + # via -r requirements.in +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e + # via -r requirements.in +starlette==0.52.1 \ + --hash=sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74 \ + --hash=sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933 + # via fastapi +typing-extensions==4.15.0 \ + --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 + # via + # fastapi + # pydantic + # pydantic-core + # sqlalchemy + # typing-inspection +typing-inspection==0.4.2 \ + --hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \ + --hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464 + # via + # fastapi + # pydantic + # pydantic-settings +uvicorn==0.42.0 \ + --hash=sha256:96c30f5c7abe6f74ae8900a70e92b85ad6613b745d4879eb9b16ccad15645359 \ + --hash=sha256:9b1f190ce15a2dd22e7758651d9b6d12df09a13d51ba5bf4fc33c383a48e1775 + # via -r requirements.in +uvloop==0.22.1 \ + --hash=sha256:017bd46f9e7b78e81606329d07141d3da446f8798c6baeec124260e22c262772 \ + --hash=sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e \ + --hash=sha256:05e4b5f86e621cf3927631789999e697e58f0d2d32675b67d9ca9eb0bca55743 \ + --hash=sha256:0ae676de143db2b2f60a9696d7eca5bb9d0dd6cc3ac3dad59a8ae7e95f9e1b54 \ + --hash=sha256:1489cf791aa7b6e8c8be1c5a080bae3a672791fcb4e9e12249b05862a2ca9cec \ + --hash=sha256:17d4e97258b0172dfa107b89aa1eeba3016f4b1974ce85ca3ef6a66b35cbf659 \ + --hash=sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8 \ + --hash=sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad \ + --hash=sha256:286322a90bea1f9422a470d5d2ad82d38080be0a29c4dd9b3e6384320a4d11e7 \ + --hash=sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35 \ + --hash=sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289 \ + --hash=sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142 \ + --hash=sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77 \ + --hash=sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733 \ + --hash=sha256:481c990a7abe2c6f4fc3d98781cc9426ebd7f03a9aaa7eb03d3bfc68ac2a46bd \ + --hash=sha256:4a968a72422a097b09042d5fa2c5c590251ad484acf910a651b4b620acd7f193 \ + --hash=sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74 \ + --hash=sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0 \ + --hash=sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6 \ + --hash=sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473 \ + --hash=sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21 \ + --hash=sha256:55502bc2c653ed2e9692e8c55cb95b397d33f9f2911e929dc97c4d6b26d04242 \ + --hash=sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705 \ + --hash=sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702 \ + --hash=sha256:57df59d8b48feb0e613d9b1f5e57b7532e97cbaf0d61f7aa9aa32221e84bc4b6 \ + --hash=sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f \ + --hash=sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e \ + --hash=sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d \ + --hash=sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370 \ + --hash=sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4 \ + --hash=sha256:7cd375a12b71d33d46af85a3343b35d98e8116134ba404bd657b3b1d15988792 \ + --hash=sha256:80eee091fe128e425177fbd82f8635769e2f32ec9daf6468286ec57ec0313efa \ + --hash=sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079 \ + --hash=sha256:a592b043a47ad17911add5fbd087c76716d7c9ccc1d64ec9249ceafd735f03c2 \ + --hash=sha256:ac33ed96229b7790eb729702751c0e93ac5bc3bcf52ae9eccbff30da09194b86 \ + --hash=sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6 \ + --hash=sha256:b45649628d816c030dba3c80f8e2689bab1c89518ed10d426036cdc47874dfc4 \ + --hash=sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3 \ + --hash=sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21 \ + --hash=sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c \ + --hash=sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e \ + --hash=sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25 \ + --hash=sha256:c3e5c6727a57cb6558592a95019e504f605d1c54eb86463ee9f7a2dbd411c820 \ + --hash=sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9 \ + --hash=sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88 \ + --hash=sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2 \ + --hash=sha256:ea721dd3203b809039fcc2983f14608dae82b212288b346e0bfe46ec2fab0b7c \ + --hash=sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c \ + --hash=sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42 + # via uvicorn +watchfiles==1.1.1 \ + --hash=sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c \ + --hash=sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43 \ + --hash=sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510 \ + --hash=sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0 \ + --hash=sha256:08af70fd77eee58549cd69c25055dc344f918d992ff626068242259f98d598a2 \ + --hash=sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b \ + --hash=sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18 \ + --hash=sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219 \ + --hash=sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3 \ + --hash=sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4 \ + --hash=sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803 \ + --hash=sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94 \ + --hash=sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6 \ + --hash=sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce \ + --hash=sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099 \ + --hash=sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae \ + --hash=sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4 \ + --hash=sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43 \ + --hash=sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd \ + --hash=sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10 \ + --hash=sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374 \ + --hash=sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051 \ + --hash=sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d \ + --hash=sha256:3dbd8cbadd46984f802f6d479b7e3afa86c42d13e8f0f322d669d79722c8ec34 \ + --hash=sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49 \ + --hash=sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7 \ + --hash=sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844 \ + --hash=sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77 \ + --hash=sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b \ + --hash=sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741 \ + --hash=sha256:4b943d3668d61cfa528eb949577479d3b077fd25fb83c641235437bc0b5bc60e \ + --hash=sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33 \ + --hash=sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42 \ + --hash=sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab \ + --hash=sha256:5524298e3827105b61951a29c3512deb9578586abf3a7c5da4a8069df247cccc \ + --hash=sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5 \ + --hash=sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da \ + --hash=sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e \ + --hash=sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05 \ + --hash=sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a \ + --hash=sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d \ + --hash=sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701 \ + --hash=sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863 \ + --hash=sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2 \ + --hash=sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101 \ + --hash=sha256:6c3631058c37e4a0ec440bf583bc53cdbd13e5661bb6f465bc1d88ee9a0a4d02 \ + --hash=sha256:6c9c9262f454d1c4d8aaa7050121eb4f3aea197360553699520767daebf2180b \ + --hash=sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6 \ + --hash=sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb \ + --hash=sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620 \ + --hash=sha256:74472234c8370669850e1c312490f6026d132ca2d396abfad8830b4f1c096957 \ + --hash=sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6 \ + --hash=sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d \ + --hash=sha256:79ff6c6eadf2e3fc0d7786331362e6ef1e51125892c75f1004bd6b52155fb956 \ + --hash=sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef \ + --hash=sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261 \ + --hash=sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02 \ + --hash=sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af \ + --hash=sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9 \ + --hash=sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21 \ + --hash=sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336 \ + --hash=sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d \ + --hash=sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c \ + --hash=sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31 \ + --hash=sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81 \ + --hash=sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9 \ + --hash=sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff \ + --hash=sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2 \ + --hash=sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e \ + --hash=sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc \ + --hash=sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404 \ + --hash=sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01 \ + --hash=sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18 \ + --hash=sha256:acb08650863767cbc58bca4813b92df4d6c648459dcaa3d4155681962b2aa2d3 \ + --hash=sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606 \ + --hash=sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04 \ + --hash=sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3 \ + --hash=sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14 \ + --hash=sha256:b9c4702f29ca48e023ffd9b7ff6b822acdf47cb1ff44cb490a3f1d5ec8987e9c \ + --hash=sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82 \ + --hash=sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610 \ + --hash=sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0 \ + --hash=sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150 \ + --hash=sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5 \ + --hash=sha256:c1f5210f1b8fc91ead1283c6fd89f70e76fb07283ec738056cf34d51e9c1d62c \ + --hash=sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a \ + --hash=sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b \ + --hash=sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d \ + --hash=sha256:c882d69f6903ef6092bedfb7be973d9319940d56b8427ab9187d1ecd73438a70 \ + --hash=sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70 \ + --hash=sha256:cdab464fee731e0884c35ae3588514a9bcf718d0e2c82169c1c4a85cc19c3c7f \ + --hash=sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24 \ + --hash=sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e \ + --hash=sha256:cf57a27fb986c6243d2ee78392c503826056ffe0287e8794503b10fb51b881be \ + --hash=sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5 \ + --hash=sha256:d6ff426a7cb54f310d51bfe83fe9f2bbe40d540c741dc974ebc30e6aa238f52e \ + --hash=sha256:d7e7067c98040d646982daa1f37a33d3544138ea155536c2e0e63e07ff8a7e0f \ + --hash=sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88 \ + --hash=sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb \ + --hash=sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849 \ + --hash=sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d \ + --hash=sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c \ + --hash=sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44 \ + --hash=sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac \ + --hash=sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428 \ + --hash=sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b \ + --hash=sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5 \ + --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ + --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf + # via uvicorn +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 + # via uvicorn diff --git a/backend/scripts/init_db.py b/backend/scripts/init_db.py index 341b8f5..9da73e3 100755 --- a/backend/scripts/init_db.py +++ b/backend/scripts/init_db.py @@ -11,7 +11,7 @@ # Add the parent directory to the path so we can import from app sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) -from app.database import create_tables, drop_tables, get_database +from app.database import get_database from app import crud from app.config import get_settings @@ -65,14 +65,6 @@ async def init_database(): try: # Import models to ensure they're registered from app.models import ( - AdminUser, - AdminSession, - AuthToken, - Commit, - Binary, - Environment, - Run, - BenchmarkResult, Base, ) from app.database import create_database_engine @@ -128,7 +120,6 @@ async def reset_database(): Base, ) from app.database import create_database_engine - from sqlalchemy.ext.asyncio import create_async_engine # Create a fresh engine with current settings engine = create_database_engine() diff --git a/backend/scripts/manage_tokens.py b/backend/scripts/manage_tokens.py index bda0018..45f177e 100755 --- a/backend/scripts/manage_tokens.py +++ b/backend/scripts/manage_tokens.py @@ -9,11 +9,9 @@ import sys import os import secrets -import hashlib import argparse import json -from datetime import datetime, timedelta, UTC -from typing import List, Dict, Any, Optional +from datetime import datetime, timedelta # Add the parent directory to the path so we can import from app sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) @@ -72,7 +70,7 @@ async def create_token(name: str, description: str = None) -> str: # Create the token in the database auth_token = await crud.create_auth_token(db, token, name, description) - print(f"✅ Successfully created authentication token!") + print("✅ Successfully created authentication token!") print(f" ID: {auth_token.id}") print(f" Name: {auth_token.name}") print(f" Description: {auth_token.description or 'None'}") @@ -142,9 +140,9 @@ async def list_tokens() -> None: async def deactivate_token(token_id: int) -> None: """Deactivate an authentication token.""" # Ensure database tables exist - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: success = await crud.deactivate_auth_token(db, token_id) if success: @@ -160,9 +158,9 @@ async def deactivate_token(token_id: int) -> None: async def reactivate_token(token_id: int) -> None: """Reactivate a deactivated authentication token.""" - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: result = await db.execute( select(models.AuthToken).where(models.AuthToken.id == token_id) @@ -190,9 +188,9 @@ async def update_token_info( token_id: int, name: str = None, description: str = None ) -> None: """Update token name and/or description.""" - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: result = await db.execute( select(models.AuthToken).where(models.AuthToken.id == token_id) @@ -233,9 +231,9 @@ async def search_tokens( inactive_only: bool = False, ) -> None: """Search tokens by name or description patterns.""" - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: query = select(models.AuthToken) @@ -251,9 +249,9 @@ async def search_tokens( ) if active_only: - conditions.append(models.AuthToken.is_active == True) + conditions.append(models.AuthToken.is_active.is_(True)) elif inactive_only: - conditions.append(models.AuthToken.is_active == False) + conditions.append(models.AuthToken.is_active.is_(False)) if conditions: query = query.where(and_(*conditions)) @@ -308,9 +306,9 @@ async def search_tokens( async def show_token_details(token_id: int) -> None: """Show detailed information about a specific token.""" - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: result = await db.execute( select(models.AuthToken).where(models.AuthToken.id == token_id) @@ -349,9 +347,9 @@ async def show_token_details(token_id: int) -> None: async def show_token_analytics() -> None: """Show analytics and statistics about token usage.""" - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: # Get basic counts total_result = await db.execute(select(func.count(models.AuthToken.id))) @@ -359,7 +357,7 @@ async def show_token_analytics() -> None: active_result = await db.execute( select(func.count(models.AuthToken.id)).where( - models.AuthToken.is_active == True + models.AuthToken.is_active.is_(True) ) ) active_tokens = active_result.scalar() @@ -456,11 +454,11 @@ async def show_token_analytics() -> None: async def cleanup_old_tokens(days: int = 90, dry_run: bool = True) -> None: """Clean up unused tokens older than specified days.""" - await create_tables() + await db_manager.create_tables() cutoff_date = datetime.utcnow() - timedelta(days=days) - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: # Find tokens that are either never used and old, or inactive and old result = await db.execute( @@ -476,7 +474,7 @@ async def cleanup_old_tokens(days: int = 90, dry_run: bool = True) -> None: result2 = await db.execute( select(models.AuthToken).where( and_( - models.AuthToken.is_active == False, + models.AuthToken.is_active.is_(False), models.AuthToken.created_at < cutoff_date, ) ) @@ -547,13 +545,13 @@ async def export_tokens( format_type: str = "json", include_inactive: bool = True ) -> None: """Export token information (excluding actual token values).""" - await create_tables() + await db_manager.create_tables() - async with AsyncSessionLocal() as db: + async with db_manager.AsyncSession() as db: try: query = select(models.AuthToken) if not include_inactive: - query = query.where(models.AuthToken.is_active == True) + query = query.where(models.AuthToken.is_active.is_(True)) query = query.order_by(models.AuthToken.created_at) result = await db.execute(query) @@ -672,9 +670,7 @@ def main(): ) # List tokens command - list_parser = subparsers.add_parser( - "list", help="List all existing authentication tokens" - ) + subparsers.add_parser("list", help="List all existing authentication tokens") # Show token details command details_parser = subparsers.add_parser( @@ -724,7 +720,7 @@ def main(): ) # Analytics command - analytics_parser = subparsers.add_parser( + subparsers.add_parser( "analytics", help="Show token usage analytics and statistics" ) diff --git a/backend/scripts/populate_binaries.py b/backend/scripts/populate_binaries.py index 4011053..5f7350d 100644 --- a/backend/scripts/populate_binaries.py +++ b/backend/scripts/populate_binaries.py @@ -110,6 +110,15 @@ def get_standard_binaries(): "icon": "search", "display_order": 7, }, + { + "id": "jit", + "name": "JIT Build", + "flags": ["--enable-experimental-jit"], + "description": "Just-In-Time compilation enabled.", + "color": "#fc03df", + "icon": "zap", + "display_order": 8, + }, ] @@ -174,13 +183,13 @@ async def populate_binaries(force: bool = False, database_url: str = None): display_order=binary_data.get("display_order", 0), ) - new_binary = await crud.create_binary(db, binary_create) + await crud.create_binary(db, binary_create) print(f"✅ Created binary '{binary_id}': {binary_data['name']}") print(f" Flags: {binary_data['flags']}") print(f" Description: {binary_data['description']}") created_count += 1 - print(f"\n🎉 Binary population completed!") + print("\n🎉 Binary population completed!") print(f" - Created: {created_count} binaries") print(f" - Updated: {updated_count} binaries") print(f" - Skipped: {skipped_count} binaries") diff --git a/backend/scripts/populate_db.py b/backend/scripts/populate_db.py index 3450bc3..2ab6e83 100755 --- a/backend/scripts/populate_db.py +++ b/backend/scripts/populate_db.py @@ -379,7 +379,7 @@ async def populate_database(database_url: Optional[str] = None): await db.flush() print(f"✅ Created {len(binary_objects)} new binaries") else: - print(f"✅ All binaries already exist") + print("✅ All binaries already exist") # Use all binaries (existing + new) for runs all_binary_objects = existing_binaries + binary_objects @@ -404,7 +404,7 @@ async def populate_database(database_url: Optional[str] = None): await db.flush() print(f"✅ Created {len(environment_objects)} new environments") else: - print(f"✅ All environments already exist") + print("✅ All environments already exist") # Use all environments (existing + new) for runs all_environment_objects = existing_environments + environment_objects @@ -487,7 +487,7 @@ async def populate_database(database_url: Optional[str] = None): # Commit everything at once await db.commit() - print(f"\n🎉 Database populated successfully!") + print("\n🎉 Database populated successfully!") print(f" - {len(commit_objects)} commits (100 per Python version)") print( f" - {len(binary_objects)} new binaries ({len(all_binary_objects)} total)" diff --git a/backend/scripts/populate_simple_data.py b/backend/scripts/populate_simple_data.py index bb2950d..860254f 100755 --- a/backend/scripts/populate_simple_data.py +++ b/backend/scripts/populate_simple_data.py @@ -15,7 +15,7 @@ sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) from app.database import AsyncSessionLocal -from app import models, schemas, crud +from app import models, schemas # Mock data generators @@ -403,7 +403,7 @@ async def populate_database(): # Commit everything at once await db.commit() - print(f"\n🎉 Database populated with OBVIOUS TEST DATA!") + print("\n🎉 Database populated with OBVIOUS TEST DATA!") print(f" - {len(commit_objects)} commits (2 per Python version)") print(f" - {len(binary_objects)} binaries (default, debug, nogil)") print(f" - {len(environment_objects)} environments (gcc-11, clang-14)") @@ -413,10 +413,10 @@ async def populate_database(): print( f" - {len(result_objects)} benchmark results (3 benchmarks per run)" ) - print(f"\n📊 MEMORY VALUES FOR VERIFICATION:") - print(f" Benchmark A: Default=1MB, Debug=1.5MB, NoGIL=0.8MB") - print(f" Benchmark B: Default=2MB, Debug=3MB, NoGIL=1.6MB") - print(f" Benchmark C: Default=10MB, Debug=15MB, NoGIL=8MB") + print("\n📊 MEMORY VALUES FOR VERIFICATION:") + print(" Benchmark A: Default=1MB, Debug=1.5MB, NoGIL=0.8MB") + print(" Benchmark B: Default=2MB, Debug=3MB, NoGIL=1.6MB") + print(" Benchmark C: Default=10MB, Debug=15MB, NoGIL=8MB") except Exception as e: print(f"❌ Error populating database: {e}") diff --git a/backend/tests/__init__.py b/backend/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py new file mode 100644 index 0000000..878230b --- /dev/null +++ b/backend/tests/conftest.py @@ -0,0 +1,225 @@ +"""Shared fixtures for backend tests.""" + +import secrets +from datetime import datetime, timedelta + +import pytest +import pytest_asyncio +from httpx import ASGITransport, AsyncClient +from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine +from sqlalchemy.pool import StaticPool + +from app.database import get_database +from app.factory import create_app +from app.config import Settings +from app.models import Base, AuthToken, AdminUser, AdminSession + + +@pytest.fixture(scope="session") +def test_settings(): + return Settings( + database_url="sqlite+aiosqlite://", + cors_origins="http://localhost:9002", + admin_initial_username="test_admin", + enable_health_check_db=False, + log_level="WARNING", + ) + + +@pytest_asyncio.fixture +async def db_engine(): + engine = create_async_engine( + "sqlite+aiosqlite://", + echo=False, + connect_args={"check_same_thread": False}, + poolclass=StaticPool, + ) + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + yield engine + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.drop_all) + await engine.dispose() + + +@pytest_asyncio.fixture +async def db_session(db_engine): + session_factory = async_sessionmaker( + db_engine, class_=AsyncSession, expire_on_commit=False + ) + async with session_factory() as session: + yield session + + +@pytest_asyncio.fixture +async def app(db_engine, test_settings): + session_factory = async_sessionmaker( + db_engine, class_=AsyncSession, expire_on_commit=False + ) + + async def _override_get_database(): + async with session_factory() as session: + yield session + + application = create_app(settings=test_settings) + application.dependency_overrides[get_database] = _override_get_database + yield application + application.dependency_overrides.clear() + + +@pytest_asyncio.fixture +async def client(app): + transport = ASGITransport(app=app) + async with AsyncClient(transport=transport, base_url="http://test") as c: + yield c + + +@pytest_asyncio.fixture +async def auth_token(db_session): + """Create an active auth token and return (token_string, token_model).""" + raw_token = secrets.token_hex(32) + token = AuthToken( + token=raw_token, + name="test-worker", + description="Token for testing", + ) + db_session.add(token) + await db_session.commit() + await db_session.refresh(token) + return raw_token, token + + +@pytest_asyncio.fixture +async def auth_headers(auth_token): + """Authorization headers for authenticated requests.""" + raw_token, _ = auth_token + return {"Authorization": f"Bearer {raw_token}"} + + +@pytest_asyncio.fixture +async def admin_user(db_session): + user = AdminUser( + github_username="test_admin", + added_by="system", + notes="Test admin", + ) + db_session.add(user) + await db_session.commit() + await db_session.refresh(user) + return user + + +@pytest_asyncio.fixture +async def admin_session(db_session, admin_user): + """Create an admin session and return (session_token, session_model).""" + raw_token = secrets.token_hex(32) + session = AdminSession( + session_token=raw_token, + github_user_id=12345, + github_username=admin_user.github_username, + github_name="Test Admin", + github_email="admin@test.com", + github_avatar_url="https://example.com/avatar.png", + expires_at=datetime.now() + timedelta(hours=24), + ) + db_session.add(session) + await db_session.commit() + await db_session.refresh(session) + return raw_token, session + + +@pytest_asyncio.fixture +async def admin_cookies(admin_session): + """Cookies dict for admin-authenticated requests.""" + raw_token, _ = admin_session + return {"admin_session": raw_token} + + +@pytest_asyncio.fixture +async def sample_binary(db_session): + from app.models import Binary + binary = Binary( + id="default", + name="Default", + flags=["--enable-optimizations"], + description="Standard build", + color="#8b5cf6", + icon="server", + display_order=0, + ) + db_session.add(binary) + await db_session.commit() + await db_session.refresh(binary) + return binary + + +@pytest_asyncio.fixture +async def sample_environment(db_session): + from app.models import Environment + env = Environment( + id="linux-x86_64", + name="Linux x86_64", + description="Standard Linux build environment", + ) + db_session.add(env) + await db_session.commit() + await db_session.refresh(env) + return env + + +@pytest_asyncio.fixture +async def sample_commit(db_session): + from app.models import Commit + commit = Commit( + sha="a" * 40, + timestamp=datetime(2025, 6, 15, 12, 0, 0), + message="Test commit", + author="Test Author", + python_major=3, + python_minor=14, + python_patch=0, + ) + db_session.add(commit) + await db_session.commit() + await db_session.refresh(commit) + return commit + + +@pytest_asyncio.fixture +async def sample_run(db_session, sample_commit, sample_binary, sample_environment): + from app.models import Run + run = Run( + run_id="run_test_001", + commit_sha=sample_commit.sha, + binary_id=sample_binary.id, + environment_id=sample_environment.id, + python_major=3, + python_minor=14, + python_patch=0, + timestamp=datetime(2025, 6, 15, 12, 30, 0), + ) + db_session.add(run) + await db_session.commit() + await db_session.refresh(run) + return run + + +@pytest_asyncio.fixture +async def sample_benchmark_result(db_session, sample_run): + from app.models import BenchmarkResult + result = BenchmarkResult( + id=f"{sample_run.run_id}_json-dumps", + run_id=sample_run.run_id, + benchmark_name="json_dumps", + high_watermark_bytes=1_000_000, + allocation_histogram=[[64, 500], [128, 300], [256, 100]], + total_allocated_bytes=5_000_000, + top_allocating_functions=[ + {"function": "json.dumps", "count": 100, "total_size": 500_000} + ], + flamegraph_html="flamegraph", + ) + db_session.add(result) + await db_session.commit() + await db_session.refresh(result) + return result diff --git a/backend/tests/production_fixtures.py b/backend/tests/production_fixtures.py new file mode 100644 index 0000000..e615687 --- /dev/null +++ b/backend/tests/production_fixtures.py @@ -0,0 +1,175 @@ +""" +Test fixtures derived from the production database. + +These represent real CPython commits, benchmark results, and the relationships +between them. The deltablue_base benchmark shows a ~10.5% high watermark +increase between the two commits, while json_dumps_base and nbody_base remain +unchanged — a pattern typical of real-world memory regressions where only +specific benchmarks are affected. +""" + +from datetime import datetime + +BINARY_NOGIL = { + "id": "nogil", + "name": "Free-threaded Build", + "flags": ["--disable-gil"], + "description": "Experimental build without the Global Interpreter Lock (GIL).", + "color": "#f59e0b", + "icon": "zap", + "display_order": 5, +} + +ENVIRONMENT_GH_ACTIONS = { + "id": "gh_actions", + "name": "GitHub actions", + "description": "GitHub actions in memory.python.org", +} + +COMMIT_PREV = { + "sha": "e05182f98ea100b6e26796a76b1399237aeac22f", + "timestamp": datetime(2025, 8, 29, 11, 49, 35), + "message": "gh-138250: load fast optimization should fall through to empty blocks (#138249)", + "author": "Dino Viehland", + "python_major": 3, + "python_minor": 15, + "python_patch": 0, +} + +COMMIT_CURR = { + "sha": "d3d94e0ed715829d9bf93ef9c35e04832962f19f", + "timestamp": datetime(2025, 8, 30, 22, 21, 25), + "message": "gh-138061: Exclude __pycache__ directory from the computed digest in the JIT stencils (#138131)", + "author": "alm", + "python_major": 3, + "python_minor": 15, + "python_patch": 0, +} + +RUN_PREV = { + "run_id": "run_e05182f9_nogil_gh_actions_1756509299", + "commit_sha": COMMIT_PREV["sha"], + "binary_id": "nogil", + "environment_id": "gh_actions", + "python_major": 3, + "python_minor": 15, + "python_patch": 0, + "timestamp": datetime(2025, 8, 29, 23, 14, 59, 158448), +} + +RUN_CURR = { + "run_id": "run_d3d94e0e_nogil_gh_actions_1756595617", + "commit_sha": COMMIT_CURR["sha"], + "binary_id": "nogil", + "environment_id": "gh_actions", + "python_major": 3, + "python_minor": 15, + "python_patch": 0, + "timestamp": datetime(2025, 8, 30, 23, 13, 37, 215031), +} + +# deltablue_base: 10.5% high watermark increase between commits +BENCH_DELTABLUE_PREV = { + "id": "run_e05182f9_nogil_gh_actions_1756509299_deltablue-base", + "run_id": RUN_PREV["run_id"], + "benchmark_name": "deltablue_base", + "high_watermark_bytes": 1_557_777, + "total_allocated_bytes": 111_297_305, + "allocation_histogram": [ + [0, 123], [3, 3612], [10, 992], [34, 61414], + [111, 519085], [362, 726], [1176, 198], + [3821, 386], [12416, 23], [40342, 10], + ], + "top_allocating_functions": [ + {"function": "execute:deltablue_base.py:340", "count": 0, "total_size": 39_168_000}, + {"function": "execute:deltablue_base.py:494", "count": 0, "total_size": 23_869_728}, + {"function": "_get_code_from_file::259", "count": 0, "total_size": 4_191_949}, + {"function": "add_propagate:deltablue_base.py:438", "count": 0, "total_size": 3_131_664}, + {"function": "weakest_of:deltablue_base.py:51", "count": 0, "total_size": 1_664_832}, + ], +} + +BENCH_DELTABLUE_CURR = { + "id": "run_d3d94e0e_nogil_gh_actions_1756595617_deltablue-base", + "run_id": RUN_CURR["run_id"], + "benchmark_name": "deltablue_base", + "high_watermark_bytes": 1_721_155, + "total_allocated_bytes": 111_291_390, + "allocation_histogram": [ + [0, 123], [3, 3612], [10, 992], [34, 61399], + [111, 519085], [362, 722], [1176, 197], + [3821, 386], [12416, 23], [40342, 10], + ], + "top_allocating_functions": [ + {"function": "execute:deltablue_base.py:340", "count": 0, "total_size": 39_168_000}, + {"function": "execute:deltablue_base.py:494", "count": 0, "total_size": 23_869_728}, + {"function": "_get_code_from_file::259", "count": 0, "total_size": 4_191_949}, + {"function": "add_propagate:deltablue_base.py:438", "count": 0, "total_size": 3_131_664}, + {"function": "weakest_of:deltablue_base.py:51", "count": 0, "total_size": 1_664_832}, + ], +} + +# json_dumps_base: identical across both commits +BENCH_JSON_DUMPS_PREV = { + "id": "run_e05182f9_nogil_gh_actions_1756509299_json-dumps-base", + "run_id": RUN_PREV["run_id"], + "benchmark_name": "json_dumps_base", + "high_watermark_bytes": 405_465, + "total_allocated_bytes": 14_132_797, + "allocation_histogram": [ + [0, 14], [3, 425], [12, 196], [45, 49869], + [160, 23501], [571, 85], [2036, 31], + [7248, 22], [25805, 8], [91871, 11], + ], + "top_allocating_functions": [ + {"function": "iterencode:json/encoder.py:261", "count": 0, "total_size": 7_404_609}, + {"function": "bench_json_dumps:json_dumps_base.py:31", "count": 0, "total_size": 1_632_536}, + {"function": "encode:json/encoder.py:200", "count": 0, "total_size": 1_312_456}, + {"function": "iterencode:json/encoder.py:252", "count": 0, "total_size": 960_240}, + {"function": "dumps:json/__init__.py:231", "count": 0, "total_size": 928_360}, + ], +} + +BENCH_JSON_DUMPS_CURR = { + "id": "run_d3d94e0e_nogil_gh_actions_1756595617_json-dumps-base", + "run_id": RUN_CURR["run_id"], + "benchmark_name": "json_dumps_base", + "high_watermark_bytes": 405_465, + "total_allocated_bytes": 14_132_797, + "allocation_histogram": BENCH_JSON_DUMPS_PREV["allocation_histogram"], + "top_allocating_functions": BENCH_JSON_DUMPS_PREV["top_allocating_functions"], +} + +# nbody_base: identical across both commits +BENCH_NBODY_PREV = { + "id": "run_e05182f9_nogil_gh_actions_1756509299_nbody-base", + "run_id": RUN_PREV["run_id"], + "benchmark_name": "nbody_base", + "high_watermark_bytes": 563_371, + "total_allocated_bytes": 1_808_575, + "allocation_histogram": [ + [0, 18], [3, 1047], [10, 223], [34, 3845], + [111, 804], [362, 166], [1176, 37], + [3821, 75], [12416, 8], [40342, 5], + ], + "top_allocating_functions": [ + {"function": "_get_code_from_file::259", "count": 0, "total_size": 905_285}, + {"function": "_read_directory::302", "count": 0, "total_size": 132_232}, + {"function": "get_data::954", "count": 0, "total_size": 132_225}, + {"function": "_get_code_from_file::258", "count": 0, "total_size": 132_176}, + {"function": "_get_code_from_file::254", "count": 0, "total_size": 132_176}, + ], +} + +BENCH_NBODY_CURR = { + "id": "run_d3d94e0e_nogil_gh_actions_1756595617_nbody-base", + "run_id": RUN_CURR["run_id"], + "benchmark_name": "nbody_base", + "high_watermark_bytes": 563_371, + "total_allocated_bytes": 1_808_575, + "allocation_histogram": BENCH_NBODY_PREV["allocation_histogram"], + "top_allocating_functions": BENCH_NBODY_PREV["top_allocating_functions"], +} + +ALL_PREV_BENCHMARKS = [BENCH_DELTABLUE_PREV, BENCH_JSON_DUMPS_PREV, BENCH_NBODY_PREV] +ALL_CURR_BENCHMARKS = [BENCH_DELTABLUE_CURR, BENCH_JSON_DUMPS_CURR, BENCH_NBODY_CURR] diff --git a/backend/tests/test_auth.py b/backend/tests/test_auth.py new file mode 100644 index 0000000..8bf33bf --- /dev/null +++ b/backend/tests/test_auth.py @@ -0,0 +1,100 @@ +"""Tests for token authentication.""" + + + +async def test_valid_bearer_token(client, auth_headers, sample_binary, sample_environment): + """A valid Bearer token should authenticate successfully on a protected endpoint.""" + payload = { + "commit_sha": "a" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "test", + } + # Without auth → rejected + response = await client.post("/api/report-memray-failure", json=payload) + assert response.status_code in (401, 403) + + # With auth → accepted + response = await client.post( + "/api/report-memray-failure", json=payload, headers=auth_headers + ) + assert response.status_code == 200 + + +async def test_upload_with_invalid_token(client, sample_binary, sample_environment): + """An invalid token should be rejected.""" + headers = {"Authorization": "Bearer invalid_token_value"} + response = await client.post( + "/api/upload-run", + json={"metadata": {}, "benchmark_results": [], "binary_id": "x", "environment_id": "y"}, + headers=headers, + ) + assert response.status_code in (401, 403) + + +async def test_upload_with_no_token(client): + """Missing token should be rejected.""" + response = await client.post( + "/api/upload-run", + json={"metadata": {}, "benchmark_results": [], "binary_id": "x", "environment_id": "y"}, + ) + assert response.status_code in (401, 403) + + +async def test_token_format_bearer(client, auth_token, sample_binary, sample_environment): + """'Bearer ' format should work.""" + raw_token, _ = auth_token + headers = {"Authorization": f"Bearer {raw_token}"} + # Use upload endpoint since it requires auth + response = await client.post( + "/api/report-memray-failure", + json={ + "commit_sha": "d" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "test", + }, + headers=headers, + ) + assert response.status_code == 200 + + +async def test_token_format_token_prefix(client, auth_token, sample_binary, sample_environment): + """'Token ' format should also work.""" + raw_token, _ = auth_token + headers = {"Authorization": f"Token {raw_token}"} + response = await client.post( + "/api/report-memray-failure", + json={ + "commit_sha": "e" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "test", + }, + headers=headers, + ) + assert response.status_code == 200 + + +async def test_inactive_token_rejected(client, db_session, auth_token, sample_binary, sample_environment): + """A deactivated token should be rejected.""" + raw_token, token_model = auth_token + token_model.is_active = False + await db_session.commit() + + headers = {"Authorization": f"Bearer {raw_token}"} + response = await client.post( + "/api/report-memray-failure", + json={ + "commit_sha": "f" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "test", + }, + headers=headers, + ) + assert response.status_code in (401, 403) diff --git a/backend/tests/test_benchmarks.py b/backend/tests/test_benchmarks.py new file mode 100644 index 0000000..7a4e057 --- /dev/null +++ b/backend/tests/test_benchmarks.py @@ -0,0 +1,129 @@ +"""Tests for the benchmarks API endpoints.""" + + + +async def test_all_benchmark_names_empty(client): + response = await client.get("/api/benchmarks") + assert response.status_code == 200 + assert response.json() == [] + + +async def test_all_benchmark_names(client, sample_benchmark_result): + response = await client.get("/api/benchmarks") + assert response.status_code == 200 + data = response.json() + assert "json_dumps" in data + + +async def test_filtered_benchmark_names(client, sample_benchmark_result): + response = await client.get( + "/api/benchmark-names", + params={ + "environment_id": "linux-x86_64", + "binary_id": "default", + "python_major": 3, + "python_minor": 14, + }, + ) + assert response.status_code == 200 + data = response.json() + assert "json_dumps" in data + + +async def test_filtered_benchmark_names_no_match(client, sample_benchmark_result): + response = await client.get( + "/api/benchmark-names", + params={ + "environment_id": "linux-x86_64", + "binary_id": "default", + "python_major": 3, + "python_minor": 99, + }, + ) + assert response.status_code == 200 + assert response.json() == [] + + +async def test_diff_table(client, sample_benchmark_result): + response = await client.get( + "/api/diff", + params={ + "commit_sha": "a" * 40, + "binary_id": "default", + "environment_id": "linux-x86_64", + }, + ) + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + row = data[0] + assert row["benchmark_name"] == "json_dumps" + assert row["curr_metric_value"] == 1_000_000 + assert row["metric_key"] == "high_watermark_bytes" + assert row["has_flamegraph"] is True + + +async def test_diff_table_commit_not_found(client): + response = await client.get( + "/api/diff", + params={ + "commit_sha": "f" * 40, + "binary_id": "default", + "environment_id": "linux-x86_64", + }, + ) + assert response.status_code == 404 + + +async def test_trends(client, sample_benchmark_result): + response = await client.get( + "/api/trends", + params={ + "benchmark_name": "json_dumps", + "binary_id": "default", + "environment_id": "linux-x86_64", + "python_major": 3, + "python_minor": 14, + }, + ) + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["sha"] == "a" * 40 + assert data[0]["high_watermark_bytes"] == 1_000_000 + + +async def test_trends_batch(client, sample_benchmark_result): + response = await client.post( + "/api/trends-batch", + json={ + "trend_queries": [ + { + "benchmark_name": "json_dumps", + "binary_id": "default", + "environment_id": "linux-x86_64", + "python_major": 3, + "python_minor": 14, + "limit": 50, + } + ] + }, + ) + assert response.status_code == 200 + data = response.json() + assert "results" in data + assert len(data["results"]) == 1 + + +async def test_flamegraph(client, sample_benchmark_result): + result_id = sample_benchmark_result.id + response = await client.get(f"/api/flamegraph/{result_id}") + assert response.status_code == 200 + data = response.json() + assert data["flamegraph_html"] == "flamegraph" + assert data["benchmark_name"] == "json_dumps" + + +async def test_flamegraph_not_found(client): + response = await client.get("/api/flamegraph/nonexistent") + assert response.status_code == 404 diff --git a/backend/tests/test_binaries.py b/backend/tests/test_binaries.py new file mode 100644 index 0000000..b5be671 --- /dev/null +++ b/backend/tests/test_binaries.py @@ -0,0 +1,55 @@ +"""Tests for the binaries API endpoints.""" + + + +async def test_list_binaries_empty(client): + response = await client.get("/api/binaries") + assert response.status_code == 200 + assert response.json() == [] + + +async def test_list_binaries(client, sample_binary): + response = await client.get("/api/binaries") + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["id"] == "default" + assert data[0]["name"] == "Default" + assert "--enable-optimizations" in data[0]["flags"] + + +async def test_get_binary_by_id(client, sample_binary): + response = await client.get("/api/binaries/default") + assert response.status_code == 200 + data = response.json() + assert data["id"] == "default" + assert data["description"] == "Standard build" + + +async def test_get_binary_not_found(client): + response = await client.get("/api/binaries/nonexistent") + assert response.status_code == 404 + + +async def test_environments_for_binary(client, sample_benchmark_result): + response = await client.get("/api/binaries/default/environments") + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["id"] == "linux-x86_64" + assert data[0]["run_count"] >= 1 + + +async def test_environments_for_nonexistent_binary(client): + response = await client.get("/api/binaries/nonexistent/environments") + assert response.status_code == 404 + + +async def test_commits_for_binary_and_environment(client, sample_benchmark_result): + response = await client.get( + "/api/binaries/default/environments/linux-x86_64/commits" + ) + assert response.status_code == 200 + data = response.json() + assert len(data) >= 1 + assert data[0]["sha"] == "a" * 40 diff --git a/backend/tests/test_commits.py b/backend/tests/test_commits.py new file mode 100644 index 0000000..46557ca --- /dev/null +++ b/backend/tests/test_commits.py @@ -0,0 +1,57 @@ +"""Tests for the commits API endpoints.""" + + + +async def test_list_commits_empty(client): + response = await client.get("/api/commits") + assert response.status_code == 200 + assert response.json() == [] + + +async def test_list_commits(client, sample_commit): + response = await client.get("/api/commits") + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["sha"] == sample_commit.sha + assert data[0]["author"] == "Test Author" + assert data[0]["python_version"]["major"] == 3 + assert data[0]["python_version"]["minor"] == 14 + + +async def test_list_commits_pagination(client, sample_commit): + response = await client.get("/api/commits", params={"skip": 0, "limit": 1}) + assert response.status_code == 200 + assert len(response.json()) == 1 + + response = await client.get("/api/commits", params={"skip": 1, "limit": 1}) + assert response.status_code == 200 + assert len(response.json()) == 0 + + +async def test_get_commit_by_sha(client, sample_commit): + response = await client.get(f"/api/commits/{sample_commit.sha}") + assert response.status_code == 200 + data = response.json() + assert data["sha"] == sample_commit.sha + assert data["message"] == "Test commit" + + +async def test_get_commit_not_found(client): + response = await client.get("/api/commits/" + "f" * 40) + assert response.status_code == 404 + + +async def test_python_versions_empty(client): + response = await client.get("/api/python-versions") + assert response.status_code == 200 + assert response.json() == [] + + +async def test_python_versions(client, sample_benchmark_result): + response = await client.get("/api/python-versions") + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["major"] == 3 + assert data[0]["minor"] == 14 diff --git a/backend/tests/test_environments.py b/backend/tests/test_environments.py new file mode 100644 index 0000000..ddae060 --- /dev/null +++ b/backend/tests/test_environments.py @@ -0,0 +1,29 @@ +"""Tests for the environments API endpoints.""" + + + +async def test_list_environments_empty(client): + response = await client.get("/api/environments") + assert response.status_code == 200 + assert response.json() == [] + + +async def test_list_environments(client, sample_environment): + response = await client.get("/api/environments") + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["id"] == "linux-x86_64" + assert data[0]["name"] == "Linux x86_64" + + +async def test_get_environment_by_id(client, sample_environment): + response = await client.get("/api/environments/linux-x86_64") + assert response.status_code == 200 + data = response.json() + assert data["id"] == "linux-x86_64" + + +async def test_get_environment_not_found(client): + response = await client.get("/api/environments/nonexistent") + assert response.status_code == 404 diff --git a/backend/tests/test_health.py b/backend/tests/test_health.py new file mode 100644 index 0000000..cec37e3 --- /dev/null +++ b/backend/tests/test_health.py @@ -0,0 +1,25 @@ +"""Tests for the health check endpoint.""" + + + +async def test_health_check(client): + response = await client.get("/health") + assert response.status_code == 200 + data = response.json() + assert "status" in data + assert "timestamp" in data + + +async def test_health_check_reports_db_status(client): + """The health router uses a module-level settings object with + enable_health_check_db=True (not overridable via test_settings). + It attempts db.execute("SELECT 1") which fails on SQLAlchemy 2.x + because raw strings need text(). This is a pre-existing app bug. + We verify the endpoint still returns 200 and reports the DB as + unhealthy rather than crashing.""" + response = await client.get("/health") + assert response.status_code == 200 + data = response.json() + assert "database" in data + assert data["database"] == "unhealthy" + assert data["status"] == "unhealthy" diff --git a/backend/tests/test_logging_utils.py b/backend/tests/test_logging_utils.py new file mode 100644 index 0000000..a808399 --- /dev/null +++ b/backend/tests/test_logging_utils.py @@ -0,0 +1,82 @@ +"""Tests for logging utility functions.""" + +from app.logging_utils import ( + sanitize_string, + sanitize_dict, + sanitize_list, + mask_token, + create_safe_log_context, +) + + +def test_sanitize_string_redacts_hex_token(): + token = "a" * 64 + result = sanitize_string(f"Token is {token}") + assert token not in result + assert "REDACTED" in result + + +def test_sanitize_string_redacts_password(): + result = sanitize_string('password="supersecret"') + assert "supersecret" not in result + assert "REDACTED" in result + + +def test_sanitize_string_preserves_normal_text(): + text = "This is a normal log message" + assert sanitize_string(text) == text + + +def test_sanitize_string_handles_non_string(): + assert sanitize_string(42) == 42 + + +def test_sanitize_dict_redacts_sensitive_keys(): + data = {"token": "secret123", "name": "worker-1"} + result = sanitize_dict(data) + assert result["token"] == "***REDACTED***" + assert result["name"] == "worker-1" + + +def test_sanitize_dict_recursive(): + data = {"config": {"auth": {"password": "secret"}}} + result = sanitize_dict(data) + assert "secret" not in str(result) + + +def test_sanitize_dict_handles_non_dict(): + assert sanitize_dict("not a dict") == "not a dict" + + +def test_sanitize_list_handles_mixed(): + data = [{"token": "secret"}, "normal", 42] + result = sanitize_list(data) + assert result[0]["token"] == "***REDACTED***" + assert result[1] == "normal" + assert result[2] == 42 + + +def test_mask_token_normal(): + assert mask_token("abcdefghijklmnop") == "abcd...mnop" + + +def test_mask_token_short(): + assert mask_token("short") == "***" + + +def test_mask_token_empty(): + assert mask_token("") == "***" + assert mask_token(None) == "***" + + +def test_create_safe_log_context_redacts_keys(): + ctx = create_safe_log_context(token="secret", name="worker") + assert ctx["token"] == "***REDACTED***" + assert ctx["name"] == "worker" + + +def test_create_safe_log_context_truncates_long_strings(): + long_value = "x" * 100 + ctx = create_safe_log_context(data=long_value) + assert len(ctx["data"]) < 100 + assert ctx["data"].endswith("...") diff --git a/backend/tests/test_production_data.py b/backend/tests/test_production_data.py new file mode 100644 index 0000000..cee259b --- /dev/null +++ b/backend/tests/test_production_data.py @@ -0,0 +1,252 @@ +""" +Tests using fixtures derived from production data. + +These verify that the API behaves correctly with real-world data shapes, +including a case where deltablue_base shows a ~10.5% high watermark +regression between two consecutive nogil commits while json_dumps_base +and nbody_base remain unchanged. +""" + +import pytest +import pytest_asyncio + +from app.models import Binary, Environment, Commit, Run, BenchmarkResult + +from .production_fixtures import ( + BINARY_NOGIL, + ENVIRONMENT_GH_ACTIONS, + COMMIT_PREV, + COMMIT_CURR, + RUN_PREV, + RUN_CURR, + ALL_PREV_BENCHMARKS, + ALL_CURR_BENCHMARKS, + BENCH_DELTABLUE_PREV, + BENCH_DELTABLUE_CURR, +) + + +@pytest_asyncio.fixture +async def prod_data(db_session): + """Load the full production fixture set into the test database.""" + db_session.add(Binary(**BINARY_NOGIL)) + db_session.add(Environment(**ENVIRONMENT_GH_ACTIONS)) + await db_session.flush() + + db_session.add(Commit(**COMMIT_PREV)) + db_session.add(Commit(**COMMIT_CURR)) + await db_session.flush() + + db_session.add(Run(**RUN_PREV)) + db_session.add(Run(**RUN_CURR)) + await db_session.flush() + + for bench in ALL_PREV_BENCHMARKS + ALL_CURR_BENCHMARKS: + db_session.add(BenchmarkResult(**bench)) + await db_session.commit() + + +async def test_diff_detects_regression(client, prod_data): + """The diff endpoint should show the deltablue_base regression.""" + response = await client.get( + "/api/diff", + params={ + "commit_sha": COMMIT_CURR["sha"], + "binary_id": "nogil", + "environment_id": "gh_actions", + }, + ) + assert response.status_code == 200 + rows = response.json() + assert len(rows) == 3 + + deltablue = next(r for r in rows if r["benchmark_name"] == "deltablue_base") + assert deltablue["curr_metric_value"] == BENCH_DELTABLUE_CURR["high_watermark_bytes"] + assert deltablue["prev_metric_value"] == BENCH_DELTABLUE_PREV["high_watermark_bytes"] + assert deltablue["metric_delta_percent"] == pytest.approx(10.49, abs=0.1) + + # json_dumps_base and nbody_base should show no change + json_dumps = next(r for r in rows if r["benchmark_name"] == "json_dumps_base") + assert json_dumps["metric_delta_percent"] == pytest.approx(0.0) + + nbody = next(r for r in rows if r["benchmark_name"] == "nbody_base") + assert nbody["metric_delta_percent"] == pytest.approx(0.0) + + +async def test_diff_previous_commit_details(client, prod_data): + """The diff should include correct previous commit metadata.""" + response = await client.get( + "/api/diff", + params={ + "commit_sha": COMMIT_CURR["sha"], + "binary_id": "nogil", + "environment_id": "gh_actions", + }, + ) + rows = response.json() + deltablue = next(r for r in rows if r["benchmark_name"] == "deltablue_base") + + prev = deltablue["prev_commit_details"] + assert prev["sha"] == COMMIT_PREV["sha"] + assert prev["author"] == "Dino Viehland" + assert prev["python_version"]["major"] == 3 + assert prev["python_version"]["minor"] == 15 + + curr = deltablue["curr_commit_details"] + assert curr["sha"] == COMMIT_CURR["sha"] + assert curr["author"] == "alm" + + +async def test_diff_first_commit_has_no_previous(client, prod_data): + """Diffing the earlier commit should show no previous data.""" + response = await client.get( + "/api/diff", + params={ + "commit_sha": COMMIT_PREV["sha"], + "binary_id": "nogil", + "environment_id": "gh_actions", + }, + ) + assert response.status_code == 200 + rows = response.json() + for row in rows: + assert row["prev_metric_value"] is None + assert row["metric_delta_percent"] is None + assert row["prev_commit_details"] is None + + +async def test_diff_with_total_allocated_metric(client, prod_data): + """Diff should work with total_allocated_bytes metric too.""" + response = await client.get( + "/api/diff", + params={ + "commit_sha": COMMIT_CURR["sha"], + "binary_id": "nogil", + "environment_id": "gh_actions", + "metric_key": "total_allocated_bytes", + }, + ) + assert response.status_code == 200 + rows = response.json() + deltablue = next(r for r in rows if r["benchmark_name"] == "deltablue_base") + assert deltablue["metric_key"] == "total_allocated_bytes" + assert deltablue["curr_metric_value"] == BENCH_DELTABLUE_CURR["total_allocated_bytes"] + assert deltablue["prev_metric_value"] == BENCH_DELTABLUE_PREV["total_allocated_bytes"] + + +async def test_trends_returns_chronological_data(client, prod_data): + """Trends should return data points in reverse chronological order (newest first).""" + response = await client.get( + "/api/trends", + params={ + "benchmark_name": "deltablue_base", + "binary_id": "nogil", + "environment_id": "gh_actions", + "python_major": 3, + "python_minor": 15, + }, + ) + assert response.status_code == 200 + data = response.json() + assert len(data) == 2 + + # Ordered by timestamp DESC: newer commit first + assert data[0]["sha"] == COMMIT_CURR["sha"] + assert data[0]["high_watermark_bytes"] == 1_721_155 + assert data[1]["sha"] == COMMIT_PREV["sha"] + assert data[1]["high_watermark_bytes"] == 1_557_777 + + +async def test_batch_trends_multiple_benchmarks(client, prod_data): + """Batch trends should return data for multiple benchmarks at once.""" + response = await client.post( + "/api/trends-batch", + json={ + "trend_queries": [ + { + "benchmark_name": "deltablue_base", + "binary_id": "nogil", + "environment_id": "gh_actions", + "python_major": 3, + "python_minor": 15, + "limit": 50, + }, + { + "benchmark_name": "json_dumps_base", + "binary_id": "nogil", + "environment_id": "gh_actions", + "python_major": 3, + "python_minor": 15, + "limit": 50, + }, + ] + }, + ) + assert response.status_code == 200 + results = response.json()["results"] + assert len(results) == 2 + + deltablue_key = "nogil:deltablue_base|3.15" + json_key = "nogil:json_dumps_base|3.15" + assert deltablue_key in results + assert json_key in results + assert len(results[deltablue_key]) == 2 + assert len(results[json_key]) == 2 + + +async def test_benchmark_names_filtered_by_version(client, prod_data): + """Benchmark names should filter correctly by Python version.""" + response = await client.get( + "/api/benchmark-names", + params={ + "environment_id": "gh_actions", + "binary_id": "nogil", + "python_major": 3, + "python_minor": 15, + }, + ) + assert response.status_code == 200 + names = response.json() + assert set(names) == {"deltablue_base", "json_dumps_base", "nbody_base"} + + # Non-existent version should return empty + response = await client.get( + "/api/benchmark-names", + params={ + "environment_id": "gh_actions", + "binary_id": "nogil", + "python_major": 3, + "python_minor": 14, + }, + ) + assert response.json() == [] + + +async def test_python_versions_from_production_data(client, prod_data): + response = await client.get("/api/python-versions") + assert response.status_code == 200 + versions = response.json() + assert len(versions) == 1 + assert versions[0]["major"] == 3 + assert versions[0]["minor"] == 15 + + +async def test_environments_for_binary(client, prod_data): + response = await client.get("/api/binaries/nogil/environments") + assert response.status_code == 200 + envs = response.json() + assert len(envs) == 1 + assert envs[0]["id"] == "gh_actions" + assert envs[0]["run_count"] == 2 + assert envs[0]["commit_count"] == 2 + + +async def test_commits_for_binary_and_environment(client, prod_data): + response = await client.get( + "/api/binaries/nogil/environments/gh_actions/commits" + ) + assert response.status_code == 200 + commits = response.json() + assert len(commits) == 2 + shas = {c["sha"][:8] for c in commits} + assert shas == {"e05182f9", "d3d94e0e"} diff --git a/backend/tests/test_public.py b/backend/tests/test_public.py new file mode 100644 index 0000000..17e6730 --- /dev/null +++ b/backend/tests/test_public.py @@ -0,0 +1,50 @@ +"""Tests for public API endpoints.""" + + + +async def test_maintainers_empty(client): + response = await client.get("/api/maintainers") + assert response.status_code == 200 + assert response.json() == [] + + +async def test_maintainers_with_admin(client, admin_user): + response = await client.get("/api/maintainers") + assert response.status_code == 200 + data = response.json() + assert len(data) == 1 + assert data[0]["github_username"] == "test_admin" + assert data[0]["is_active"] is True + + +async def test_memray_status_healthy(client): + response = await client.get("/api/memray-status") + assert response.status_code == 200 + data = response.json() + assert data["has_failures"] is False + assert data["failure_count"] == 0 + assert data["affected_environments"] == [] + + +async def test_memray_status_with_failure( + client, auth_headers, sample_binary, sample_environment +): + # Report a failure first + await client.post( + "/api/report-memray-failure", + json={ + "commit_sha": "c" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "memray install failed", + }, + headers=auth_headers, + ) + + response = await client.get("/api/memray-status") + assert response.status_code == 200 + data = response.json() + assert data["has_failures"] is True + assert data["failure_count"] == 1 + assert data["affected_environments"][0]["binary_id"] == "default" diff --git a/backend/tests/test_upload.py b/backend/tests/test_upload.py new file mode 100644 index 0000000..2c2390a --- /dev/null +++ b/backend/tests/test_upload.py @@ -0,0 +1,286 @@ +"""Tests for the upload API endpoints.""" + +import copy + + +UPLOAD_PAYLOAD = { + "metadata": { + "commit": { + "hexsha": "b" * 40, + "committed_date": "2025-06-16T10:00:00+00:00", + "message": "Benchmark commit", + "author": "Benchmark Author", + }, + "version": {"major": 3, "minor": 14, "micro": 1}, + "configure_vars": { + "CONFIG_ARGS": "'--enable-optimizations' '--prefix=/tmp/install'" + }, + }, + "benchmark_results": [ + { + "benchmark_name": "test_bench", + "stats_json": { + "metadata": {"peak_memory": 2_000_000}, + "allocation_size_histogram": [ + {"min_bytes": 64, "count": 100}, + {"min_bytes": 128, "count": 50}, + ], + "total_bytes_allocated": 3_000_000, + "top_allocations_by_size": [ + {"location": "test_func", "count": 10, "size": 100_000} + ], + }, + "flamegraph_html": "test flamegraph", + } + ], + "binary_id": "default", + "environment_id": "linux-x86_64", +} + + +async def test_upload_requires_auth(client, sample_binary, sample_environment): + response = await client.post("/api/upload-run", json=UPLOAD_PAYLOAD) + assert response.status_code in (401, 403) + + +async def test_upload_success( + client, auth_headers, sample_binary, sample_environment +): + response = await client.post( + "/api/upload-run", json=UPLOAD_PAYLOAD, headers=auth_headers + ) + assert response.status_code == 200 + data = response.json() + assert data["commit_sha"] == "b" * 40 + assert data["binary_id"] == "default" + assert data["environment_id"] == "linux-x86_64" + assert data["results_created"] == 1 + + +async def test_upload_missing_commit_sha( + client, auth_headers, sample_binary, sample_environment +): + payload = { + **UPLOAD_PAYLOAD, + "metadata": {"commit": {}, "version": {"major": 3, "minor": 14, "micro": 0}}, + } + response = await client.post( + "/api/upload-run", json=payload, headers=auth_headers + ) + assert response.status_code == 400 + + +async def test_upload_invalid_binary(client, auth_headers, sample_environment): + payload = {**UPLOAD_PAYLOAD, "binary_id": "nonexistent"} + response = await client.post( + "/api/upload-run", json=payload, headers=auth_headers + ) + assert response.status_code == 400 + assert "not found" in response.json()["detail"].lower() + + +async def test_upload_invalid_environment(client, auth_headers, sample_binary): + payload = {**UPLOAD_PAYLOAD, "environment_id": "nonexistent"} + response = await client.post( + "/api/upload-run", json=payload, headers=auth_headers + ) + assert response.status_code == 400 + assert "not found" in response.json()["detail"].lower() + + +async def test_upload_flag_mismatch( + client, auth_headers, sample_binary, sample_environment +): + payload = { + **UPLOAD_PAYLOAD, + "metadata": { + **UPLOAD_PAYLOAD["metadata"], + "configure_vars": {"CONFIG_ARGS": "'--with-pydebug'"}, + }, + } + response = await client.post( + "/api/upload-run", json=payload, headers=auth_headers + ) + assert response.status_code == 400 + assert "configure flags" in response.json()["detail"].lower() + + +async def test_report_memray_failure_requires_auth( + client, sample_binary, sample_environment +): + payload = { + "commit_sha": "c" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "memray install failed", + } + response = await client.post("/api/report-memray-failure", json=payload) + assert response.status_code in (401, 403) + + +async def test_report_memray_failure_success( + client, auth_headers, sample_binary, sample_environment +): + payload = { + "commit_sha": "c" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "memray install failed", + } + response = await client.post( + "/api/report-memray-failure", json=payload, headers=auth_headers + ) + assert response.status_code == 200 + data = response.json() + assert data["message"] == "Memray failure reported successfully" + + +async def test_upload_duplicate_commit_binary_env( + client, auth_headers, sample_binary, sample_environment +): + """Uploading the same commit+binary+environment twice should return 409.""" + response = await client.post( + "/api/upload-run", json=UPLOAD_PAYLOAD, headers=auth_headers + ) + assert response.status_code == 200 + + response = await client.post( + "/api/upload-run", json=UPLOAD_PAYLOAD, headers=auth_headers + ) + assert response.status_code == 409 + + +async def test_upload_existing_commit_new_binary( + client, auth_headers, db_session, sample_environment +): + """Uploading the same commit with a different binary should succeed.""" + from app.models import Binary + for bin_id in ("bin-a", "bin-b"): + db_session.add(Binary( + id=bin_id, name=bin_id, flags=[], display_order=0, + )) + await db_session.commit() + + payload_a = copy.deepcopy(UPLOAD_PAYLOAD) + payload_a["binary_id"] = "bin-a" + payload_a["metadata"]["configure_vars"]["CONFIG_ARGS"] = "" + + payload_b = copy.deepcopy(UPLOAD_PAYLOAD) + payload_b["binary_id"] = "bin-b" + payload_b["metadata"]["configure_vars"]["CONFIG_ARGS"] = "" + + resp_a = await client.post( + "/api/upload-run", json=payload_a, headers=auth_headers + ) + assert resp_a.status_code == 200 + + resp_b = await client.post( + "/api/upload-run", json=payload_b, headers=auth_headers + ) + assert resp_b.status_code == 200 + + +async def test_upload_clears_memray_failure( + client, auth_headers, sample_binary, sample_environment +): + """A successful upload should clear memray failures for that binary+env.""" + # Report a failure + failure_payload = { + "commit_sha": "b" * 40, + "commit_timestamp": "2025-06-16T09:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "memray failed", + } + resp = await client.post( + "/api/report-memray-failure", json=failure_payload, headers=auth_headers + ) + assert resp.status_code == 200 + + # Upload successfully — this should clear the failure + resp = await client.post( + "/api/upload-run", json=UPLOAD_PAYLOAD, headers=auth_headers + ) + assert resp.status_code == 200 + assert resp.json()["results_created"] == 1 + + # Verify the failure was cleared + status = await client.get("/api/memray-status") + data = status.json() + assert data["has_failures"] is False + assert data["failure_count"] == 0 + + +async def test_memray_failure_update_newer( + client, auth_headers, sample_binary, sample_environment +): + """Reporting a newer failure should update the existing record.""" + older = { + "commit_sha": "a" * 40, + "commit_timestamp": "2025-06-15T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "old failure", + } + newer = { + "commit_sha": "b" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "new failure", + } + + resp = await client.post( + "/api/report-memray-failure", json=older, headers=auth_headers + ) + assert resp.status_code == 200 + + resp = await client.post( + "/api/report-memray-failure", json=newer, headers=auth_headers + ) + assert resp.status_code == 200 + assert resp.json()["message"] == "Memray failure reported successfully" + + status = await client.get("/api/memray-status") + data = status.json() + assert data["failure_count"] == 1 + assert data["affected_environments"][0]["commit_sha"] == "b" * 40 + + +async def test_memray_failure_ignore_older( + client, auth_headers, sample_binary, sample_environment +): + """Reporting an older failure should be ignored.""" + newer = { + "commit_sha": "b" * 40, + "commit_timestamp": "2025-06-16T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "newer failure", + } + older = { + "commit_sha": "a" * 40, + "commit_timestamp": "2025-06-15T10:00:00", + "binary_id": "default", + "environment_id": "linux-x86_64", + "error_message": "older failure", + } + + resp = await client.post( + "/api/report-memray-failure", json=newer, headers=auth_headers + ) + assert resp.status_code == 200 + + resp = await client.post( + "/api/report-memray-failure", json=older, headers=auth_headers + ) + assert resp.status_code == 200 + assert "ignored" in resp.json()["message"].lower() + + # Original failure should remain unchanged + status = await client.get("/api/memray-status") + data = status.json() + assert data["failure_count"] == 1 + assert data["affected_environments"][0]["commit_sha"] == "b" * 40 diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations.bin b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations.bin deleted file mode 100644 index 331b617..0000000 Binary files a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations_flamegraph.html b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations_flamegraph.html deleted file mode 100644 index 5c2b42e..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations_stats.json b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations_stats.json deleted file mode 100644 index 7ac6ebf..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:37:14.420000+01:00", - "end_time": "2025-06-21 17:37:16.087000+01:00", - "total_allocations": 6006619, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_9dbdfjdw/bin/memray run --native --trace-python-allocators --output benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/dict_operations.bin /tmp/benchmarks_qvwx5eyr/dict_operations.py", - "pid": 3642011, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations.bin b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations.bin deleted file mode 100644 index 9580019..0000000 Binary files a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations.bin and /dev/null differ diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations_flamegraph.html b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations_flamegraph.html deleted file mode 100644 index bc951d7..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations_stats.json b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations_stats.json deleted file mode 100644 index 48f77ed..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_qvwx5eyr/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_qvwx5eyr/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:37:09.944000+01:00", - "end_time": "2025-06-21 17:37:10.963000+01:00", - "total_allocations": 4003389, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_9dbdfjdw/bin/memray run --native --trace-python-allocators --output benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/list_operations.bin /tmp/benchmarks_qvwx5eyr/list_operations.py", - "pid": 3641967, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/metadata.json b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/metadata.json deleted file mode 100644 index 9560d24..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-647-gd08b4b2333d:d08b4b2333d, Jun 21 2025, 17:33:04) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_9dbdfjdw", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_9dbdfjdw", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_9dbdfjdw", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_9dbdfjdw", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "13cac833471885564cbfde72a4cbac64ade3137a", - "short_hexsha": "13cac833", - "author": "Xuanteng Huang", - "author_email": "44627253+xuantengh@users.noreply.github.com", - "authored_date": "2025-06-21T16:43:15+08:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-21T14:13:15+05:30", - "message": "gh-135557: use atomic stores in `heapq` operations in free-threading (#135601)\n\n" - } -} \ No newline at end of file diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations.bin b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations.bin deleted file mode 100644 index d991311..0000000 Binary files a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations.bin and /dev/null differ diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations_flamegraph.html b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations_flamegraph.html deleted file mode 100644 index e71840f..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations_stats.json b/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations_stats.json deleted file mode 100644 index cb4e60a..0000000 --- a/benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_qvwx5eyr/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_qvwx5eyr/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_qvwx5eyr/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_qvwx5eyr/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:37:07.674000+01:00", - "end_time": "2025-06-21 17:37:07.900000+01:00", - "total_allocations": 483054, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_9dbdfjdw/bin/memray run --native --trace-python-allocators --output benchmark_results/13cac833471885564cbfde72a4cbac64ade3137a/string_operations.bin /tmp/benchmarks_qvwx5eyr/string_operations.py", - "pid": 3636725, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations.bin b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations.bin deleted file mode 100644 index 0662bad..0000000 Binary files a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations_flamegraph.html b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations_flamegraph.html deleted file mode 100644 index 2327528..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations_stats.json b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations_stats.json deleted file mode 100644 index a9a6866..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:45:46.400000+01:00", - "end_time": "2025-06-21 17:45:48.274000+01:00", - "total_allocations": 6006619, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_kvqputn2/bin/memray run --native --trace-python-allocators --output benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/dict_operations.bin /tmp/benchmarks_lfe_1iaf/dict_operations.py", - "pid": 3818170, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations.bin b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations.bin deleted file mode 100644 index b5b4e27..0000000 Binary files a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations.bin and /dev/null differ diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations_flamegraph.html b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations_flamegraph.html deleted file mode 100644 index c88476b..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations_stats.json b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations_stats.json deleted file mode 100644 index 2a2762b..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_lfe_1iaf/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_lfe_1iaf/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:45:42.020000+01:00", - "end_time": "2025-06-21 17:45:43.083000+01:00", - "total_allocations": 4003390, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_kvqputn2/bin/memray run --native --trace-python-allocators --output benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/list_operations.bin /tmp/benchmarks_lfe_1iaf/list_operations.py", - "pid": 3818126, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/metadata.json b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/metadata.json deleted file mode 100644 index 0992e1e..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-639-g3fb6cfe7a95:3fb6cfe7a95, Jun 21 2025, 17:44:28) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_kvqputn2", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_kvqputn2", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_kvqputn2", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_kvqputn2", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "3fb6cfe7a95081e6775ad2dca845713a3ea4c799", - "short_hexsha": "3fb6cfe7", - "author": "Pastukhov Nikita", - "author_email": "diementros@yandex.ru", - "authored_date": "2025-06-20T20:06:01+03:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-20T20:06:01+03:00", - "message": "gh-135721: skip `test_trashcan_python_class` on wasm buildbots with stack overflow (#135766)\n\n" - } -} \ No newline at end of file diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations.bin b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations.bin deleted file mode 100644 index c2f370f..0000000 Binary files a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations.bin and /dev/null differ diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations_flamegraph.html b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations_flamegraph.html deleted file mode 100644 index 8ddeb20..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations_stats.json b/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations_stats.json deleted file mode 100644 index 86ccc34..0000000 --- a/benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_lfe_1iaf/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_lfe_1iaf/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_lfe_1iaf/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_lfe_1iaf/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:45:39.809000+01:00", - "end_time": "2025-06-21 17:45:40+01:00", - "total_allocations": 483050, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_kvqputn2/bin/memray run --native --trace-python-allocators --output benchmark_results/3fb6cfe7a95081e6775ad2dca845713a3ea4c799/string_operations.bin /tmp/benchmarks_lfe_1iaf/string_operations.py", - "pid": 3818101, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations.bin b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations.bin deleted file mode 100644 index 055ed08..0000000 Binary files a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations_flamegraph.html b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations_flamegraph.html deleted file mode 100644 index b43156e..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations_stats.json b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations_stats.json deleted file mode 100644 index 1f4610d..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:41:30.631000+01:00", - "end_time": "2025-06-21 17:41:32.444000+01:00", - "total_allocations": 6006619, - "total_frames": 243, - "peak_memory": 219120515, - "command_line": "/tmp/cpython_venv_n_3snguu/bin/memray run --native --trace-python-allocators --output benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/dict_operations.bin /tmp/benchmarks_3_5e3_ow/dict_operations.py", - "pid": 3730273, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations.bin b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations.bin deleted file mode 100644 index 1350b0e..0000000 Binary files a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations.bin and /dev/null differ diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations_flamegraph.html b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations_flamegraph.html deleted file mode 100644 index eb79405..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations_stats.json b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations_stats.json deleted file mode 100644 index a9cdb1a..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_3_5e3_ow/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_3_5e3_ow/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:41:26.561000+01:00", - "end_time": "2025-06-21 17:41:27.608000+01:00", - "total_allocations": 4003396, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_n_3snguu/bin/memray run --native --trace-python-allocators --output benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/list_operations.bin /tmp/benchmarks_3_5e3_ow/list_operations.py", - "pid": 3730206, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/metadata.json b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/metadata.json deleted file mode 100644 index fb10263..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-643-gf4911258a80:f4911258a80, Jun 21 2025, 17:38:47) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_n_3snguu", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_n_3snguu", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_n_3snguu", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_n_3snguu", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "4ddf505d9982dc8afead8f52f5754eea5ebde623", - "short_hexsha": "4ddf505d", - "author": "Marcell Perger", - "author_email": "102254594+MarcellPerger1@users.noreply.github.com", - "authored_date": "2025-06-20T23:45:36+01:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-20T18:45:36-04:00", - "message": "gh-135756: Fix nonexistent parameter in tkinter docs (#135770)\n\nRemove nonexistent color parameter from tkinter.commondialog.Dialog.show() method documentation." - } -} \ No newline at end of file diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations.bin b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations.bin deleted file mode 100644 index ae82a86..0000000 Binary files a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations.bin and /dev/null differ diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations_flamegraph.html b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations_flamegraph.html deleted file mode 100644 index e4d7e28..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations_stats.json b/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations_stats.json deleted file mode 100644 index 5e75f47..0000000 --- a/benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_3_5e3_ow/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_3_5e3_ow/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_3_5e3_ow/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_3_5e3_ow/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:41:24.370000+01:00", - "end_time": "2025-06-21 17:41:24.558000+01:00", - "total_allocations": 483053, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_n_3snguu/bin/memray run --native --trace-python-allocators --output benchmark_results/4ddf505d9982dc8afead8f52f5754eea5ebde623/string_operations.bin /tmp/benchmarks_3_5e3_ow/string_operations.py", - "pid": 3730166, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations.bin b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations.bin deleted file mode 100644 index 778bfda..0000000 Binary files a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations_flamegraph.html b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations_flamegraph.html deleted file mode 100644 index 7861562..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations_stats.json b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations_stats.json deleted file mode 100644 index 1309cb1..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 294, - "total_bytes_allocated": 323534084, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 10 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 0 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 0 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 83 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 33 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 26 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 114 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "MALLOC": 115, - "MMAP": 108, - "CALLOC": 46, - "REALLOC": 25 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_66uqwybi/dict_operations.py:7", - "size": 148775480 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/dict_operations.py:10", - "size": 132001336 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/dict_operations.py:13", - "size": 41811488 - }, - { - "location": "_get_code_from_file::259", - "size": 136165 - }, - { - "location": "_get_code_from_file::258", - "size": 131073 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_66uqwybi/dict_operations.py:7", - "count": 81 - }, - { - "location": "_get_code_from_file::259", - "count": 65 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/dict_operations.py:10", - "count": 64 - }, - { - "location": "_compile_bytecode::514", - "count": 27 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 17 - } - ], - "metadata": { - "start_time": "2025-06-21 17:23:23.659000+01:00", - "end_time": "2025-06-21 17:23:23.959000+01:00", - "total_allocations": 570, - "total_frames": 44, - "peak_memory": 228616369, - "command_line": "/tmp/cpython_venv_fu7okc4n/bin/memray run --output benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/dict_operations.bin /tmp/benchmarks_66uqwybi/dict_operations.py", - "pid": 3341799, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": false, - "trace_python_allocators": false, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations.bin b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations.bin deleted file mode 100644 index 1b9cef7..0000000 Binary files a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations.bin and /dev/null differ diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations_flamegraph.html b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations_flamegraph.html deleted file mode 100644 index a9d642e..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations_stats.json b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations_stats.json deleted file mode 100644 index 670efb6..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 403, - "total_bytes_allocated": 255356324, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 10 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 0 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 0 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 9 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 55 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 104 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "REALLOC": 244, - "MMAP": 62, - "MALLOC": 59, - "CALLOC": 38 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:10", - "size": 108519520 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:7", - "size": 76007520 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:13", - "size": 37477280 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:6", - "size": 32508928 - }, - { - "location": "_get_code_from_file::258", - "size": 131073 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:10", - "count": 110 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:7", - "count": 78 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:13", - "count": 72 - }, - { - "location": "_get_code_from_file::259", - "count": 49 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/list_operations.py:6", - "count": 32 - } - ], - "metadata": { - "start_time": "2025-06-21 17:23:22.488000+01:00", - "end_time": "2025-06-21 17:23:22.717000+01:00", - "total_allocations": 788, - "total_frames": 45, - "peak_memory": 86104801, - "command_line": "/tmp/cpython_venv_fu7okc4n/bin/memray run --output benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/list_operations.bin /tmp/benchmarks_66uqwybi/list_operations.py", - "pid": 3341785, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": false, - "trace_python_allocators": false, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/metadata.json b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/metadata.json deleted file mode 100644 index efa7b81..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (heads/main:6a16b3c440c, Jun 21 2025, 17:22:07) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_fu7okc4n", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_fu7okc4n", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_fu7okc4n", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_fu7okc4n", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "6a16b3c440cf9ecabecd3e90f44310e3b0765780", - "short_hexsha": "6a16b3c4", - "author": "Rafael Fontenelle", - "author_email": "rffontenelle@users.noreply.github.com", - "authored_date": "2025-06-21T10:01:14-03:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-21T09:01:14-04:00", - "message": "Docs: Remove unnecessary trailing backslashes (GH-135781)\n\nThis fixes Sphinx's gettext extraction for translations." - } -} \ No newline at end of file diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations.bin b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations.bin deleted file mode 100644 index 03bccda..0000000 Binary files a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations.bin and /dev/null differ diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations_flamegraph.html b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations_flamegraph.html deleted file mode 100644 index b22aecf..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations_stats.json b/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations_stats.json deleted file mode 100644 index e2eeecb..0000000 --- a/benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 1073, - "total_bytes_allocated": 21046282, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 12 - }, - { - "min_bytes": 4, - "max_bytes": 14, - "count": 0 - }, - { - "min_bytes": 15, - "max_bytes": 62, - "count": 0 - }, - { - "min_bytes": 63, - "max_bytes": 254, - "count": 0 - }, - { - "min_bytes": 255, - "max_bytes": 1023, - "count": 240 - }, - { - "min_bytes": 1024, - "max_bytes": 4094, - "count": 693 - }, - { - "min_bytes": 4095, - "max_bytes": 16382, - "count": 49 - }, - { - "min_bytes": 16383, - "max_bytes": 65534, - "count": 27 - }, - { - "min_bytes": 65535, - "max_bytes": 262142, - "count": 29 - }, - { - "min_bytes": 262143, - "max_bytes": 1048576, - "count": 23 - } - ], - "allocator_type_distribution": { - "REALLOC": 954, - "MALLOC": 70, - "CALLOC": 43, - "MMAP": 6 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:5", - "size": 7672963 - }, - { - "location": ":/tmp/benchmarks_66uqwybi/string_operations.py:5", - "size": 5242880 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:13", - "size": 3840896 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:10", - "size": 1389654 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:10", - "count": 807 - }, - { - "location": "_get_code_from_file::259", - "count": 64 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:5", - "count": 59 - }, - { - "location": "main:/tmp/benchmarks_66uqwybi/string_operations.py:13", - "count": 52 - }, - { - "location": "_compile_bytecode::514", - "count": 27 - } - ], - "metadata": { - "start_time": "2025-06-21 17:23:21.603000+01:00", - "end_time": "2025-06-21 17:23:21.636000+01:00", - "total_allocations": 2129, - "total_frames": 49, - "peak_memory": 6547092, - "command_line": "/tmp/cpython_venv_fu7okc4n/bin/memray run --output benchmark_results/6a16b3c440cf9ecabecd3e90f44310e3b0765780/string_operations.bin /tmp/benchmarks_66uqwybi/string_operations.py", - "pid": 3341781, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": false, - "trace_python_allocators": false, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations.bin b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations.bin deleted file mode 100644 index 5dbb58e..0000000 Binary files a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations_flamegraph.html b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations_flamegraph.html deleted file mode 100644 index e5cd639..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations_stats.json b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations_stats.json deleted file mode 100644 index 0c752d1..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:35:48.878000+01:00", - "end_time": "2025-06-21 17:35:50.636000+01:00", - "total_allocations": 6006622, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_mkv2yegp/bin/memray run --native --trace-python-allocators --output benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/dict_operations.bin /tmp/benchmarks_t46y60iw/dict_operations.py", - "pid": 3610376, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations.bin b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations.bin deleted file mode 100644 index 29bd778..0000000 Binary files a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations.bin and /dev/null differ diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations_flamegraph.html b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations_flamegraph.html deleted file mode 100644 index c3faed3..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations_stats.json b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations_stats.json deleted file mode 100644 index 51b7df9..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_t46y60iw/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_t46y60iw/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:35:44.647000+01:00", - "end_time": "2025-06-21 17:35:45.696000+01:00", - "total_allocations": 4003395, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_mkv2yegp/bin/memray run --native --trace-python-allocators --output benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/list_operations.bin /tmp/benchmarks_t46y60iw/list_operations.py", - "pid": 3610309, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/metadata.json b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/metadata.json deleted file mode 100644 index e041e43..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-647-gd08b4b2333d:d08b4b2333d, Jun 21 2025, 17:33:04) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_mkv2yegp", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_mkv2yegp", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_mkv2yegp", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_mkv2yegp", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "7c4361564c3881946a5eca677607b4ffec0a566d", - "short_hexsha": "7c436156", - "author": "B\u00e9n\u00e9dikt Tran", - "author_email": "10796600+picnixz@users.noreply.github.com", - "authored_date": "2025-06-21T11:43:30+02:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-21T09:43:30+00:00", - "message": "gh-135759: consistently reject negative sizes in SHAKE digests (#135767)\n\nPassing a negative digest length to `_hashilb.HASHXOF.[hex]digest()` now\nraises a ValueError instead of a MemoryError or a SystemError. This makes\nthe behavior consistent with that of `_sha3.shake_{128,256}.[hex]digest`." - } -} \ No newline at end of file diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations.bin b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations.bin deleted file mode 100644 index 5e07c15..0000000 Binary files a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations.bin and /dev/null differ diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations_flamegraph.html b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations_flamegraph.html deleted file mode 100644 index 11a960c..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations_stats.json b/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations_stats.json deleted file mode 100644 index f0b34f5..0000000 --- a/benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_t46y60iw/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_t46y60iw/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_t46y60iw/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_t46y60iw/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:35:42.186000+01:00", - "end_time": "2025-06-21 17:35:42.466000+01:00", - "total_allocations": 483052, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_mkv2yegp/bin/memray run --native --trace-python-allocators --output benchmark_results/7c4361564c3881946a5eca677607b4ffec0a566d/string_operations.bin /tmp/benchmarks_t46y60iw/string_operations.py", - "pid": 3610291, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations.bin b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations.bin deleted file mode 100644 index 50878d6..0000000 Binary files a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations_flamegraph.html b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations_flamegraph.html deleted file mode 100644 index 50d2592..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations_stats.json b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations_stats.json deleted file mode 100644 index f2438c9..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:38:39.163000+01:00", - "end_time": "2025-06-21 17:38:41.046000+01:00", - "total_allocations": 6006618, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv__n75tt21/bin/memray run --native --trace-python-allocators --output benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/dict_operations.bin /tmp/benchmarks_vi2rf_ev/dict_operations.py", - "pid": 3666737, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations.bin b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations.bin deleted file mode 100644 index f7ce131..0000000 Binary files a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations.bin and /dev/null differ diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations_flamegraph.html b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations_flamegraph.html deleted file mode 100644 index c7cc298..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations_stats.json b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations_stats.json deleted file mode 100644 index f9efc8f..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_vi2rf_ev/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_vi2rf_ev/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:38:35.104000+01:00", - "end_time": "2025-06-21 17:38:36.169000+01:00", - "total_allocations": 4003389, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv__n75tt21/bin/memray run --native --trace-python-allocators --output benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/list_operations.bin /tmp/benchmarks_vi2rf_ev/list_operations.py", - "pid": 3666567, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/metadata.json b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/metadata.json deleted file mode 100644 index cc2443a..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-647-gd08b4b2333d:d08b4b2333d, Jun 21 2025, 17:33:04) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv__n75tt21", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv__n75tt21", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv__n75tt21", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv__n75tt21", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "8ca1e4d846e868a20834cf442c48a3648b558bbe", - "short_hexsha": "8ca1e4d8", - "author": "sobolevn", - "author_email": "mail@sobolevn.me", - "authored_date": "2025-06-21T10:56:14+03:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-21T10:56:14+03:00", - "message": "gh-135645: Added `supports_isolated_interpreters` to `sys.implementation` (#135667)\n\nCo-authored-by: Eric Snow " - } -} \ No newline at end of file diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations.bin b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations.bin deleted file mode 100644 index d29654c..0000000 Binary files a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations.bin and /dev/null differ diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations_flamegraph.html b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations_flamegraph.html deleted file mode 100644 index 7509a89..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations_stats.json b/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations_stats.json deleted file mode 100644 index 2bc9e49..0000000 --- a/benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_vi2rf_ev/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_vi2rf_ev/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_vi2rf_ev/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_vi2rf_ev/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:38:32.905000+01:00", - "end_time": "2025-06-21 17:38:33.083000+01:00", - "total_allocations": 483054, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv__n75tt21/bin/memray run --native --trace-python-allocators --output benchmark_results/8ca1e4d846e868a20834cf442c48a3648b558bbe/string_operations.bin /tmp/benchmarks_vi2rf_ev/string_operations.py", - "pid": 3666546, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations.bin b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations.bin deleted file mode 100644 index 8b9bf53..0000000 Binary files a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations_flamegraph.html b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations_flamegraph.html deleted file mode 100644 index cf0e735..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations_stats.json b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations_stats.json deleted file mode 100644 index 3897e54..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:44:20.567000+01:00", - "end_time": "2025-06-21 17:44:22.279000+01:00", - "total_allocations": 6006615, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_dtg9v94v/bin/memray run --native --trace-python-allocators --output benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/dict_operations.bin /tmp/benchmarks_0hinqs2g/dict_operations.py", - "pid": 3786307, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations.bin b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations.bin deleted file mode 100644 index e773a89..0000000 Binary files a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations.bin and /dev/null differ diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations_flamegraph.html b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations_flamegraph.html deleted file mode 100644 index bf95105..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations_stats.json b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations_stats.json deleted file mode 100644 index c181298..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_0hinqs2g/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_0hinqs2g/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:44:16.261000+01:00", - "end_time": "2025-06-21 17:44:17.380000+01:00", - "total_allocations": 4003391, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_dtg9v94v/bin/memray run --native --trace-python-allocators --output benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/list_operations.bin /tmp/benchmarks_0hinqs2g/list_operations.py", - "pid": 3786260, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/metadata.json b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/metadata.json deleted file mode 100644 index e72cb13..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-643-gf4911258a80:f4911258a80, Jun 21 2025, 17:38:47) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_dtg9v94v", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_dtg9v94v", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_dtg9v94v", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_dtg9v94v", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "a8ec511900d0d84cffbb4ee6419c9a790d131129", - "short_hexsha": "a8ec5119", - "author": "Kumar Aditya", - "author_email": "kumaraditya@python.org", - "authored_date": "2025-06-20T22:43:23+05:30", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-20T22:43:23+05:30", - "message": "gh-135380: enhance critical section held assertions (#135381)\n\n" - } -} \ No newline at end of file diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations.bin b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations.bin deleted file mode 100644 index 4ab8b09..0000000 Binary files a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations.bin and /dev/null differ diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations_flamegraph.html b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations_flamegraph.html deleted file mode 100644 index 57c35d4..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations_stats.json b/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations_stats.json deleted file mode 100644 index 87a6f3c..0000000 --- a/benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_0hinqs2g/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_0hinqs2g/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_0hinqs2g/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_0hinqs2g/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:44:14.105000+01:00", - "end_time": "2025-06-21 17:44:14.284000+01:00", - "total_allocations": 483051, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_dtg9v94v/bin/memray run --native --trace-python-allocators --output benchmark_results/a8ec511900d0d84cffbb4ee6419c9a790d131129/string_operations.bin /tmp/benchmarks_0hinqs2g/string_operations.py", - "pid": 3786240, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations.bin b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations.bin deleted file mode 100644 index b5bfef1..0000000 Binary files a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations_flamegraph.html b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations_flamegraph.html deleted file mode 100644 index 505cce4..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations_stats.json b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations_stats.json deleted file mode 100644 index 373a77c..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:42:55.654000+01:00", - "end_time": "2025-06-21 17:42:57.294000+01:00", - "total_allocations": 6006618, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_sxstfubp/bin/memray run --native --trace-python-allocators --output benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/dict_operations.bin /tmp/benchmarks_vco_qi29/dict_operations.py", - "pid": 3761524, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations.bin b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations.bin deleted file mode 100644 index 8067746..0000000 Binary files a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations.bin and /dev/null differ diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations_flamegraph.html b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations_flamegraph.html deleted file mode 100644 index 42659e5..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations_stats.json b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations_stats.json deleted file mode 100644 index bd72b47..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_vco_qi29/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_vco_qi29/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:42:51.284000+01:00", - "end_time": "2025-06-21 17:42:52.322000+01:00", - "total_allocations": 4003394, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_sxstfubp/bin/memray run --native --trace-python-allocators --output benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/list_operations.bin /tmp/benchmarks_vco_qi29/list_operations.py", - "pid": 3754601, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/metadata.json b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/metadata.json deleted file mode 100644 index f611851..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-643-gf4911258a80:f4911258a80, Jun 21 2025, 17:38:47) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_sxstfubp", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_sxstfubp", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_sxstfubp", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_sxstfubp", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f", - "short_hexsha": "c5ea8e8e", - "author": "Eric Snow", - "author_email": "ericsnowcurrently@gmail.com", - "authored_date": "2025-06-20T14:26:32-06:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-20T14:26:32-06:00", - "message": "gh-135698: Fix Cross-interpreter Queue.full() With Negative/Default max_size (gh-135724)\n\nWe weren't handling non-positive maxsize values (including the default) properly\nin Queue.full(). This change fixes that and adjusts an associated assert." - } -} \ No newline at end of file diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations.bin b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations.bin deleted file mode 100644 index d051765..0000000 Binary files a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations.bin and /dev/null differ diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations_flamegraph.html b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations_flamegraph.html deleted file mode 100644 index 2124053..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations_stats.json b/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations_stats.json deleted file mode 100644 index ab5981d..0000000 --- a/benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_vco_qi29/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_vco_qi29/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_vco_qi29/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_vco_qi29/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:42:49.013000+01:00", - "end_time": "2025-06-21 17:42:49.198000+01:00", - "total_allocations": 483050, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_sxstfubp/bin/memray run --native --trace-python-allocators --output benchmark_results/c5ea8e8e8fc725f39ed23ff6259b3cc157a0785f/string_operations.bin /tmp/benchmarks_vco_qi29/string_operations.py", - "pid": 3754567, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations.bin b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations.bin deleted file mode 100644 index 6fbf734..0000000 Binary files a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations_flamegraph.html b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations_flamegraph.html deleted file mode 100644 index 82a23a9..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations_stats.json b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations_stats.json deleted file mode 100644 index 7736395..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:34:23.589000+01:00", - "end_time": "2025-06-21 17:34:25.347000+01:00", - "total_allocations": 6006615, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_tw2ftadb/bin/memray run --native --trace-python-allocators --output benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/dict_operations.bin /tmp/benchmarks_k5yxcsog/dict_operations.py", - "pid": 3578891, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations.bin b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations.bin deleted file mode 100644 index 3a7ac28..0000000 Binary files a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations.bin and /dev/null differ diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations_flamegraph.html b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations_flamegraph.html deleted file mode 100644 index 62c328c..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations_stats.json b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations_stats.json deleted file mode 100644 index 7e718c9..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_k5yxcsog/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_k5yxcsog/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:34:19.249000+01:00", - "end_time": "2025-06-21 17:34:20.385000+01:00", - "total_allocations": 4003391, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_tw2ftadb/bin/memray run --native --trace-python-allocators --output benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/list_operations.bin /tmp/benchmarks_k5yxcsog/list_operations.py", - "pid": 3578816, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/metadata.json b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/metadata.json deleted file mode 100644 index 2f6b33b..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-647-gd08b4b2333d:d08b4b2333d, Jun 21 2025, 17:33:04) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_tw2ftadb", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_tw2ftadb", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_tw2ftadb", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_tw2ftadb", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "d08b4b2333d28403633f9ceb86a3a5fab011d8a1", - "short_hexsha": "d08b4b23", - "author": "B\u00e9n\u00e9dikt Tran", - "author_email": "10796600+picnixz@users.noreply.github.com", - "authored_date": "2025-06-21T14:32:00+02:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-21T14:32:00+02:00", - "message": "gh-135532: optimize calls to `PyMem_Malloc` in SHAKE digest computation (#135744)\n\n- Add a fast path when the digest length is 0 to avoid calling useless functions.\n- Directly allocate via `PyBytes_FromStringAndSize(NULL, length)` when possible." - } -} \ No newline at end of file diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations.bin b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations.bin deleted file mode 100644 index 5fb4d07..0000000 Binary files a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations.bin and /dev/null differ diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations_flamegraph.html b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations_flamegraph.html deleted file mode 100644 index da34aa2..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations_stats.json b/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations_stats.json deleted file mode 100644 index 9bf65d5..0000000 --- a/benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_k5yxcsog/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_k5yxcsog/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_k5yxcsog/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_k5yxcsog/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:34:17.161000+01:00", - "end_time": "2025-06-21 17:34:17.340000+01:00", - "total_allocations": 483052, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_tw2ftadb/bin/memray run --native --trace-python-allocators --output benchmark_results/d08b4b2333d28403633f9ceb86a3a5fab011d8a1/string_operations.bin /tmp/benchmarks_k5yxcsog/string_operations.py", - "pid": 3578781, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations.bin b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations.bin deleted file mode 100644 index 4fb24be..0000000 Binary files a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations.bin and /dev/null differ diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations_flamegraph.html b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations_flamegraph.html deleted file mode 100644 index e43d09b..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations_stats.json b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations_stats.json deleted file mode 100644 index 1b330cf..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 3003472, - "total_bytes_allocated": 314234738, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 4, - "count": 11 - }, - { - "min_bytes": 5, - "max_bytes": 32, - "count": 2034406 - }, - { - "min_bytes": 33, - "max_bytes": 192, - "count": 968540 - }, - { - "min_bytes": 193, - "max_bytes": 1118, - "count": 425 - }, - { - "min_bytes": 1119, - "max_bytes": 6475, - "count": 31 - }, - { - "min_bytes": 6476, - "max_bytes": 37461, - "count": 25 - }, - { - "min_bytes": 37462, - "max_bytes": 216700, - "count": 11 - }, - { - "min_bytes": 216701, - "max_bytes": 1253509, - "count": 6 - }, - { - "min_bytes": 1253510, - "max_bytes": 7250936, - "count": 9 - }, - { - "min_bytes": 7250937, - "max_bytes": 41943064, - "count": 8 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 3002911, - "PYMALLOC_CALLOC": 396, - "PYMALLOC_REALLOC": 164, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:10", - "size": 123492808 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:7", - "size": 115751832 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:13", - "size": 41812048 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:6", - "size": 31991776 - }, - { - "location": "_get_code_from_file::259", - "size": 188013 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:10", - "count": 1000016 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:7", - "count": 999920 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:6", - "count": 999743 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/dict_operations.py:16", - "count": 1624 - }, - { - "location": "_get_code_from_file::259", - "count": 815 - } - ], - "metadata": { - "start_time": "2025-06-21 17:40:06.495000+01:00", - "end_time": "2025-06-21 17:40:08.179000+01:00", - "total_allocations": 6006619, - "total_frames": 243, - "peak_memory": 219120560, - "command_line": "/tmp/cpython_venv_5n87cp17/bin/memray run --native --trace-python-allocators --output benchmark_results/f4911258a80409cb641f13578137475204ab43b5/dict_operations.bin /tmp/benchmarks_yg0a9i3m/dict_operations.py", - "pid": 3698483, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations.bin b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations.bin deleted file mode 100644 index d255ed6..0000000 Binary files a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations.bin and /dev/null differ diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations_flamegraph.html b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations_flamegraph.html deleted file mode 100644 index 0cec391..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations_stats.json b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations_stats.json deleted file mode 100644 index 2ed26a3..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 2001858, - "total_bytes_allocated": 254507553, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 3, - "count": 11 - }, - { - "min_bytes": 4, - "max_bytes": 23, - "count": 208 - }, - { - "min_bytes": 24, - "max_bytes": 118, - "count": 2000708 - }, - { - "min_bytes": 119, - "max_bytes": 588, - "count": 611 - }, - { - "min_bytes": 589, - "max_bytes": 2905, - "count": 101 - }, - { - "min_bytes": 2906, - "max_bytes": 14323, - "count": 53 - }, - { - "min_bytes": 14324, - "max_bytes": 70590, - "count": 45 - }, - { - "min_bytes": 70591, - "max_bytes": 347880, - "count": 43 - }, - { - "min_bytes": 347881, - "max_bytes": 1714388, - "count": 42 - }, - { - "min_bytes": 1714389, - "max_bytes": 8448672, - "count": 36 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 2001199, - "PYMALLOC_REALLOC": 406, - "PYMALLOC_CALLOC": 252, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": "main:/tmp/benchmarks_yg0a9i3m/list_operations.py:10", - "size": 108008896 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/list_operations.py:7", - "size": 76009440 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/list_operations.py:13", - "size": 37479200 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/list_operations.py:6", - "size": 31989152 - }, - { - "location": "_get_code_from_file::259", - "size": 139832 - } - ], - "top_allocations_by_count": [ - { - "location": "main:/tmp/benchmarks_yg0a9i3m/list_operations.py:10", - "count": 1000069 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/list_operations.py:6", - "count": 999661 - }, - { - "location": "_get_code_from_file::259", - "count": 624 - }, - { - "location": "namedtuple:/tmp/cpython/Lib/collections/__init__.py:447", - "count": 255 - }, - { - "location": "_compile_bytecode::514", - "count": 248 - } - ], - "metadata": { - "start_time": "2025-06-21 17:40:02+01:00", - "end_time": "2025-06-21 17:40:03.031000+01:00", - "total_allocations": 4003390, - "total_frames": 243, - "peak_memory": 85111751, - "command_line": "/tmp/cpython_venv_5n87cp17/bin/memray run --native --trace-python-allocators --output benchmark_results/f4911258a80409cb641f13578137475204ab43b5/list_operations.bin /tmp/benchmarks_yg0a9i3m/list_operations.py", - "pid": 3698441, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/metadata.json b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/metadata.json deleted file mode 100644 index 82200bb..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/metadata.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "version": { - "full": "3.15.0a0 (tags/v3.14.0b1-643-gf4911258a80:f4911258a80, Jun 21 2025, 17:38:47) [GCC 15.1.1 20250425]", - "major": 3, - "minor": 15, - "micro": 0, - "releaselevel": "alpha", - "serial": 0, - "hexversion": 51314848 - }, - "configure_vars": { - "ABIFLAGS": "", - "ABI_THREAD": "", - "AC_APPLE_UNIVERSAL_BUILD": 0, - "AIX_BUILDDATE": 0, - "AIX_GENUINE_CPLUSPLUS": 0, - "ALIGNOF_LONG": 8, - "ALIGNOF_MAX_ALIGN_T": 16, - "ALIGNOF_SIZE_T": 8, - "ALT_SOABI": 0, - "ANDROID_API_LEVEL": 0, - "APP_STORE_COMPLIANCE_PATCH": "", - "AR": "ar", - "ARFLAGS": "rcs", - "BASECFLAGS": "-fno-strict-overflow -Wsign-compare", - "BASECPPFLAGS": "", - "BASEMODLIBS": "", - "BINDIR": "/usr/local/bin", - "BINLIBDEST": "/usr/local/lib/python3.15", - "BLDLIBRARY": "libpython3.15.a", - "BLDSHARED": "gcc -shared", - "BOOTSTRAP_HEADERS": "\\", - "BUILDEXE": "", - "BUILDPYTHON": "python", - "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu", - "BUILD_SCRIPTS_DIR": "build/scripts-3.15", - "BYTESTR_DEPS": "\\", - "CC": "gcc", - "CCSHARED": "-fPIC", - "CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "CFLAGSFORSHARED": "", - "CFLAGS_ALIASING": "-fno-strict-aliasing", - "CFLAGS_NODIST": "", - "CODECS_COMMON_HEADERS": "./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "COMPILEALL_OPTS": "-j0", - "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "CONFIGURE_CFLAGS": "", - "CONFIGURE_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden", - "CONFIGURE_CPPFLAGS": "", - "CONFIGURE_LDFLAGS": "", - "CONFIGURE_LDFLAGS_NODIST": "", - "CONFIGURE_LDFLAGS_NOLTO": "", - "CONFIG_ARGS": "'-C'", - "CONFINCLUDEDIR": "/usr/local/include", - "CONFINCLUDEPY": "/usr/local/include/python3.15", - "COREPYTHONPATH": "", - "COVERAGE_INFO": "/tmp/cpython/coverage.info", - "COVERAGE_LCOV_OPTIONS": "--rc lcov_branch_coverage=1", - "COVERAGE_REPORT": "/tmp/cpython/lcov-report", - "COVERAGE_REPORT_OPTIONS": "--rc lcov_branch_coverage=1 --branch-coverage --title \"CPython 3.15 LCOV report [commit $(shell git --git-dir ./.git rev-parse --short HEAD)]\"", - "CPPFLAGS": "-I. -I./Include", - "CXX": "g++", - "DESTDIRS": "/usr/local /usr/local/lib /usr/local/lib/python3.15 /usr/local/lib/python3.15/lib-dynload", - "DESTLIB": "/usr/local/lib/python3.15", - "DESTPATH": "", - "DESTSHARED": "/usr/local/lib/python3.15/lib-dynload", - "DFLAGS": "", - "DIRMODE": 755, - "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy", - "DISTDIRS": "Include Lib Misc Ext-dummy", - "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in", - "DLINCLDIR": ".", - "DLLLIBRARY": "", - "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0, - "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0, - "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1, - "DSYMUTIL": "", - "DSYMUTIL_PATH": "", - "DTRACE": "", - "DTRACE_DEPS": "\\", - "DTRACE_HEADERS": "", - "DTRACE_OBJS": "", - "DYNLOADFILE": "dynload_shlib.o", - "ENABLE_IPV6": 1, - "ENSUREPIP": "upgrade", - "EXE": "", - "EXEMODE": 755, - "EXENAME": "/usr/local/bin/python3.15", - "EXPORTSFROM": "", - "EXPORTSYMS": "", - "EXTRATESTOPTS": "", - "EXTRA_CFLAGS": "", - "EXT_SUFFIX": ".cpython-315-x86_64-linux-gnu.so", - "FILEMODE": 644, - "FREEZE_MODULE": "./_bootstrap_python ./Programs/_freeze_module.py", - "FREEZE_MODULE_BOOTSTRAP": "./Programs/_freeze_module", - "FREEZE_MODULE_BOOTSTRAP_DEPS": "Programs/_freeze_module", - "FREEZE_MODULE_DEPS": "_bootstrap_python ./Programs/_freeze_module.py", - "FROZEN_FILES_IN": "\\", - "FROZEN_FILES_OUT": "\\", - "GETPGRP_HAVE_ARG": 0, - "GITBRANCH": "git --git-dir ./.git name-rev --name-only HEAD", - "GITTAG": "git --git-dir ./.git describe --all --always --dirty", - "GITVERSION": "git --git-dir ./.git rev-parse --short HEAD", - "GNULD": "yes", - "HACL_CAN_COMPILE_SIMD128": 1, - "HACL_CAN_COMPILE_SIMD256": 1, - "HAVE_ACCEPT": 1, - "HAVE_ACCEPT4": 1, - "HAVE_ACOSH": 1, - "HAVE_ADDRINFO": 1, - "HAVE_ALARM": 1, - "HAVE_ALIGNED_REQUIRED": 0, - "HAVE_ALLOCA_H": 1, - "HAVE_ALTZONE": 0, - "HAVE_ASINH": 1, - "HAVE_ASM_TYPES_H": 1, - "HAVE_ATANH": 1, - "HAVE_BACKTRACE": 1, - "HAVE_BIND": 1, - "HAVE_BIND_TEXTDOMAIN_CODESET": 1, - "HAVE_BLUETOOTH_BLUETOOTH_H": 1, - "HAVE_BLUETOOTH_H": 0, - "HAVE_BROKEN_MBSTOWCS": 0, - "HAVE_BROKEN_NICE": 0, - "HAVE_BROKEN_PIPE_BUF": 0, - "HAVE_BROKEN_POLL": 0, - "HAVE_BROKEN_POSIX_SEMAPHORES": 0, - "HAVE_BROKEN_PTHREAD_SIGMASK": 0, - "HAVE_BROKEN_SEM_GETVALUE": 0, - "HAVE_BROKEN_UNSETENV": 0, - "HAVE_BUILTIN_ATOMIC": 1, - "HAVE_BZLIB_H": 0, - "HAVE_CHFLAGS": 0, - "HAVE_CHMOD": 1, - "HAVE_CHOWN": 1, - "HAVE_CHROOT": 1, - "HAVE_CLOCK": 1, - "HAVE_CLOCK_GETRES": 1, - "HAVE_CLOCK_GETTIME": 1, - "HAVE_CLOCK_NANOSLEEP": 1, - "HAVE_CLOCK_SETTIME": 1, - "HAVE_CLOCK_T": 1, - "HAVE_CLOSEFROM": 1, - "HAVE_CLOSE_RANGE": 1, - "HAVE_COMPUTED_GOTOS": 1, - "HAVE_CONFSTR": 1, - "HAVE_CONIO_H": 0, - "HAVE_CONNECT": 1, - "HAVE_COPY_FILE_RANGE": 1, - "HAVE_CTERMID": 1, - "HAVE_CTERMID_R": 0, - "HAVE_CURSES_FILTER": 1, - "HAVE_CURSES_H": 1, - "HAVE_CURSES_HAS_KEY": 1, - "HAVE_CURSES_IMMEDOK": 1, - "HAVE_CURSES_IS_PAD": 1, - "HAVE_CURSES_IS_TERM_RESIZED": 1, - "HAVE_CURSES_RESIZETERM": 1, - "HAVE_CURSES_RESIZE_TERM": 1, - "HAVE_CURSES_SYNCOK": 1, - "HAVE_CURSES_TYPEAHEAD": 1, - "HAVE_CURSES_USE_ENV": 1, - "HAVE_CURSES_WCHGAT": 1, - "HAVE_DB_H": 1, - "HAVE_DECL_RTLD_DEEPBIND": 1, - "HAVE_DECL_RTLD_GLOBAL": 1, - "HAVE_DECL_RTLD_LAZY": 1, - "HAVE_DECL_RTLD_LOCAL": 1, - "HAVE_DECL_RTLD_MEMBER": 0, - "HAVE_DECL_RTLD_NODELETE": 1, - "HAVE_DECL_RTLD_NOLOAD": 1, - "HAVE_DECL_RTLD_NOW": 1, - "HAVE_DECL_TZNAME": 0, - "HAVE_DECL_UT_NAMESIZE": 1, - "HAVE_DEVICE_MACROS": 1, - "HAVE_DEV_PTC": 0, - "HAVE_DEV_PTMX": 1, - "HAVE_DIRECT_H": 0, - "HAVE_DIRENT_D_TYPE": 1, - "HAVE_DIRENT_H": 1, - "HAVE_DIRFD": 1, - "HAVE_DLADDR": 1, - "HAVE_DLADDR1": 1, - "HAVE_DLFCN_H": 1, - "HAVE_DLOPEN": 1, - "HAVE_DUP": 1, - "HAVE_DUP2": 1, - "HAVE_DUP3": 1, - "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0, - "HAVE_DYNAMIC_LOADING": 1, - "HAVE_EDITLINE_READLINE_H": 0, - "HAVE_ENDIAN_H": 1, - "HAVE_EPOLL": 1, - "HAVE_EPOLL_CREATE1": 1, - "HAVE_ERF": 1, - "HAVE_ERFC": 1, - "HAVE_ERRNO_H": 1, - "HAVE_EVENTFD": 1, - "HAVE_EXECINFO_H": 1, - "HAVE_EXECV": 1, - "HAVE_EXPLICIT_BZERO": 1, - "HAVE_EXPLICIT_MEMSET": 0, - "HAVE_EXPM1": 1, - "HAVE_FACCESSAT": 1, - "HAVE_FCHDIR": 1, - "HAVE_FCHMOD": 1, - "HAVE_FCHMODAT": 1, - "HAVE_FCHOWN": 1, - "HAVE_FCHOWNAT": 1, - "HAVE_FCNTL_H": 1, - "HAVE_FDATASYNC": 1, - "HAVE_FDOPENDIR": 1, - "HAVE_FDWALK": 0, - "HAVE_FEXECVE": 1, - "HAVE_FFI_CLOSURE_ALLOC": 1, - "HAVE_FFI_PREP_CIF_VAR": 1, - "HAVE_FFI_PREP_CLOSURE_LOC": 1, - "HAVE_FLOCK": 1, - "HAVE_FORK": 1, - "HAVE_FORK1": 0, - "HAVE_FORKPTY": 1, - "HAVE_FPATHCONF": 1, - "HAVE_FSEEK64": 0, - "HAVE_FSEEKO": 1, - "HAVE_FSTATAT": 1, - "HAVE_FSTATVFS": 1, - "HAVE_FSYNC": 1, - "HAVE_FTELL64": 0, - "HAVE_FTELLO": 1, - "HAVE_FTIME": 1, - "HAVE_FTRUNCATE": 1, - "HAVE_FUTIMENS": 1, - "HAVE_FUTIMES": 1, - "HAVE_FUTIMESAT": 1, - "HAVE_GAI_STRERROR": 1, - "HAVE_GCC_ASM_FOR_MC68881": 0, - "HAVE_GCC_ASM_FOR_X64": 1, - "HAVE_GCC_ASM_FOR_X87": 1, - "HAVE_GCC_UINT128_T": 1, - "HAVE_GDBM_DASH_NDBM_H": 0, - "HAVE_GDBM_H": 1, - "HAVE_GDBM_NDBM_H": 0, - "HAVE_GETADDRINFO": 1, - "HAVE_GETC_UNLOCKED": 1, - "HAVE_GETEGID": 1, - "HAVE_GETENTROPY": 1, - "HAVE_GETEUID": 1, - "HAVE_GETGID": 1, - "HAVE_GETGRENT": 1, - "HAVE_GETGRGID": 1, - "HAVE_GETGRGID_R": 1, - "HAVE_GETGRNAM_R": 1, - "HAVE_GETGROUPLIST": 1, - "HAVE_GETGROUPS": 1, - "HAVE_GETHOSTBYADDR": 1, - "HAVE_GETHOSTBYNAME": 1, - "HAVE_GETHOSTBYNAME_R": 1, - "HAVE_GETHOSTBYNAME_R_3_ARG": 0, - "HAVE_GETHOSTBYNAME_R_5_ARG": 0, - "HAVE_GETHOSTBYNAME_R_6_ARG": 1, - "HAVE_GETHOSTNAME": 1, - "HAVE_GETITIMER": 1, - "HAVE_GETLOADAVG": 1, - "HAVE_GETLOGIN": 1, - "HAVE_GETLOGIN_R": 1, - "HAVE_GETNAMEINFO": 1, - "HAVE_GETPAGESIZE": 1, - "HAVE_GETPEERNAME": 1, - "HAVE_GETPGID": 1, - "HAVE_GETPGRP": 1, - "HAVE_GETPID": 1, - "HAVE_GETPPID": 1, - "HAVE_GETPRIORITY": 1, - "HAVE_GETPROTOBYNAME": 1, - "HAVE_GETPWENT": 1, - "HAVE_GETPWNAM_R": 1, - "HAVE_GETPWUID": 1, - "HAVE_GETPWUID_R": 1, - "HAVE_GETRANDOM": 1, - "HAVE_GETRANDOM_SYSCALL": 1, - "HAVE_GETRESGID": 1, - "HAVE_GETRESUID": 1, - "HAVE_GETRUSAGE": 1, - "HAVE_GETSERVBYNAME": 1, - "HAVE_GETSERVBYPORT": 1, - "HAVE_GETSID": 1, - "HAVE_GETSOCKNAME": 1, - "HAVE_GETSPENT": 1, - "HAVE_GETSPNAM": 1, - "HAVE_GETUID": 1, - "HAVE_GETWD": 1, - "HAVE_GLIBC_MEMMOVE_BUG": 0, - "HAVE_GRANTPT": 1, - "HAVE_GRP_H": 1, - "HAVE_HSTRERROR": 1, - "HAVE_HTOLE64": 1, - "HAVE_IF_NAMEINDEX": 1, - "HAVE_INET_ATON": 1, - "HAVE_INET_NTOA": 1, - "HAVE_INET_PTON": 1, - "HAVE_INITGROUPS": 1, - "HAVE_INTTYPES_H": 1, - "HAVE_IO_H": 0, - "HAVE_IPA_PURE_CONST_BUG": 0, - "HAVE_KILL": 1, - "HAVE_KILLPG": 1, - "HAVE_KQUEUE": 0, - "HAVE_LANGINFO_H": 1, - "HAVE_LARGEFILE_SUPPORT": 0, - "HAVE_LCHFLAGS": 0, - "HAVE_LCHMOD": 0, - "HAVE_LCHOWN": 1, - "HAVE_LIBDB": 1, - "HAVE_LIBDL": 1, - "HAVE_LIBDLD": 0, - "HAVE_LIBIEEE": 0, - "HAVE_LIBINTL_H": 1, - "HAVE_LIBSENDFILE": 0, - "HAVE_LIBSQLITE3": 1, - "HAVE_LIBUTIL_H": 0, - "HAVE_LINK": 1, - "HAVE_LINKAT": 1, - "HAVE_LINK_H": 1, - "HAVE_LINUX_AUXVEC_H": 1, - "HAVE_LINUX_CAN_BCM_H": 1, - "HAVE_LINUX_CAN_H": 1, - "HAVE_LINUX_CAN_J1939_H": 1, - "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1, - "HAVE_LINUX_CAN_RAW_H": 1, - "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1, - "HAVE_LINUX_FS_H": 1, - "HAVE_LINUX_LIMITS_H": 1, - "HAVE_LINUX_MEMFD_H": 1, - "HAVE_LINUX_NETFILTER_IPV4_H": 1, - "HAVE_LINUX_NETLINK_H": 1, - "HAVE_LINUX_QRTR_H": 1, - "HAVE_LINUX_RANDOM_H": 1, - "HAVE_LINUX_SCHED_H": 1, - "HAVE_LINUX_SOUNDCARD_H": 1, - "HAVE_LINUX_TIPC_H": 1, - "HAVE_LINUX_VM_SOCKETS_H": 1, - "HAVE_LINUX_WAIT_H": 1, - "HAVE_LISTEN": 1, - "HAVE_LOCKF": 1, - "HAVE_LOG1P": 1, - "HAVE_LOG2": 1, - "HAVE_LOGIN_TTY": 1, - "HAVE_LONG_DOUBLE": 1, - "HAVE_LSTAT": 1, - "HAVE_LUTIMES": 1, - "HAVE_LZMA_H": 0, - "HAVE_MADVISE": 1, - "HAVE_MAKEDEV": 1, - "HAVE_MAXLOGNAME": 0, - "HAVE_MBRTOWC": 1, - "HAVE_MEMFD_CREATE": 1, - "HAVE_MEMRCHR": 1, - "HAVE_MINIX_CONFIG_H": 0, - "HAVE_MKDIRAT": 1, - "HAVE_MKFIFO": 1, - "HAVE_MKFIFOAT": 1, - "HAVE_MKNOD": 1, - "HAVE_MKNODAT": 1, - "HAVE_MKTIME": 1, - "HAVE_MMAP": 1, - "HAVE_MREMAP": 1, - "HAVE_NANOSLEEP": 1, - "HAVE_NCURSES": 0, - "HAVE_NCURSESW": 1, - "HAVE_NCURSESW_CURSES_H": 0, - "HAVE_NCURSESW_NCURSES_H": 0, - "HAVE_NCURSESW_PANEL_H": 0, - "HAVE_NCURSES_CURSES_H": 0, - "HAVE_NCURSES_H": 1, - "HAVE_NCURSES_NCURSES_H": 0, - "HAVE_NCURSES_PANEL_H": 0, - "HAVE_NDBM_H": 1, - "HAVE_NDIR_H": 0, - "HAVE_NETCAN_CAN_H": 0, - "HAVE_NETDB_H": 1, - "HAVE_NETINET_IN_H": 1, - "HAVE_NETLINK_NETLINK_H": 0, - "HAVE_NETPACKET_PACKET_H": 1, - "HAVE_NET_ETHERNET_H": 1, - "HAVE_NET_IF_H": 1, - "HAVE_NICE": 1, - "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0, - "HAVE_OPENAT": 1, - "HAVE_OPENDIR": 1, - "HAVE_OPENPTY": 1, - "HAVE_PANEL": 0, - "HAVE_PANELW": 1, - "HAVE_PANEL_H": 1, - "HAVE_PATHCONF": 1, - "HAVE_PAUSE": 1, - "HAVE_PIPE": 1, - "HAVE_PIPE2": 1, - "HAVE_PLOCK": 0, - "HAVE_POLL": 1, - "HAVE_POLL_H": 1, - "HAVE_POSIX_FADVISE": 1, - "HAVE_POSIX_FALLOCATE": 1, - "HAVE_POSIX_OPENPT": 1, - "HAVE_POSIX_SPAWN": 1, - "HAVE_POSIX_SPAWNP": 1, - "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP": 1, - "HAVE_PREAD": 1, - "HAVE_PREADV": 1, - "HAVE_PREADV2": 1, - "HAVE_PRLIMIT": 1, - "HAVE_PROCESS_H": 0, - "HAVE_PROCESS_VM_READV": 1, - "HAVE_PROTOTYPES": 1, - "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1, - "HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP": 0, - "HAVE_PTHREAD_DESTRUCTOR": 0, - "HAVE_PTHREAD_GETATTR_NP": 1, - "HAVE_PTHREAD_GETCPUCLOCKID": 1, - "HAVE_PTHREAD_GETNAME_NP": 1, - "HAVE_PTHREAD_GET_NAME_NP": 0, - "HAVE_PTHREAD_H": 1, - "HAVE_PTHREAD_INIT": 0, - "HAVE_PTHREAD_KILL": 1, - "HAVE_PTHREAD_SETNAME_NP": 1, - "HAVE_PTHREAD_SET_NAME_NP": 0, - "HAVE_PTHREAD_SIGMASK": 1, - "HAVE_PTHREAD_STUBS": 0, - "HAVE_PTSNAME": 1, - "HAVE_PTSNAME_R": 1, - "HAVE_PTY_H": 1, - "HAVE_PWRITE": 1, - "HAVE_PWRITEV": 1, - "HAVE_PWRITEV2": 1, - "HAVE_READLINE_READLINE_H": 0, - "HAVE_READLINK": 1, - "HAVE_READLINKAT": 1, - "HAVE_READV": 1, - "HAVE_REALPATH": 1, - "HAVE_RECVFROM": 1, - "HAVE_RENAMEAT": 1, - "HAVE_RL_APPEND_HISTORY": 1, - "HAVE_RL_CATCH_SIGNAL": 1, - "HAVE_RL_COMPDISP_FUNC_T": 1, - "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1, - "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1, - "HAVE_RL_COMPLETION_MATCHES": 1, - "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1, - "HAVE_RL_PRE_INPUT_HOOK": 1, - "HAVE_RL_RESIZE_TERMINAL": 1, - "HAVE_RTPSPAWN": 0, - "HAVE_SCHED_GET_PRIORITY_MAX": 1, - "HAVE_SCHED_H": 1, - "HAVE_SCHED_RR_GET_INTERVAL": 1, - "HAVE_SCHED_SETAFFINITY": 1, - "HAVE_SCHED_SETPARAM": 1, - "HAVE_SCHED_SETSCHEDULER": 1, - "HAVE_SEM_CLOCKWAIT": 1, - "HAVE_SEM_GETVALUE": 1, - "HAVE_SEM_OPEN": 1, - "HAVE_SEM_TIMEDWAIT": 1, - "HAVE_SEM_UNLINK": 1, - "HAVE_SENDFILE": 1, - "HAVE_SENDTO": 1, - "HAVE_SETEGID": 1, - "HAVE_SETEUID": 1, - "HAVE_SETGID": 1, - "HAVE_SETGROUPS": 1, - "HAVE_SETHOSTNAME": 1, - "HAVE_SETITIMER": 1, - "HAVE_SETJMP_H": 1, - "HAVE_SETLOCALE": 1, - "HAVE_SETNS": 1, - "HAVE_SETPGID": 1, - "HAVE_SETPGRP": 1, - "HAVE_SETPRIORITY": 1, - "HAVE_SETREGID": 1, - "HAVE_SETRESGID": 1, - "HAVE_SETRESUID": 1, - "HAVE_SETREUID": 1, - "HAVE_SETSID": 1, - "HAVE_SETSOCKOPT": 1, - "HAVE_SETUID": 1, - "HAVE_SETVBUF": 1, - "HAVE_SHADOW_H": 1, - "HAVE_SHM_OPEN": 1, - "HAVE_SHM_UNLINK": 1, - "HAVE_SHUTDOWN": 1, - "HAVE_SIGACTION": 1, - "HAVE_SIGALTSTACK": 1, - "HAVE_SIGFILLSET": 1, - "HAVE_SIGINFO_T_SI_BAND": 1, - "HAVE_SIGINTERRUPT": 1, - "HAVE_SIGNAL_H": 1, - "HAVE_SIGPENDING": 1, - "HAVE_SIGRELSE": 1, - "HAVE_SIGTIMEDWAIT": 1, - "HAVE_SIGWAIT": 1, - "HAVE_SIGWAITINFO": 1, - "HAVE_SNPRINTF": 1, - "HAVE_SOCKADDR_ALG": 1, - "HAVE_SOCKADDR_SA_LEN": 0, - "HAVE_SOCKADDR_STORAGE": 1, - "HAVE_SOCKET": 1, - "HAVE_SOCKETPAIR": 1, - "HAVE_SOCKLEN_T": 1, - "HAVE_SPAWN_H": 1, - "HAVE_SPLICE": 1, - "HAVE_SSIZE_T": 1, - "HAVE_STATVFS": 1, - "HAVE_STAT_TV_NSEC": 1, - "HAVE_STAT_TV_NSEC2": 0, - "HAVE_STDINT_H": 1, - "HAVE_STDIO_H": 1, - "HAVE_STDLIB_H": 1, - "HAVE_STD_ATOMIC": 1, - "HAVE_STRFTIME": 1, - "HAVE_STRINGS_H": 1, - "HAVE_STRING_H": 1, - "HAVE_STRLCPY": 1, - "HAVE_STROPTS_H": 0, - "HAVE_STRSIGNAL": 1, - "HAVE_STRUCT_PASSWD_PW_GECOS": 1, - "HAVE_STRUCT_PASSWD_PW_PASSWD": 1, - "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0, - "HAVE_STRUCT_STAT_ST_BLKSIZE": 1, - "HAVE_STRUCT_STAT_ST_BLOCKS": 1, - "HAVE_STRUCT_STAT_ST_FLAGS": 0, - "HAVE_STRUCT_STAT_ST_GEN": 0, - "HAVE_STRUCT_STAT_ST_RDEV": 1, - "HAVE_STRUCT_TM_TM_ZONE": 1, - "HAVE_SYMLINK": 1, - "HAVE_SYMLINKAT": 1, - "HAVE_SYNC": 1, - "HAVE_SYSCONF": 1, - "HAVE_SYSEXITS_H": 1, - "HAVE_SYSLOG_H": 1, - "HAVE_SYSTEM": 1, - "HAVE_SYS_AUDIOIO_H": 0, - "HAVE_SYS_AUXV_H": 1, - "HAVE_SYS_BSDTTY_H": 0, - "HAVE_SYS_DEVPOLL_H": 0, - "HAVE_SYS_DIR_H": 0, - "HAVE_SYS_ENDIAN_H": 0, - "HAVE_SYS_EPOLL_H": 1, - "HAVE_SYS_EVENTFD_H": 1, - "HAVE_SYS_EVENT_H": 0, - "HAVE_SYS_FILE_H": 1, - "HAVE_SYS_IOCTL_H": 1, - "HAVE_SYS_KERN_CONTROL_H": 0, - "HAVE_SYS_LOADAVG_H": 0, - "HAVE_SYS_LOCK_H": 0, - "HAVE_SYS_MEMFD_H": 0, - "HAVE_SYS_MKDEV_H": 0, - "HAVE_SYS_MMAN_H": 1, - "HAVE_SYS_MODEM_H": 0, - "HAVE_SYS_NDIR_H": 0, - "HAVE_SYS_PARAM_H": 1, - "HAVE_SYS_PIDFD_H": 1, - "HAVE_SYS_POLL_H": 1, - "HAVE_SYS_RANDOM_H": 1, - "HAVE_SYS_RESOURCE_H": 1, - "HAVE_SYS_SELECT_H": 1, - "HAVE_SYS_SENDFILE_H": 1, - "HAVE_SYS_SOCKET_H": 1, - "HAVE_SYS_SOUNDCARD_H": 1, - "HAVE_SYS_STATVFS_H": 1, - "HAVE_SYS_STAT_H": 1, - "HAVE_SYS_SYSCALL_H": 1, - "HAVE_SYS_SYSMACROS_H": 1, - "HAVE_SYS_SYS_DOMAIN_H": 0, - "HAVE_SYS_TERMIO_H": 0, - "HAVE_SYS_TIMERFD_H": 1, - "HAVE_SYS_TIMES_H": 1, - "HAVE_SYS_TIME_H": 1, - "HAVE_SYS_TYPES_H": 1, - "HAVE_SYS_UIO_H": 1, - "HAVE_SYS_UN_H": 1, - "HAVE_SYS_UTSNAME_H": 1, - "HAVE_SYS_WAIT_H": 1, - "HAVE_SYS_XATTR_H": 1, - "HAVE_TCGETPGRP": 1, - "HAVE_TCSETPGRP": 1, - "HAVE_TEMPNAM": 1, - "HAVE_TERMIOS_H": 1, - "HAVE_TERM_H": 1, - "HAVE_TIMEGM": 1, - "HAVE_TIMERFD_CREATE": 1, - "HAVE_TIMES": 1, - "HAVE_TMPFILE": 1, - "HAVE_TMPNAM": 1, - "HAVE_TMPNAM_R": 1, - "HAVE_TM_ZONE": 1, - "HAVE_TRUNCATE": 1, - "HAVE_TTYNAME_R": 1, - "HAVE_TZNAME": 0, - "HAVE_UMASK": 1, - "HAVE_UNAME": 1, - "HAVE_UNISTD_H": 1, - "HAVE_UNLINKAT": 1, - "HAVE_UNLOCKPT": 1, - "HAVE_UNSHARE": 1, - "HAVE_USABLE_WCHAR_T": 0, - "HAVE_UTIL_H": 0, - "HAVE_UTIMENSAT": 1, - "HAVE_UTIMES": 1, - "HAVE_UTIME_H": 1, - "HAVE_UTMP_H": 1, - "HAVE_UT_NAMESIZE": 1, - "HAVE_UUID_CREATE": 0, - "HAVE_UUID_ENC_BE": 0, - "HAVE_UUID_GENERATE_TIME_SAFE": 1, - "HAVE_UUID_GENERATE_TIME_SAFE_STABLE_MAC": 0, - "HAVE_UUID_H": 1, - "HAVE_UUID_UUID_H": 0, - "HAVE_VFORK": 1, - "HAVE_WAIT": 1, - "HAVE_WAIT3": 1, - "HAVE_WAIT4": 1, - "HAVE_WAITID": 1, - "HAVE_WAITPID": 1, - "HAVE_WCHAR_H": 1, - "HAVE_WCSCOLL": 1, - "HAVE_WCSFTIME": 1, - "HAVE_WCSXFRM": 1, - "HAVE_WMEMCMP": 1, - "HAVE_WORKING_TZSET": 1, - "HAVE_WRITEV": 1, - "HAVE_ZDICT_H": 0, - "HAVE_ZLIB_COPY": 1, - "HAVE_ZLIB_H": 0, - "HAVE_ZSTD_H": 0, - "HAVE__GETPTY": 0, - "HAVE___UINT128_T": 1, - "HOSTRUNNER": "", - "HOST_GNU_TYPE": "x86_64-pc-linux-gnu", - "INCLDIRSTOMAKE": "/usr/local/include /usr/local/include /usr/local/include/python3.15 /usr/local/include/python3.15", - "INCLUDEDIR": "/usr/local/include", - "INCLUDEPY": "/usr/local/include/python3.15", - "INSTALL": "/usr/bin/install -c", - "INSTALL_DATA": "/usr/bin/install -c -m 644", - "INSTALL_MIMALLOC": "yes", - "INSTALL_PROGRAM": "/usr/bin/install -c", - "INSTALL_SCRIPT": "/usr/bin/install -c", - "INSTALL_SHARED": "/usr/bin/install -c -m 755", - "INSTSONAME": "libpython3.15.a", - "IO_H": "Modules/_io/_iomodule.h", - "IO_OBJS": "\\", - "IPHONEOS_DEPLOYMENT_TARGET": "", - "JIT_DEPS": "\\", - "LDCXXSHARED": "g++ -shared", - "LDFLAGS": "", - "LDFLAGS_NODIST": "", - "LDLIBRARY": "libpython3.15.a", - "LDLIBRARYDIR": "", - "LDSHARED": "gcc -shared", - "LDVERSION": "3.15", - "LIBC": "", - "LIBDEST": "/usr/local/lib/python3.15", - "LIBDIR": "/usr/local/lib", - "LIBEXPAT_A": "Modules/expat/libexpat.a", - "LIBEXPAT_CFLAGS": "-I./Modules/expat -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBEXPAT_HEADERS": "\\", - "LIBEXPAT_OBJS": "\\", - "LIBHACL_BLAKE2_HEADERS": "\\", - "LIBHACL_BLAKE2_LIB_SHARED": "\\", - "LIBHACL_BLAKE2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_BLAKE2.a", - "LIBHACL_BLAKE2_OBJS": "\\", - "LIBHACL_BLAKE2_SIMD128_CFLAGS": "-msse -msse2 -msse3 -msse4.1 -msse4.2 -DHACL_CAN_COMPILE_VEC128", - "LIBHACL_BLAKE2_SIMD128_OBJS": "Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o", - "LIBHACL_BLAKE2_SIMD256_CFLAGS": "-mavx2 -DHACL_CAN_COMPILE_VEC256", - "LIBHACL_BLAKE2_SIMD256_OBJS": "Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o", - "LIBHACL_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBHACL_HEADERS": "\\", - "LIBHACL_HMAC_HEADERS": "\\", - "LIBHACL_HMAC_LIB_SHARED": "\\", - "LIBHACL_HMAC_LIB_STATIC": "Modules/_hacl/libHacl_HMAC.a", - "LIBHACL_HMAC_OBJS": "\\", - "LIBHACL_LDFLAGS": "", - "LIBHACL_MD5_HEADERS": "\\", - "LIBHACL_MD5_LIB_SHARED": "\\", - "LIBHACL_MD5_LIB_STATIC": "Modules/_hacl/libHacl_Hash_MD5.a", - "LIBHACL_MD5_OBJS": "\\", - "LIBHACL_SHA1_HEADERS": "\\", - "LIBHACL_SHA1_LIB_SHARED": "\\", - "LIBHACL_SHA1_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA1.a", - "LIBHACL_SHA1_OBJS": "\\", - "LIBHACL_SHA2_HEADERS": "\\", - "LIBHACL_SHA2_LIB_SHARED": "\\", - "LIBHACL_SHA2_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA2.a", - "LIBHACL_SHA2_OBJS": "\\", - "LIBHACL_SHA3_HEADERS": "\\", - "LIBHACL_SHA3_LIB_SHARED": "\\", - "LIBHACL_SHA3_LIB_STATIC": "Modules/_hacl/libHacl_Hash_SHA3.a", - "LIBHACL_SHA3_OBJS": "\\", - "LIBM": "-lm", - "LIBMPDEC_A": "Modules/_decimal/libmpdec/libmpdec.a", - "LIBMPDEC_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "LIBMPDEC_HEADERS": "\\", - "LIBMPDEC_OBJS": "\\", - "LIBOBJDIR": "Python/", - "LIBOBJS": "", - "LIBPC": "/usr/local/lib/pkgconfig", - "LIBPL": "/usr/local/lib/python3.15/config-3.15-x86_64-linux-gnu", - "LIBPYTHON": "", - "LIBRARY": "libpython3.15.a", - "LIBRARY_DEPS": "libpython3.15.a", - "LIBRARY_OBJS": "\\", - "LIBRARY_OBJS_OMIT_FROZEN": "\\", - "LIBS": "-ldl", - "LIBSUBDIRS": "asyncio \\", - "LINKCC": "gcc", - "LINKFORSHARED": "-Xlinker -export-dynamic", - "LINK_PYTHON_DEPS": "libpython3.15.a", - "LINK_PYTHON_OBJS": "\\", - "LIPO_32BIT_FLAGS": "", - "LIPO_INTEL64_FLAGS": "", - "LLVM_PROF_ERR": "no", - "LLVM_PROF_FILE": "", - "LLVM_PROF_MERGER": "true", - "LN": "ln", - "LOCALMODLIBS": "", - "MACHDEP": "linux", - "MACHDEP_OBJS": "", - "MACHDESTLIB": "/usr/local/lib/python3.15", - "MACOSX_DEPLOYMENT_TARGET": "", - "MAJOR_IN_MKDEV": 0, - "MAJOR_IN_SYSMACROS": 1, - "MAKESETUP": "./Modules/makesetup", - "MANDIR": "/usr/local/share/man", - "MIMALLOC_HEADERS": "\\", - "MKDIR_P": "/usr/bin/mkdir -p", - "MODBUILT_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35 atexit faulthandler posix _signal _tracemalloc _suggestions _codecs _collections errno _io itertools _sre _sysconfig _thread time _types _typing _weakref _abc _functools _locale _opcode _operator _stat _symtable pwd", - "MODDISABLED_NAMES": "", - "MODLIBS": "", - "MODOBJS": "Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_suggestions.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_sysconfig.o Modules/_threadmodule.o Modules/timemodule.o Modules/_typesmodule.o Modules/_typingmodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_opcode.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Modules/pwdmodule.o", - "MODSHARED_NAMES": "array _asyncio _bisect _csv _heapq _json _lsprof _pickle _queue _random _remote_debugging _struct _interpreters _interpchannels _interpqueues _zoneinfo math cmath _statistics _datetime _decimal binascii _bz2 _lzma _zstd zlib _dbm _gdbm readline _md5 _sha1 _sha2 _sha3 _blake2 _hmac pyexpat _elementtree _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec unicodedata fcntl grp mmap _posixsubprocess resource select _socket syslog termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testlimitedcapi _testclinic _testclinic_limited _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35", - "MODULE_ARRAY_STATE": "yes", - "MODULE_ATEXIT_LDFLAGS": "", - "MODULE_BINASCII_CFLAGS": "-DUSE_ZLIB_CRC32", - "MODULE_BINASCII_LDFLAGS": "-lz", - "MODULE_BINASCII_STATE": "yes", - "MODULE_CMATH_DEPS": "./Modules/_math.h", - "MODULE_CMATH_LDFLAGS": "-lm", - "MODULE_CMATH_STATE": "yes", - "MODULE_DEPS_SHARED": "Modules/config.c", - "MODULE_DEPS_STATIC": "Modules/config.c", - "MODULE_ERRNO_LDFLAGS": "", - "MODULE_FAULTHANDLER_LDFLAGS": "", - "MODULE_FCNTL_LDFLAGS": "", - "MODULE_FCNTL_STATE": "yes", - "MODULE_GRP_STATE": "yes", - "MODULE_ITERTOOLS_LDFLAGS": "", - "MODULE_MATH_DEPS": "./Modules/_math.h", - "MODULE_MATH_LDFLAGS": "-lm", - "MODULE_MATH_STATE": "yes", - "MODULE_MMAP_STATE": "yes", - "MODULE_OBJS": "\\", - "MODULE_POSIX_LDFLAGS": "", - "MODULE_PWD_LDFLAGS": "", - "MODULE_PWD_STATE": "yes", - "MODULE_PYEXPAT_CFLAGS": "-I./Modules/expat", - "MODULE_PYEXPAT_DEPS": "\\ Modules/expat/libexpat.a", - "MODULE_PYEXPAT_LDFLAGS": "-lm Modules/expat/libexpat.a", - "MODULE_PYEXPAT_STATE": "yes", - "MODULE_READLINE_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE_READLINE_LDFLAGS": "-lreadline", - "MODULE_READLINE_STATE": "yes", - "MODULE_RESOURCE_STATE": "yes", - "MODULE_SELECT_STATE": "yes", - "MODULE_SYSLOG_STATE": "yes", - "MODULE_TERMIOS_STATE": "yes", - "MODULE_TIME_LDFLAGS": "", - "MODULE_TIME_STATE": "yes", - "MODULE_UNICODEDATA_DEPS": "./Modules/unicodedata_db.h ./Modules/unicodename_db.h", - "MODULE_UNICODEDATA_STATE": "yes", - "MODULE_XXLIMITED_35_STATE": "yes", - "MODULE_XXLIMITED_STATE": "yes", - "MODULE_XXSUBTYPE_STATE": "yes", - "MODULE_ZLIB_CFLAGS": "", - "MODULE_ZLIB_LDFLAGS": "-lz", - "MODULE_ZLIB_STATE": "yes", - "MODULE__ABC_LDFLAGS": "", - "MODULE__ASYNCIO_STATE": "yes", - "MODULE__BISECT_STATE": "yes", - "MODULE__BLAKE2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__BLAKE2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__BLAKE2_LDEPS": "\\", - "MODULE__BLAKE2_LDFLAGS": "\\", - "MODULE__BLAKE2_STATE": "yes", - "MODULE__BZ2_CFLAGS": "", - "MODULE__BZ2_LDFLAGS": "-lbz2", - "MODULE__BZ2_STATE": "yes", - "MODULE__CODECS_CN_DEPS": "./Modules/cjkcodecs/mappings_cn.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_CN_STATE": "yes", - "MODULE__CODECS_HK_DEPS": "./Modules/cjkcodecs/mappings_hk.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_HK_STATE": "yes", - "MODULE__CODECS_ISO2022_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_ISO2022_STATE": "yes", - "MODULE__CODECS_JP_DEPS": "./Modules/cjkcodecs/mappings_jisx0213_pair.h ./Modules/cjkcodecs/alg_jisx0201.h ./Modules/cjkcodecs/emu_jisx0213_2000.h ./Modules/cjkcodecs/mappings_jp.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_JP_STATE": "yes", - "MODULE__CODECS_KR_DEPS": "./Modules/cjkcodecs/mappings_kr.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_KR_STATE": "yes", - "MODULE__CODECS_LDFLAGS": "", - "MODULE__CODECS_TW_DEPS": "./Modules/cjkcodecs/mappings_tw.h ./Modules/cjkcodecs/multibytecodec.h ./Modules/cjkcodecs/cjkcodecs.h", - "MODULE__CODECS_TW_STATE": "yes", - "MODULE__COLLECTIONS_LDFLAGS": "", - "MODULE__CSV_STATE": "yes", - "MODULE__CTYPES_CFLAGS": "-fno-strict-overflow", - "MODULE__CTYPES_DEPS": "./Modules/_ctypes/ctypes.h", - "MODULE__CTYPES_LDFLAGS": "-lffi -ldl", - "MODULE__CTYPES_MALLOC_CLOSURE": "", - "MODULE__CTYPES_STATE": "yes", - "MODULE__CTYPES_TEST_CFLAGS": "", - "MODULE__CTYPES_TEST_DEPS": "./Modules/_ctypes/_ctypes_test_generated.c.h", - "MODULE__CTYPES_TEST_LDFLAGS": "-lffi -ldl -lm", - "MODULE__CTYPES_TEST_STATE": "yes", - "MODULE__CURSES_CFLAGS": "-D_DEFAULT_SOURCE", - "MODULE__CURSES_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_LDFLAGS": "-lncursesw", - "MODULE__CURSES_PANEL_CFLAGS": "-D_DEFAULT_SOURCE -D_DEFAULT_SOURCE", - "MODULE__CURSES_PANEL_DEPS": "./Include/py_curses.h", - "MODULE__CURSES_PANEL_LDFLAGS": "-lpanelw -lncursesw", - "MODULE__CURSES_PANEL_STATE": "yes", - "MODULE__CURSES_STATE": "yes", - "MODULE__DATETIME_DEPS": "./Include/datetime.h", - "MODULE__DATETIME_LDFLAGS": "-lm", - "MODULE__DATETIME_STATE": "yes", - "MODULE__DBM_CFLAGS": "-DUSE_NDBM", - "MODULE__DBM_LDFLAGS": "-lgdbm_compat", - "MODULE__DBM_STATE": "yes", - "MODULE__DECIMAL_CFLAGS": "", - "MODULE__DECIMAL_DEPS": "./Modules/_decimal/docstrings.h", - "MODULE__DECIMAL_LDFLAGS": "-lmpdec -lm", - "MODULE__DECIMAL_STATE": "yes", - "MODULE__ELEMENTTREE_CFLAGS": "-I./Modules/expat", - "MODULE__ELEMENTTREE_DEPS": "./Modules/pyexpat.c \\ Modules/expat/libexpat.a", - "MODULE__ELEMENTTREE_STATE": "yes", - "MODULE__FUNCTOOLS_LDFLAGS": "", - "MODULE__GDBM_CFLAGS": "", - "MODULE__GDBM_LDFLAGS": "-lgdbm", - "MODULE__GDBM_STATE": "yes", - "MODULE__HASHLIB_CFLAGS": "", - "MODULE__HASHLIB_DEPS": "./Modules/hashlib.h", - "MODULE__HASHLIB_LDFLAGS": "-lcrypto", - "MODULE__HASHLIB_STATE": "yes", - "MODULE__HEAPQ_STATE": "yes", - "MODULE__HMAC_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__HMAC_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__HMAC_LDEPS": "\\", - "MODULE__HMAC_LDFLAGS": "\\", - "MODULE__HMAC_STATE": "yes", - "MODULE__INTERPCHANNELS_STATE": "yes", - "MODULE__INTERPQUEUES_STATE": "yes", - "MODULE__INTERPRETERS_STATE": "yes", - "MODULE__IO_CFLAGS": "-I./Modules/_io", - "MODULE__IO_DEPS": "./Modules/_io/_iomodule.h", - "MODULE__IO_LDFLAGS": "", - "MODULE__IO_STATE": "yes", - "MODULE__JSON_STATE": "yes", - "MODULE__LOCALE_LDFLAGS": "", - "MODULE__LSPROF_STATE": "yes", - "MODULE__LZMA_CFLAGS": "", - "MODULE__LZMA_LDFLAGS": "-llzma", - "MODULE__LZMA_STATE": "yes", - "MODULE__MD5_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__MD5_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__MD5_LDEPS": "\\", - "MODULE__MD5_LDFLAGS": "\\", - "MODULE__MD5_STATE": "yes", - "MODULE__MULTIBYTECODEC_DEPS": "./Modules/cjkcodecs/multibytecodec.h", - "MODULE__MULTIBYTECODEC_STATE": "yes", - "MODULE__MULTIPROCESSING_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__MULTIPROCESSING_STATE": "yes", - "MODULE__OPCODE_LDFLAGS": "", - "MODULE__OPERATOR_LDFLAGS": "", - "MODULE__PICKLE_STATE": "yes", - "MODULE__POSIXSHMEM_CFLAGS": "-I./Modules/_multiprocessing", - "MODULE__POSIXSHMEM_LDFLAGS": "", - "MODULE__POSIXSHMEM_STATE": "yes", - "MODULE__POSIXSUBPROCESS_STATE": "yes", - "MODULE__QUEUE_STATE": "yes", - "MODULE__RANDOM_STATE": "yes", - "MODULE__REMOTE_DEBUGGING_STATE": "yes", - "MODULE__SCPROXY_STATE": "n/a", - "MODULE__SHA1_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA1_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA1_LDEPS": "\\", - "MODULE__SHA1_LDFLAGS": "\\", - "MODULE__SHA1_STATE": "yes", - "MODULE__SHA2_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA2_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA2_LDEPS": "\\", - "MODULE__SHA2_LDFLAGS": "\\", - "MODULE__SHA2_STATE": "yes", - "MODULE__SHA3_CFLAGS": "-I./Modules/_hacl -I./Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC", - "MODULE__SHA3_DEPS": "./Modules/hashlib.h \\ \\", - "MODULE__SHA3_LDEPS": "\\", - "MODULE__SHA3_LDFLAGS": "\\", - "MODULE__SHA3_STATE": "yes", - "MODULE__SIGNAL_LDFLAGS": "", - "MODULE__SOCKET_DEPS": "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c", - "MODULE__SOCKET_LDFLAGS": "", - "MODULE__SOCKET_STATE": "yes", - "MODULE__SQLITE3_CFLAGS": "-I./Modules/_sqlite", - "MODULE__SQLITE3_DEPS": "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h", - "MODULE__SQLITE3_LDFLAGS": "-lsqlite3", - "MODULE__SQLITE3_STATE": "yes", - "MODULE__SRE_LDFLAGS": "", - "MODULE__SSL_CFLAGS": "", - "MODULE__SSL_DEPS": "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h", - "MODULE__SSL_LDFLAGS": "-lssl -lcrypto", - "MODULE__SSL_STATE": "yes", - "MODULE__STATISTICS_LDFLAGS": "-lm", - "MODULE__STATISTICS_STATE": "yes", - "MODULE__STAT_LDFLAGS": "", - "MODULE__STRUCT_STATE": "yes", - "MODULE__SUGGESTIONS_LDFLAGS": "", - "MODULE__SYMTABLE_LDFLAGS": "", - "MODULE__SYSCONFIG_LDFLAGS": "", - "MODULE__TESTBUFFER_STATE": "yes", - "MODULE__TESTCAPI_DEPS": "./Modules/_testcapi/parts.h ./Modules/_testcapi/util.h", - "MODULE__TESTCAPI_LDFLAGS": "", - "MODULE__TESTCAPI_STATE": "yes", - "MODULE__TESTCLINIC_LIMITED_STATE": "yes", - "MODULE__TESTCLINIC_STATE": "yes", - "MODULE__TESTIMPORTMULTIPLE_STATE": "yes", - "MODULE__TESTINTERNALCAPI_DEPS": "./Modules/_testinternalcapi/parts.h", - "MODULE__TESTINTERNALCAPI_STATE": "yes", - "MODULE__TESTLIMITEDCAPI_DEPS": "./Modules/_testlimitedcapi/testcapi_long.h ./Modules/_testlimitedcapi/parts.h ./Modules/_testlimitedcapi/util.h", - "MODULE__TESTLIMITEDCAPI_STATE": "yes", - "MODULE__TESTMULTIPHASE_STATE": "yes", - "MODULE__TESTSINGLEPHASE_STATE": "yes", - "MODULE__THREAD_LDFLAGS": "", - "MODULE__TKINTER_CFLAGS": "-Wno-strict-prototypes -DWITH_APPINIT=1", - "MODULE__TKINTER_LDFLAGS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6", - "MODULE__TKINTER_STATE": "yes", - "MODULE__TRACEMALLOC_LDFLAGS": "", - "MODULE__TYPES_LDFLAGS": "", - "MODULE__TYPES_STATE": "yes", - "MODULE__TYPING_LDFLAGS": "", - "MODULE__TYPING_STATE": "yes", - "MODULE__UUID_CFLAGS": "-I/usr/include/uuid", - "MODULE__UUID_LDFLAGS": "-luuid", - "MODULE__UUID_STATE": "yes", - "MODULE__WEAKREF_LDFLAGS": "", - "MODULE__XXTESTFUZZ_STATE": "yes", - "MODULE__ZONEINFO_STATE": "yes", - "MODULE__ZSTD_CFLAGS": "", - "MODULE__ZSTD_DEPS": "./Modules/_zstd/_zstdmodule.h ./Modules/_zstd/buffer.h ./Modules/_zstd/zstddict.h", - "MODULE__ZSTD_LDFLAGS": "-lzstd", - "MODULE__ZSTD_STATE": "yes", - "MULTIARCH": "x86_64-linux-gnu", - "MULTIARCH_CPPFLAGS": "-DMULTIARCH=\\\"x86_64-linux-gnu\\\"", - "MVWDELCH_IS_EXPRESSION": 1, - "NO_AS_NEEDED": "-Wl,--no-as-needed", - "OBJECT_OBJS": "\\", - "OPT": "-DNDEBUG -g -O3 -Wall", - "PACKAGE_BUGREPORT": 0, - "PACKAGE_NAME": 0, - "PACKAGE_STRING": 0, - "PACKAGE_TARNAME": 0, - "PACKAGE_URL": 0, - "PACKAGE_VERSION": 0, - "PARSER_HEADERS": "\\", - "PARSER_OBJS": "\\ \\ \\ Parser/myreadline.o", - "PEGEN_HEADERS": "\\", - "PEGEN_OBJS": "\\", - "PGO_PROF_GEN_FLAG": "-fprofile-generate", - "PGO_PROF_USE_FLAG": "-fprofile-use -fprofile-correction", - "PLATLIBDIR": "lib", - "POBJS": "\\", - "POSIX_SEMAPHORES_NOT_ENABLED": 0, - "PROFILE_TASK": "-m test --pgo --timeout=", - "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1, - "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1, - "PURIFY": "", - "PY3LIBRARY": "", - "PYLONG_BITS_IN_DIGIT": 0, - "PYTHON": "python", - "PYTHONFRAMEWORK": "", - "PYTHONFRAMEWORKDIR": "no-framework", - "PYTHONFRAMEWORKINSTALLDIR": "", - "PYTHONFRAMEWORKINSTALLNAMEPREFIX": "", - "PYTHONFRAMEWORKPREFIX": "", - "PYTHONPATH": "", - "PYTHON_FOR_BUILD": "./python -E", - "PYTHON_FOR_BUILD_DEPS": "python", - "PYTHON_FOR_FREEZE": "./_bootstrap_python", - "PYTHON_FOR_REGEN": "", - "PYTHON_HEADERS": "\\", - "PYTHON_OBJS": "\\", - "PY_BUILTIN_HASHLIB_HASHES": "\"md5,sha1,sha2,sha3,blake2\"", - "PY_BUILTIN_MODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE_BUILTIN", - "PY_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "PY_CFLAGS_NODIST": "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc", - "PY_COERCE_C_LOCALE": 1, - "PY_CORE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE", - "PY_CORE_LDFLAGS": "", - "PY_CPPFLAGS": "-I. -I./Include", - "PY_ENABLE_SHARED": 0, - "PY_HAVE_PERF_TRAMPOLINE": 1, - "PY_LDFLAGS": "", - "PY_LDFLAGS_NODIST": "", - "PY_LDFLAGS_NOLTO": "", - "PY_SQLITE_ENABLE_LOAD_EXTENSION": 0, - "PY_SQLITE_HAVE_SERIALIZE": 1, - "PY_SSL_DEFAULT_CIPHERS": 1, - "PY_SSL_DEFAULT_CIPHER_STRING": 0, - "PY_STDMODULE_CFLAGS": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include", - "PY_SUPPORT_TIER": 1, - "Py_DEBUG": 0, - "Py_ENABLE_SHARED": 0, - "Py_FFI_SUPPORT_C_COMPLEX": 1, - "Py_GIL_DISABLED": 0, - "Py_HASH_ALGORITHM": 0, - "Py_NORMALIZE_CENTURY": 1, - "Py_REMOTE_DEBUG": 1, - "Py_RL_STARTUP_HOOK_TAKES_ARGS": 0, - "Py_STATS": 0, - "Py_SUNOS_VERSION": 0, - "Py_TAIL_CALL_INTERP": 0, - "Py_TRACE_REFS": 0, - "QUICKTESTOPTS": "-x test_subprocess test_io \\", - "READELF": "@READELF@", - "RESSRCDIR": "", - "RETSIGTYPE": "void", - "RUNSHARED": "", - "SCRIPTDIR": "/usr/local/lib", - "SCRIPT_IDLE": "build/scripts-3.15/idle3.15", - "SCRIPT_PYDOC": "build/scripts-3.15/pydoc3.15", - "SETPGRP_HAVE_ARG": 0, - "SHAREDMODS": "Modules/array.cpython-315-x86_64-linux-gnu.so Modules/_asyncio.cpython-315-x86_64-linux-gnu.so Modules/_bisect.cpython-315-x86_64-linux-gnu.so Modules/_csv.cpython-315-x86_64-linux-gnu.so Modules/_heapq.cpython-315-x86_64-linux-gnu.so Modules/_json.cpython-315-x86_64-linux-gnu.so Modules/_lsprof.cpython-315-x86_64-linux-gnu.so Modules/_pickle.cpython-315-x86_64-linux-gnu.so Modules/_queue.cpython-315-x86_64-linux-gnu.so Modules/_random.cpython-315-x86_64-linux-gnu.so Modules/_remote_debugging.cpython-315-x86_64-linux-gnu.so Modules/_struct.cpython-315-x86_64-linux-gnu.so Modules/_interpreters.cpython-315-x86_64-linux-gnu.so Modules/_interpchannels.cpython-315-x86_64-linux-gnu.so Modules/_interpqueues.cpython-315-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-315-x86_64-linux-gnu.so Modules/math.cpython-315-x86_64-linux-gnu.so Modules/cmath.cpython-315-x86_64-linux-gnu.so Modules/_statistics.cpython-315-x86_64-linux-gnu.so Modules/_datetime.cpython-315-x86_64-linux-gnu.so Modules/_decimal.cpython-315-x86_64-linux-gnu.so Modules/binascii.cpython-315-x86_64-linux-gnu.so Modules/_bz2.cpython-315-x86_64-linux-gnu.so Modules/_lzma.cpython-315-x86_64-linux-gnu.so Modules/_zstd.cpython-315-x86_64-linux-gnu.so Modules/zlib.cpython-315-x86_64-linux-gnu.so Modules/_dbm.cpython-315-x86_64-linux-gnu.so Modules/_gdbm.cpython-315-x86_64-linux-gnu.so Modules/readline.cpython-315-x86_64-linux-gnu.so Modules/_md5.cpython-315-x86_64-linux-gnu.so Modules/_sha1.cpython-315-x86_64-linux-gnu.so Modules/_sha2.cpython-315-x86_64-linux-gnu.so Modules/_sha3.cpython-315-x86_64-linux-gnu.so Modules/_blake2.cpython-315-x86_64-linux-gnu.so Modules/_hmac.cpython-315-x86_64-linux-gnu.so Modules/pyexpat.cpython-315-x86_64-linux-gnu.so Modules/_elementtree.cpython-315-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-315-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-315-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-315-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-315-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-315-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-315-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-315-x86_64-linux-gnu.so Modules/unicodedata.cpython-315-x86_64-linux-gnu.so Modules/fcntl.cpython-315-x86_64-linux-gnu.so Modules/grp.cpython-315-x86_64-linux-gnu.so Modules/mmap.cpython-315-x86_64-linux-gnu.so Modules/_posixsubprocess.cpython-315-x86_64-linux-gnu.so Modules/resource.cpython-315-x86_64-linux-gnu.so Modules/select.cpython-315-x86_64-linux-gnu.so Modules/_socket.cpython-315-x86_64-linux-gnu.so Modules/syslog.cpython-315-x86_64-linux-gnu.so Modules/termios.cpython-315-x86_64-linux-gnu.so Modules/_posixshmem.cpython-315-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-315-x86_64-linux-gnu.so Modules/_ctypes.cpython-315-x86_64-linux-gnu.so Modules/_curses.cpython-315-x86_64-linux-gnu.so Modules/_curses_panel.cpython-315-x86_64-linux-gnu.so Modules/_sqlite3.cpython-315-x86_64-linux-gnu.so Modules/_ssl.cpython-315-x86_64-linux-gnu.so Modules/_hashlib.cpython-315-x86_64-linux-gnu.so Modules/_uuid.cpython-315-x86_64-linux-gnu.so Modules/_tkinter.cpython-315-x86_64-linux-gnu.so Modules/xxsubtype.cpython-315-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-315-x86_64-linux-gnu.so Modules/_testbuffer.cpython-315-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-315-x86_64-linux-gnu.so Modules/_testcapi.cpython-315-x86_64-linux-gnu.so Modules/_testlimitedcapi.cpython-315-x86_64-linux-gnu.so Modules/_testclinic.cpython-315-x86_64-linux-gnu.so Modules/_testclinic_limited.cpython-315-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-315-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-315-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-315-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-315-x86_64-linux-gnu.so Modules/xxlimited.cpython-315-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-315-x86_64-linux-gnu.so", - "SHELL": "/bin/sh -e", - "SHLIBS": "-ldl", - "SHLIB_SUFFIX": ".so", - "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0, - "SITEPATH": "", - "SIZEOF_DOUBLE": 8, - "SIZEOF_FLOAT": 4, - "SIZEOF_FPOS_T": 16, - "SIZEOF_INT": 4, - "SIZEOF_LONG": 8, - "SIZEOF_LONG_DOUBLE": 16, - "SIZEOF_LONG_LONG": 8, - "SIZEOF_OFF_T": 8, - "SIZEOF_PID_T": 4, - "SIZEOF_PTHREAD_KEY_T": 4, - "SIZEOF_PTHREAD_T": 8, - "SIZEOF_SHORT": 2, - "SIZEOF_SIZE_T": 8, - "SIZEOF_TIME_T": 8, - "SIZEOF_UINTPTR_T": 8, - "SIZEOF_VOID_P": 8, - "SIZEOF_WCHAR_T": 4, - "SIZEOF__BOOL": 1, - "SOABI": "cpython-315-x86_64-linux-gnu", - "SRCDIRS": "Modules Modules/_ctypes Modules/_decimal Modules/_decimal/libmpdec Modules/_hacl Modules/_io Modules/_multiprocessing Modules/_sqlite Modules/_sre Modules/_testcapi Modules/_testinternalcapi Modules/_testlimitedcapi Modules/_xxtestfuzz Modules/_zstd Modules/cjkcodecs Modules/expat Objects Objects/mimalloc Objects/mimalloc/prim Parser Parser/tokenizer Parser/lexer Programs Python Python/frozen_modules", - "SRC_GDB_HOOKS": "./Tools/gdb/libpython.py", - "STATIC_LIBPYTHON": 1, - "STDC_HEADERS": 1, - "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */", - "STRIPFLAG": "-s", - "SUBDIRS": "", - "SUBDIRSTOO": "Include Lib Misc", - "SYSLIBS": "-lm", - "SYS_SELECT_WITH_SYS_TIME": 1, - "TESTOPTS": "", - "TESTPATH": "", - "TESTPYTHON": "./python -E", - "TESTPYTHONOPTS": "", - "TESTRUNNER": "./python -E -m test", - "TESTSUBDIRS": "idlelib/idle_test \\", - "TESTTIMEOUT": "", - "TEST_MODULES": "yes", - "THREAD_STACK_SIZE": 0, - "TIMEMODULE_LIB": 0, - "TM_IN_SYS_TIME": 0, - "TOKENIZER_HEADERS": "\\", - "TOKENIZER_OBJS": "\\", - "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo", - "UNICODE_DEPS": "\\", - "UNIVERSALSDK": "", - "UPDATE_FILE": "./Tools/build/update_file.py", - "USE_COMPUTED_GOTOS": 0, - "VERSION": "3.15", - "WEBEX_DIR": "./Tools/wasm/emscripten/web_example/", - "WEB_STDLIB": "web_example/python3.15.zip", - "WHEEL_PKG_DIR": "", - "WINDOW_HAS_FLAGS": 0, - "WITH_DECIMAL_CONTEXTVAR": 1, - "WITH_DOC_STRINGS": 1, - "WITH_DTRACE": 0, - "WITH_DYLD": 0, - "WITH_EDITLINE": 0, - "WITH_LIBINTL": 0, - "WITH_MIMALLOC": 1, - "WITH_NEXT_FRAMEWORK": 0, - "WITH_PYMALLOC": 1, - "WITH_VALGRIND": 0, - "X87_DOUBLE_ROUNDING": 0, - "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax", - "abs_builddir": "/tmp/cpython", - "abs_srcdir": "/tmp/cpython", - "datarootdir": "/usr/local/share", - "exec_prefix": "/tmp/cpython_venv_5n87cp17", - "host_exec_prefix": "/usr/local", - "host_prefix": "/usr/local", - "prefix": "/tmp/cpython_venv_5n87cp17", - "srcdir": "/tmp/cpython", - "py_version": "3.15.0a0", - "py_version_short": "3.15", - "py_version_nodot": "315", - "installed_base": "/usr/local", - "base": "/tmp/cpython_venv_5n87cp17", - "installed_platbase": "/usr/local", - "platbase": "/tmp/cpython_venv_5n87cp17", - "projectbase": "/tmp/cpython", - "platlibdir": "lib", - "implementation": "Python", - "implementation_lower": "python", - "abiflags": "", - "py_version_nodot_plat": "", - "userbase": "/home/pablogsal/.local", - "abi_thread": "" - }, - "platform": "linux", - "implementation": "cpython", - "compiler": { - "name": "GCC 15.1.1 20250425", - "version": "15.1.1" - }, - "build_info": { - "build_date": null, - "build_platform": null, - "build_compiler": null, - "build_cflags": "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall", - "build_ldflags": "" - }, - "commit": { - "hexsha": "f4911258a80409cb641f13578137475204ab43b5", - "short_hexsha": "f4911258", - "author": "Hood Chatham", - "author_email": "roberthoodchatham@gmail.com", - "authored_date": "2025-06-20T23:06:59-07:00", - "committer": "GitHub", - "committer_email": "noreply@github.com", - "committed_date": "2025-06-21T06:06:59+00:00", - "message": "gh-127146: Skip test_os.test_mode for Emscripten (#135764)\n\nTemporarily skip test_os.test_mode on Emscripten; this fails consistently\non the buildbot, but not on other test configurations. Reported as #135783 \nfor follow up." - } -} \ No newline at end of file diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations.bin b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations.bin deleted file mode 100644 index 9daab9f..0000000 Binary files a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations.bin and /dev/null differ diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations_flamegraph.html b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations_flamegraph.html deleted file mode 100644 index 0c2f82e..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations_flamegraph.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - memray - flamegraph report - - - - - - - - - - - - -
-
-
- - - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations_stats.json b/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations_stats.json deleted file mode 100644 index 0bc3756..0000000 --- a/benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations_stats.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "total_num_allocations": 241688, - "total_bytes_allocated": 24799946, - "allocation_size_histogram": [ - { - "min_bytes": 0, - "max_bytes": 2, - "count": 12 - }, - { - "min_bytes": 3, - "max_bytes": 14, - "count": 219 - }, - { - "min_bytes": 15, - "max_bytes": 58, - "count": 231976 - }, - { - "min_bytes": 59, - "max_bytes": 228, - "count": 8153 - }, - { - "min_bytes": 229, - "max_bytes": 893, - "count": 465 - }, - { - "min_bytes": 894, - "max_bytes": 3483, - "count": 737 - }, - { - "min_bytes": 3484, - "max_bytes": 13566, - "count": 49 - }, - { - "min_bytes": 13567, - "max_bytes": 52828, - "count": 27 - }, - { - "min_bytes": 52829, - "max_bytes": 205698, - "count": 29 - }, - { - "min_bytes": 205699, - "max_bytes": 800927, - "count": 21 - } - ], - "allocator_type_distribution": { - "PYMALLOC_MALLOC": 239981, - "PYMALLOC_REALLOC": 1311, - "PYMALLOC_CALLOC": 395, - "MALLOC": 1 - }, - "top_allocations_by_size": [ - { - "location": ":/tmp/benchmarks_yg0a9i3m/string_operations.py:5", - "size": 7788858 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/string_operations.py:5", - "size": 7675595 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/string_operations.py:13", - "size": 4606529 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/string_operations.py:10", - "size": 1513311 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/string_operations.py:22", - "size": 488931 - } - ], - "top_allocations_by_count": [ - { - "location": ":/tmp/benchmarks_yg0a9i3m/string_operations.py:5", - "count": 199999 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/string_operations.py:13", - "count": 33358 - }, - { - "location": ":/tmp/benchmarks_yg0a9i3m/string_operations.py:17", - "count": 2999 - }, - { - "location": "main:/tmp/benchmarks_yg0a9i3m/string_operations.py:10", - "count": 2998 - }, - { - "location": "_get_code_from_file::259", - "count": 896 - } - ], - "metadata": { - "start_time": "2025-06-21 17:39:59.886000+01:00", - "end_time": "2025-06-21 17:40:00.065000+01:00", - "total_allocations": 483053, - "total_frames": 248, - "peak_memory": 5930972, - "command_line": "/tmp/cpython_venv_5n87cp17/bin/memray run --native --trace-python-allocators --output benchmark_results/f4911258a80409cb641f13578137475204ab43b5/string_operations.bin /tmp/benchmarks_yg0a9i3m/string_operations.py", - "pid": 3698421, - "main_thread_id": 1, - "python_allocator": "pymalloc", - "has_native_traces": true, - "trace_python_allocators": true, - "file_format": 0 - } -} \ No newline at end of file diff --git a/docker-README.md b/docker-README.md index fbeaf89..3408957 100644 --- a/docker-README.md +++ b/docker-README.md @@ -17,12 +17,12 @@ This Docker Compose configuration brings up the entire Memory Tracker applicatio 2. **Build and start all services:** ```bash - docker-compose up --build + docker compose up --build ``` 3. **Start in detached mode (background):** ```bash - docker-compose up -d --build + docker compose up -d --build ``` 4. **Access the application:** @@ -68,41 +68,63 @@ The application automatically: ### View logs ```bash # All services -docker-compose logs -f +docker compose logs -f # Specific service -docker-compose logs -f backend -docker-compose logs -f frontend -docker-compose logs -f db +docker compose logs -f backend +docker compose logs -f frontend +docker compose logs -f db ``` ### Restart services ```bash # All services -docker-compose restart +docker compose restart # Specific service -docker-compose restart backend +docker compose restart backend ``` ### Stop and remove everything ```bash -docker-compose down +docker compose down ``` ### Stop and remove with volumes (clears database) ```bash -docker-compose down -v +docker compose down -v ``` ### Rebuild specific service ```bash -docker-compose build backend -docker-compose up -d backend +docker compose build backend +docker compose up -d backend ``` ## Development +### Updating Backend Dependencies + +Backend dependencies are managed with [pip-tools](https://pip-tools.readthedocs.io/). +There are two lockfiles: `requirements.txt` (production) and `requirements-dev.txt` +(adds test tooling). Edit `backend/requirements.in` for direct dependencies, then +regenerate both lockfiles: + +```bash +docker run --rm -v "$(pwd)/backend:/app" -w /app python:3.13-slim-bookworm \ + sh -c "pip install --quiet pip-tools && \ + pip-compile --strip-extras --generate-hashes \ + --output-file requirements.txt requirements.in && \ + pip-compile --strip-extras --generate-hashes \ + --output-file requirements-dev.txt requirements-dev.in" +``` + +Commit all changed files, then rebuild: + +```bash +docker compose -f docker-compose.dev.yml up --build -d backend +``` + ### Environment Variables The application uses a `.env` file for configuration. Copy the example and customize: @@ -130,11 +152,21 @@ ADMIN_GITHUB_TEAMS=memory-python-org **Note:** Development compose file uses port 9002 for frontend, production uses 3000. +### Linting & Type Checking + +```bash +# ESLint (must pass with zero errors) +docker compose -f docker-compose.dev.yml exec frontend npm run lint + +# TypeScript type checking +docker compose -f docker-compose.dev.yml exec frontend npm run typecheck +``` + ### Accessing the Database ```bash # Connect to PostgreSQL container -docker-compose exec db psql -U memory_tracker_user -d memory_tracker +docker compose exec db psql -U memory_tracker_user -d memory_tracker # Or from host (if psql is installed) psql -h localhost -p 5432 -U memory_tracker_user -d memory_tracker @@ -143,25 +175,25 @@ psql -h localhost -p 5432 -U memory_tracker_user -d memory_tracker ### Backend Shell Access ```bash -docker-compose exec backend sh +docker compose exec backend sh ``` ### Frontend Shell Access ```bash -docker-compose exec frontend sh +docker compose exec frontend sh ``` ## Troubleshooting ### Service won't start -1. Check logs: `docker-compose logs [service-name]` -2. Verify health checks: `docker-compose ps` -3. Restart specific service: `docker-compose restart [service-name]` +1. Check logs: `docker compose logs [service-name]` +2. Verify health checks: `docker compose ps` +3. Restart specific service: `docker compose restart [service-name]` ### Database connection issues -1. Ensure PostgreSQL is healthy: `docker-compose ps db` -2. Check database logs: `docker-compose logs db` +1. Ensure PostgreSQL is healthy: `docker compose ps db` +2. Check database logs: `docker compose logs db` 3. Verify connection string in backend logs ### Frontend can't reach backend @@ -172,13 +204,13 @@ docker-compose exec frontend sh ### Clean slate restart ```bash # Stop everything and remove volumes -docker-compose down -v +docker compose down -v # Remove images (optional) -docker-compose down --rmi all +docker compose down --rmi all # Rebuild and start -docker-compose up --build +docker compose up --build ``` ## Production Considerations diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1dcf2c4..d791829 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,37 +8,41 @@ "name": "nextn", "version": "0.1.0", "dependencies": { - "@radix-ui/react-checkbox": "^1.1.4", - "@radix-ui/react-collapsible": "^1.1.11", - "@radix-ui/react-dialog": "^1.1.6", - "@radix-ui/react-dropdown-menu": "^2.1.6", - "@radix-ui/react-label": "^2.1.2", - "@radix-ui/react-scroll-area": "^1.2.3", - "@radix-ui/react-select": "^2.1.6", - "@radix-ui/react-slider": "^1.2.3", - "@radix-ui/react-slot": "^1.1.2", - "@radix-ui/react-tabs": "^1.1.3", - "@radix-ui/react-toast": "^1.2.6", - "@radix-ui/react-tooltip": "^1.1.8", + "@radix-ui/react-checkbox": "^1.3.5", + "@radix-ui/react-collapsible": "^1.1.14", + "@radix-ui/react-dialog": "^1.1.17", + "@radix-ui/react-dropdown-menu": "^2.1.18", + "@radix-ui/react-label": "^2.1.10", + "@radix-ui/react-scroll-area": "^1.2.12", + "@radix-ui/react-select": "^2.3.1", + "@radix-ui/react-slider": "^1.4.1", + "@radix-ui/react-slot": "^1.3.0", + "@radix-ui/react-tabs": "^1.1.15", + "@radix-ui/react-toast": "^1.2.17", + "@radix-ui/react-tooltip": "^1.2.10", + "ace-builds": "^1.44.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "date-fns": "^3.6.0", + "date-fns": "^4.4.0", "html2canvas": "^1.4.1", - "lucide-react": "^0.475.0", - "next": "15.3.3", - "next-themes": "^0.3.0", - "patch-package": "^8.0.0", - "prettier": "^3.5.3", + "lucide-react": "^1.21.0", + "next": "15.5.19", + "next-themes": "^0.4.6", + "patch-package": "^8.0.1", + "prettier": "^3.8.4", "react": "^18.3.1", + "react-ace": "^14.0.1", "react-dom": "^18.3.1", "recharts": "^2.15.1", - "tailwind-merge": "^3.0.1", + "tailwind-merge": "^3.6.0", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "@types/node": "20.19.1", + "@types/node": "26.0.0", "@types/react": "18.3.23", "@types/react-dom": "^18", + "eslint": "^9.39.4", + "eslint-config-next": "^15.5.12", "postcss": "^8", "tailwindcss": "^3.4.1", "typescript": "5.8.3" @@ -66,15 +70,231 @@ "node": ">=6.9.0" } }, + "node_modules/@emnapi/core": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.0.tgz", + "integrity": "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.0", + "tslib": "^2.4.0" + } + }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "dev": true, + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "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==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@floating-ui/core": { "version": "1.6.9", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", @@ -109,13 +329,76 @@ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz", - "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -127,16 +410,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" + "@img/sharp-libvips-darwin-arm64": "1.2.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz", - "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -148,16 +432,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" + "@img/sharp-libvips-darwin-x64": "1.2.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -167,12 +452,13 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -182,12 +468,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", "cpu": [ "arm" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -197,12 +484,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -212,12 +500,29 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", - "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", "cpu": [ "ppc64" ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -227,12 +532,13 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", "cpu": [ "s390x" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -242,12 +548,13 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -257,12 +564,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -272,12 +580,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -287,12 +596,13 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz", - "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", "cpu": [ "arm" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -304,16 +614,61 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" + "@img/sharp-libvips-linux-arm": "1.2.4" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz", - "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", "cpu": [ "arm64" ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -325,16 +680,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" + "@img/sharp-libvips-linux-riscv64": "1.2.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz", - "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", "cpu": [ "s390x" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -346,16 +702,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" + "@img/sharp-libvips-linux-s390x": "1.2.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz", - "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -367,16 +724,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" + "@img/sharp-libvips-linux-x64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz", - "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -388,16 +746,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz", - "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -409,19 +768,20 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz", - "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", "cpu": [ "wasm32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.4.3" + "@emnapi/runtime": "^1.7.0" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -431,12 +791,13 @@ } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz", - "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", "cpu": [ "arm64" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -449,12 +810,13 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz", - "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", "cpu": [ "ia32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -467,12 +829,13 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz", - "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", "cpu": [ "x64" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -543,48 +906,105 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@next/env": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.3.tgz", - "integrity": "sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==" - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz", - "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==", - "cpu": [ - "arm64" - ], + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" } }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz", - "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" + "node_modules/@next/env": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.19.tgz", + "integrity": "sha512-sWWluFvcv5v3Fxznmf2ZfjyoVQt/64oCnYqS90inQWGzMPK1VjvekPiz3OPHKmFT30EnHrjlbyaHLt3M0vWabw==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.5.12", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.5.12.tgz", + "integrity": "sha512-+ZRSDFTv4aC96aMb5E41rMjysx8ApkryevnvEYZvPZO52KvkqP5rNExLUXJFr9P4s0f3oqNQR6vopCZsPWKDcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "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.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.19.tgz", + "integrity": "sha512-jx9wWlTKueHKPvVOndyr7WuaevWCkuYqsQ8gC0TMPKAVWG3MhcdMrjfo9tvIZNXd0QOUYXXvAcZ325y8Uq7uzg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.19.tgz", + "integrity": "sha512-291KFcsIQ3OenRdiUDFOR6W3wezzH4auENXm1gbm1Bjd4ANMMRgxPrWTUztQN43BnVoVuMnHCrLeECIMwgFKbA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz", - "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.19.tgz", + "integrity": "sha512-WeH+nelQyyMeE2f8FxBRZNrGipya5zHZV2vjzfCOAYyiI6am+NbnWAAldOBFQBB2w0DjJcsvrKqoFT2b7+5YoA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -594,12 +1014,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz", - "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.19.tgz", + "integrity": "sha512-5xTOE0lDlDCSSfp+BAif7j17VRRCjWp//ZPZy6NI0QpdrhxtQnsZguSx0xAAZ0c9XZLrLLwCe/XVe5YPrRilKw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -609,12 +1030,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz", - "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.19.tgz", + "integrity": "sha512-LTxRmMgqqMv05Had879W00Fm53quiJd3Zuz8h1JSNJ3nGSlbZ/7Tjs1tKyScgN3Au3t3MyPsjPlq60fMmSHLsg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -624,12 +1046,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz", - "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.19.tgz", + "integrity": "sha512-eoNQSpA5PQfB9wBO4RA47MTDXWz1fizy9Y3Z6e4DetYIF3dvjuu8sj7aIGn/bFCU6lnFzTK34NtCaffP4NsQ7Q==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -639,12 +1062,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz", - "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.19.tgz", + "integrity": "sha512-6UNt2dFuCHOe446sm/Kp69nUe8/wIhnh9bm6Xcqw4qEWCOppLMOvhTBVgvM7invVUNr4SPpP6NOQsACtn2IN9Q==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -654,12 +1078,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.3.tgz", - "integrity": "sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.19.tgz", + "integrity": "sha512-PhmojAHyqMne56HBLGu9dhDnHPuFmEjrXSQMM/nW0J6j849lk3ESrVtqNJcCk8CKOV7brpTTbaYAjwKPzKM69w==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -700,14 +1125,14 @@ "node": ">= 8" } }, - "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", - "optional": true, - "peer": true, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=12.4.0" } }, "node_modules/@pkgjs/parseargs": { @@ -720,21 +1145,24 @@ } }, "node_modules/@radix-ui/number": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", - "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.2.tgz", + "integrity": "sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==", + "license": "MIT" }, "node_modules/@radix-ui/primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", - "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.4.tgz", + "integrity": "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==", + "license": "MIT" }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.2.tgz", - "integrity": "sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.10.tgz", + "integrity": "sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.2" + "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", @@ -752,48 +1180,19 @@ } }, "node_modules/@radix-ui/react-checkbox": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.4.tgz", - "integrity": "sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", - "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.5.tgz", + "integrity": "sha512-pREzrmNnVwGvYaBoM64huTRK7B3lrTRuwj8A9nwhPiEtMb+yudiWh6zWAqEtP0Dzd5+iBa1Ki7V1pCxV8ExMdA==", "license": "MIT", "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-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-previous": "1.1.2", + "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -810,68 +1209,20 @@ } } }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/primitive": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", - "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-compose-refs": { - "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==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-id": { - "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==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-presence": { - "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==", + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.14.tgz", + "integrity": "sha512-9bT+FvifX1FK2Mj6UEsTdyu0cN3JaA3KdfhaBao+ONrYFy/pyOy3TU1TNw7iOk1o+0hOEq67RojlUUmoFGwxyA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -888,13 +1239,16 @@ } } }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-primitive": { - "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==", + "node_modules/@radix-ui/react-collection": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.10.tgz", + "integrity": "sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.3" + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", @@ -911,14 +1265,11 @@ } } }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-slot": { - "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==", + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", + "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==", "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -929,15 +1280,11 @@ } } }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-use-controllable-state": { - "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==", + "node_modules/@radix-ui/react-context": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.4.tgz", + "integrity": "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==", "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -948,93 +1295,26 @@ } } }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-use-layout-effect": { - "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==", + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.17.tgz", + "integrity": "sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw==", "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz", - "integrity": "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", - "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", - "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.6.tgz", - "integrity": "sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.2", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.4", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.13", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.10", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-portal": "1.1.12", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" + "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", @@ -1052,9 +1332,10 @@ } }, "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz", + "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1066,15 +1347,16 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz", - "integrity": "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.13.tgz", + "integrity": "sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-escape-keydown": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1092,17 +1374,18 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.6.tgz", - "integrity": "sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.18.tgz", + "integrity": "sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.6", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-controllable-state": "1.1.0" + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-menu": "2.1.18", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -1120,9 +1403,10 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", - "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz", + "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1134,13 +1418,14 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz", - "integrity": "sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.10.tgz", + "integrity": "sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==", + "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1158,11 +1443,12 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz", + "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==", + "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1175,11 +1461,12 @@ } }, "node_modules/@radix-ui/react-label": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.2.tgz", - "integrity": "sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.10.tgz", + "integrity": "sha512-ib0zvq2ZsAqKm5tRnqGJn3vOxSgIts5ToxsXT0q1S/GfLD1Zj7UOEnkw8u2w6sRmn47djpQWuSU1DCL1R29/yw==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.2" + "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", @@ -1197,28 +1484,29 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.6.tgz", - "integrity": "sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.2", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.2", - "@radix-ui/react-portal": "1.1.4", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-roving-focus": "1.1.2", - "@radix-ui/react-slot": "1.1.2", - "@radix-ui/react-use-callback-ref": "1.1.0", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.18.tgz", + "integrity": "sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-collection": "1.1.10", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.13", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.10", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-popper": "1.3.1", + "@radix-ui/react-portal": "1.1.12", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-roving-focus": "1.1.13", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-callback-ref": "1.1.2", "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" + "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", @@ -1236,20 +1524,21 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.2.tgz", - "integrity": "sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.1.tgz", + "integrity": "sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw==", + "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-rect": "1.1.0", - "@radix-ui/react-use-size": "1.1.0", - "@radix-ui/rect": "1.1.0" + "@radix-ui/react-arrow": "1.1.10", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.2", + "@radix-ui/react-use-rect": "1.1.2", + "@radix-ui/react-use-size": "1.1.2", + "@radix-ui/rect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1267,12 +1556,13 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.4.tgz", - "integrity": "sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.12.tgz", + "integrity": "sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-layout-effect": "1.1.0" + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1290,12 +1580,12 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", - "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.6.tgz", + "integrity": "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==", + "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1313,11 +1603,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz", - "integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.6.tgz", + "integrity": "sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==", + "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.1.2" + "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", @@ -1335,19 +1626,20 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz", - "integrity": "sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.13.tgz", + "integrity": "sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-collection": "1.1.10", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -1365,19 +1657,20 @@ } }, "node_modules/@radix-ui/react-scroll-area": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.3.tgz", - "integrity": "sha512-l7+NNBfBYYJa9tNqVcP2AGvxdE3lmE6kFTBXdvHgUaZuy+4wGCL1Cl2AfaR7RKyimj7lZURGLwFO59k4eBnDJQ==", - "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.12.tgz", + "integrity": "sha512-xuafVzQiTCLsyEjakowTdG3OgTXsmO7IdCiO77otIa+z44xoLNs9Do5eg7POFumIOCjtG6djfm6RKUKpUa/csA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.2", + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1395,31 +1688,33 @@ } }, "node_modules/@radix-ui/react-select": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.6.tgz", - "integrity": "sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==", - "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.2", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.2", - "@radix-ui/react-portal": "1.1.4", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.2", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.3.1.tgz", + "integrity": "sha512-w6eDvY78LE9ZUiNnXCA1QVK8RYN7k9galFv09kjVydJqBAgHd7Y9A6h0UJ/6DCZNGZMZrB2ohcSW1Bo9d8+wWA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.2", + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-collection": "1.1.10", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.13", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.10", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-popper": "1.3.1", + "@radix-ui/react-portal": "1.1.12", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-layout-effect": "1.1.2", + "@radix-ui/react-use-previous": "1.1.2", + "@radix-ui/react-visually-hidden": "1.2.6", "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" + "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", @@ -1437,21 +1732,22 @@ } }, "node_modules/@radix-ui/react-slider": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.3.tgz", - "integrity": "sha512-nNrLAWLjGESnhqBqcCNW4w2nn7LxudyMzeB6VgdyAnFLC6kfQgnAjSL2v6UkQTnDctJBlxrmxfplWS4iYjdUTw==", - "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.4.1.tgz", + "integrity": "sha512-r91WSpQucNGFKAIxT8FT0H0zyjd5tJlqObLp7LOMV4z49KoDCwjy01w3vDOU4e1wxhF9IgjYco7SB6byOW7Buw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.2", + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-collection": "1.1.10", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-layout-effect": "1.1.2", + "@radix-ui/react-use-previous": "1.1.2", + "@radix-ui/react-use-size": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1469,11 +1765,12 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz", - "integrity": "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1" + "@radix-ui/react-compose-refs": "1.1.3" }, "peerDependencies": { "@types/react": "*", @@ -1486,18 +1783,19 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.3.tgz", - "integrity": "sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-roving-focus": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.1.0" + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.15.tgz", + "integrity": "sha512-kxc9gI6/HfcU4nfMMVS3AmQK414kbU1IE6UCJmMmxjhO3cRPXOyYnmvyKD+ODt7q56nRq9l7Wovi6uaGwKgMlg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-roving-focus": "1.1.13", + "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -1515,22 +1813,23 @@ } }, "node_modules/@radix-ui/react-toast": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.6.tgz", - "integrity": "sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-portal": "1.1.4", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.2" + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.17.tgz", + "integrity": "sha512-uL4kyyWy000pPL43fGGCV5qT6ZchCWEQZOSlkYiPwPt8Hy1iW38RjeptIvz1/SZesrW6Vn58Ct3sV7tfEfiAbw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-collection": "1.1.10", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.13", + "@radix-ui/react-portal": "1.1.12", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-layout-effect": "1.1.2", + "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", @@ -1548,22 +1847,23 @@ } }, "node_modules/@radix-ui/react-tooltip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.8.tgz", - "integrity": "sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.2", - "@radix-ui/react-portal": "1.1.4", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.2" + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.10.tgz", + "integrity": "sha512-NlNe8D0dWEpVfXFli90IO6X07Josx/b1iu98tDnx9Xv0HT4wLIL+m2VOheMHhK7qbp2HoTBqALEFzGyZs/levw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.13", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-popper": "1.3.1", + "@radix-ui/react-portal": "1.1.12", + "@radix-ui/react-presence": "1.1.6", + "@radix-ui/react-primitive": "2.1.6", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-visually-hidden": "1.2.6" }, "peerDependencies": { "@types/react": "*", @@ -1581,10 +1881,11 @@ } }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", - "peerDependencies": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz", + "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==", + "license": "MIT", + "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, @@ -1595,11 +1896,13 @@ } }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz", + "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==", + "license": "MIT", "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" + "@radix-ui/react-use-effect-event": "0.0.3", + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1612,28 +1915,13 @@ } }, "node_modules/@radix-ui/react-use-effect-event": { - "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==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz", + "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@radix-ui/react-use-layout-effect": "1.1.2" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-effect-event/node_modules/@radix-ui/react-use-layout-effect": { - "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==", - "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1645,11 +1933,12 @@ } }, "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.2.tgz", + "integrity": "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==", + "license": "MIT", "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" + "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1662,9 +1951,10 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz", + "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1676,9 +1966,10 @@ } }, "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", - "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.2.tgz", + "integrity": "sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -1690,11 +1981,12 @@ } }, "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", - "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.2.tgz", + "integrity": "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==", + "license": "MIT", "dependencies": { - "@radix-ui/rect": "1.1.0" + "@radix-ui/rect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1707,11 +1999,12 @@ } }, "node_modules/@radix-ui/react-use-size": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", - "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.2.tgz", + "integrity": "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==", + "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", @@ -1724,11 +2017,12 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz", - "integrity": "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.6.tgz", + "integrity": "sha512-jCE0WljWifTI4niIMCll06kGpsJTAPiZVU9H4WR1N6qW7At9ystHbN7dDB+we2xH535roFHj7qKS+RGj0FMDWQ==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.2" + "@radix-ui/react-primitive": "2.1.6" }, "peerDependencies": { "@types/react": "*", @@ -1746,14 +2040,24 @@ } }, "node_modules/@radix-ui/rect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.2.tgz", + "integrity": "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", - "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + "node_modules/@rushstack/eslint-patch": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.16.1.tgz", + "integrity": "sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==", + "dev": true, + "license": "MIT" }, "node_modules/@swc/helpers": { "version": "0.5.15", @@ -1763,6 +2067,17 @@ "tslib": "^2.8.0" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/d3-array": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", @@ -1817,14 +2132,35 @@ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { - "version": "20.19.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.1.tgz", - "integrity": "sha512-jJD50LtlD2dodAEO653i3YF04NWak6jN3ky+Ri3Em3mGR39/glWiboM/IePaRbgwSfqM1TpGXfAg8ohn/4dTgA==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.0.tgz", + "integrity": "sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~8.3.0" } }, "node_modules/@types/prop-types": { @@ -1853,252 +2189,2256 @@ "@types/react": "^18.0.0" } }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz", + "integrity": "sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/type-utils": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, "engines": { - "node": ">=12" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.57.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.0.tgz", + "integrity": "sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.0.tgz", + "integrity": "sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==", + "dev": true, + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@typescript-eslint/tsconfig-utils": "^8.57.0", + "@typescript-eslint/types": "^8.57.0", + "debug": "^4.4.3" }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz", + "integrity": "sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz", + "integrity": "sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz", + "integrity": "sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, "engines": { - "node": ">= 0.6.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "node_modules/@typescript-eslint/types": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.0.tgz", + "integrity": "sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz", + "integrity": "sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==", + "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "@typescript-eslint/project-service": "8.57.0", + "@typescript-eslint/tsconfig-utils": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/braces": { - "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" - }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "dev": true, + "license": "MIT", "dependencies": { - "streamsearch": "^1.1.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=10.16.0" + "node": "18 || 20 || >=22" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", "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" + "brace-expansion": "^5.0.2" }, "engines": { - "node": ">= 0.4" + "node": "18 || 20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "node_modules/@typescript-eslint/utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.0.tgz", + "integrity": "sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==", + "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz", + "integrity": "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "@typescript-eslint/types": "8.57.0", + "eslint-visitor-keys": "^5.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 6" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, + "node_modules/ace-builds": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.44.0.tgz", + "integrity": "sha512-PFNMSYqFdEUkul2Ntud0HvA09AgY+F1ag0UYdpMH60wNI/qOA8cB8tlTgoALMEwIdUPJK2CjrIQ7OnbiSS/ugQ==", + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "dev": true, + "license": "MIT", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "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" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", + "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001699", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", + "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chokidar": { + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "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" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "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" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d3-array": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, + "node_modules/deep-is": { + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "dev": true, + "license": "MIT", + "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.4", + "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.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "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-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.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.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.1.tgz", + "integrity": "sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.1", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.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", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "15.5.12", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.5.12.tgz", + "integrity": "sha512-ktW3XLfd+ztEltY5scJNjxjHwtKWk6vU2iwzZqSN09UsbBmMeE/cVlJ1yESg6Yx5LW7p/Z8WzUAgYXGLEmGIpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "15.5.12", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", + "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "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==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "*" } }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "color-convert": "^2.0.1" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", "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" + "estraverse": "^5.1.0" }, "engines": { - "node": ">= 8.10.0" + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/fast-deep-equal": { + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", + "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "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" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "engines": { + "node": ">=8.6.0" } }, - "node_modules/chokidar/node_modules/glob-parent": { + "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", @@ -2109,264 +4449,331 @@ "node": ">= 6" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } + "node_modules/fast-json-stable-stringify": { + "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==", + "dev": true, + "license": "MIT" }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" + "reusify": "^1.0.4" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=16.0.0" } }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "optional": true, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=12.5.0" + "node": ">=8" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "optional": true, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "micromatch": "^4.0.2" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, "engines": { - "node": ">= 6" + "node": ">=16" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "node_modules/flatted": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "dev": true, + "license": "ISC" }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "is-callable": "^1.2.7" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css-line-break": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", - "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dependencies": { - "utrie": "^1.0.2" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", "dependencies": { - "internmap": "1 - 2" + "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" }, "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { - "d3-color": "1 - 3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "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" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-path": "^3.1.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "node_modules/get-tsconfig": { + "version": "4.13.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", + "dev": true, + "license": "MIT", "dependencies": { - "d3-array": "2 - 3" + "resolve-pkg-maps": "^1.0.0" }, - "engines": { - "node": ">=12" + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { - "d3-time": "1 - 3" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "node_modules/glob-parent": { + "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" + }, "engines": { - "node": ">=12" + "node": ">=10.13.0" } }, - "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, - "node_modules/define-data-property": { - "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==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", + "define-properties": "^1.2.1", "gopd": "^1.0.1" }, "engines": { @@ -2376,225 +4783,291 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", - "optional": true, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/detect-node-es": { + "node_modules/graceful-fs": { + "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==" + }, + "node_modules/has-bigints": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "node_modules/has-property-descriptors": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=0.8.19" } }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/fast-equals": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", - "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/is-array-buffer": { + "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==", + "dev": true, + "license": "MIT", "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" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/is-async-function": { + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "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" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/is-binary-path": { + "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": { - "to-regex-range": "^5.0.1" + "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "semver": "^7.7.1" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -2603,60 +5076,72 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "node_modules/is-data-view": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "bin": { - "glob": "dist/esm/bin.mjs" + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob-parent": { - "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" - }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -2664,34 +5149,51 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "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==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/is-glob": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "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==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2699,75 +5201,101 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/html2canvas": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", - "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/is-regex": { + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internmap": { + "node_modules/is-set": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "optional": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/is-shared-array-buffer": { + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2776,53 +5304,84 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, "engines": { - "node": ">=0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/isarray": { @@ -2835,6 +5394,24 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -2862,6 +5439,33 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "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==", + "dev": true, + "license": "MIT" + }, "node_modules/json-stable-stringify": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz", @@ -2876,14 +5480,35 @@ "engines": { "node": ">= 0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2899,6 +5524,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/klaw-sync": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", @@ -2907,6 +5558,40 @@ "graceful-fs": "^4.1.11" } }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -2923,12 +5608,49 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -2946,9 +5668,10 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/lucide-react": { - "version": "0.475.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.475.0.tgz", - "integrity": "sha512-NJzvVu1HwFVeZ+Gwq2q00KygM1aBhy/ZrhY9FsAgJtpB+E4R7uxRk9M2iKvHa6/vNxZydIB59htha4c2vvwvVg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.21.0.tgz", + "integrity": "sha512-reEZMXq8Qdd5jg5XYkQ5TR1fB/GiQ7ih4vcrthYDtgjSDwh0i6/YLiGjsWsIwgN49gpAnd4J2elSNzncMEEUUQ==", + "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -3011,6 +5734,13 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -3022,15 +5752,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3038,15 +5769,37 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, "node_modules/next": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/next/-/next-15.3.3.tgz", - "integrity": "sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==", + "version": "15.5.19", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.19.tgz", + "integrity": "sha512-xNOW6tYshGX1/Oi3F8uuk4gpDeWsSUE/1Z0G5uUMekIxaQ0xc03UXd9II0VQHYMWviMeA0OHpJFAKsHf8bTYVg==", + "license": "MIT", "dependencies": { - "@next/env": "15.3.3", - "@swc/counter": "0.1.3", + "@next/env": "15.5.19", "@swc/helpers": "0.5.15", - "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" @@ -3058,19 +5811,19 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.3.3", - "@next/swc-darwin-x64": "15.3.3", - "@next/swc-linux-arm64-gnu": "15.3.3", - "@next/swc-linux-arm64-musl": "15.3.3", - "@next/swc-linux-x64-gnu": "15.3.3", - "@next/swc-linux-x64-musl": "15.3.3", - "@next/swc-win32-arm64-msvc": "15.3.3", - "@next/swc-win32-x64-msvc": "15.3.3", - "sharp": "^0.34.1" + "@next/swc-darwin-arm64": "15.5.19", + "@next/swc-darwin-x64": "15.5.19", + "@next/swc-linux-arm64-gnu": "15.5.19", + "@next/swc-linux-arm64-musl": "15.5.19", + "@next/swc-linux-x64-gnu": "15.5.19", + "@next/swc-linux-x64-musl": "15.5.19", + "@next/swc-win32-arm64-msvc": "15.5.19", + "@next/swc-win32-x64-msvc": "15.5.19", + "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", + "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", @@ -3092,13 +5845,13 @@ } }, "node_modules/next-themes": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.3.0.tgz", - "integrity": "sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", "license": "MIT", "peerDependencies": { - "react": "^16.8 || ^17 || ^18", - "react-dom": "^16.8 || ^17 || ^18" + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "node_modules/next/node_modules/postcss": { @@ -3128,6 +5881,35 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3152,6 +5934,19 @@ "node": ">= 6" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -3160,20 +5955,162 @@ "node": ">= 0.4" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", "dependencies": { - "wrappy": "1" + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/package-json-from-dist": { @@ -3181,25 +6118,38 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, + "node_modules/parent-module": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/patch-package": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", - "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.1.tgz", + "integrity": "sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw==", + "license": "MIT", "dependencies": { "@yarnpkg/lockfile": "^1.1.0", "chalk": "^4.1.2", "ci-info": "^3.7.0", "cross-spawn": "^7.0.3", "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^9.0.0", + "fs-extra": "^10.0.0", "json-stable-stringify": "^1.0.2", "klaw-sync": "^6.0.0", "minimist": "^1.2.6", "open": "^7.4.2", - "rimraf": "^2.6.3", "semver": "^7.5.3", "slash": "^2.0.0", - "tmp": "^0.0.33", + "tmp": "^0.2.4", "yaml": "^2.2.2" }, "bin": { @@ -3236,12 +6186,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/path-key": { @@ -3304,10 +6256,20 @@ "node": ">= 6" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "funding": [ { "type": "opencollective", @@ -3322,8 +6284,9 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3440,10 +6403,20 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", + "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -3470,6 +6443,16 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3500,6 +6483,23 @@ "node": ">=0.10.0" } }, + "node_modules/react-ace": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/react-ace/-/react-ace-14.0.1.tgz", + "integrity": "sha512-z6YAZ20PNf/FqmYEic//G/UK6uw0rn21g58ASgHJHl9rfE4nITQLqthr9rHMVQK4ezwohJbp2dGrZpkq979PYQ==", + "license": "MIT", + "dependencies": { + "ace-builds": "^1.36.3", + "diff-match-patch": "^1.0.5", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": "^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -3518,9 +6518,10 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-remove-scroll": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", @@ -3661,11 +6662,55 @@ "decimal.js-light": "^2.4.1" } }, + "node_modules/reflect.getprototypeof": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, + "node_modules/regexp.prototype.flags": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -3685,65 +6730,33 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "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" + "node": ">=4" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "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" - }, - "engines": { - "node": "*" - }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/rimraf/node_modules/minimatch": { - "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" - }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "engines": { - "node": "*" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, "node_modules/run-parallel": { @@ -3768,6 +6781,61 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -3777,9 +6845,10 @@ } }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3803,16 +6872,48 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/sharp": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz", - "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, + "license": "Apache-2.0", "optional": true, "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.4", - "semver": "^7.7.2" + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -3821,27 +6922,30 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.2", - "@img/sharp-darwin-x64": "0.34.2", - "@img/sharp-libvips-darwin-arm64": "1.1.0", - "@img/sharp-libvips-darwin-x64": "1.1.0", - "@img/sharp-libvips-linux-arm": "1.1.0", - "@img/sharp-libvips-linux-arm64": "1.1.0", - "@img/sharp-libvips-linux-ppc64": "1.1.0", - "@img/sharp-libvips-linux-s390x": "1.1.0", - "@img/sharp-libvips-linux-x64": "1.1.0", - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", - "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.2", - "@img/sharp-linux-arm64": "0.34.2", - "@img/sharp-linux-s390x": "0.34.2", - "@img/sharp-linux-x64": "0.34.2", - "@img/sharp-linuxmusl-arm64": "0.34.2", - "@img/sharp-linuxmusl-x64": "0.34.2", - "@img/sharp-wasm32": "0.34.2", - "@img/sharp-win32-arm64": "0.34.2", - "@img/sharp-win32-ia32": "0.34.2", - "@img/sharp-win32-x64": "0.34.2" + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" } }, "node_modules/shebang-command": { @@ -3863,6 +6967,82 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -3874,15 +7054,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "optional": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, "node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -3899,12 +7070,25 @@ "node": ">=0.10.0" } }, - "node_modules/streamsearch": { + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" } }, "node_modules/string-width": { @@ -3937,28 +7121,141 @@ "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { @@ -3995,6 +7292,29 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/styled-jsx": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", @@ -4061,9 +7381,10 @@ } }, "node_modules/tailwind-merge": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.1.tgz", - "integrity": "sha512-AvzE8FmSoXC7nC+oU5GlQJbip2UO7tmOhOfQyOmPhrStOGXHU08j8mZEHZ4BmCqY5dWTCo4ClWkNyRNx1wpT0g==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz", + "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" @@ -4145,15 +7466,61 @@ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", + "license": "MIT", "engines": { - "node": ">=0.6.0" + "node": ">=14.14" } }, "node_modules/to-regex-range": { @@ -4167,16 +7534,133 @@ "node": ">=8.0" } }, + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -4191,10 +7675,29 @@ "node": ">=14.17" } }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "dev": true, "license": "MIT" }, @@ -4202,10 +7705,56 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/use-callback-ref": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", @@ -4295,6 +7844,105 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -4379,11 +8027,6 @@ "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, "node_modules/yaml": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", @@ -4394,6 +8037,19 @@ "engines": { "node": ">= 14" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/frontend/package.json b/frontend/package.json index 1fdfbcf..b1fb29a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,37 +10,41 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@radix-ui/react-checkbox": "^1.1.4", - "@radix-ui/react-collapsible": "^1.1.11", - "@radix-ui/react-dialog": "^1.1.6", - "@radix-ui/react-dropdown-menu": "^2.1.6", - "@radix-ui/react-label": "^2.1.2", - "@radix-ui/react-scroll-area": "^1.2.3", - "@radix-ui/react-select": "^2.1.6", - "@radix-ui/react-slider": "^1.2.3", - "@radix-ui/react-slot": "^1.1.2", - "@radix-ui/react-tabs": "^1.1.3", - "@radix-ui/react-toast": "^1.2.6", - "@radix-ui/react-tooltip": "^1.1.8", + "@radix-ui/react-checkbox": "^1.3.5", + "@radix-ui/react-collapsible": "^1.1.14", + "@radix-ui/react-dialog": "^1.1.17", + "@radix-ui/react-dropdown-menu": "^2.1.18", + "@radix-ui/react-label": "^2.1.10", + "@radix-ui/react-scroll-area": "^1.2.12", + "@radix-ui/react-select": "^2.3.1", + "@radix-ui/react-slider": "^1.4.1", + "@radix-ui/react-slot": "^1.3.0", + "@radix-ui/react-tabs": "^1.1.15", + "@radix-ui/react-toast": "^1.2.17", + "@radix-ui/react-tooltip": "^1.2.10", + "ace-builds": "^1.44.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "date-fns": "^3.6.0", + "date-fns": "^4.4.0", "html2canvas": "^1.4.1", - "lucide-react": "^0.475.0", - "next": "15.3.3", - "next-themes": "^0.3.0", - "patch-package": "^8.0.0", - "prettier": "^3.5.3", + "lucide-react": "^1.21.0", + "next": "15.5.19", + "next-themes": "^0.4.6", + "patch-package": "^8.0.1", + "prettier": "^3.8.4", "react": "^18.3.1", + "react-ace": "^14.0.1", "react-dom": "^18.3.1", "recharts": "^2.15.1", - "tailwind-merge": "^3.0.1", + "tailwind-merge": "^3.6.0", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "@types/node": "20.19.1", + "@types/node": "26.0.0", "@types/react": "18.3.23", "@types/react-dom": "^18", + "eslint": "^9.39.4", + "eslint-config-next": "^15.5.12", "postcss": "^8", "tailwindcss": "^3.4.1", "typescript": "5.8.3" diff --git a/frontend/src/app/about/page.tsx b/frontend/src/app/about/page.tsx index 2b2de74..dd6dfae 100644 --- a/frontend/src/app/about/page.tsx +++ b/frontend/src/app/about/page.tsx @@ -56,7 +56,7 @@ export default function AboutPage() { try { const users = await api.getMaintainers(); setAdminUsers(users.filter((user) => user.is_active)); - } catch (error) { + } catch { // Fallback to hardcoded admin if API fails setAdminUsers([ { @@ -248,7 +248,7 @@ export default function AboutPage() {

- Powered by Memray's flamegraph generation, explore exactly where + Powered by Memray's flamegraph generation, explore exactly where memory is allocated in the CPython codebase. Click through call stacks, zoom into specific functions, and identify memory hotspots. @@ -265,7 +265,7 @@ export default function AboutPage() {

- Access memory profiling data for any commit in CPython's + Access memory profiling data for any commit in CPython's history. Compare commits across weeks, months, or years to understand long-term memory usage trends and validate that optimizations have lasting impact. @@ -331,7 +331,7 @@ export default function AboutPage() {

CPython Memory Insights is built on top of Memray, - Bloomberg's powerful memory profiler for Python. Memray provides the + Bloomberg's powerful memory profiler for Python. Memray provides the core profiling capabilities that enable tracking memory allocations with minimal overhead and generate detailed flamegraphs for analysis. @@ -358,7 +358,7 @@ export default function AboutPage() { - {faqItems.map((item, index) => ( + {faqItems.map((item) => ( ([]); + const [users, setUsers] = useState([]); const [loading, setLoading] = useState(true); const [dialogOpen, setDialogOpen] = useState(false); const [newUser, setNewUser] = useState({ @@ -60,8 +51,6 @@ export default function AdminUsersManager() { }); const { toast } = useToast(); - const API_BASE = - process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; useEffect(() => { fetchUsers(); @@ -69,16 +58,8 @@ export default function AdminUsersManager() { const fetchUsers = async () => { try { - const response = await fetch(`${API_BASE}/admin/users`, { - credentials: 'include', - }); - - if (response.ok) { - const data = await response.json(); - setUsers(data); - } else { - throw new Error('Failed to fetch admin users'); - } + const data = await api.getAdminUsersList(); + setUsers(data); } catch (error) { console.error('Error fetching admin users:', error); toast({ @@ -102,31 +83,18 @@ export default function AdminUsersManager() { } try { - const response = await fetch(`${API_BASE}/admin/users`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - credentials: 'include', - body: JSON.stringify({ - github_username: newUser.github_username.trim(), - notes: newUser.notes.trim() || null, - }), + const createdUser = await api.createAdminUser({ + github_username: newUser.github_username.trim(), + notes: newUser.notes.trim() || undefined, }); - if (response.ok) { - const createdUser = await response.json(); - setUsers((prev) => [...prev, createdUser]); - setNewUser({ github_username: '', notes: '' }); - setDialogOpen(false); - toast({ - title: 'Success', - description: `Admin user @${createdUser.github_username} created successfully`, - }); - } else { - const error = await response.json(); - throw new Error(error.detail || 'Failed to create admin user'); - } + setUsers((prev) => [...prev, createdUser]); + setNewUser({ github_username: '', notes: '' }); + setDialogOpen(false); + toast({ + title: 'Success', + description: `Admin user @${createdUser.github_username} created successfully`, + }); } catch (error) { console.error('Error creating admin user:', error); toast({ @@ -152,23 +120,14 @@ export default function AdminUsersManager() { } try { - const response = await fetch(`${API_BASE}/admin/users/${username}`, { - method: 'DELETE', - credentials: 'include', + await api.deleteAdminUser(username); + setUsers((prev) => + prev.filter((user) => user.github_username !== username) + ); + toast({ + title: 'Success', + description: `Admin user @${username} removed successfully`, }); - - if (response.ok) { - setUsers((prev) => - prev.filter((user) => user.github_username !== username) - ); - toast({ - title: 'Success', - description: `Admin user @${username} removed successfully`, - }); - } else { - const error = await response.json(); - throw new Error(error.detail || 'Failed to remove admin user'); - } } catch (error) { console.error('Error removing admin user:', error); toast({ @@ -227,26 +186,24 @@ export default function AdminUsersManager() { Add New Admin User - -

- Grant administrative access to a GitHub user. They will be - able to access this admin panel and manage system settings. -

-
-
- -
-

- Administrative privileges include: -

-

- Binary configurations • Environment settings • Run - management • User administration -

+ + Grant administrative access to a GitHub user. They will be + able to access this admin panel and manage system settings. + +
+
+ +
+
+ Administrative privileges include: +
+
+ Binary configurations • Environment settings • Run + management • User administration
- +
diff --git a/frontend/src/app/admin/components/BenchmarkResultsManager.tsx b/frontend/src/app/admin/components/BenchmarkResultsManager.tsx new file mode 100644 index 0000000..6b23947 --- /dev/null +++ b/frontend/src/app/admin/components/BenchmarkResultsManager.tsx @@ -0,0 +1,666 @@ +'use client'; + +import { useState, useEffect } from 'react'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Badge } from '@/components/ui/badge'; +import { Textarea } from '@/components/ui/textarea'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@/components/ui/dialog'; +import { Checkbox } from '@/components/ui/checkbox'; +import { useToast } from '@/hooks/use-toast'; +import { + BarChart3, + Edit, + Trash2, + Search, + Flame, + Database, +} from 'lucide-react'; +import { api } from '@/lib/api'; +import type { BenchmarkResultResponse, BenchmarkResultUpdate } from '@/lib/types'; + +export default function BenchmarkResultsManager() { + const [results, setResults] = useState([]); + const [loading, setLoading] = useState(true); + const [editingResult, setEditingResult] = useState(null); + const [deleting, setDeleting] = useState(null); + const [editForm, setEditForm] = useState({}); + const [selectedResults, setSelectedResults] = useState>(new Set()); + const [bulkDeleting, setBulkDeleting] = useState(false); + const [flamegraphHtml, setFlamegraphHtml] = useState(null); + const { toast } = useToast(); + + + const [filters, setFilters] = useState({ + run_id: '', + benchmark_name: '', + min_memory: '', + max_memory: '', + }); + + const [currentPage, setCurrentPage] = useState(0); + const pageSize = 25; + + useEffect(() => { + loadResults(); + }, [filters, currentPage]); + + const loadResults = async () => { + try { + const params: { + run_id?: string; + benchmark_name?: string; + min_memory?: number; + max_memory?: number; + skip?: number; + limit?: number; + } = { + skip: currentPage * pageSize, + limit: pageSize, + }; + + if (filters.run_id) params.run_id = filters.run_id; + if (filters.benchmark_name) params.benchmark_name = filters.benchmark_name; + if (filters.min_memory) params.min_memory = parseInt(filters.min_memory); + if (filters.max_memory) params.max_memory = parseInt(filters.max_memory); + + const apiResults = await api.getAdminBenchmarkResults(params); + + // Map API response to component's expected format + const mappedResults: BenchmarkResultResponse[] = apiResults.map(result => ({ + id: result.id, + run_id: result.run_id, + benchmark_name: result.benchmark_name, + high_watermark_bytes: result.high_watermark_bytes, + total_allocated_bytes: result.total_allocated_bytes, + allocation_histogram: result.allocation_histogram, + top_allocating_functions: result.top_allocating_functions, + has_flamegraph: result.has_flamegraph, + })); + + setResults(mappedResults); + } catch (error) { + console.error('Error loading benchmark results:', error); + toast({ + title: 'Error', + description: 'Failed to load benchmark results', + variant: 'destructive', + }); + } finally { + setLoading(false); + } + }; + + const handleEdit = (result: BenchmarkResultResponse) => { + setEditingResult(result); + setEditForm({ + high_watermark_bytes: result.high_watermark_bytes, + total_allocated_bytes: result.total_allocated_bytes, + allocation_histogram: result.allocation_histogram, + top_allocating_functions: result.top_allocating_functions, + }); + }; + + const handleSaveEdit = async () => { + if (!editingResult) return; + + try { + // Map component's editForm to API's expected format + await api.updateBenchmarkResult(editingResult.id, editForm); + await loadResults(); + setEditingResult(null); + setEditForm({}); + toast({ + title: 'Success', + description: 'Benchmark result updated successfully', + }); + } catch (error) { + console.error('Error updating benchmark result:', error); + toast({ + title: 'Error', + description: `Failed to update benchmark result: ${ + error instanceof Error ? error.message : 'Unknown error' + }`, + variant: 'destructive', + }); + } + }; + + const handleDelete = async (result: BenchmarkResultResponse) => { + if ( + !confirm( + `Are you sure you want to delete benchmark result "${result.id}"?` + ) + ) + return; + + setDeleting(result.id); + try { + await api.deleteBenchmarkResult(result.id); + await loadResults(); + toast({ + title: 'Success', + description: 'Benchmark result deleted successfully', + }); + } catch (error) { + console.error('Error deleting benchmark result:', error); + toast({ + title: 'Error', + description: `Failed to delete benchmark result: ${ + error instanceof Error ? error.message : 'Unknown error' + }`, + variant: 'destructive', + }); + } finally { + setDeleting(null); + } + }; + + const handleBulkDelete = async () => { + if (selectedResults.size === 0) return; + + if ( + !confirm( + `Are you sure you want to delete ${selectedResults.size} benchmark results?` + ) + ) + return; + + setBulkDeleting(true); + try { + const data = await api.bulkDeleteBenchmarkResults(Array.from(selectedResults)); + await loadResults(); + setSelectedResults(new Set()); + toast({ + title: 'Success', + description: `Deleted ${data.deleted_count} benchmark results`, + }); + } catch (error) { + console.error('Error bulk deleting benchmark results:', error); + toast({ + title: 'Error', + description: `Failed to delete benchmark results: ${ + error instanceof Error ? error.message : 'Unknown error' + }`, + variant: 'destructive', + }); + } finally { + setBulkDeleting(false); + } + }; + + const handleViewFlamegraph = async (resultId: string) => { + try { + const data = await api.getBenchmarkResultFlamegraph(resultId); + setFlamegraphHtml(data.flamegraph_html); + } catch (error) { + console.error('Error loading flamegraph:', error); + toast({ + title: 'Error', + description: 'Failed to load flamegraph', + variant: 'destructive', + }); + } + }; + + const handleFilterChange = (key: string, value: string) => { + setFilters((prev) => ({ + ...prev, + [key]: value, + })); + setCurrentPage(0); + }; + + const clearFilters = () => { + setFilters({ + run_id: '', + benchmark_name: '', + min_memory: '', + max_memory: '', + }); + setCurrentPage(0); + }; + + const handleSelectResult = (resultId: string, checked: boolean) => { + const newSelected = new Set(selectedResults); + if (checked) { + newSelected.add(resultId); + } else { + newSelected.delete(resultId); + } + setSelectedResults(newSelected); + }; + + const handleSelectAll = (checked: boolean) => { + if (checked) { + setSelectedResults(new Set(results.map(r => r.id))); + } else { + setSelectedResults(new Set()); + } + }; + + const formatBytes = (bytes: number) => { + if (bytes === 0) return '0 B'; + const k = 1024; + const sizes = ['B', 'KB', 'MB', 'GB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; + }; + + return ( +
+
+
+

Benchmark Results

+

+ Manage benchmark execution results and performance data +

+
+ {selectedResults.size > 0 && ( + + )} +
+ + {/* Filters */} + + + + + Filters + + + +
+
+ + handleFilterChange('run_id', e.target.value)} + /> +
+ +
+ + handleFilterChange('benchmark_name', e.target.value)} + /> +
+ +
+ + handleFilterChange('min_memory', e.target.value)} + /> +
+ +
+ + handleFilterChange('max_memory', e.target.value)} + /> +
+ +
+ +
+
+
+
+ + {/* Results List */} + {loading ? ( +
+ {[...Array(5)].map((_, i) => ( + + +
+
+
+ +
+
+
+
+
+
+ ))} +
+ ) : ( + <> + {results.length > 0 && ( + + +
+ + +
+
+
+ )} + +
+ {results.map((result) => ( + + +
+
+ + handleSelectResult(result.id, checked as boolean) + } + /> + +
+ + {result.benchmark_name} + + + Run: {result.run_id.substring(0, 16)}... + +
+
+
+ + {formatBytes(result.high_watermark_bytes)} + + {result.has_flamegraph && ( + + + + + + + Flamegraph - {result.benchmark_name} + + Interactive flamegraph visualization showing memory allocation patterns for this benchmark result. + + +
+ {flamegraphHtml && ( +
+ )} +
+ +
+ )} + + + + + + + Edit Benchmark Result + + Modify the benchmark result metrics and metadata. Changes will be saved immediately. + + +
+
+ + +
+ +
+ + + setEditForm((prev) => ({ + ...prev, + high_watermark_bytes: parseInt(e.target.value) || 0, + })) + } + /> +
+ +
+ + + setEditForm((prev) => ({ + ...prev, + total_allocated_bytes: parseInt(e.target.value) || 0, + })) + } + /> +
+ +
+ +