From 8f1f73aa9fdc379960a8bfc66e6024092643419a Mon Sep 17 00:00:00 2001 From: Roger-luo Date: Sat, 11 Jul 2026 14:30:05 -0400 Subject: [PATCH 01/19] Prototype: unified Astro + Starlight docs site (Python + Rust) Adds a new documentation website under website/ (Astro 5 + Starlight) that unifies Python + Rust API reference under one theme, search, and version switcher, alongside the existing MkDocs site (untouched, still live). Highlights: - Language-native emitters -> MDX via a shared component contract: griffe (Python) and rustdoc-JSON (Rust). Astro owns all presentation. - docs.sources.toml manifest + resolver: aggregate scattered repos by pinned tag (uv pip show), or a local monorepo path. Adding a source (e.g. ppvm) is one entry. - Cross-references resolve via a merged inventory; emits a Sphinx-compatible objects.inv. Broken-xref check (XREF_STRICT=1). - Versioning: single distribution axis (bloqade meta-version) + auto-generated compatibility matrix; only /api is versioned, shell/guides/blog are evergreen. - Unified Pagefind search across guides, blog, landing and API symbols. - One design system: a single token layer feeds the custom landing/blog AND all Starlight --sl-* vars; shared header/footer + widget styling (no default Starlight look). - Additive CI (.github/workflows/website-*.yml) deploys to isolated gh-pages subpaths (/next/, astro-preview/pr-N/); publish.sh abstracts the host (one-line Vercel swap). - Representative content migrated (getting-started, digital + analog narrative, blog); full tutorial/example migration is the gradual follow-up. Generated per-version API content, versions.json and the merged inventory are gitignored and regenerated by scripts/build_versions.py. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/website-deploy.yml | 99 + .github/workflows/website-preview.yml | 119 + .github/workflows/website-release.yml | 110 + website/.api-inventory/.gitkeep | 0 website/.gitignore | 41 + website/astro.config.mjs | 227 + website/docs.sources.toml | 61 + website/emitters/notebooks/.gitignore | 12 + website/emitters/notebooks/README.md | 188 + website/emitters/notebooks/pyproject.toml | 35 + .../bloqade_docs_emit_notebooks/__init__.py | 5 + .../bloqade_docs_emit_notebooks/__main__.py | 173 + .../src/bloqade_docs_emit_notebooks/escape.py | 150 + .../bloqade_docs_emit_notebooks/pipeline.py | 211 + .../src/bloqade_docs_emit_notebooks/render.py | 345 ++ website/emitters/notebooks/uv.lock | 5017 ++++++++++++++++ website/emitters/python/.gitignore | 9 + website/emitters/python/README.md | 192 + website/emitters/python/pyproject.toml | 19 + .../src/bloqade_docs_emit_python/__init__.py | 0 .../src/bloqade_docs_emit_python/__main__.py | 110 + .../src/bloqade_docs_emit_python/emitter.py | 454 ++ .../src/bloqade_docs_emit_python/escape.py | 227 + .../src/bloqade_docs_emit_python/render.py | 468 ++ website/emitters/python/uv.lock | 35 + website/emitters/rust/.gitignore | 9 + website/emitters/rust/emit_rust.py | 934 +++ website/package.json | 25 + website/pnpm-lock.yaml | 5330 +++++++++++++++++ website/pnpm-workspace.yaml | 6 + website/public/blog/example_annotation.svg | 1 + website/public/blog/flowchart.png | Bin 0 -> 156668 bytes website/public/blog/noisy_ghz_fidelity.svg | 1097 ++++ website/public/favicon.ico | Bin 0 -> 4286 bytes .../public/guides/analog/analog-logo-dark.svg | 142 + website/public/guides/analog/analog-logo.svg | 135 + .../guides/analog/geometry-visualization.png | Bin 0 -> 61247 bytes .../analog/index/geometry-visualization.png | Bin 0 -> 181339 bytes .../index/hardware-program-visualization.png | Bin 0 -> 161933 bytes .../analog/index/program-visualization.png | Bin 0 -> 164311 bytes .../analog/index/report-visualization.png | Bin 0 -> 150593 bytes .../analog/pulse-sequence-visualization.png | Bin 0 -> 75841 bytes .../quick_start/geometry-visualization.png | Bin 0 -> 61247 bytes .../analog/quick_start/ipython-hints.gif | Bin 0 -> 416692 bytes .../analog/quick_start/jupyter-hints.gif | Bin 0 -> 468157 bytes .../pulse-sequence-visualization.png | Bin 0 -> 75841 bytes .../analog/quick_start/pycharm-hints.gif | Bin 0 -> 989011 bytes .../quick_start/report-visualization.png | Bin 0 -> 162689 bytes .../analog/quick_start/vscode-hints.gif | Bin 0 -> 1026968 bytes .../guides/analog/report-visualization.png | Bin 0 -> 162689 bytes .../guides/digital/dialects/qft-pprint.png | Bin 0 -> 496910 bytes .../guides/digital/dialects/qft-qasm2.png | Bin 0 -> 67952 bytes .../guides/digital/dialects/squin-ir-1.png | Bin 0 -> 70638 bytes .../guides/digital/dialects/squin-ir-2.png | Bin 0 -> 122475 bytes .../ghz/assets/ghz_linear_circuit.svg | 86 + .../tutorials/ghz/assets/ghz_log_circuit.svg | 91 + website/scripts/build_inventory.mjs | 214 + website/scripts/build_versions.py | 524 ++ website/scripts/gen_compat_matrix.py | 170 + website/scripts/publish.sh | 146 + website/scripts/resolve_sources.py | 273 + website/src/assets/favicon.ico | Bin 0 -> 4286 bytes website/src/assets/logo-dark.svg | 134 + website/src/assets/logo.svg | 127 + website/src/components/Footer.astro | 19 + website/src/components/Header.astro | 26 + website/src/components/MermaidHead.astro | 130 + website/src/components/Sidebar.astro | 16 + website/src/components/SiteFooter.astro | 36 + website/src/components/SiteHeader.astro | 92 + website/src/components/VersionSwitcher.astro | 107 + website/src/components/api/ApiClass.astro | 61 + website/src/components/api/ApiFn.astro | 45 + website/src/components/api/ApiModule.astro | 37 + website/src/components/api/ApiXref.astro | 40 + website/src/components/api/Params.astro | 67 + website/src/components/api/Raises.astro | 45 + website/src/components/api/Returns.astro | 27 + website/src/components/api/Signature.astro | 65 + website/src/components/api/Source.astro | 35 + website/src/components/api/api.css | 434 ++ website/src/components/api/index.ts | 19 + website/src/content.config.ts | 69 + website/src/content/blog/.gitkeep | 1 + website/src/content/blog/a-new-journey.mdx | 43 + .../content/blog/the-noise-strikes-back.mdx | 147 + .../src/content/docs/api/compatibility.mdx | 19 + website/src/content/docs/api/index.mdx | 24 + .../content/docs/guides/analog/background.mdx | 70 + .../docs/guides/analog/contributing.mdx | 162 + .../content/docs/guides/analog/gotchas.mdx | 100 + .../src/content/docs/guides/analog/index.mdx | 322 + .../content/docs/guides/analog/migration.mdx | 72 + .../docs/guides/analog/quick-start.mdx | 479 ++ .../reference/hardware-capabilities.mdx | 105 + .../docs/guides/analog/reference/overview.mdx | 42 + .../docs/guides/analog/reference/standard.mdx | 129 + .../src/content/docs/guides/contributing.mdx | 69 + .../digital/cirq-interop/cirq-to-squin.mdx | 153 + .../guides/digital/cirq-interop/index.mdx | 38 + .../digital/cirq-interop/squin-to-cirq.mdx | 64 + .../docs/guides/digital/compilation.mdx | 96 + .../docs/guides/digital/dialects/index.mdx | 89 + .../docs/guides/digital/dialects/qasm2.mdx | 179 + .../docs/guides/digital/dialects/squin.mdx | 158 + .../docs/guides/digital/dialects/stim.mdx | 28 + .../src/content/docs/guides/digital/index.mdx | 67 + .../digital/simulation/simulator-device.mdx | 30 + .../docs/guides/digital/simulation/tasks.mdx | 42 + website/src/content/docs/guides/example.mdx | 35 + .../guides/getting-started/background.mdx | 42 + .../guides/getting-started/installation.mdx | 104 + .../getting-started/quickstart-analog.mdx | 458 ++ .../getting-started/quickstart-digital.mdx | 135 + website/src/content/docs/guides/index.mdx | 72 + website/src/content/docs/guides/manifesto.mdx | 34 + .../src/content/docs/guides/tutorials/ghz.mdx | 233 + website/src/content/docs/reference/index.md | 8 + website/src/env.d.ts | 2 + website/src/integrations/xref.mjs | 212 + website/src/layouts/SiteLayout.astro | 100 + website/src/pages/blog/[...slug].astro | 47 + website/src/pages/blog/index.astro | 48 + website/src/pages/index.astro | 113 + website/src/styles/brand.css | 981 +++ website/tsconfig.json | 13 + 126 files changed, 24486 insertions(+) create mode 100644 .github/workflows/website-deploy.yml create mode 100644 .github/workflows/website-preview.yml create mode 100644 .github/workflows/website-release.yml create mode 100644 website/.api-inventory/.gitkeep create mode 100644 website/.gitignore create mode 100644 website/astro.config.mjs create mode 100644 website/docs.sources.toml create mode 100644 website/emitters/notebooks/.gitignore create mode 100644 website/emitters/notebooks/README.md create mode 100644 website/emitters/notebooks/pyproject.toml create mode 100644 website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__init__.py create mode 100644 website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__main__.py create mode 100644 website/emitters/notebooks/src/bloqade_docs_emit_notebooks/escape.py create mode 100644 website/emitters/notebooks/src/bloqade_docs_emit_notebooks/pipeline.py create mode 100644 website/emitters/notebooks/src/bloqade_docs_emit_notebooks/render.py create mode 100644 website/emitters/notebooks/uv.lock create mode 100644 website/emitters/python/.gitignore create mode 100644 website/emitters/python/README.md create mode 100644 website/emitters/python/pyproject.toml create mode 100644 website/emitters/python/src/bloqade_docs_emit_python/__init__.py create mode 100644 website/emitters/python/src/bloqade_docs_emit_python/__main__.py create mode 100644 website/emitters/python/src/bloqade_docs_emit_python/emitter.py create mode 100644 website/emitters/python/src/bloqade_docs_emit_python/escape.py create mode 100644 website/emitters/python/src/bloqade_docs_emit_python/render.py create mode 100644 website/emitters/python/uv.lock create mode 100644 website/emitters/rust/.gitignore create mode 100644 website/emitters/rust/emit_rust.py create mode 100644 website/package.json create mode 100644 website/pnpm-lock.yaml create mode 100644 website/pnpm-workspace.yaml create mode 100644 website/public/blog/example_annotation.svg create mode 100644 website/public/blog/flowchart.png create mode 100644 website/public/blog/noisy_ghz_fidelity.svg create mode 100644 website/public/favicon.ico create mode 100644 website/public/guides/analog/analog-logo-dark.svg create mode 100644 website/public/guides/analog/analog-logo.svg create mode 100644 website/public/guides/analog/geometry-visualization.png create mode 100644 website/public/guides/analog/index/geometry-visualization.png create mode 100644 website/public/guides/analog/index/hardware-program-visualization.png create mode 100644 website/public/guides/analog/index/program-visualization.png create mode 100644 website/public/guides/analog/index/report-visualization.png create mode 100644 website/public/guides/analog/pulse-sequence-visualization.png create mode 100644 website/public/guides/analog/quick_start/geometry-visualization.png create mode 100644 website/public/guides/analog/quick_start/ipython-hints.gif create mode 100644 website/public/guides/analog/quick_start/jupyter-hints.gif create mode 100644 website/public/guides/analog/quick_start/pulse-sequence-visualization.png create mode 100644 website/public/guides/analog/quick_start/pycharm-hints.gif create mode 100644 website/public/guides/analog/quick_start/report-visualization.png create mode 100644 website/public/guides/analog/quick_start/vscode-hints.gif create mode 100644 website/public/guides/analog/report-visualization.png create mode 100644 website/public/guides/digital/dialects/qft-pprint.png create mode 100644 website/public/guides/digital/dialects/qft-qasm2.png create mode 100644 website/public/guides/digital/dialects/squin-ir-1.png create mode 100644 website/public/guides/digital/dialects/squin-ir-2.png create mode 100644 website/public/tutorials/ghz/assets/ghz_linear_circuit.svg create mode 100644 website/public/tutorials/ghz/assets/ghz_log_circuit.svg create mode 100644 website/scripts/build_inventory.mjs create mode 100644 website/scripts/build_versions.py create mode 100644 website/scripts/gen_compat_matrix.py create mode 100755 website/scripts/publish.sh create mode 100644 website/scripts/resolve_sources.py create mode 100644 website/src/assets/favicon.ico create mode 100644 website/src/assets/logo-dark.svg create mode 100644 website/src/assets/logo.svg create mode 100644 website/src/components/Footer.astro create mode 100644 website/src/components/Header.astro create mode 100644 website/src/components/MermaidHead.astro create mode 100644 website/src/components/Sidebar.astro create mode 100644 website/src/components/SiteFooter.astro create mode 100644 website/src/components/SiteHeader.astro create mode 100644 website/src/components/VersionSwitcher.astro create mode 100644 website/src/components/api/ApiClass.astro create mode 100644 website/src/components/api/ApiFn.astro create mode 100644 website/src/components/api/ApiModule.astro create mode 100644 website/src/components/api/ApiXref.astro create mode 100644 website/src/components/api/Params.astro create mode 100644 website/src/components/api/Raises.astro create mode 100644 website/src/components/api/Returns.astro create mode 100644 website/src/components/api/Signature.astro create mode 100644 website/src/components/api/Source.astro create mode 100644 website/src/components/api/api.css create mode 100644 website/src/components/api/index.ts create mode 100644 website/src/content.config.ts create mode 100644 website/src/content/blog/.gitkeep create mode 100644 website/src/content/blog/a-new-journey.mdx create mode 100644 website/src/content/blog/the-noise-strikes-back.mdx create mode 100644 website/src/content/docs/api/compatibility.mdx create mode 100644 website/src/content/docs/api/index.mdx create mode 100644 website/src/content/docs/guides/analog/background.mdx create mode 100644 website/src/content/docs/guides/analog/contributing.mdx create mode 100644 website/src/content/docs/guides/analog/gotchas.mdx create mode 100644 website/src/content/docs/guides/analog/index.mdx create mode 100644 website/src/content/docs/guides/analog/migration.mdx create mode 100644 website/src/content/docs/guides/analog/quick-start.mdx create mode 100644 website/src/content/docs/guides/analog/reference/hardware-capabilities.mdx create mode 100644 website/src/content/docs/guides/analog/reference/overview.mdx create mode 100644 website/src/content/docs/guides/analog/reference/standard.mdx create mode 100644 website/src/content/docs/guides/contributing.mdx create mode 100644 website/src/content/docs/guides/digital/cirq-interop/cirq-to-squin.mdx create mode 100644 website/src/content/docs/guides/digital/cirq-interop/index.mdx create mode 100644 website/src/content/docs/guides/digital/cirq-interop/squin-to-cirq.mdx create mode 100644 website/src/content/docs/guides/digital/compilation.mdx create mode 100644 website/src/content/docs/guides/digital/dialects/index.mdx create mode 100644 website/src/content/docs/guides/digital/dialects/qasm2.mdx create mode 100644 website/src/content/docs/guides/digital/dialects/squin.mdx create mode 100644 website/src/content/docs/guides/digital/dialects/stim.mdx create mode 100644 website/src/content/docs/guides/digital/index.mdx create mode 100644 website/src/content/docs/guides/digital/simulation/simulator-device.mdx create mode 100644 website/src/content/docs/guides/digital/simulation/tasks.mdx create mode 100644 website/src/content/docs/guides/example.mdx create mode 100644 website/src/content/docs/guides/getting-started/background.mdx create mode 100644 website/src/content/docs/guides/getting-started/installation.mdx create mode 100644 website/src/content/docs/guides/getting-started/quickstart-analog.mdx create mode 100644 website/src/content/docs/guides/getting-started/quickstart-digital.mdx create mode 100644 website/src/content/docs/guides/index.mdx create mode 100644 website/src/content/docs/guides/manifesto.mdx create mode 100644 website/src/content/docs/guides/tutorials/ghz.mdx create mode 100644 website/src/content/docs/reference/index.md create mode 100644 website/src/env.d.ts create mode 100644 website/src/integrations/xref.mjs create mode 100644 website/src/layouts/SiteLayout.astro create mode 100644 website/src/pages/blog/[...slug].astro create mode 100644 website/src/pages/blog/index.astro create mode 100644 website/src/pages/index.astro create mode 100644 website/src/styles/brand.css create mode 100644 website/tsconfig.json diff --git a/.github/workflows/website-deploy.yml b/.github/workflows/website-deploy.yml new file mode 100644 index 000000000..550ee45a5 --- /dev/null +++ b/.github/workflows/website-deploy.yml @@ -0,0 +1,99 @@ +name: Website Deploy (Astro -> /next/) + +# Publishes the WIP Astro/Starlight docs site to the gh-pages SUBPATH `/next/` +# on every push to the `astro-docs` development branch. This is ADDITIVE to the +# live MkDocs site: `mike` (devdoc.yml/pub_doc.yml) owns the branch ROOT plus +# `dev/`, `latest/`, `v*/`; this workflow only ever writes under `/next/`. +# +# NOTE: deliberately wired to `astro-docs`, NOT `main`. Production cutover to +# the root is Phase F (see website-release.yml). +on: + push: + branches: [astro-docs] + +# Share the single gh-pages writer group (see website-preview.yml) so this +# deploy serializes with every mike deploy / PR preview / history squash. +concurrency: + group: gh-pages-write + cancel-in-progress: false + +permissions: + contents: write # publish.sh pushes to the gh-pages branch + +jobs: + deploy: + name: Build + publish /next/ + runs-on: ubuntu-latest + env: + # Publish subpath. `base` MUST equal the publish subpath (see publish.sh). + SITE_BASE: /next/ + SITE_URL: https://bloqade.quera.com + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.5.1" + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: Install bloqade (pins the API source tags for resolve_sources.py) + run: uv sync + + - name: Set up pnpm + uses: pnpm/action-setup@v4 + with: + version: 11 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + cache-dependency-path: website/pnpm-lock.yaml + + - name: Install website JS deps + run: pnpm --dir website install --frozen-lockfile + + - name: Install pinned Rust nightly (rustdoc JSON format_version 57) + uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly-2026-04-17 + + - name: Cache cargo registry + Astro content + uses: actions/cache@v5 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + website/.astro + key: website-cargo-astro-${{ runner.os }}-${{ hashFiles('website/pnpm-lock.yaml', 'website/docs.sources.toml') }} + restore-keys: | + website-cargo-astro-${{ runner.os }}- + + # EXECUTE_NOTEBOOKS intentionally UNSET: tutorials render statically here. + - name: Generate dev API content + run: > + uv run python website/scripts/build_versions.py + --versions dev + --clone-dir website/sources + --rust-toolchain nightly-2026-04-17 + + - name: Build Astro site + env: + XREF_STRICT: "0" # warn (don't fail the WIP deploy) on unresolved xrefs + run: pnpm --dir website build + + - name: Configure Git user + run: | + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + + # publish.sh replaces ONLY gh-pages:/next/ and preserves every sibling + # (the MkDocs root + dev/latest/v*/pr-preview/). SITE_BASE above ('/next/') + # matches the 'next' subpath passed here. + - name: Publish to gh-pages:/next/ + run: bash website/scripts/publish.sh website/dist next diff --git a/.github/workflows/website-preview.yml b/.github/workflows/website-preview.yml new file mode 100644 index 000000000..ee4d7f7c2 --- /dev/null +++ b/.github/workflows/website-preview.yml @@ -0,0 +1,119 @@ +name: Website Preview (Astro) + +# Per-PR preview of the WIP Astro/Starlight docs site (Phase D2). This is +# ADDITIVE to the live MkDocs pipeline and NEVER touches the gh-pages root: +# * it deploys under the umbrella dir `astro-preview/` (per PR: +# `astro-preview/pr-/`), which is DISTINCT from the MkDocs preview in +# `doc.yml` (default umbrella `pr-preview/`), so the two never collide; +# * production cutover to `main`/root is a later phase. +on: + pull_request: + types: [opened, reopened, synchronize, closed] + +# Serialize with EVERY other gh-pages writer (devdoc.yml dev deploy, +# pub_doc.yml release deploy, squash-gh-pages.yml, website-deploy.yml) on one +# shared group so concurrent pushes can't clobber the branch. Must stay +# cancel-in-progress:false — cancelling a push mid-flight can corrupt gh-pages. +concurrency: + group: gh-pages-write + cancel-in-progress: false + +permissions: + contents: write # push the preview to the gh-pages branch + pull-requests: write # leave/update the sticky preview comment + +jobs: + preview: + name: Build + deploy Astro PR preview + runs-on: ubuntu-latest + env: + # The preview is served at https://bloqade.quera.com/astro-preview/pr-/ + # (gh-pages CNAME). Astro's `base` MUST match this subpath exactly or every + # asset URL and internal link 404s. + SITE_BASE: /astro-preview/pr-${{ github.event.pull_request.number }}/ + SITE_URL: https://bloqade.quera.com + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + # ---- build (skipped when the PR is merely being closed; the deploy step + # below still runs to TEAR DOWN the preview) ---- + - name: Install uv + if: github.event.action != 'closed' + uses: astral-sh/setup-uv@v7 + with: + version: "0.5.1" + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: Install bloqade (pins the API source tags for resolve_sources.py) + if: github.event.action != 'closed' + run: uv sync + + - name: Set up pnpm + if: github.event.action != 'closed' + uses: pnpm/action-setup@v4 + with: + version: 11 + + - name: Set up Node + if: github.event.action != 'closed' + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + cache-dependency-path: website/pnpm-lock.yaml + + - name: Install website JS deps + if: github.event.action != 'closed' + run: pnpm --dir website install --frozen-lockfile + + - name: Install pinned Rust nightly (rustdoc JSON format_version 57) + if: github.event.action != 'closed' + uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly-2026-04-17 + + - name: Cache cargo registry + Astro content + if: github.event.action != 'closed' + uses: actions/cache@v5 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + website/.astro + key: website-cargo-astro-${{ runner.os }}-${{ hashFiles('website/pnpm-lock.yaml', 'website/docs.sources.toml') }} + restore-keys: | + website-cargo-astro-${{ runner.os }}- + + # Generates src/content/docs/api/dev/** (python + rust) + inventories + + # versions.json. `uv run` here uses the repo env synced above so + # resolve_sources.py can `uv pip show bloqade-*` to pin each source tag. + # EXECUTE_NOTEBOOKS is intentionally UNSET (tutorials render statically); + # notebook execution is reserved for a nightly workflow. + - name: Generate dev API content + if: github.event.action != 'closed' + run: > + uv run python website/scripts/build_versions.py + --versions dev + --clone-dir website/sources + --rust-toolchain nightly-2026-04-17 + + # Auto-runs build_inventory.mjs (config:setup), Pagefind, and the xref + # integration that emits dist/objects.inv. XREF_STRICT=0 -> warn (don't + # fail the preview) on unresolved cross-references. + - name: Build Astro site + if: github.event.action != 'closed' + env: + XREF_STRICT: "0" + run: pnpm --dir website build + + # ---- deploy / teardown. Runs on `closed` too: pr-preview-action's + # `auto` mode removes `astro-preview/pr-/` when the PR closes. ---- + - name: Deploy PR preview to gh-pages:/astro-preview/pr-/ + uses: rossjrw/pr-preview-action@v1 + with: + source-dir: website/dist + umbrella-dir: astro-preview + pages-base-url: https://bloqade.quera.com diff --git a/.github/workflows/website-release.yml b/.github/workflows/website-release.yml new file mode 100644 index 000000000..b2c3b0af2 --- /dev/null +++ b/.github/workflows/website-release.yml @@ -0,0 +1,110 @@ +name: Website Release (Astro) [NOT PRODUCTION] + +# ============================================================================ +# SKELETON for the future tag-based release build of the Astro/Starlight docs +# site (Phase F cutover). It is intentionally: +# * MANUAL-ONLY — `workflow_dispatch`, so a `v*` tag push does NOT trigger it +# (the live MkDocs release deploy, pub_doc.yml, still owns +# tag pushes and the gh-pages root); +# * NON-DEPLOYING — the publish step is HARD-DISABLED (`if: false`) so it can +# NEVER write to the gh-pages root before cutover. +# Running it today only proves the release CONTENT build (`--versions +# --keep 3`) works end to end; nothing is published. +# +# PHASE F TODO (cutover): +# 1. Add the real trigger: on: { push: { tags: ['v*'] } }. +# 2. Set SITE_BASE=/ (root) + the production SITE_URL. +# 3. Replace the disabled publish step with the real root deploy (retiring or +# redirecting the MkDocs `mike` root), and remove `[NOT PRODUCTION]`. +# ============================================================================ +on: + workflow_dispatch: + inputs: + version: + description: "Release doc version to build, e.g. 0.35 (maps to api/)." + required: true + type: string + +concurrency: + group: gh-pages-write + cancel-in-progress: false + +permissions: + contents: write + +jobs: + release: + name: Build release docs (dry run — no deploy until cutover) + runs-on: ubuntu-latest + env: + # Phase F TODO: at cutover this becomes SITE_BASE=/ so the release site + # replaces the MkDocs root. Until then we build under /next/ for parity + # with the WIP deploy and DO NOT publish. + SITE_BASE: /next/ + SITE_URL: https://bloqade.quera.com + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install uv + uses: astral-sh/setup-uv@v7 + with: + version: "0.5.1" + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: Install bloqade (pins the API source tags for resolve_sources.py) + run: uv sync + + - name: Set up pnpm + uses: pnpm/action-setup@v4 + with: + version: 11 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + cache-dependency-path: website/pnpm-lock.yaml + + - name: Install website JS deps + run: pnpm --dir website install --frozen-lockfile + + - name: Install pinned Rust nightly (rustdoc JSON format_version 57) + uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly-2026-04-17 + + - name: Cache cargo registry + Astro content + uses: actions/cache@v5 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + website/.astro + key: website-cargo-astro-${{ runner.os }}-${{ hashFiles('website/pnpm-lock.yaml', 'website/docs.sources.toml') }} + restore-keys: | + website-cargo-astro-${{ runner.os }}- + + # Release build: emit api//** and PRUNE to the newest 3 releases + # (`dev` is always kept). Mirrors pub_doc.yml's KEEP_RELEASES=3 policy. + - name: Generate release API content (--keep 3) + run: > + uv run python website/scripts/build_versions.py + --versions ${{ inputs.version }} + --clone-dir website/sources + --keep 3 + --rust-toolchain nightly-2026-04-17 + + - name: Build Astro site + run: pnpm --dir website build + + # PHASE F CUTOVER: enable this (real `if:`), rebuild with SITE_BASE=/, and + # publish to the branch ROOT. publish.sh deliberately REFUSES an empty + # subpath today, so root deploys are an explicit cutover decision, not a + # flag flip. Disabled so this workflow can never touch the live root. + - name: Publish release to gh-pages root (DISABLED until cutover) + if: false + run: echo "Phase F cutover not yet enabled — no deploy." diff --git a/website/.api-inventory/.gitkeep b/website/.api-inventory/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 000000000..23e5890c2 --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,41 @@ +# build output +dist/ +# scratch build outputs (e.g. `astro build --outDir dist-c1`); real builds use dist/ +dist-*/ +# generated Astro types +.astro/ +# deps +node_modules/ +# tsconfig.json is a real, required config file but is caught by the repo-root +# `.gitignore` `*.json` rule; re-include it here. +!tsconfig.json +# CI clone target for resolve_sources.py --clone +sources/ +# env / logs +.env +.env.production +*.log +# macOS +.DS_Store + +# Phase C1 — API cross-reference inventory. +# The MERGED lookup is regenerated (by scripts/build_inventory.mjs and by the +# xref integration at astro:config:setup); it is already covered by the root +# `*.json` rule and must NOT be committed. Listed here for clarity: +src/generated/xref-inventory.json +# Per-version inventories that Phase C2 drops here ARE the committed source of +# truth, but the root `.gitignore` ignores all `*.json` — re-include them: +!.api-inventory/*.json +# (emitters/*/_out is already ignored by emitters/*/.gitignore.) + +# Phase C2 — generated, regenerable API content. +# * Per-version API trees (api/dev/**, api/0.35/**, ...) are large and fully +# regenerable by scripts/build_versions.py, so we ignore every directory one +# level under api/. The evergreen `api/index.mdx` and the (regenerable but +# committed) `api/compatibility.mdx` are FILES, not matched by `*/`, so they +# stay tracked. +src/content/docs/api/*/ +# * versions.json is regenerated by build_versions.py (scans the api/ trees +# that exist). Ignored; code falls back to a committed-safe default +# (src/lib/versions.ts DEFAULT_MANIFEST, astro.config readLatestVersion). +src/generated/versions.json diff --git a/website/astro.config.mjs b/website/astro.config.mjs new file mode 100644 index 000000000..65217087d --- /dev/null +++ b/website/astro.config.mjs @@ -0,0 +1,227 @@ +// @ts-check +import { existsSync, readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { defineConfig } from 'astro/config'; +import starlight from '@astrojs/starlight'; +import mdx from '@astrojs/mdx'; +import AutoImport from 'astro-auto-import'; +import remarkMath from 'remark-math'; +import rehypeKatex from 'rehype-katex'; +// Phase C1 post-build integration: regenerates the merged xref inventory +// (astro:config:setup), reports unresolved s + emits a Sphinx v2 +// objects.inv (astro:build:done). Ordered LAST so it does not disturb the +// delicate [AutoImport(), starlight(), mdx()] sequence below. +import xrefIntegration from './src/integrations/xref.mjs'; + +// Path aliases, kept in sync with tsconfig.json `compilerOptions.paths`. +const src = fileURLToPath(new URL('./src', import.meta.url)); +const components = fileURLToPath(new URL('./src/components', import.meta.url)); + +// Phase C2 — the `latest` API alias. `src/generated/versions.json` is written +// by scripts/build_versions.py and is GITIGNORED (regenerated from whatever +// `api/` trees exist), so it may be absent on a fresh clone: read it +// defensively and fall back to `dev`. `latest` maps `/api/latest/**` onto the +// newest release's concrete version via the `redirects` below. +function readLatestVersion() { + const file = fileURLToPath(new URL('./src/generated/versions.json', import.meta.url)); + try { + if (existsSync(file)) { + const manifest = JSON.parse(readFileSync(file, 'utf8')); + if (manifest && typeof manifest.latest === 'string') return manifest.latest; + } + } catch { + /* fall through to default */ + } + return 'dev'; +} +const LATEST_VERSION = readLatestVersion(); + +// Phase D2 — env-driven deploy target so the SAME build artifact can be +// published at the site root (production) or under a gh-pages preview subpath +// (e.g. `/next/` for the WIP branch or `/astro-preview/pr-N/` for a PR). Both +// vars are injected by the `.github/workflows/website-*.yml` pipelines and both +// default to the production values, so local builds and `astro dev` are +// unchanged. `base` MUST match the publish subpath or every asset/link 404s. +// +// `base` is normalized to always carry a leading AND trailing slash (Astro's +// canonical form) so `withBase()` can splice it onto redirect destinations +// without doubling slashes. +function normalizeBase(raw) { + if (!raw || raw === '/') return '/'; + const withLead = raw.startsWith('/') ? raw : `/${raw}`; + return withLead.endsWith('/') ? withLead : `${withLead}/`; +} +const SITE_BASE = normalizeBase(process.env.SITE_BASE); +const SITE_URL = process.env.SITE_URL ?? 'https://bloqade.quera.com'; + +// Astro prefixes the redirect SOURCE keys with `base` automatically (the +// generated meta-refresh page is emitted at `/api/latest/…`), but it does +// NOT prefix the string DESTINATION — so we splice `base` on here. No-op when +// base is `/`. Verified against `SITE_BASE=/next/ astro build` output. +const withBase = (path) => + SITE_BASE === '/' ? path : `${SITE_BASE.slice(0, -1)}${path}`; + +// The shared API component contract (see src/components/api/). These names are +// auto-imported into every .mdx file so generated API pages need NO import lines. +const API_COMPONENTS = [ + 'ApiModule', + 'ApiClass', + 'ApiFn', + 'Signature', + 'Params', + 'Returns', + 'Raises', + 'Source', + 'ApiXref', +]; + +// https://astro.build/config +export default defineConfig({ + site: SITE_URL, + base: SITE_BASE, + + // Phase C2 — `/api/latest/**` aliases onto the newest release's concrete + // version (LATEST_VERSION, read from versions.json) so the sidebar links + // never need editing on a new release. Static keys only: a spread-param + // redirect (`/api/latest/[...slug]`) is not enumerable in a static build, and + // the already navigates between CONCRETE versions, so only + // these landing aliases are needed. Astro emits them as meta-refresh pages. + redirects: { + '/api/latest': withBase(`/api/${LATEST_VERSION}/python/`), + '/api/latest/python': withBase(`/api/${LATEST_VERSION}/python/`), + '/api/latest/rust': withBase(`/api/${LATEST_VERSION}/rust/`), + }, + + // Global markdown pipeline. `@astrojs/mdx` reads these at `astro:config:done` + // (after every integration's setup hook), so KaTeX + auto-import + Starlight + // plugins are all collected regardless of integration ordering. + markdown: { + remarkPlugins: [remarkMath], + rehypePlugins: [rehypeKatex], + }, + + integrations: [ + // IMPORTANT ordering: [AutoImport(), starlight(), mdx()]. + // * AutoImport must be first: it bails out unless `@astrojs/mdx` is + // already present in the integrations array when its setup hook runs, + // so an explicit `mdx()` must exist somewhere in this array. + // * The explicit `mdx()` is listed AFTER `starlight()`: Starlight inserts + // its own built-ins (astro-expressive-code, sitemap, ...) immediately + // after itself, and astro-expressive-code REQUIRES being ordered before + // `@astrojs/mdx`. Putting our mdx() after starlight() keeps EC < mdx. + // * Starlight only adds its own `mdx()` if one isn't already present, so + // our explicit mdx() prevents a double-registration. + // * `@astrojs/mdx` reads `markdown.remarkPlugins` at config:done (after + // every setup hook), so the remark plugin AutoImport injects AND + // Starlight's plugins are all picked up regardless of ordering. + AutoImport({ + imports: [ + { + // Bare alias (kept verbatim in the generated import) -> resolved by + // the `@components` Vite alias below. Emits into each .mdx: + // import { ApiModule, ApiClass, ... } from "@components/api"; + '@components/api': API_COMPONENTS, + }, + ], + }), + starlight({ + title: 'Bloqade', + // Starlight has no dedicated "tagline" field; the tagline lives in the + // site description (used for meta + the default hero on splash pages). + description: 'The Neutral Atom SDK', + logo: { + light: './src/assets/logo.svg', + dark: './src/assets/logo-dark.svg', + replacesTitle: true, + }, + favicon: '/favicon.ico', + customCss: [ + // Fonts first, then KaTeX styles, then brand overrides (loaded last so + // brand.css wins the cascade). + '@fontsource/lato/400.css', + '@fontsource/lato/700.css', + 'katex/dist/katex.min.css', + './src/styles/brand.css', + ], + social: [ + { icon: 'x.com', label: 'X', href: 'https://x.com/QueraComputing' }, + { + icon: 'linkedin', + label: 'LinkedIn', + href: 'https://www.linkedin.com/company/quera-computing-inc/', + }, + { + icon: 'github', + label: 'GitHub', + href: 'https://github.com/QuEraComputing/bloqade', + }, + ], + editLink: { + baseUrl: 'https://github.com/QuEraComputing/bloqade/edit/main/website/', + }, + // Mermaid support: override Starlight's to also inject a bundled, + // code-split client-side renderer (see src/components/MermaidHead.astro). + // This is the LOW-RISK path — no build-time browser deps (rehype-mermaid / + // Playwright) and it does NOT touch the delicate integration ordering. + components: { + Head: './src/components/MermaidHead.astro', + // Phase C2 — wrap the sidebar to mount the API at its + // top (the switcher self-hides off `/api//**`). + Sidebar: './src/components/Sidebar.astro', + // Design unification — replace the top/bottom chrome with the bespoke + // brand header/footer (shared with SiteLayout via SiteHeader/SiteFooter). + // Header composes Starlight's so the search modal + ⌘K keep + // working; the mobile menu toggle is rendered by PageFrame (not the + // Header) so mobile navigation is unaffected. Footer renders Starlight's + // default footer (prev/next pagination) above the brand footer. + Header: './src/components/Header.astro', + Footer: './src/components/Footer.astro', + }, + sidebar: [ + // Top-level links back to the bespoke (non-Starlight) routes so docs + // readers can reach the landing page and the blog. + { label: 'Home', link: '/' }, + { label: 'Blog', link: '/blog/' }, + { + label: 'Guides', + autogenerate: { directory: 'guides' }, + }, + { + // Phase C2 — the API reference is versioned (single `bloqade` + // meta-version axis). These links point at the `/api/latest/**` + // alias (redirected to the newest release) + the evergreen landing + // and compatibility pages; the handles per-version + // navigation. `api/` trees are generated + gitignored, so this + // group is explicit links (NOT autogenerate, which would break on a + // fresh clone with no generated content). + label: 'API Reference', + items: [ + { label: 'Overview', link: '/api/' }, + { label: 'Python (latest)', link: '/api/latest/python' }, + { label: 'Rust (latest)', link: '/api/latest/rust' }, + { label: 'Compatibility', link: '/api/compatibility/' }, + ], + }, + { + label: 'Reference', + autogenerate: { directory: 'reference' }, + }, + ], + }), + // Explicit mdx() AFTER starlight() (see ordering note above). Present so + // AutoImport doesn't bail and so Starlight doesn't double-register mdx. + mdx(), + // Post-build only (config:setup + build:done). Safe to append here — it + // registers no markdown/vite plugins that depend on the ordering above. + xrefIntegration(), + ], + + vite: { + resolve: { + alias: { + '@components': components, + '@': src, + }, + }, + }, +}); diff --git a/website/docs.sources.toml b/website/docs.sources.toml new file mode 100644 index 000000000..9de20cc4e --- /dev/null +++ b/website/docs.sources.toml @@ -0,0 +1,61 @@ +# API documentation sources for the Bloqade website. +# +# Each source is either a remote repo pinned to a tag, or a local monorepo path. +# language: "python" | "rust" +# ref: "pin-from:" resolves to git tag v, OR a +# literal tag (e.g. "v1.2.0"), OR omit and use path=. +# +# Seed values derived from the current mkdocs.yml reference paths and +# docs/scripts/gen_ref_nav.py package roots. + +[[source]] +name = "bloqade-circuit" +language = "python" +repo = "QuEraComputing/bloqade-circuit" +ref = "pin-from:bloqade-circuit" +package_root = "src/bloqade" # path within the repo to the importable package +mount = "api/python" + +[[source]] +name = "bloqade-analog" +language = "python" +repo = "QuEraComputing/bloqade-analog" +ref = "pin-from:bloqade-analog" +package_root = "src/bloqade/analog" +mount = "api/python" + +[[source]] +name = "bloqade-lanes" +language = "python" +repo = "QuEraComputing/bloqade-lanes" +ref = "pin-from:bloqade-lanes" +package_root = "python/bloqade" +mount = "api/python" + +# The Rust half of bloqade-lanes. Same repo/sibling checkout as the python +# source above (so `--prefer-local` resolves both to ../bloqade-lanes); the +# rust emitter runs `cargo +nightly rustdoc` in the workspace root and documents +# the `crate` below. `workspace` (optional) overrides the cargo working dir; +# it defaults to the resolved source root. +[[source]] +name = "bloqade-lanes" +language = "rust" +repo = "QuEraComputing/bloqade-lanes" +ref = "pin-from:bloqade-lanes" +crate = "bloqade-lanes-search" +mount = "api/rust" + +# --- future examples (leave commented) --- +# [[source]] +# name = "ppvm" # external Rust crate, python wrapper moves into bloqade later +# language = "rust" +# repo = "QuEraComputing/ppvm" +# ref = "v1.2.0" +# crate = "ppvm" +# mount = "api/rust" +# +# [[source]] # once the monorepo lands, flip a source to a local path — nothing else changes +# name = "bloqade-circuit" +# language = "python" +# path = "../crates/bloqade-circuit/src/bloqade" +# mount = "api/python" diff --git a/website/emitters/notebooks/.gitignore b/website/emitters/notebooks/.gitignore new file mode 100644 index 000000000..5d96a1d2b --- /dev/null +++ b/website/emitters/notebooks/.gitignore @@ -0,0 +1,12 @@ +# uv virtual environment +.venv/ + +# scratch output (default --out); real runs point --out elsewhere +_out/ + +# executed-notebook cache (keyed by source content hash) +.cache/ + +# python caches +__pycache__/ +*.pyc diff --git a/website/emitters/notebooks/README.md b/website/emitters/notebooks/README.md new file mode 100644 index 000000000..0b60977eb --- /dev/null +++ b/website/emitters/notebooks/README.md @@ -0,0 +1,188 @@ +# bloqade-docs-emit-notebooks + +Executes the Bloqade **tutorials** (jupytext *percent*-format `.py` files under +`docs/**`) and emits Starlight-compatible **MDX** with the outputs inlined. This +is Phase C3 of the docs-site build. It is a self-contained `uv` project and only +writes into an output dir + a public-assets dir you point it at; it never edits +`astro.config.mjs`, `src/components/**`, `src/styles/**`, or `website/scripts/`. + +The MDX is component-free markdown (fenced code blocks, Starlight asides, +KaTeX-ready `$`-math, `` tags), so generated pages need **no** import lines +and render through the same expressive-code + `remark-math`/`rehype-katex` +pipeline the rest of the site uses. + +## Install / run (uv project) + +```bash +cd website/emitters/notebooks +uv sync + +# Static render (no execution) -> scratch _out/: +uv run bloqade-docs-emit-notebooks ../../../docs/digital/examples/qasm2/ghz.py + +# Executed render into the site, images into public/tutorials/: +EXECUTE_NOTEBOOKS=1 uv run bloqade-docs-emit-notebooks \ + ../../../docs/digital/examples/qasm2/ghz.py \ + --out ../../src/content/docs/guides/tutorials \ + --public-dir ../../public/tutorials \ + --asset-base /tutorials +``` + +### Flags + +| Flag | Default | Meaning | +| --- | --- | --- | +| `input` (positional) | — | Path to the jupytext percent `.py` tutorial. | +| `--out` | `emitters/notebooks/_out` | Dir for the generated `.mdx`. Point a real build at `src/content/docs/guides/tutorials`. | +| `--public-dir` | `/public/tutorials` | Filesystem dir images are written to (a `/` subdir is created). Point at `website/public/tutorials`. | +| `--asset-base` | `/tutorials` | URL prefix for emitted `` attributes; the site serves `public/tutorials/*` at `/tutorials/*`. | +| `--name` | slugified filename stem | Tutorial slug; names the `.mdx`, the `public//` asset dir, and the asset URL path. | +| `--repo-root` | git top-level | Kernel cwd + by-basename asset fallback search root. | +| `--cache-dir` | `emitters/notebooks/.cache` | Executed-notebook cache (keyed by source hash). | +| `--kernel-python` | this venv's interpreter | Python used to launch the execution kernel. | +| `--kernel-name` | `python3` | Kernel spec name. | +| `--timeout` | `300` | Per-cell execution timeout (seconds). | +| `--execute` / `--no-execute` | (env) | Force execution on/off, overriding `EXECUTE_NOTEBOOKS`. | +| `--no-cache` | off | Ignore the cache and always re-execute. | +| `--allow-errors` | off | Capture cell errors as outputs instead of falling back to a static render. | +| `-v/--verbose` | off | Info-level logging. | + +## Pipeline + +``` +.py (jupytext percent) + │ jupytext.reads(fmt="py:percent") -> nbformat NotebookNode + ▼ +[execution gate] EXECUTE_NOTEBOOKS in {1,true,yes,on} ? + ├── no → render code + markdown only (no outputs) + └── yes → cache hit? ── yes → load .cache/.ipynb + └── no → nbclient executes in a bloqade kernel, then cache it + ▼ +render → MDX (frontmatter + prose + fenced code + rendered outputs) + ▼ images → public//… .mdx → /.mdx +``` + +Source files: + +* `pipeline.py` — read/parse, the execution gate, caching, `nbclient` + execution, and orchestration (`Config`, `run`). +* `render.py` — notebook → MDX; markdown/admonition/image conversion, code + fences, and the output→MDX mapping (`RenderContext`, `render_notebook`). +* `escape.py` — MDX-safety escaping, ANSI stripping, fenced-block emission. +* `__main__.py` — the CLI. + +## Execution gating + +Execution mirrors the current mkdocs nightly (`.github/workflows/doc-nightly.yml` +sets `EXECUTE_NOTEBOOKS`): it runs **only** when `EXECUTE_NOTEBOOKS` is one of +`1`, `true`, `yes`, `on` (case-insensitive). `--execute`/`--no-execute` override +the env for local use. When disabled, the tutorial is rendered from source with +**no** outputs and a small "static render" note. + +`nbclient` runs the notebook in a kernel launched from `--kernel-python` +(defaults to this venv's own interpreter, which has `bloqade` installed via the +path dependency in `pyproject.toml`). A throwaway kernelspec is written into a +temp dir and exposed via `JUPYTER_PATH`, so execution never depends on a +globally-registered `python3` kernelspec and always uses the interpreter we +control. The kernel's cwd is the repo root, matching how the mkdocs build runs. + +**Failure handling.** If the kernel can't start or a cell raises (with the +default `--allow-errors` off), the error is logged and the pipeline **falls back +to a static (non-executed) render** rather than failing the build. Pass +`--allow-errors` to instead capture the traceback as a rendered output. + +## Output caching + +Executed notebooks are cached under `.cache/` (gitignored), keyed by +`sha256(CACHE_SCHEMA + "\0" + source_bytes)` — i.e. the exact bytes of the input +`.py` plus a schema tag (`CACHE_SCHEMA` in `pipeline.py`, bump it to invalidate +all caches when the executor changes). The cache file is the fully-executed +notebook, `.cache/.ipynb`. + +* Execution enabled + `.cache/.ipynb` exists → the executed notebook is + loaded and the kernel is **skipped**. +* Hash changed / no cache entry → execute, then write the cache. +* `--no-cache` forces re-execution (and refreshes the entry). + +Because the key is the *source* hash, editing a tutorial re-runs it while an +unchanged tutorial is free on every build. Rendering is always re-done (cheap), +so tweaks to the emitter don't require re-execution. + +## Output → MDX mapping + +Jupyter `In[ ]`/`Out[ ]` prompts and execution counts are never emitted (the +site hides them). ANSI colour codes (from rich/pretty-printers) are stripped +from all text. Consecutive `stream` outputs of the same name are **coalesced** +into one block (a single `print` from a pretty-printer can otherwise arrive as +hundreds of fragments). + +| Output | Rendered as | +| --- | --- | +| `stream` stdout | fenced ```` ```text ```` block | +| `stream` stderr | fenced ```` ```text title="stderr" ```` block | +| `error` | fenced ```` ```text title="Traceback" ```` (ANSI-stripped traceback) | +| `image/png` | decoded to `public//cell_out.png`, referenced with a self-closed `` | +| `image/svg+xml` | written to `public//cell_out.svg`, referenced with `` | +| `text/latex` | a `$$ … $$` KaTeX math block | +| `text/plain` | fenced ```` ```text ```` (preferred over `text/html` when both exist) | +| `text/html` | escaped fenced ```` ```html ```` **source** block (see limitations) | +| `text/markdown` | rendered as markdown prose | + +Images are **not** routed through `astro:assets`/Sharp (not installed); they are +plain files under `public/` referenced by absolute URL, so they are copied +verbatim into the build. + +### Markdown cells + +* The first markdown `# H1` becomes the frontmatter `title` and is stripped from + the body (Starlight renders the title as the page `

`). +* mkdocs-material admonitions + (`

`) are + converted to **Starlight asides** (`:::note[Title] … :::`); the class maps to + `note`/`tip`/`caution`/`danger`. +* `` tags are self-closed and their `src` rewritten to + `/tutorials//assets/` after the referenced file is copied into + `public/`. Relative refs are resolved against the `.py` dir first, then by + basename under the repo (the legacy mkdocs sources use stale `../../` paths). +* `
`/``/`
` wrappers pass through as valid JSX. +* All remaining free text is MDX-escaped: `<`, `{`, `}` → character references, + **except** inside fenced code, inline code spans, and `$`-math, which are + preserved verbatim so KaTeX braces (`2^{n}`) and code survive. `>` and `&` are + left alone. This guarantees the MDX build never breaks on tutorial prose. + +## Dependencies + +Declared in `pyproject.toml`: + +* `jupytext` — parse the percent `.py` into an `nbformat` notebook. +* `nbclient` — execute the notebook against a kernel. +* `nbformat` — notebook read/write (cache) and output model. +* `ipykernel` — the in-venv kernel the notebooks execute in. +* `bloqade` — path dependency on the repo root (`../../..`, editable), so this + venv's interpreter is a complete kernel with `bloqade` importable. Execution + is the only thing that imports it; a static render works without it. + +## Verification (this checkout) + +`docs/digital/examples/qasm2/ghz.py` was **executed** end-to-end via the repo's +`bloqade` and rendered to `src/content/docs/guides/tutorials/ghz.mdx` (assets in +`public/tutorials/ghz/`). It exercises H1→title, admonitions→asides, KaTeX math, +`` asset copying, python code fences, and a large coalesced stdout block +(the `qasm2.parse.pprint` output). `astro build` renders it (asides, code +blocks, math, images) with no errors. The `image/png`/`image/svg+xml`/`error`/ +`text/html` branches were verified with a synthetic notebook. + +## Known limitations + +* **Interactive widgets** (`ipywidgets`, `application/vnd.jupyter.widget-*`): + not rendered — no `text/plain` fallback is shown for a pure-widget output. +* **Interactive plots** (Plotly/Bokeh via `text/html` + JS): emitted as escaped + HTML *source* in a fenced block, not as a live widget. Static images + (`image/png`/`svg`) render fully. Rich HTML tables likewise show their + `text/plain` form (preferred) or HTML source, not a rendered table — this is a + deliberate build-safety choice (arbitrary library HTML is not guaranteed to be + valid JSX/MDX). +* **Long-running cells**: bounded by `--timeout` (per cell). A timeout raises and + triggers the static-render fallback (unless `--allow-errors`). +* **Cross-references**: docstring/markdown cross-refs are not rewritten to + `` (that is Phase C1's job). diff --git a/website/emitters/notebooks/pyproject.toml b/website/emitters/notebooks/pyproject.toml new file mode 100644 index 000000000..1087a2d8b --- /dev/null +++ b/website/emitters/notebooks/pyproject.toml @@ -0,0 +1,35 @@ +[project] +name = "bloqade-docs-emit-notebooks" +version = "0.1.0" +description = "Execute jupytext percent-format tutorials and emit Starlight-compatible MDX with outputs." +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "jupytext>=1.16,<2", + "nbclient>=0.10,<0.11", + "nbformat>=5.10,<6", + # ipykernel provides the in-process interpreter the executed notebooks run + # in. Combined with the `bloqade` dep below, this venv's own interpreter is + # a complete kernel: `uv run` here can both parse AND execute a tutorial. + "ipykernel>=6.29,<7", + # The tutorials `import bloqade`, so the execution kernel must have it. We + # depend on the repo's own metapackage (path source below) so this stays in + # lockstep with the versions the site ships. Execution can be disabled + # (EXECUTE_NOTEBOOKS unset) in which case bloqade is never imported. + "bloqade", +] + +[project.scripts] +bloqade-docs-emit-notebooks = "bloqade_docs_emit_notebooks.__main__:main" + +[tool.uv.sources] +# Repo root, three levels up from this file +# (website/emitters/notebooks -> website/emitters -> website -> ). +bloqade = { path = "../../..", editable = true } + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/bloqade_docs_emit_notebooks"] diff --git a/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__init__.py b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__init__.py new file mode 100644 index 000000000..a4cd4ea65 --- /dev/null +++ b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__init__.py @@ -0,0 +1,5 @@ +"""Execute jupytext tutorials and emit Starlight-compatible MDX (Phase C3).""" + +from .pipeline import Config, Result, execution_enabled, run + +__all__ = ["Config", "Result", "execution_enabled", "run"] diff --git a/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__main__.py b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__main__.py new file mode 100644 index 000000000..1b4f087ef --- /dev/null +++ b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/__main__.py @@ -0,0 +1,173 @@ +"""CLI for the Bloqade notebook/tutorial MDX emitter. + +Examples: + + # Static render (no execution) into the scratch _out dir: + uv run bloqade-docs-emit-notebooks \ + ../../../docs/digital/examples/qasm2/ghz.py + + # Executed render into the site, images into public/tutorials/: + EXECUTE_NOTEBOOKS=1 uv run bloqade-docs-emit-notebooks \ + ../../../docs/digital/examples/qasm2/ghz.py \ + --out ../../src/content/docs/guides/tutorials \ + --public-dir ../../public/tutorials \ + --asset-base /tutorials +""" + +from __future__ import annotations + +import argparse +import logging +import sys +from pathlib import Path + +from .pipeline import ( + Config, + default_python, + detect_repo_root, + execution_enabled, + run, + slugify, +) + + +def build_parser() -> argparse.ArgumentParser: + here = Path(__file__).resolve().parents[2] # emitters/notebooks + parser = argparse.ArgumentParser( + prog="bloqade-docs-emit-notebooks", + description="Execute a jupytext percent .py tutorial and emit MDX with outputs.", + ) + parser.add_argument("input", help="Path to the jupytext percent-format .py tutorial.") + parser.add_argument( + "--out", + default=str(here / "_out"), + help="Output dir for the generated .mdx (default: emitters/notebooks/_out).", + ) + parser.add_argument( + "--public-dir", + default=None, + help="Dir images are written to (default: /public/tutorials). " + "Point at website/public/tutorials for a real site build.", + ) + parser.add_argument( + "--asset-base", + default="/tutorials", + help="URL prefix for emitted image src attributes (default: /tutorials).", + ) + parser.add_argument( + "--name", + default=None, + help="Tutorial slug (default: slugified filename stem). Names the .mdx, " + "the public// asset dir, and the asset URL path.", + ) + parser.add_argument( + "--repo-root", + default=None, + help="Repo root; kernel cwd + asset fallback search (default: git top-level).", + ) + parser.add_argument( + "--cache-dir", + default=str(here / ".cache"), + help="Executed-notebook cache dir, keyed by source hash " + "(default: emitters/notebooks/.cache).", + ) + parser.add_argument( + "--kernel-python", + default=default_python(), + help="Python executable used to launch the execution kernel " + "(default: this interpreter, which has bloqade).", + ) + parser.add_argument( + "--kernel-name", default="python3", help="Kernel name (default: python3)." + ) + parser.add_argument( + "--timeout", type=int, default=300, help="Per-cell execution timeout, seconds." + ) + execgroup = parser.add_mutually_exclusive_group() + execgroup.add_argument( + "--execute", + dest="execute", + action="store_true", + default=None, + help="Force execution (overrides EXECUTE_NOTEBOOKS).", + ) + execgroup.add_argument( + "--no-execute", + dest="execute", + action="store_false", + help="Force static render (overrides EXECUTE_NOTEBOOKS).", + ) + parser.add_argument( + "--no-cache", + dest="use_cache", + action="store_false", + help="Ignore the cache and always re-execute.", + ) + parser.add_argument( + "--allow-errors", + action="store_true", + help="Capture cell errors as outputs instead of falling back to static.", + ) + parser.add_argument("-v", "--verbose", action="store_true", help="Verbose logging.") + return parser + + +def main(argv: list[str] | None = None) -> int: + args = build_parser().parse_args(argv) + + logging.basicConfig( + level=logging.INFO if args.verbose else logging.WARNING, + format="%(levelname)s %(name)s: %(message)s", + ) + + input_path = Path(args.input).resolve() + if not input_path.is_file(): + print(f"error: input not found: {input_path}", file=sys.stderr) + return 2 + + name = args.name or slugify(input_path.stem) + out = Path(args.out).resolve() + public_dir = ( + Path(args.public_dir).resolve() + if args.public_dir + else out / "public" / "tutorials" + ) + repo_root = Path(args.repo_root).resolve() if args.repo_root else detect_repo_root( + input_path.parent + ) + execute = execution_enabled() if args.execute is None else args.execute + + cfg = Config( + input=input_path, + out=out, + public_dir=public_dir, + asset_base=args.asset_base, + name=name, + repo_root=repo_root, + cache_dir=Path(args.cache_dir).resolve(), + kernel_python=args.kernel_python, + kernel_name=args.kernel_name, + timeout=args.timeout, + execute=execute, + use_cache=args.use_cache, + allow_errors=args.allow_errors, + ) + + result = run(cfg) + + print(f"[emit-notebooks] input : {cfg.input}", file=sys.stderr) + print(f"[emit-notebooks] name : {cfg.name}", file=sys.stderr) + print(f"[emit-notebooks] execute : {cfg.execute}", file=sys.stderr) + print( + f"[emit-notebooks] executed: {result.executed}" + f" (from_cache={result.from_cache})", + file=sys.stderr, + ) + print(f"[emit-notebooks] mdx : {result.mdx_path}", file=sys.stderr) + if cfg.execute and result.executed: + print(f"[emit-notebooks] assets : {cfg.public_dir / cfg.name}", file=sys.stderr) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/escape.py b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/escape.py new file mode 100644 index 000000000..92831e094 --- /dev/null +++ b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/escape.py @@ -0,0 +1,150 @@ +"""MDX-safety escaping helpers for notebook-derived content. + +Notebook markdown/outputs can contain characters that are hostile to the MDX +parser (``<`` opens a JSX element, ``{`` opens a JS expression). The MDX build +MUST NEVER break on tutorial content, so every string that reaches the ``.mdx`` +output flows through one of the helpers here. + +The two hard constraints for markdown *prose*: + +* ``<`` and ``{``/``}`` must be neutralized in free text, because MDX would try + to parse them as JSX/expressions. +* ...but NOT inside fenced code blocks, inline code spans, or ``$``-math, where + MDX treats the content as literal and KaTeX needs braces verbatim + (``2^{n}``). Those regions are detected and passed through unchanged. + +``>`` and ``&`` are deliberately left alone: neither breaks an MDX build, and +leaving them preserves markdown blockquotes and HTML entities. +""" + +from __future__ import annotations + +import re + +# --------------------------------------------------------------------------- # +# YAML frontmatter +# --------------------------------------------------------------------------- # + +_WS_RE = re.compile(r"\s+") + + +def yaml_dq(value: str) -> str: + """Return ``value`` as a YAML double-quoted scalar (including the quotes).""" + value = _WS_RE.sub(" ", value).strip() + value = value.replace("\\", "\\\\").replace('"', '\\"') + return f'"{value}"' + + +# --------------------------------------------------------------------------- # +# ANSI stripping (rich/pretty-printer output is full of colour codes) +# --------------------------------------------------------------------------- # + +# CSI sequences (colours, cursor moves) + OSC sequences (hyperlinks). +_ANSI_RE = re.compile( + r""" + \x1B\[[0-?]*[ -/]*[@-~] # CSI ... final byte + | \x1B\][^\x07\x1B]*(?:\x07|\x1B\\) # OSC ... BEL / ST + | \x1B[@-Z\\-_] # two-char escapes + """, + re.VERBOSE, +) + + +def strip_ansi(text: str) -> str: + """Remove ANSI escape sequences (colour codes, hyperlinks) from text.""" + return _ANSI_RE.sub("", text) + + +# --------------------------------------------------------------------------- # +# Prose (MDX flow content) +# --------------------------------------------------------------------------- # + +_FENCE_OPEN_RE = re.compile(r"^(\s*)(`{3,}|~{3,})") + +# Protected inline spans inside a prose line/segment: inline code (backtick +# runs), block math ($$...$$) and inline math ($...$). Order matters: match the +# longer $$ before $. `re.DOTALL` lets $$...$$ span lines within a segment. +_PROTECT_RE = re.compile( + r"(?P`+)(?P.+?)(?P=code)" # `code` / ``code`` spans + r"|(?P\$\$.+?\$\$)" # $$ display math $$ + r"|(?P\$(?!\s)[^$\n]*?(? str: + """Escape MDX-hostile ``<`` ``{`` ``}`` in a plain (non-code/math) segment.""" + return ( + segment.replace("<", "<") + .replace("{", "{") + .replace("}", "}") + ) + + +def escape_prose_inline(text: str) -> str: + """Escape a prose region, leaving code spans and ``$``-math verbatim.""" + out: list[str] = [] + pos = 0 + for m in _PROTECT_RE.finditer(text): + out.append(_escape_specials(text[pos : m.start()])) + out.append(m.group(0)) # protected verbatim + pos = m.end() + out.append(_escape_specials(text[pos:])) + return "".join(out) + + +def escape_prose(text: str) -> str: + """Escape free-form markdown so it is safe as MDX flow content. + + Fenced code blocks are passed through verbatim; every other line is + inline-escaped (code spans and ``$``-math within it stay verbatim). + """ + if not text: + return "" + lines = text.split("\n") + out: list[str] = [] + in_fence = False + fence_char = "" + fence_len = 0 + for line in lines: + if in_fence: + out.append(line) + stripped = line.strip() + if stripped and stripped[0] == fence_char: + run = len(stripped) - len(stripped.lstrip(fence_char)) + if run >= fence_len: + in_fence = False + continue + m = _FENCE_OPEN_RE.match(line) + if m: + marker = m.group(2) + in_fence = True + fence_char = marker[0] + fence_len = len(marker) + out.append(line) # the opening fence line is safe verbatim + continue + out.append(escape_prose_inline(line)) + if in_fence: + # Never let an unterminated fence swallow the MDX that follows. + out.append(fence_char * fence_len) + return "\n".join(out) + + +# --------------------------------------------------------------------------- # +# Fenced code emission (code cells + text outputs) +# --------------------------------------------------------------------------- # + + +def fenced(body: str, lang: str = "", meta: str = "") -> str: + """Wrap ``body`` in a fenced code block using a backtick run long enough to + not collide with any run inside ``body`` (minimum three). + """ + longest = 0 + for run in re.findall(r"`+", body): + longest = max(longest, len(run)) + fence = "`" * max(3, longest + 1) + info = lang + if meta: + info = f"{lang} {meta}".strip() + body = body.rstrip("\n") + return f"{fence}{info}\n{body}\n{fence}" diff --git a/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/pipeline.py b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/pipeline.py new file mode 100644 index 000000000..e76e02145 --- /dev/null +++ b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/pipeline.py @@ -0,0 +1,211 @@ +"""Parse -> (optionally execute, with caching) -> render a jupytext tutorial. + +Execution is gated on the ``EXECUTE_NOTEBOOKS`` env flag (mirroring the current +mkdocs nightly). When enabled, the notebook is run with ``nbclient`` in a kernel +launched from ``--kernel-python`` (defaults to this venv's interpreter, which +has ``bloqade`` installed). Executed notebooks are cached by the source file's +content hash so an unchanged tutorial is never re-run. +""" + +from __future__ import annotations + +import hashlib +import json +import logging +import os +import re +import sys +import tempfile +from dataclasses import dataclass +from pathlib import Path + +import jupytext +import nbformat + +from .render import RenderContext, render_notebook + +log = logging.getLogger("bloqade-docs-emit-notebooks") + +# Bump when the executor changes in a way that should invalidate caches. +CACHE_SCHEMA = "1" + +_TRUTHY = {"1", "true", "yes", "on"} + + +def execution_enabled() -> bool: + """Mirror the current mkdocs gate: EXECUTE_NOTEBOOKS in {1,true,yes,on}.""" + return os.environ.get("EXECUTE_NOTEBOOKS", "").strip().lower() in _TRUTHY + + +def slugify(stem: str) -> str: + slug = re.sub(r"[^A-Za-z0-9_-]+", "-", stem).strip("-").lower() + return slug or "tutorial" + + +@dataclass +class Config: + input: Path + out: Path + public_dir: Path + asset_base: str + name: str + repo_root: Path + cache_dir: Path + kernel_python: str + kernel_name: str + timeout: int + execute: bool + use_cache: bool + allow_errors: bool + + +def source_hash(source: str) -> str: + h = hashlib.sha256() + h.update(CACHE_SCHEMA.encode()) + h.update(b"\0") + h.update(source.encode("utf-8")) + return h.hexdigest() + + +def _cache_path(cache_dir: Path, digest: str) -> Path: + return cache_dir / f"{digest}.ipynb" + + +def execute_notebook(nb, cfg: Config): + """Execute ``nb`` in place using a kernel launched from cfg.kernel_python. + + A throwaway kernelspec is written pointing ``argv`` at ``cfg.kernel_python`` + so the executing interpreter is exactly the one we control (no dependence on + a globally-registered ``python3`` kernelspec). + """ + from nbclient import NotebookClient + + with tempfile.TemporaryDirectory(prefix="bloqade-kspec-") as tmp: + spec_dir = Path(tmp) / "kernels" / cfg.kernel_name + spec_dir.mkdir(parents=True) + (spec_dir / "kernel.json").write_text( + json.dumps( + { + "argv": [ + cfg.kernel_python, + "-m", + "ipykernel_launcher", + "-f", + "{connection_file}", + ], + "display_name": "bloqade", + "language": "python", + } + ) + ) + old_jp = os.environ.get("JUPYTER_PATH") + os.environ["JUPYTER_PATH"] = ( + tmp + (os.pathsep + old_jp if old_jp else "") + ) + try: + client = NotebookClient( + nb, + timeout=cfg.timeout, + kernel_name=cfg.kernel_name, + allow_errors=cfg.allow_errors, + # Run with the repo root as cwd so tutorials resolve imports and + # relative data files the same way the mkdocs build does. + resources={"metadata": {"path": str(cfg.repo_root)}}, + ) + client.execute() + finally: + if old_jp is None: + os.environ.pop("JUPYTER_PATH", None) + else: + os.environ["JUPYTER_PATH"] = old_jp + return nb + + +@dataclass +class Result: + mdx_path: Path + executed: bool + from_cache: bool + title_slug: str + + +def run(cfg: Config) -> Result: + source = cfg.input.read_text(encoding="utf-8") + digest = source_hash(source) + + # jupytext parses the percent .py into an nbformat NotebookNode. + nb = jupytext.reads(source, fmt="py:percent") + # Normalise to a known nbformat version so outputs round-trip cleanly. + nb = nbformat.from_dict(nb) + + executed = False + from_cache = False + + if cfg.execute: + cache_file = _cache_path(cfg.cache_dir, digest) + if cfg.use_cache and cache_file.is_file(): + log.info("cache hit for %s (%s)", cfg.input.name, digest[:12]) + nb = nbformat.read(cache_file, as_version=4) + executed = True + from_cache = True + else: + log.info("executing %s ...", cfg.input.name) + try: + execute_notebook(nb, cfg) + executed = True + cfg.cache_dir.mkdir(parents=True, exist_ok=True) + nbformat.write(nb, cache_file) + log.info("cached executed notebook -> %s", cache_file) + except Exception as exc: # noqa: BLE001 - degrade, never crash the build + log.warning( + "execution FAILED for %s (%s); falling back to static " + "(non-executed) render", + cfg.input.name, + exc, + ) + # Drop any partial outputs left by a mid-notebook failure. + for cell in nb.cells: + if cell.get("cell_type") == "code": + cell["outputs"] = [] + cell["execution_count"] = None + executed = False + else: + log.info("execution disabled (EXECUTE_NOTEBOOKS not set); static render") + + ctx = RenderContext( + name=cfg.name, + py_dir=cfg.input.resolve().parent, + asset_dir=cfg.public_dir / cfg.name, + asset_base=f"{cfg.asset_base.rstrip('/')}/{cfg.name}", + repo_root=cfg.repo_root, + ) + mdx = render_notebook(nb, ctx, executed=executed) + + cfg.out.mkdir(parents=True, exist_ok=True) + mdx_path = cfg.out / f"{cfg.name}.mdx" + mdx_path.write_text(mdx, encoding="utf-8") + + return Result( + mdx_path=mdx_path, + executed=executed, + from_cache=from_cache, + title_slug=cfg.name, + ) + + +def detect_repo_root(start: Path) -> Path: + """git top-level of ``start``, else the repo root three levels above this file.""" + import subprocess + + try: + out = subprocess.check_output( + ["git", "-C", str(start), "rev-parse", "--show-toplevel"], + stderr=subprocess.DEVNULL, + ) + return Path(out.decode().strip()) + except Exception: # noqa: BLE001 + return Path(__file__).resolve().parents[4] + + +def default_python() -> str: + return sys.executable diff --git a/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/render.py b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/render.py new file mode 100644 index 000000000..72e5e5873 --- /dev/null +++ b/website/emitters/notebooks/src/bloqade_docs_emit_notebooks/render.py @@ -0,0 +1,345 @@ +"""Render an (optionally executed) notebook to Starlight-compatible MDX. + +The mapping, cell by cell: + +* **markdown cell** -> prose MDX. mkdocs-material admonition ``
`` blocks are + converted to Starlight asides; ```` tags are self-closed and their + relative ``src`` rewritten to an absolute ``/tutorials//...`` URL after + the referenced asset is copied into ``public/``. All remaining free text is + MDX-escaped (see ``escape.py``); code spans and ``$``-math survive verbatim. +* **code cell** -> a fenced ```python block (input prompt stripped). +* **outputs** (only present when the notebook was executed) -> rendered blocks: + streams / ``text/plain`` / tracebacks as fenced ``text``; ``image/png`` and + ``image/svg+xml`` written to ``public/`` and referenced with a self-closed + ````; ``text/html`` emitted as an escaped fenced ``html`` source block; + ``text/latex`` as a ``$$`` math block. ``Out[ ]``/``In[ ]`` prompts are never + emitted. +""" + +from __future__ import annotations + +import base64 +import re +import shutil +from dataclasses import dataclass, field +from pathlib import Path + +from .escape import escape_prose, fenced, strip_ansi, yaml_dq + +# nbconvert-style cell tags we honour. +_REMOVE_CELL = {"remove_cell", "remove-cell"} +_REMOVE_INPUT = {"remove_input", "remove-input", "hide_input", "hide-input"} +_REMOVE_OUTPUT = {"remove_output", "remove-output"} + +# mkdocs-material admonition class -> Starlight aside type. +_ADMONITION_TYPES = { + "note": "note", + "info": "note", + "abstract": "note", + "summary": "note", + "example": "note", + "quote": "note", + "cite": "note", + "tip": "tip", + "hint": "tip", + "success": "tip", + "check": "tip", + "done": "tip", + "question": "tip", + "help": "tip", + "faq": "tip", + "warning": "caution", + "caution": "caution", + "attention": "caution", + "important": "caution", + "danger": "danger", + "error": "danger", + "bug": "danger", + "failure": "danger", + "fail": "danger", + "missing": "danger", + "deprecated": "danger", +} + +_ADMONITION_RE = re.compile( + r'(.*?)
', + re.DOTALL | re.IGNORECASE, +) +_TITLE_RE = re.compile( + r'(.*?)

', re.DOTALL | re.IGNORECASE +) +_P_TAG_RE = re.compile(r"]*>", re.IGNORECASE) +_IMG_RE = re.compile(r"]*?)/?>", re.IGNORECASE) +_SRC_RE = re.compile(r'\bsrc\s*=\s*"([^"]*)"', re.IGNORECASE) +_ALT_RE = re.compile(r'\balt\s*=\s*"([^"]*)"', re.IGNORECASE) +# Wrapper tags that are valid JSX as-is and should pass through un-escaped. +_WRAPPER_RE = re.compile( + r"]*>", re.IGNORECASE +) +_H1_RE = re.compile(r"^\s*#\s+(.+?)\s*$") + +_IMG_EXTS = {".png", ".jpg", ".jpeg", ".gif", ".svg", ".webp", ".avif"} + + +@dataclass +class RenderContext: + """Everything the renderer needs to place assets and build URLs.""" + + name: str # tutorial slug + py_dir: Path # dir of the source .py (base for relative refs) + asset_dir: Path # filesystem dir images are written to (public/) + asset_base: str # URL prefix, e.g. "/tutorials/" + repo_root: Path # for a broader by-basename asset fallback search + _protected: list[str] = field(default_factory=list) + _seen_refs: dict[str, str] = field(default_factory=dict) + + # -- placeholder machinery (keep generated MDX out of the prose escaper) -- + def stash(self, text: str) -> str: + token = f"\x00NB{len(self._protected)}\x00" + self._protected.append(text) + return token + + def unstash(self, text: str) -> str: + for i, val in enumerate(self._protected): + text = text.replace(f"\x00NB{i}\x00", val) + return text + + # -- asset I/O --------------------------------------------------------- + def _ensure_dir(self) -> None: + self.asset_dir.mkdir(parents=True, exist_ok=True) + + def write_output_image(self, payload: bytes, cell_idx: int, out_idx: int, ext: str) -> str: + self._ensure_dir() + fname = f"cell{cell_idx}_out{out_idx}{ext}" + (self.asset_dir / fname).write_bytes(payload) + return f"{self.asset_base}/{fname}" + + def resolve_ref(self, rel_src: str) -> str | None: + """Resolve a relative markdown/HTML image ref to a copied public URL. + + Tries the path relative to the source .py first, then falls back to a + by-basename search under the repo (handles the stale ``../../`` paths in + the legacy mkdocs sources). Returns None if nothing is found. + """ + if rel_src in self._seen_refs: + return self._seen_refs[rel_src] + if re.match(r"^(?:[a-z]+:)?//|^/|^data:", rel_src, re.IGNORECASE): + return None # absolute / remote / data URI: leave as-is + candidate = (self.py_dir / rel_src).resolve() + found: Path | None = candidate if candidate.is_file() else None + if found is None: + basename = Path(rel_src).name + # Bounded search: the source dir and up to three ancestors. + base = self.py_dir + for _ in range(4): + for hit in base.rglob(basename): + if hit.is_file(): + found = hit + break + if found is not None or base == self.repo_root or base == base.parent: + break + base = base.parent + if found is None: + return None + self._ensure_dir() + assets = self.asset_dir / "assets" + assets.mkdir(parents=True, exist_ok=True) + dest = assets / found.name + shutil.copyfile(found, dest) + url = f"{self.asset_base}/assets/{found.name}" + self._seen_refs[rel_src] = url + return url + + +# --------------------------------------------------------------------------- # +# Markdown cell rendering +# --------------------------------------------------------------------------- # + + +def _aside_type(raw_class: str) -> str: + for word in raw_class.lower().split(): + if word in _ADMONITION_TYPES: + return _ADMONITION_TYPES[word] + return "note" + + +def _convert_admonition(m: re.Match[str], ctx: RenderContext) -> str: + aside_type = _aside_type(m.group(1)) + inner = m.group(2) + title = "" + tm = _TITLE_RE.search(inner) + if tm: + title = re.sub(r"\s+", " ", tm.group(1)).strip() + inner = inner[: tm.start()] + inner[tm.end() :] + body = _P_TAG_RE.sub("\n", inner).strip() + body = escape_prose(body) + head = f":::{aside_type}" + if title: + head += f"[{title}]" + aside = f"{head}\n{body}\n:::" + return ctx.stash(aside) + + +def _convert_img(m: re.Match[str], ctx: RenderContext) -> str: + attrs = m.group(1) + sm = _SRC_RE.search(attrs) + if not sm: + return ctx.stash("") # img with no src: drop + src = sm.group(1) + url = ctx.resolve_ref(src) + if url is None: + # Keep the original ref but self-close so MDX still parses; the image + # may 404 at runtime, but the build stays green. + url = src + am = _ALT_RE.search(attrs) + alt = am.group(1) if am else Path(src).stem + return ctx.stash(f'{alt}') + + +def render_markdown(text: str, ctx: RenderContext) -> str: + # 1. admonition
blocks -> Starlight asides (stashed verbatim). + text = _ADMONITION_RE.sub(lambda m: _convert_admonition(m, ctx), text) + # 2. tags -> self-closed, asset-copied, absolute-src (stashed). + text = _IMG_RE.sub(lambda m: _convert_img(m, ctx), text) + # 3. keep known-safe wrapper tags (div/picture/...) verbatim as JSX. + text = _WRAPPER_RE.sub(lambda m: ctx.stash(m.group(0)), text) + # 4. escape everything else, then restore the stashed regions. + text = escape_prose(text) + return ctx.unstash(text) + + +# --------------------------------------------------------------------------- # +# Output rendering +# --------------------------------------------------------------------------- # + + +def _as_text(value) -> str: + return "".join(value) if isinstance(value, list) else str(value) + + +def _render_data(data: dict, cell_idx: int, out_idx: int, ctx: RenderContext) -> str: + if "image/svg+xml" in data: + svg = _as_text(data["image/svg+xml"]).encode("utf-8") + url = ctx.write_output_image(svg, cell_idx, out_idx, ".svg") + return f'output' + if "image/png" in data: + raw = data["image/png"] + payload = base64.b64decode(raw) if isinstance(raw, str) else bytes(raw) + url = ctx.write_output_image(payload, cell_idx, out_idx, ".png") + return f'output' + if "text/latex" in data: + latex = _as_text(data["text/latex"]).strip() + if "$" in latex: + return latex + return f"$$\n{latex}\n$$" + if "text/plain" in data: + text = strip_ansi(_as_text(data["text/plain"])) + return fenced(text, "text") if text.strip() else "" + if "text/html" in data: + html = _as_text(data["text/html"]) + return fenced(html, "html", 'title="HTML output"') if html.strip() else "" + if "text/markdown" in data: + return render_markdown(_as_text(data["text/markdown"]), ctx) + return "" + + +def _coalesce_streams(outputs: list) -> list: + """Merge consecutive ``stream`` outputs of the same name into one. + + Rich/pretty-printers emit stdout token-by-token, so a single ``print`` can + become hundreds of stream fragments; nbclient does not coalesce them. We do, + so the whole run renders as one fenced block instead of one-per-token. + """ + merged: list = [] + for out in outputs or []: + if ( + out.get("output_type") == "stream" + and merged + and merged[-1].get("output_type") == "stream" + and merged[-1].get("name") == out.get("name") + ): + merged[-1]["text"] = _as_text(merged[-1].get("text", "")) + _as_text( + out.get("text", "") + ) + else: + merged.append(dict(out)) + return merged + + +def render_outputs(cell, cell_idx: int, ctx: RenderContext) -> list[str]: + parts: list[str] = [] + for oi, out in enumerate(_coalesce_streams(cell.get("outputs", []) or [])): + otype = out.get("output_type") + if otype == "stream": + text = strip_ansi(_as_text(out.get("text", ""))) + if not text.strip(): + continue + meta = 'title="stderr"' if out.get("name") == "stderr" else "" + parts.append(fenced(text, "text", meta)) + elif otype in ("execute_result", "display_data"): + block = _render_data(out.get("data", {}) or {}, cell_idx, oi, ctx) + if block.strip(): + parts.append(block) + elif otype == "error": + tb = strip_ansi("\n".join(out.get("traceback", []) or [])) + if not tb.strip(): + tb = f"{out.get('ename', '')}: {out.get('evalue', '')}" + parts.append(fenced(tb, "text", 'title="Traceback"')) + return parts + + +# --------------------------------------------------------------------------- # +# Notebook -> MDX +# --------------------------------------------------------------------------- # + + +def _extract_title(nb, fallback: str) -> str: + """Return the first markdown H1 as the page title and strip it from the body.""" + for cell in nb.cells: + if cell.cell_type != "markdown": + continue + lines = cell.source.split("\n") + for i, line in enumerate(lines): + if not line.strip(): + continue + m = _H1_RE.match(line) + if m: + del lines[i] + # drop a now-leading blank line for tidiness + if i < len(lines) and not lines[i].strip(): + del lines[i] + cell.source = "\n".join(lines) + return m.group(1).strip() + break # first non-blank line wasn't an H1 -> no title here + return fallback.replace("_", " ").replace("-", " ").strip().title() + + +def _humanize(slug: str) -> str: + return slug.replace("_", " ").replace("-", " ").strip().title() + + +def render_notebook(nb, ctx: RenderContext, executed: bool) -> str: + title = _extract_title(nb, ctx.name) + body: list[str] = ["{/* Generated by bloqade-docs-emit-notebooks. Do not edit by hand. */}"] + if not executed: + body.append( + ":::note[Static render]\n" + "Outputs are not shown for this tutorial (notebook execution was " + "disabled at build time).\n:::" + ) + for ci, cell in enumerate(nb.cells): + tags = set(cell.get("metadata", {}).get("tags", []) or []) + if tags & _REMOVE_CELL: + continue + if cell.cell_type == "markdown": + md = render_markdown(cell.source, ctx) + if md.strip(): + body.append(md) + elif cell.cell_type == "code": + src = cell.source.strip("\n") + if src.strip() and not (tags & _REMOVE_INPUT): + body.append(fenced(src, "python")) + if executed and not (tags & _REMOVE_OUTPUT): + body.extend(render_outputs(cell, ci, ctx)) + front = f"---\ntitle: {yaml_dq(title)}\n---" + return front + "\n\n" + "\n\n".join(p for p in body if p.strip()) + "\n" diff --git a/website/emitters/notebooks/uv.lock b/website/emitters/notebooks/uv.lock new file mode 100644 index 000000000..1aa93e199 --- /dev/null +++ b/website/emitters/notebooks/uv.lock @@ -0,0 +1,5017 @@ +version = 1 +revision = 3 +requires-python = ">=3.10" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] + +[[package]] +name = "amazon-braket-default-simulator" +version = "1.33.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "amazon-braket-schemas", version = "1.28.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "antlr4-python3-runtime", marker = "python_full_version < '3.11'" }, + { name = "numba", marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "opt-einsum", marker = "python_full_version < '3.11'" }, + { name = "pydantic", marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sympy", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b5/30/dc9c77788afd591325f2da116c1b4e9ad74909ed6b038c75898e47934944/amazon_braket_default_simulator-1.33.0.tar.gz", hash = "sha256:b70d72b9a15dac102c28af64a0f7182dd8fc855f29ff9d93ba2920a2bb4d3879", size = 187907, upload-time = "2026-01-19T16:15:46.183Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/3e/c657bf649dd00edbc2c0fac1184dc87422de09f113255535ea7843ede308/amazon_braket_default_simulator-1.33.0-py3-none-any.whl", hash = "sha256:7fa115cdc284e12a4894dd7ef452352b9742340c87842aee37ac44d51ca1e200", size = 229965, upload-time = "2026-01-19T16:15:44.182Z" }, +] + +[[package]] +name = "amazon-braket-default-simulator" +version = "1.39.5" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "amazon-braket-schemas", version = "1.31.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "antlr4-python3-runtime", marker = "python_full_version >= '3.11'" }, + { name = "numba", marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "opt-einsum", marker = "python_full_version >= '3.11'" }, + { name = "pydantic", marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "setuptools", marker = "python_full_version >= '3.11'" }, + { name = "sympy", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/77/690f9f26cf076350c0697e7b85ae6b6d1f2e4c9a815e2e25893ed900c7cd/amazon_braket_default_simulator-1.39.5.tar.gz", hash = "sha256:8dbc2ee30d13e33af593d7e93ac58786a9467003b4f15368c7269ce86cdd56e2", size = 204241, upload-time = "2026-06-22T16:15:40.985Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/1c/c015ef20aeb90e4231e6013bce93a2ee5d3522e8e780bfa69d1bb4d25d2a/amazon_braket_default_simulator-1.39.5-py3-none-any.whl", hash = "sha256:e2419d116e0df39e0990074a6e178e3b62e967b616e5fecf8e01642c42b194fc", size = 246369, upload-time = "2026-06-22T16:15:39.407Z" }, +] + +[[package]] +name = "amazon-braket-schemas" +version = "1.28.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "pydantic", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/77/6e62397d24431daf6eec7553ae4f440e6cf9d4ba16ee7ba5b0302335f851/amazon_braket_schemas-1.28.0.tar.gz", hash = "sha256:ad04775a4ca00834759b2564ebb61bac2f8ab02526c79b3efc02f72ee4d3c0c4", size = 59800, upload-time = "2026-01-14T16:20:04.803Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/4b/3bcbe1a7ed4ea71ade6f6fa13dd0ad22b2c641c3599f416fe42b6dc8392f/amazon_braket_schemas-1.28.0-py3-none-any.whl", hash = "sha256:a75faed2ac27853fe27fc55a120fa571c3f1d7f8b11eaf53f3a5dc5ae2ed3d22", size = 152834, upload-time = "2026-01-14T16:20:02.303Z" }, +] + +[[package]] +name = "amazon-braket-schemas" +version = "1.31.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "pydantic", marker = "python_full_version >= '3.11'" }, + { name = "setuptools", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1e/73/2cb15470b8159dbe8b1706e4c4b60205717758f9264da862867d3ac918a6/amazon_braket_schemas-1.31.0.tar.gz", hash = "sha256:66dcbd19619a5b7806ae9189f957d619df181243bc7bcafcc96c9cd9783e86db", size = 60435, upload-time = "2026-06-19T19:24:36.954Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/66/e638c458bf5bd2d42be9e01dfcb75f2208c6cb8c88ba2579f45c9bc9962a/amazon_braket_schemas-1.31.0-py3-none-any.whl", hash = "sha256:60d37a62e7704b4ecc6fc159218d852293d399b02be16a3b9d02c613e6967ce8", size = 153090, upload-time = "2026-06-19T19:24:35.452Z" }, +] + +[[package]] +name = "amazon-braket-sdk" +version = "1.110.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "amazon-braket-default-simulator", version = "1.33.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "amazon-braket-schemas", version = "1.28.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "backoff", marker = "python_full_version < '3.11'" }, + { name = "backports-entry-points-selectable", marker = "python_full_version < '3.11'" }, + { name = "boltons", marker = "python_full_version < '3.11'" }, + { name = "boto3", marker = "python_full_version < '3.11'" }, + { name = "cloudpickle", marker = "python_full_version < '3.11'" }, + { name = "nest-asyncio", marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "openpulse", marker = "python_full_version < '3.11'" }, + { name = "openqasm3", marker = "python_full_version < '3.11'" }, + { name = "oqpy", marker = "python_full_version < '3.11'" }, + { name = "sympy", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c8/93/d3c9872bc8191b837cbd545f1651d8306e1ae098441bfc56e8327e7e5b9e/amazon_braket_sdk-1.110.1.tar.gz", hash = "sha256:eb2e06b85fb4471c80a46bec7d3ae216490ec92205722d2f58e5cf959870d54c", size = 484307, upload-time = "2026-01-26T16:16:12.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/67/a42f205852517e5de695a5b5ba7bbd5420ebd97e9b7555b48acab61f244b/amazon_braket_sdk-1.110.1-py3-none-any.whl", hash = "sha256:6a1d09bed058212549da3e8b0ddfd01b051b7fa640cb4cb69c54996a8870fffe", size = 374678, upload-time = "2026-01-26T16:16:11.095Z" }, +] + +[[package]] +name = "amazon-braket-sdk" +version = "1.123.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "amazon-braket-default-simulator", version = "1.39.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "amazon-braket-schemas", version = "1.31.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "backoff", marker = "python_full_version >= '3.11'" }, + { name = "backports-entry-points-selectable", marker = "python_full_version >= '3.11'" }, + { name = "boltons", marker = "python_full_version >= '3.11'" }, + { name = "boto3", marker = "python_full_version >= '3.11'" }, + { name = "cloudpickle", marker = "python_full_version >= '3.11'" }, + { name = "nest-asyncio", marker = "python_full_version >= '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "openpulse", marker = "python_full_version >= '3.11'" }, + { name = "openqasm3", marker = "python_full_version >= '3.11'" }, + { name = "oqpy", marker = "python_full_version >= '3.11'" }, + { name = "sympy", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/44/e6/9df8501513e2c4c88f4cbba28d29983de3aea9455c0b8d8770eb345290c1/amazon_braket_sdk-1.123.0.tar.gz", hash = "sha256:042957f611d925b18ee35d8342df70271a6f8d4ae992fb4e225228f67fe62c91", size = 272072, upload-time = "2026-07-10T20:35:58.896Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/c0/3a43985064b22aa9ccae00148763e13be992653757e3742dab0606fa26ec/amazon_braket_sdk-1.123.0-py3-none-any.whl", hash = "sha256:314fab85a64dbd9592b7a957a4288aa36a4cd21660ba99a893e71760a10ad9a1", size = 399429, upload-time = "2026-07-10T20:35:57.335Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "antlr4-python3-runtime" +version = "4.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/33/5f/2cdf6f7aca3b20d3f316e9f505292e1f256a32089bd702034c29ebde6242/antlr4_python3_runtime-4.13.2.tar.gz", hash = "sha256:909b647e1d2fc2b70180ac586df3933e38919c85f98ccc656a96cd3f25ef3916", size = 117467, upload-time = "2024-08-03T19:00:12.757Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl", hash = "sha256:fe3835eb8d33daece0e799090eda89719dbccee7aa39ef94eed3818cafa5a7e8", size = 144462, upload-time = "2024-08-03T19:00:11.134Z" }, +] + +[[package]] +name = "anyio" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/72/5562aabb8dd7181e8e860622a38bea08d17842b99ecd4c91f84ac95251b0/anyio-4.14.1.tar.gz", hash = "sha256:8d648a3544c1a700e3ff78615cd679e4c5c3f149904287e73687b2596963629e", size = 254831, upload-time = "2026-06-24T20:56:06.017Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/7b/90df4a0a816d98d6ea26f559d87836d494a2cf1fcf063be67df50a7bcc30/anyio-4.14.1-py3-none-any.whl", hash = "sha256:4e5533c5b8ff0a24f5d7a176cbe6877129cd183893f66b537f8f227d10527d72", size = 124875, upload-time = "2026-06-24T20:56:04.413Z" }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "autoray" +version = "0.8.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/ef/3f4c83009e9825f3a8565bd71759be63de06de37768db31f9bf56a4075ce/autoray-0.8.11.tar.gz", hash = "sha256:3e994ea6813916b4e5471853f5332d69224fd67a5f057d602d20df47dcf63fe4", size = 1344555, upload-time = "2026-06-08T22:36:49.685Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/be/f0352174093c8beed98e85e37f9190cc7da8f26330b9853f5153a9514a0a/autoray-0.8.11-py3-none-any.whl", hash = "sha256:336d51cde75232585e965cac51e74e953d88c48405c8c199946514458ccbcfba", size = 941629, upload-time = "2026-06-08T22:36:47.75Z" }, +] + +[[package]] +name = "backoff" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba", size = 17001, upload-time = "2022-10-05T19:19:32.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148, upload-time = "2022-10-05T19:19:30.546Z" }, +] + +[[package]] +name = "backports-entry-points-selectable" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/25/dae014b114397a6f60578d7358bf5fcb103f71556e5363a50d7b42e9bc51/backports.entry_points_selectable-1.3.0.tar.gz", hash = "sha256:17a8b44ae700fba548686dd274ddc91c060371565cd63806c20a1d33911746e6", size = 9882, upload-time = "2023-11-27T19:03:06.585Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/78/b3ba5d804ae21e26e6179bbe4e1338deaaba9d20161918f59e20e9d92ea0/backports.entry_points_selectable-1.3.0-py3-none-any.whl", hash = "sha256:66f5da003eb4b283c7b60581bc8bb0baf0d810eb3e3068da786d3821b4d5746a", size = 6217, upload-time = "2023-11-27T19:03:04.844Z" }, +] + +[[package]] +name = "beartype" +version = "0.22.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866, upload-time = "2025-12-13T06:50:30.72Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload-time = "2025-12-13T06:50:28.266Z" }, +] + +[[package]] +name = "beliefmatching" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ldpc" }, + { name = "numpy" }, + { name = "pymatching" }, + { name = "sinter" }, + { name = "stim" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/e4/5b5cc731a4507c7243a90c786390041ceb69dbe304ee17debd589049b6a0/beliefmatching-0.2.0.tar.gz", hash = "sha256:915175fc6ab4b73cfb948774ef06d71abc045a189dfb21cdf3dbd69389b111cc", size = 13472, upload-time = "2025-06-28T21:19:44.485Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/48/49f5bc2a7ac44226d07381ac553f44966bcee1f4c17d3688d960023ac228/beliefmatching-0.2.0-py3-none-any.whl", hash = "sha256:601e5511e34acd00daad6f421a229aa60f3ff58a1c8800f416b2ffa236c7a22a", size = 12740, upload-time = "2025-06-28T21:19:43.487Z" }, +] + +[[package]] +name = "binapy" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/12/64a6df32e9bf0eea5dd2a448d37bbfe49b4aae0acb20b46381bf76304a0a/binapy-0.8.0.tar.gz", hash = "sha256:570c5098d42f037ffb3d2e563998f3cff69ad25ca1f43f9c3815432dccd08233", size = 20315, upload-time = "2024-01-19T11:57:20.096Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/50/a2ca5609cffc918a339be4ec5070c6d1d9fab600e6d9164df18040137383/binapy-0.8.0-py3-none-any.whl", hash = "sha256:8af1e1e856900ef8b79ef32236e296127c9cf26414ec355982ff7ce5f173504d", size = 16993, upload-time = "2024-01-19T11:57:18.876Z" }, +] + +[[package]] +name = "bloqade" +version = "0.35.0.dev0" +source = { editable = "../../../" } +dependencies = [ + { name = "bloqade-analog" }, + { name = "bloqade-circuit", extra = ["cirq", "qasm2", "qbraid", "stim", "vis"] }, + { name = "bloqade-lanes" }, + { name = "bloqade-tsim" }, +] + +[package.metadata] +requires-dist = [ + { name = "bloqade-analog", specifier = "~=0.16.3" }, + { name = "bloqade-circuit", extras = ["cirq", "qasm2", "qbraid", "vis", "stim"], specifier = "~=0.14.1" }, + { name = "bloqade-lanes", specifier = "~=0.10.6" }, + { name = "bloqade-tsim", specifier = "~=0.1.4" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "black", specifier = ">=24.10.0" }, + { name = "bloqade-tsim", specifier = ">=0.1.0" }, + { name = "coverage", specifier = ">=7.6.4" }, + { name = "ipython", specifier = ">=8.29.0" }, + { name = "isort", specifier = ">=5.13.2" }, + { name = "mypy", specifier = ">=1.13.0" }, + { name = "numpy", specifier = ">=1.26.4" }, + { name = "pre-commit", specifier = ">=4.0.1" }, + { name = "pyright", specifier = ">=1.1.388" }, + { name = "pytest", specifier = ">=8.3.3" }, + { name = "ruff", specifier = ">=0.7.3" }, + { name = "rust-just", specifier = ">=1.36.0" }, + { name = "tomlkit", specifier = ">=0.13.2" }, +] +doc = [ + { name = "griffe-inherited-docstrings", specifier = ">=1.1.1" }, + { name = "ipywidgets", specifier = ">=8.1.0" }, + { name = "mike", specifier = ">=2.1.3" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-gen-files", specifier = ">=0.5.0" }, + { name = "mkdocs-jupyter", specifier = ">=0.25.1" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6.1" }, + { name = "mkdocs-material", specifier = ">=9.5.44" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocstrings", extras = ["python"], specifier = ">=0.27.0" }, + { name = "pygments", specifier = "<2.20" }, +] +examples = [{ name = "networkx", specifier = ">=3.4.2" }] + +[[package]] +name = "bloqade-analog" +version = "0.16.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "amazon-braket-sdk", version = "1.110.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "amazon-braket-sdk", version = "1.123.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "beartype" }, + { name = "bokeh" }, + { name = "juliacall" }, + { name = "numba" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "plotext" }, + { name = "plum-dispatch" }, + { name = "pydantic" }, + { name = "requests-sigv4" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "simplejson" }, + { name = "tabulate" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/2e/99118d8be11971106adf99a84f17508885885ab296a92f314b8352b80be3/bloqade_analog-0.16.9.tar.gz", hash = "sha256:6e56458659e43139a0b9097184dff7985e60238f20b627505dcde2305b962647", size = 7102121, upload-time = "2026-03-02T14:31:54.71Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/9e/8f1ff3ee792f2c6250b4d657cf99c86cb596dc74edc654d6eee05daacb6f/bloqade_analog-0.16.9-py3-none-any.whl", hash = "sha256:882e5df9f284a5d64b212d2724040c4de9539a84539f8f6cd0af1cefa7d5c85b", size = 187855, upload-time = "2026-03-02T14:31:52.804Z" }, +] + +[[package]] +name = "bloqade-circuit" +version = "0.14.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bloqade-decoders" }, + { name = "kirin-toolchain" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pydantic" }, + { name = "pyqrack-cpu" }, + { name = "rich" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1b/c3/79b410d35cfcf9ae2222746e9c4b1b7e1878c2240dea7a471fa6096b30fa/bloqade_circuit-0.14.4.tar.gz", hash = "sha256:d6c71785d5805f8b91f50816c5d705c03f9d3e318be277199fe15a45a79e274d", size = 421472, upload-time = "2026-06-24T07:40:16.392Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/84/de5fb96d2a1ee3452e9e4d9eeb93793cf9ebf9f328fff56573147a2f0339/bloqade_circuit-0.14.4-py3-none-any.whl", hash = "sha256:e86e9a6b173c0ed621017fa7677dc076fcef63a7cf8acd9adb2b776e54191631", size = 254869, upload-time = "2026-06-24T07:40:14.925Z" }, +] + +[package.optional-dependencies] +cirq = [ + { name = "cirq-core", version = "1.5.0", source = { registry = "https://pypi.org/simple" }, extra = ["contrib"], marker = "python_full_version < '3.11'" }, + { name = "cirq-core", version = "1.7.0", source = { registry = "https://pypi.org/simple" }, extra = ["contrib"], marker = "python_full_version >= '3.11'" }, + { name = "numba" }, + { name = "qpsolvers", extra = ["clarabel"] }, +] +qasm2 = [ + { name = "lark" }, +] +qbraid = [ + { name = "qbraid" }, +] +stim = [ + { name = "stim" }, +] +vis = [ + { name = "ffmpeg" }, + { name = "matplotlib", version = "3.10.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "matplotlib", version = "3.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pyqt5", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tqdm" }, +] + +[[package]] +name = "bloqade-core" +version = "0.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "kirin-toolchain" }, + { name = "loguru" }, + { name = "qlam-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/b9/9552a1f8da2c26b679449deba1616b781676a43fcec28e0578536913ca50/bloqade_core-0.6.5.tar.gz", hash = "sha256:676a7aff062b40e134a35d79dd9069e760a902588e725aff55360796cd1816eb", size = 203248, upload-time = "2026-06-24T08:19:10.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/72/4476f34657ddb107edd8a063c75571e86a90230cbf8729c0699d27106cb9/bloqade_core-0.6.5-py3-none-any.whl", hash = "sha256:ecb720ac3131988bbe45b8eebeed97df964c367b4050e6cffb695d88500ce3d2", size = 44757, upload-time = "2026-06-24T08:19:08.8Z" }, +] + +[[package]] +name = "bloqade-decoders" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beliefmatching" }, + { name = "kirin-toolchain" }, + { name = "ldpc" }, + { name = "numpy" }, + { name = "stim" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/03/3a/4f099731a0159572f3d0ffd2fca63406e5f55de412c4e1b26fb6e4e41c4e/bloqade_decoders-0.6.0.tar.gz", hash = "sha256:0579896f13b5089e1ba05e040a1f57b30c5f6acfc4cfb01b2ecf22ae63179f50", size = 152696, upload-time = "2026-06-17T14:09:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/d8/935986caa8bc91a2be986a19f220ae894313a9ab9ebbcbeec18444358f49/bloqade_decoders-0.6.0-py3-none-any.whl", hash = "sha256:01cba5cdd02ce452e8252491fa9178b643fd9155413bd9c7d97a9b6052c7c571", size = 26409, upload-time = "2026-06-17T14:09:48.772Z" }, +] + +[[package]] +name = "bloqade-docs-emit-notebooks" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "bloqade" }, + { name = "ipykernel" }, + { name = "jupytext" }, + { name = "nbclient" }, + { name = "nbformat" }, +] + +[package.metadata] +requires-dist = [ + { name = "bloqade", editable = "../../../" }, + { name = "ipykernel", specifier = ">=6.29,<7" }, + { name = "jupytext", specifier = ">=1.16,<2" }, + { name = "nbclient", specifier = ">=0.10,<0.11" }, + { name = "nbformat", specifier = ">=5.10,<6" }, +] + +[[package]] +name = "bloqade-lanes" +version = "0.10.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bloqade-circuit", extra = ["qasm2"] }, + { name = "bloqade-core" }, + { name = "deprecated" }, + { name = "kahip" }, + { name = "kirin-toolchain" }, + { name = "numpy" }, + { name = "rustworkx" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c8/37/de76c1969f83ef96efb9df70ea444b3564c6697d872997e2242b440ec4b9/bloqade_lanes-0.10.6.tar.gz", hash = "sha256:63ae3aaf370ceee4f7da7ed4e7b5bc2fdf86559b6e704ff324d4a61e87ee60d6", size = 423595, upload-time = "2026-06-15T14:48:57.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/e4/1650a8c458a8bdb1a82e6a253db228c4019e1a641fd869597cdd1a72fe4e/bloqade_lanes-0.10.6-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c64724b9342ed8854fff002cf02dcb874b5ece01e518c49cfb677c6f6385bf30", size = 8544619, upload-time = "2026-06-15T14:48:45.846Z" }, + { url = "https://files.pythonhosted.org/packages/ad/97/3bc71f7ee141c0b0421cc5fa26212d42e1502b71e9dbf690ca6a41518c5c/bloqade_lanes-0.10.6-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:f1eed454cc7b6b0f5a8120e0a3ed79b1d75a494da02015ed41f823a7924e1a66", size = 8485624, upload-time = "2026-06-15T14:48:48.167Z" }, + { url = "https://files.pythonhosted.org/packages/4f/91/4b015c1261e36ece66168b10bc270d8c739c15b098d072a4fd1ff6c94dd2/bloqade_lanes-0.10.6-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:32a1ff3585140d80ee35170998408819e301f04b22c249c2b7d6dee01098c392", size = 8776561, upload-time = "2026-06-15T14:48:50.178Z" }, + { url = "https://files.pythonhosted.org/packages/69/8c/f6fdb50db878c6e154c03a28c2af9cf118c94196320b36d10c93b06c2827/bloqade_lanes-0.10.6-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:366407987f31a527cadef6901b1dccbbeb54a1f7646581c426ac49fe3bc23aa8", size = 8905482, upload-time = "2026-06-15T14:48:52.701Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fb/bf477555550ff900c5689fc19fd9e9a8f566cb256d0a3bc85f7b5a7e539f/bloqade_lanes-0.10.6-cp310-abi3-win_amd64.whl", hash = "sha256:bd7307d440ee900a8a9448511214411d67d25cc119369841ae6e918f03f9089f", size = 6219468, upload-time = "2026-06-15T14:48:54.739Z" }, +] + +[[package]] +name = "bloqade-tsim" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "equinox" }, + { name = "jax", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "jax", version = "0.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "lxml" }, + { name = "numpy" }, + { name = "psutil" }, + { name = "pyzx-param" }, + { name = "stim" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cf/3e/0ae0e867405e7a34d53e8d8ff086a88656dc3cbe88a506a0be190e024aa6/bloqade_tsim-0.1.4.tar.gz", hash = "sha256:a50a6c6faae9dfa8fa25b6783a51a95f5f518a4c8d82a574fc017b69fb035ae5", size = 470603, upload-time = "2026-04-28T15:26:04.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/e6/34ccb7ca46d71e106ec43da6dfb0bff8259a64e5a5d68602d5e5d1c78266/bloqade_tsim-0.1.4-py3-none-any.whl", hash = "sha256:96f2a2631aec20f836fb5028f52c5d5ec8b036590f7777fd123b96d403e3e240", size = 85290, upload-time = "2026-04-28T15:26:03.388Z" }, +] + +[[package]] +name = "bokeh" +version = "3.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "contourpy", version = "1.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "jinja2" }, + { name = "narwhals" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyyaml" }, + { name = "tornado", marker = "sys_platform != 'emscripten'" }, + { name = "xyzservices" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/cc/754521e919aab05982f126b7702c0a253341ef6b400beca22bc5b4bdcb72/bokeh-3.9.1.tar.gz", hash = "sha256:1463d3c84fba61a925ea6ace0b4d3d9c0160ca214f6851edbfed6dc27e172b60", size = 5749911, upload-time = "2026-06-04T18:04:42.932Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/54/40ff985187f0fd1afcedebc23eda0ba92bdbea1e0605cbb878b45391e5e0/bokeh-3.9.1-py3-none-any.whl", hash = "sha256:8bf2aae574509055fbd6b68f023046bebc91b0bbd631d204d0d60863b4237dbd", size = 6406728, upload-time = "2026-06-04T18:04:40.832Z" }, +] + +[[package]] +name = "boltons" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7a/1f/60df922ae497d838c58b48caa518251e2c8e228d7fe93792fee69a3858d6/boltons-26.0.0.tar.gz", hash = "sha256:5566d6cfd5a1e873d8e8476496287a9f92979964611ad9a9cecb6b0ef29b1edd", size = 225129, upload-time = "2026-06-19T06:10:41.226Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/01/4001033457f25ecdc2b1ffd513ca0b76200b9ea009dd64f6c1aad2dde133/boltons-26.0.0-py3-none-any.whl", hash = "sha256:ba077cac51b27532299634f87f5589b4080fa94a011b4d43a9247f775e9215c7", size = 195559, upload-time = "2026-06-19T06:10:39.865Z" }, +] + +[[package]] +name = "boto3" +version = "1.43.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f2/e7/976bf3dfe0aa5d7f31bec2f2cf57c79641620c910a39bc843a237aa9592d/boto3-1.43.46.tar.gz", hash = "sha256:66c0d943b049a46a492ec4ec2ebe73c930b1842c7137bee83aad6d93e95d4d96", size = 112654, upload-time = "2026-07-10T19:32:12.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/1d/c52e66ff32ba7911664e6c4c2ac62e1c6d2d1e7550c7ac185d3f4b70a8a4/boto3-1.43.46-py3-none-any.whl", hash = "sha256:69453e2c1bcb9fd9806527ab99950cacfc2826cb0dce9a3a0414d19270c06c3c", size = 140031, upload-time = "2026-07-10T19:32:11.129Z" }, +] + +[[package]] +name = "botocore" +version = "1.43.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/f1/1917891851ac5ac09bb9f4862b8fc9252a009d7c24e8688bb67e4383d9e7/botocore-1.43.46.tar.gz", hash = "sha256:59f2e1ac3cdc66d191cae91c0804bc41847ce817dc8147cf43eaada8f76a5533", size = 15694635, upload-time = "2026-07-10T19:32:00.437Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/f2/4bd8f2f419088feb3ce55f0ca91040ff902f402edfd197450b20a2e1d533/botocore-1.43.46-py3-none-any.whl", hash = "sha256:cb673891e623ae6e6a1bf24d94ef169504f3eb02584adb5d5bee2f6aae819b60", size = 15380350, upload-time = "2026-07-10T19:31:57.616Z" }, +] + +[[package]] +name = "certifi" +version = "2026.6.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/c7/424b75da314c1045981bd9777432fad05a9e0c69daa4ed7e308bbaffe405/certifi-2026.6.17.tar.gz", hash = "sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432", size = 134594, upload-time = "2026-06-17T10:31:07.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/2f/c5464532e965badff2f4c4c1a3a83f5697f0d7c407ed0cda44aaa99bb451/certifi-2026.6.17-py3-none-any.whl", hash = "sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db", size = 133289, upload-time = "2026-06-17T10:31:06.348Z" }, +] + +[[package]] +name = "cffi" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/5f/ff100cae70ebe9d8df1c01a00e510e45d9adb5c1fdda84791b199141de97/cffi-2.1.0.tar.gz", hash = "sha256:efc1cdd798b1aaf39b4610bba7aad28c9bea9b910f25c784ccf9ec1fa719d1f9", size = 531036, upload-time = "2026-07-06T21:34:30.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/e9/6d7724983b3d5a0908dbf74f64038ade77c18646ff6636ec7894fd392ce1/cffi-2.1.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:b65f590ef2a44640f9a05dbb548a429b4ade77913ce683ac8b1480777658a6c0", size = 183837, upload-time = "2026-07-06T21:32:09.655Z" }, + { url = "https://files.pythonhosted.org/packages/69/aa/24580a278de21fd7322635556334d9b535f1cbc00b0a3919447cdf464c65/cffi-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164bff1657b2a74f0b6d54e11c9b375bc97b931f2ca9c43fcf875838da1570dd", size = 184226, upload-time = "2026-07-06T21:32:11.196Z" }, + { url = "https://files.pythonhosted.org/packages/88/a9/02cae418ec4beb282ace11958d9d4737793439d561fadc7e6d56f2e2b354/cffi-2.1.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:c941bb58d5a6e1c3892d86e42927ed6c180302f07e6d395d08c416e594b98b46", size = 211107, upload-time = "2026-07-06T21:32:12.328Z" }, + { url = "https://files.pythonhosted.org/packages/3b/30/c806937ed5e4c2c7ac30d9d6b76b5dc57ff8b75d83800d9bb11a8253cf2a/cffi-2.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a016194dbe13d14ee9556e734b772d8d67b947092b268d757fd4290e3ba2dfc2", size = 218733, upload-time = "2026-07-06T21:32:13.67Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cf/398272b8bbfd58aa314fda5a7f1cdbb26d1d78ae324a11211521315dd1f0/cffi-2.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:03e9810d18c646077e501f661b682fbf5dee4676048527ca3cffe66faa9960dd", size = 205543, upload-time = "2026-07-06T21:32:15.148Z" }, + { url = "https://files.pythonhosted.org/packages/45/ca/f91641185cdd90c36d317a9dc7f85e88ef8682d8b300977baff5e23c35d8/cffi-2.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:19c54ac121cad98450b4896fa9a43ee0180d57bc4bc911a33db6cab1efab6cd3", size = 205460, upload-time = "2026-07-06T21:32:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/38/66/04781a77b411f0bb5b234d62c1814754ab75ebe455ccff1b08e8d7aae98f/cffi-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d433a51f1870e43a13b6732f92aaf540ff77c2015097c78556f75a2d6c030e0", size = 218760, upload-time = "2026-07-06T21:32:17.98Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9a/bb1d5ed9c3fcae158e9f6391bf309c95d98c2ac37ed56573228471d0af5e/cffi-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d7f118b5adbfdfead90c25822690b02bc8074fba949bb7858bec4ebd55adb43", size = 221230, upload-time = "2026-07-06T21:32:19.407Z" }, + { url = "https://files.pythonhosted.org/packages/41/aa/3c1409cdd26094efacd1c36c66e0a6eb9d4296e4fd4f9901b8b2042f4323/cffi-2.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c5f5df567f6eb216de69be06ce55c8b714090fae02b18a3b40da8163b8c5fa9c", size = 213524, upload-time = "2026-07-06T21:32:20.828Z" }, + { url = "https://files.pythonhosted.org/packages/fa/75/74dfb7c3fc6ebbd408038476bd4c1d7e925c62614e7b9c534ecc34218288/cffi-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:11b3fb55f4f8ad92274ed26705f65d8f91457de71f5380061eb6d125a768fecd", size = 220341, upload-time = "2026-07-06T21:32:21.9Z" }, + { url = "https://files.pythonhosted.org/packages/70/b6/9003c33a3e7d2c1306f5962e646457dcfe5a8cd8fce6bbe02d7af25db783/cffi-2.1.0-cp310-cp310-win32.whl", hash = "sha256:9d72af0cf10a76a600a9690078fe31c63b9588c8e86bf9fd353f713c84b5db0f", size = 174578, upload-time = "2026-07-06T21:32:23.073Z" }, + { url = "https://files.pythonhosted.org/packages/8a/26/710688310447531c7a22f857c7f79d9855ec18b03e04494ced723fb37e2f/cffi-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb62edb5bb52cca65fab91a63afa7561607120d26090a7e8fda6fb9f064726da", size = 185071, upload-time = "2026-07-06T21:32:24.671Z" }, + { url = "https://files.pythonhosted.org/packages/d3/67/85c89a59ba36a671e79638f44d466749f08179266a57e4f2ffdf92174072/cffi-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:02cb7ff33ded4f1532476731f89ede53e2e488a8e6205515a82144246ffa7dcc", size = 183845, upload-time = "2026-07-06T21:32:26.32Z" }, + { url = "https://files.pythonhosted.org/packages/ea/dd/e3b0baa2d3d6a857ac72b7efbf18e32e487c9cdafcc13049ad765495b15e/cffi-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5bce581e6b8c235e566a14768a943b172ada3ed73537bb0c0be1edee312d4e7", size = 184186, upload-time = "2026-07-06T21:32:28.025Z" }, + { url = "https://files.pythonhosted.org/packages/65/68/9f3ef890cf3c6ab97bd531c5677f67613d302165d16f8142b2811782a614/cffi-2.1.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:30b65779d598c370374fefabf138d456fd6f3216bfa7bedfab1ba82025b0cd93", size = 211892, upload-time = "2026-07-06T21:32:29.565Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/1a74539db16d8bfd839ff1515948948efbb162e574650fd3d846896eea95/cffi-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88023dfe18799507b73f1dbb0d14326a17465de1bc9c9c7655c22845e9ddc3a2", size = 218793, upload-time = "2026-07-06T21:32:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d1/9a5b7169499e8e8d8e636de70b97ac7c9447104d2ff1a2cd94790cea5162/cffi-2.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0a96b74cda968eebbad56d973efe5098974f0a9fb323865bf99ea1fd24e3e64c", size = 205737, upload-time = "2026-07-06T21:32:32.216Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b0/e131a9c41f10607926278453d9596163594fe1c4ebc46efe3b5e5b34eb84/cffi-2.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a5781494d4d400a3f47f8f1da94b324f6e6b440a53387774002890a2a2f4b50f", size = 204909, upload-time = "2026-07-06T21:32:33.655Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d2/4398416cd699b35167947c6e22aca52c47e69ad5695073c9f1f2c52e04aa/cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aa7a1b53a2a4452ada2d1b5dade9960b2522f1e61293a811a077439e39029565", size = 217883, upload-time = "2026-07-06T21:32:35.173Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a5/d4fe77b589e5e82d43ebc809bf2e6474afe8e48e32ea050b9357645b6471/cffi-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d8272c0e483b024e1b9ad029821470ed8ec65631dbd90217469da0e7cd89f1c", size = 221251, upload-time = "2026-07-06T21:32:36.527Z" }, + { url = "https://files.pythonhosted.org/packages/22/f0/a2fc43084c0433caf7f461bccc013e28f848d04ee1c5ed7fce71423cf4d9/cffi-2.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7762faa47e8ff7eb80bd261d9a7d8eea2d8baa69de5e95b70c1f338bbe712f02", size = 214250, upload-time = "2026-07-06T21:32:37.852Z" }, + { url = "https://files.pythonhosted.org/packages/04/8c/b925975448cf20634a9fbd5efceb807219db452653648d2897c0989cab2d/cffi-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89095c1968b4ba8285840e131bf2891b09ae137fe2146905acae0354fbce1b5e", size = 219441, upload-time = "2026-07-06T21:32:39.146Z" }, + { url = "https://files.pythonhosted.org/packages/eb/da/5c4918a2d61d86fa927d716cb3d8e4626ef8dc8f605a599d32f33897f59a/cffi-2.1.0-cp311-cp311-win32.whl", hash = "sha256:64c753a0f87a256020004f37a1c8c02c480e725f910f0b2a0f3f07debd1b2479", size = 174496, upload-time = "2026-07-06T21:32:40.467Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/6c2de1d55cf35ef8b92885d5ef280790f0fb9634d87ea1cc315176aecd61/cffi-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:4f26194e3d95e06501b942642855aed4f953d55e95d7d01b7c4483db3ecff458", size = 185113, upload-time = "2026-07-06T21:32:41.761Z" }, + { url = "https://files.pythonhosted.org/packages/9e/4e/e8d7cb5783f1841a3c8fb3a7735838d7484d08ec08c9f984b14cac1ac0e9/cffi-2.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:35aaea0c7ee0e58a5cd8c2fd1a48fdf7ece0d2699b7ecdda08194e9ce5dd9b3d", size = 179927, upload-time = "2026-07-06T21:32:42.961Z" }, + { url = "https://files.pythonhosted.org/packages/1e/85/990925db5df586ec90beb97529c853497e7f85ba0234830447faf41c3057/cffi-2.1.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:df2b82571a1b30f58a87bf4e5a9e78d2b1eff6c6ce8fd3aa3757221f93f0863f", size = 184829, upload-time = "2026-07-06T21:32:44.324Z" }, + { url = "https://files.pythonhosted.org/packages/4b/92/e7bb136ad6b5352603732cf907ef862ca103f20f2031c1735a46300c20c9/cffi-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78474632761faa0fb96f30b1c928c84ebcf68713cbb80d15bab09dfe61640fde", size = 184728, upload-time = "2026-07-06T21:32:45.683Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c0/d1ec30ffb370f748f2fb54425972bfef9871e0132e82fb589c46b6676049/cffi-2.1.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5972433ad71a9e46516584ef60a0fda12d9dc459938d1539c3ddecf9bdc1368d", size = 214815, upload-time = "2026-07-06T21:32:48.557Z" }, + { url = "https://files.pythonhosted.org/packages/1b/dc/5620cf930688be01f2d673804291de757a934c90b946dbdc3d84130c2ea4/cffi-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6422532152adf4e59b110cb2808cee7a033800952f5c036b4af047ee43199e7", size = 222429, upload-time = "2026-07-06T21:32:49.848Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a4/77b53abbf7a1e0beb9637edbef2a94d15f9c822f591e85d439ffd91519a6/cffi-2.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:46b1c8db8f6122420f32d02fffb924c2fe9bc772d228c7c711748fff56aabb2b", size = 210315, upload-time = "2026-07-06T21:32:51.221Z" }, + { url = "https://files.pythonhosted.org/packages/58/0c/f528df19cc94b675087324d4760d9e6d5bfae97d6217aa4fac43de4f5fcc/cffi-2.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9fafc5aa2e2a39aaf7f8cc0c1f044a9b07fca12e558dca53a3cc5c654ad67a7", size = 208859, upload-time = "2026-07-06T21:32:52.512Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/c9522a81c32132799a1972c39f5c5f8b4c8b9f00488a23feaa6c06f07741/cffi-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1e9f50d192a3e525b15a75ab5114e442d83d657b7ec29182a991bc9a88fd3a66", size = 221844, upload-time = "2026-07-06T21:32:53.704Z" }, + { url = "https://files.pythonhosted.org/packages/6e/28/bd53988b9833e8f8ad539d26f4c07a6b3f6bcb1e9e02e7ca038250b3428d/cffi-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98fff996e983a36d3aa2eca83af40c5821202e7e6f32d13ae94e3d2286f10cfe", size = 225287, upload-time = "2026-07-06T21:32:54.907Z" }, + { url = "https://files.pythonhosted.org/packages/79/99/0d0fd37f055224085f42bbb2c022d002e17dde4a97972822327b07d84101/cffi-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:379de10ce1ba048b1448599d1b37b24caee16309d1ac98d3982fc997f768700b", size = 223681, upload-time = "2026-07-06T21:32:56.329Z" }, + { url = "https://files.pythonhosted.org/packages/b0/80/c138990aa2a70b1a269f6e06348729836d733d6f970867943f61d367f8cc/cffi-2.1.0-cp312-cp312-win32.whl", hash = "sha256:9b8f0f26ca4e7513c534d351eca551947d053fac438f2a04ac96d882909b0d3a", size = 175269, upload-time = "2026-07-06T21:32:57.777Z" }, + { url = "https://files.pythonhosted.org/packages/a8/eb/f636456ff21a83fc13c032b58cc5dde061691546ac79efa284b2989b7982/cffi-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:c97f080ea627e2863524c5af3836e2270b5f5dfff1f104392b959f8df0c5d384", size = 185881, upload-time = "2026-07-06T21:32:59.253Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/400ea43e721727dca8a65c4521390e9196757caba4a45643acb2b63271b8/cffi-2.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:6d194185eabd279f1c05ebe3504265ddfc5ad2b58d0714f7db9f01da592e9eb6", size = 180088, upload-time = "2026-07-06T21:33:02.278Z" }, + { url = "https://files.pythonhosted.org/packages/96/88/a996879e2eeccb815f6e3a5967b12a308257412acec882039d386bd2aa7b/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:10537b1df4967ca26d21e5072d7d54188354483b91dc75058968d3f0cf13fbda", size = 194331, upload-time = "2026-07-06T21:33:03.697Z" }, + { url = "https://files.pythonhosted.org/packages/58/85/7ae00d5c8dd6266f4e944c3db630f3c5c9a98b61d469c714d848b1d8138a/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a95b05f9baf29b91171b3a8bd2020b028835243e7b0ff6bb23e2a3c228518b1b", size = 196966, upload-time = "2026-07-06T21:33:05.353Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e9/45c3a76ad8d43ad9261f4c95436da61128d3ca545d72b9612c0ab5be0b1c/cffi-2.1.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:15faec4adfff450819f3aee0e2e02c812de6edb88203aa58807955db2003472a", size = 184795, upload-time = "2026-07-06T21:33:06.699Z" }, + { url = "https://files.pythonhosted.org/packages/84/4c/82f132cb4418ee6d953d982b19191e87e2a6372c8a4ce36e50b69d6ade4a/cffi-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:716ff8ec22f20b4d988b12884086bcef0fc99737043e503f7a3935a6be99b1ea", size = 184746, upload-time = "2026-07-06T21:33:08.071Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1c/4ed5a0e5bdca6cbc275556de3328dd1b76fd0c11cc13c88fe66d1d8715f2/cffi-2.1.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:63960549e4f8dc41e31accb97b975abaecfc44c03e396c093a6436763c2ea7db", size = 214747, upload-time = "2026-07-06T21:33:09.671Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a6/e879bb68cc23a2bc9ba8f4b7d8019f0c2694bad2ab6c4a3701d429439f58/cffi-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff067a8d8d880e7809e4ac88eb009bb848870115317b306666502ccad30b147f", size = 222392, upload-time = "2026-07-06T21:33:10.896Z" }, + { url = "https://files.pythonhosted.org/packages/88/f6/01890cfd63c08f8eb96a8319b0443690197d240a8bd6346048cf7bde9190/cffi-2.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3b926723c13eba9f81d2ef3820d63aeceec3b2d4639906047bf675cb8a7a500d", size = 210285, upload-time = "2026-07-06T21:33:12.251Z" }, + { url = "https://files.pythonhosted.org/packages/a6/cf/2b684132056f438567b61e19d690dd31cd0921ace051e0a458be6074369e/cffi-2.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:47ff3a8bfd8cb9da1af7524b965127095055654c177fcfc7578debcb015eecd0", size = 208801, upload-time = "2026-07-06T21:33:13.617Z" }, + { url = "https://files.pythonhosted.org/packages/6f/08/f2e7d62c460faae0926f2d6e423694aa409ced3bc1fe2927a0a6e5f05416/cffi-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:799416bae98336e400981ff6e532d67d5c709cfb30afb79865a1315f94b0e224", size = 221808, upload-time = "2026-07-06T21:33:15.466Z" }, + { url = "https://files.pythonhosted.org/packages/38/37/04f54b8e63a02f3d908332c9effbf8c366167c6f733ed8a3d4f79b7e2a1e/cffi-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:961be50688f7fba2fa65f63712d3b9b341a22311f5253460ce933f52f0de1c8c", size = 225241, upload-time = "2026-07-06T21:33:16.869Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d6/c72eecca433cd3e681c65ed313ab4835d9d4a379704d0f628a6a05f51c2e/cffi-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf5c6cf48238b0eb4c086978c492ad1cbc22373fc5b2d7353b3a598ce6db887a", size = 223588, upload-time = "2026-07-06T21:33:18.239Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4b/e706f67279140f92939da3475ad610df18bfd52d50f14953a8e5fede71d5/cffi-2.1.0-cp313-cp313-win32.whl", hash = "sha256:db3eb7d46527159a878ec3460e9d40615bc25ba337d477db681aea6e4f05c5d2", size = 175248, upload-time = "2026-07-06T21:33:19.799Z" }, + { url = "https://files.pythonhosted.org/packages/5a/47/59eb7975cb0e4ef0afa764ea945b29a5bb4537a9f771cb7d6c8a5dd74c95/cffi-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:8e74a6135550c4748af665b1b1118b6aab33b1fc6a16f9aff630af107c3b4512", size = 185717, upload-time = "2026-07-06T21:33:21.47Z" }, + { url = "https://files.pythonhosted.org/packages/5a/af/34fee85c48f8d94efc8597bc09470c9dd274c145f1c12e0fbc6ab6d38d74/cffi-2.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:2282cd5e38aa8accd03e99d1256af8411c84cdbee6a89d841b563fdbd1f3e50f", size = 180114, upload-time = "2026-07-06T21:33:22.515Z" }, + { url = "https://files.pythonhosted.org/packages/d8/f0/81478e482afa03f6d18dc8f2afb5edc45b3080853b634b5ed91961be0998/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d2117334c3af3bdcb9a88522b844a2bdb5efdc4f71c6c822df55486ae1c3347a", size = 194142, upload-time = "2026-07-06T21:33:23.657Z" }, + { url = "https://files.pythonhosted.org/packages/7d/95/8de304305cd9204974b0ca051b86d307cafca13aa575a0ef1b44d92c0d8c/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:702c436735fbe99d59ada02a1f65cfc0d31c0ee8b7290912f8fbc5cd1e4b16c3", size = 196819, upload-time = "2026-07-06T21:33:25.007Z" }, + { url = "https://files.pythonhosted.org/packages/20/71/7c8372d30e42415602ed9f268f7cfd66f1b855fed881ecd168bcb45dbc0b/cffi-2.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1ff3456eab0d889592d1936d6125bbfbc7ae4d3354a700f8bd80450a66445d4d", size = 184965, upload-time = "2026-07-06T21:33:26.605Z" }, + { url = "https://files.pythonhosted.org/packages/d6/5c/584e626835f0375c928176c04137c96927165cb8733cdb3150ec04e5ee5e/cffi-2.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c4165821e131d6d4ca444347c2b694e2311bcfa3fe5a861cc72968f28867beac", size = 184952, upload-time = "2026-07-06T21:33:27.823Z" }, + { url = "https://files.pythonhosted.org/packages/2e/d2/065fcae1c73979fac8e054462478d0ff8a29c40cdc2ed7ea5676a061df53/cffi-2.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:276f20fffd7b396e12516ba8edf9509210ac248cbbc5acbc39cd512f9f59ebe6", size = 222353, upload-time = "2026-07-06T21:33:29.178Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a5/e8bbb1ce5b3ac2f53ad6a10bde44318a5a8d99d4f4a000d44a6e39aeb3e4/cffi-2.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7d5980a3433d4b71a5e120f9dd551403d7824e31e2e67124fe2769c404c06913", size = 210051, upload-time = "2026-07-06T21:33:30.534Z" }, + { url = "https://files.pythonhosted.org/packages/28/ed/c127d3ac36e899c965e3361357c3befacd6578c03f40125183e41c3b219e/cffi-2.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6ca4919c6e4f89aa99c42510b42cf54596892c00b3f9077f6bdd1505e24b9c8d", size = 208630, upload-time = "2026-07-06T21:33:31.753Z" }, + { url = "https://files.pythonhosted.org/packages/cc/d7/97d3136f81db489ec8d1d67748c110d6c994268fd7528014aa9f2b085e4e/cffi-2.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d53d10f7da99ae46f7373b9150393e9c5eab9b224909982b43832668de4779f5", size = 221593, upload-time = "2026-07-06T21:33:33.044Z" }, + { url = "https://files.pythonhosted.org/packages/d3/27/93195977168ee63aed233a1a0993a2178798654d1f4bddcdd321d6fd3b21/cffi-2.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c351efb95e832a853a29361675f33a7ce53de1a109cd73fd47af0712213aa4ce", size = 225146, upload-time = "2026-07-06T21:33:34.224Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c1/6dbd291ee2ae5a50a034aa057207081f545923bbf15dad4511e985aafff5/cffi-2.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf7c7a88e2bac086f06d14577332760bdeecc42bdec8ac4077f6260557d9326", size = 223240, upload-time = "2026-07-06T21:33:35.57Z" }, + { url = "https://files.pythonhosted.org/packages/0f/6f/ade5ce9863a57992a6ea3d0d10d7e29b8749fc127204b3d493d667b2815f/cffi-2.1.0-cp314-cp314-win32.whl", hash = "sha256:1854b724d00f6654c742097d5387569021be12d3a0f770eae1df8f8acfcc6acd", size = 177723, upload-time = "2026-07-06T21:33:51.626Z" }, + { url = "https://files.pythonhosted.org/packages/41/de/92b9eeed4ae4a21d6fd9b2a2c8505cbed573299902ea73981cc13f7ff62c/cffi-2.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:1b96bfe2c4bd825681b7d311ad6d9b7280a091f43e8f63da5729638083cd3bfb", size = 187937, upload-time = "2026-07-06T21:33:53.403Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1a/cc6ae6c2913a03aab8898eee57963cf1035b8df5872ed8b9115fcc7e2be8/cffi-2.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:7d28dff1db6764108bc30788d85d61c876beff416d9a49cb9dd7c5a9f34f5804", size = 183001, upload-time = "2026-07-06T21:33:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/14/f0/134c00ce0779ec86dea2aa1aac69339c2741a8045072676763512363a2ea/cffi-2.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7ea6b3e2c4250ff1de21c630fe72d0f63eb95c2c32ffbf64a358cf4a8836d714", size = 188538, upload-time = "2026-07-06T21:33:36.792Z" }, + { url = "https://files.pythonhosted.org/packages/50/d8/3b86aba791cb610d24e8a3e1b2cd529e71fa15096b04e4d4e360049d4a4c/cffi-2.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6af371f3767faeffc6ac1ef57cdfd25844403e9d3f476c5537caee499de96376", size = 188230, upload-time = "2026-07-06T21:33:38.011Z" }, + { url = "https://files.pythonhosted.org/packages/14/d0/117dcd9209255ad8571fbc8c92ef32593a1d294dcec91ddc4e4db50606f2/cffi-2.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb4e8997a49aa2c08a3e43c9045d224448b8941d88e7ac163c7d383e560cbf98", size = 223899, upload-time = "2026-07-06T21:33:39.514Z" }, + { url = "https://files.pythonhosted.org/packages/b6/3d/f20f8b886b254e3ad10e15cd4186d3aed49f3e6a35ab37aab9f8f25f7c03/cffi-2.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:bf01d8c84cbea96b944c73b22182e6c7c432b3475632b8111dbfdc95ddad6e13", size = 211652, upload-time = "2026-07-06T21:33:40.851Z" }, + { url = "https://files.pythonhosted.org/packages/28/3b/fad54de07260b93ddeef4b96d0131d57ea900675df1d410ae1deee52d7a6/cffi-2.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:33eb1ad83ebe8f313e0df035c406227d55a79456704a863fad9842136af5ad7d", size = 210755, upload-time = "2026-07-06T21:33:42.183Z" }, + { url = "https://files.pythonhosted.org/packages/cc/82/3d5c705acb7abbba9bbd7d79b8e62e0f25b6120eb7ae6ac49f1b721722fe/cffi-2.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ac0f1a2d0cfa7eea3f2aaf006ab6e70e8feeb16b75d65b7e5939982ca2f11056", size = 223933, upload-time = "2026-07-06T21:33:43.603Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d0/47e338384ab6b1004241002fa616301020cea4fc95f283506565d252f276/cffi-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c16914df9fb7f500e440e6875fa23ff5e0b31db01fa9c06af98d59a91f0dc2e4", size = 226749, upload-time = "2026-07-06T21:33:45.046Z" }, + { url = "https://files.pythonhosted.org/packages/70/25/65bd5b58ea4bfdfc15cde02cb5365f89ef8ab8b2adfb8fe5c4bd4233382f/cffi-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5ecbd0499275d57506d397eebe1981cee87b47fcd9ef5c22cab7ed7644a39a94", size = 225703, upload-time = "2026-07-06T21:33:46.374Z" }, + { url = "https://files.pythonhosted.org/packages/dc/78/aa01ac599a8a4322533d45a1f9bc93b338276d2d59dabbe7c6d92a775c81/cffi-2.1.0-cp314-cp314t-win32.whl", hash = "sha256:7d034dcffa09e9a46c93fa3a3be402096cb5354ac6e41ab8e5cc9cd8b642ad76", size = 182857, upload-time = "2026-07-06T21:33:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/b9/26/d00496b22de4d4228f32dde94ad996f350c8aad676d63bcca0743c8dea4d/cffi-2.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0582a58f3051372229ca8e7f5f589f9e5632678208d8636fea3676711fdf7fe5", size = 194065, upload-time = "2026-07-06T21:33:48.953Z" }, + { url = "https://files.pythonhosted.org/packages/d5/dd/0c7dbf815a579ff005008a2d815a55d6bb047c349eef536d9dc53d3f0a8d/cffi-2.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:510aeeeac94811b138077451da1fb18b308a5feab47dd2b603af55804155e1c8", size = 186404, upload-time = "2026-07-06T21:33:50.309Z" }, + { url = "https://files.pythonhosted.org/packages/55/c7/8c8c50cb11c6750051daf12164098a9a6f027ac4356967fd4d800a07f242/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:2e9dabb9abcb7ad15938c7196ad5c1718a4e6d33cc79b4c0209bdb64c4a54a5c", size = 194121, upload-time = "2026-07-06T21:33:56.109Z" }, + { url = "https://files.pythonhosted.org/packages/99/e2/67680bf19a6b60d2bb7ff83baefa2a4c3d2d7dc0f3277034b802e1fc504c/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:37f525a7e7e50c017fdebe58b787be310ad59357ae43a053943a6e1a6c526001", size = 196820, upload-time = "2026-07-06T21:33:57.288Z" }, + { url = "https://files.pythonhosted.org/packages/ed/da/4bbe583a3b3a5c8c60892124fe17f3fa3656523faf0d3484eae90f091853/cffi-2.1.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:95f2954c2c9473d892eca6e0409f3568b37ab62a8eedb122461f73cc273476e3", size = 184936, upload-time = "2026-07-06T21:33:58.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/4b/1f4c36ab273980d7aa75bb126ea4f8971f24a96108acad3a0a084028c57b/cffi-2.1.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:cdf2448aab5f661c9315308ec8b93f4e8a1a67a3c733f8631067a2b67d5913dc", size = 185045, upload-time = "2026-07-06T21:34:00.085Z" }, + { url = "https://files.pythonhosted.org/packages/ef/c3/ad299dc38f3583f8d916b299f028af418a9ec98bc695fcbebeae7420691c/cffi-2.1.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90bec57cf82089383bd06a605b3eb8daebf7e5a668520beaf6e327a83a947699", size = 222342, upload-time = "2026-07-06T21:34:01.814Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d8/df4543cc087245044ed02ef3ad8e0a26619d0075ac7a77a12dc81177851b/cffi-2.1.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6274dcb2d15cef48daa73ed1be5a40d501d74dccd0cd6db364776d12cb6ba022", size = 210073, upload-time = "2026-07-06T21:34:03.255Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/fac738d73728c6cea2a88a2883dca54892496cbba88a1dc1f2909cb8a6f5/cffi-2.1.0-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b71d409cccee78310ab5dec549aed052aaea483346e282c7b02362596e01bb0", size = 208551, upload-time = "2026-07-06T21:34:04.433Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3f/0b04a700dd64f465c93020253a793a82c9b4dff9961f48facd0df945d9b8/cffi-2.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d3538f9c0e50670f4deb93dbb696576e60590369cae2faf7de681e597a8a1f1", size = 221649, upload-time = "2026-07-06T21:34:06.157Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/b7379a5704c79eda57ce075869ba70a0368d1c850f803b3c0d078d39dcaf/cffi-2.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:8f9ec95b8a043d3dfbc74d9abc6f7baf524dd27a8dc160b0a32ff9cdab650c28", size = 225203, upload-time = "2026-07-06T21:34:07.489Z" }, + { url = "https://files.pythonhosted.org/packages/5a/02/d5e6c43ea85c41bda2a184a3418f195fe7cf602967a8d2b94e085b83deef/cffi-2.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:af5e2915d41fe6c961694d7bfdc8562942638200f3ce2765dfb8b745cf997629", size = 223263, upload-time = "2026-07-06T21:34:08.712Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d8/772b8259bf75749adffb1c546828978381fb516f60cf701f6c83daf60c85/cffi-2.1.0-cp315-cp315-win32.whl", hash = "sha256:0a42c688d19fca6e095a53c6a6e2295a5b050a8b289f109adab02a9e61a25de6", size = 177696, upload-time = "2026-07-06T21:34:26.355Z" }, + { url = "https://files.pythonhosted.org/packages/2f/dd/afa2191fc6d57fedd26e5844a2fe2fcc0bbfa00961bbaa5a41e4921e7cca/cffi-2.1.0-cp315-cp315-win_amd64.whl", hash = "sha256:bccbbb5ee76a61f9d99b5bf3846a51d7fca4b6a732fe46f89295610edaf41853", size = 187914, upload-time = "2026-07-06T21:34:27.58Z" }, + { url = "https://files.pythonhosted.org/packages/05/ef/6cd4f8c671517162379dc79cfae5aea9106bc38abb89628d5c16adf6a838/cffi-2.1.0-cp315-cp315-win_arm64.whl", hash = "sha256:8d35c139744adb3e727cd51b1a18324bbe44b8bd41bf8322bca4d41289f48eda", size = 183004, upload-time = "2026-07-06T21:34:28.905Z" }, + { url = "https://files.pythonhosted.org/packages/11/b6/12fc55092817a5faa26fb8c40c7f9d662e11a46ee248c137aafc42517d92/cffi-2.1.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:f9912624a0c0b834b7520d7769b3644453aabc0a7e1c839da7359f050750e9bc", size = 188378, upload-time = "2026-07-06T21:34:09.926Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2e/cdac88979f295fde5daa69622c7d2111e56e7ceb94f211357fbe452339e4/cffi-2.1.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:df92f2aba50eb4d96718b68ef76f2e57a57b54f2fa62333496d16c6d585a85ca", size = 188319, upload-time = "2026-07-06T21:34:11.101Z" }, + { url = "https://files.pythonhosted.org/packages/e0/27/1d0b408497e41a74795af122d7b603c418c5fed0171450f899afd04e594f/cffi-2.1.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0520e1f4c35f44e209cbbb421b67eec42e6a157f59444dfb6058874ff3610e5d", size = 223904, upload-time = "2026-07-06T21:34:12.606Z" }, + { url = "https://files.pythonhosted.org/packages/8b/31/e115c985105dd7ffb32444505f18ceb874bb42d992af05d5dced7ecf1980/cffi-2.1.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3681e031db29958a7502f5c0c9d6bbc4c36cb20f7b104086fa642d1799631ff8", size = 211554, upload-time = "2026-07-06T21:34:13.987Z" }, + { url = "https://files.pythonhosted.org/packages/5a/67/9e6e09409336d9e515c58367e7cfcf4f89df06ad25252675595a58eb59d5/cffi-2.1.0-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:762f99479dcb369f60ab9017ad4ab97a36a1dd7c1ee5a3b15db0f4b8659120cd", size = 210795, upload-time = "2026-07-06T21:34:15.972Z" }, + { url = "https://files.pythonhosted.org/packages/19/e5/d3cc82a4a0be7902af279c04181ad038449c096734464a5ae1de3e1401bd/cffi-2.1.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0611e7ebf90573a535ebdc33ae9da222d037853983e13359f580fab781ca017f", size = 223843, upload-time = "2026-07-06T21:34:17.509Z" }, + { url = "https://files.pythonhosted.org/packages/b9/65/b434abc97ce7cecc2c640fde160507c0ecc7e21544b483ba3325d2e2ea17/cffi-2.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:86cf8755a791f72c85dc287128cc62d4f24d392e3f1e15837245623f4a33cccc", size = 226773, upload-time = "2026-07-06T21:34:19.05Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9f/d4dc66ca651eb1145a133314cda721abf13cfac3d28c4a0402263ae6ad75/cffi-2.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:ba00f661f8ba35d075c937174e27c2c421cec3942fd2e0ea3e66996757c0fdd9", size = 225719, upload-time = "2026-07-06T21:34:20.576Z" }, + { url = "https://files.pythonhosted.org/packages/68/5a/e536c528bc8057496c360c0978559a2dc45653f89dd6151078aa7d8fca1a/cffi-2.1.0-cp315-cp315t-win32.whl", hash = "sha256:cb96698e3c7413d906ce83f8ffd245ec1bd94707541f299d0ce4d6b0193e982b", size = 182760, upload-time = "2026-07-06T21:34:22.059Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0b/0ffe8b82d3875bced5fa1e7986a7a46b748262a40ab7f60b475eb9fb1bb3/cffi-2.1.0-cp315-cp315t-win_amd64.whl", hash = "sha256:f146d154428a2523f9cc7936c02353c2459b8f6cf07d3cd1ee1c0a611109c5d5", size = 193769, upload-time = "2026-07-06T21:34:23.589Z" }, + { url = "https://files.pythonhosted.org/packages/a0/17/1073b53b68c9b5ca6914adf5f8bf55aacc2d3be102418c90700160ea8605/cffi-2.1.0-cp315-cp315t-win_arm64.whl", hash = "sha256:cbb7640ce37159548d2147b5b8c241f962143d4c71231431820783f4dc78f210", size = 186405, upload-time = "2026-07-06T21:34:24.857Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/2a/23f34ec9d04624958e137efdc394888716353190e75f25dd22c7a2c7a8aa/charset_normalizer-3.4.9.tar.gz", hash = "sha256:673611bbd43f0810bec0b0f028ddeaaa501190339cac411f347ac76917c3ae7b", size = 152439, upload-time = "2026-07-07T14:34:58.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/81/8e983840c6e5b93b33c2ba81aa3d52c2e42f0e9a690ce7607a2e61da4a5c/charset_normalizer-3.4.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd6280cf040f233bd7d3407b743b4b4c74f70e8e1c4199cb112a62c941c0772a", size = 322240, upload-time = "2026-07-07T14:32:36.236Z" }, + { url = "https://files.pythonhosted.org/packages/de/d1/b4319dc3229d8272fba305e206fc0a148e2de8d4087917ce62ae6382f359/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa99adc8f081b475a12843953db36831eaf83ec33eb46a90629ca6a5de45a616", size = 216475, upload-time = "2026-07-07T14:32:38.142Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/6c99c1b3e6b8bf730e1bc809b9a2608f224145069114c479a2e9e1494346/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c1225416b463483160e4af85d5fc3a9690ccb53fd4b1865a6437825f5ede3209", size = 238670, upload-time = "2026-07-07T14:32:39.658Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f4/ffbb83546e1f198ecc70ecd372b65cf2b50f9068b380abd67640f17a8e18/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:16d10d789dd9bcca1173c95af82c58433122564b7bc39385124be735a35cbe99", size = 233476, upload-time = "2026-07-07T14:32:41.155Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5f/b98b8da398637b551e427e7be922bdec19177dc54d6811dcdaa503f23aac/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bb41182d93ea91f60b4bc8fbf4c820c69ef8a12ab2d917f3f1834f1acad07e8", size = 223817, upload-time = "2026-07-07T14:32:42.592Z" }, + { url = "https://files.pythonhosted.org/packages/36/31/a276bb2e66243072a3fd06fdcab9cbb61a305b02143d70d2bda21d888fa8/charset_normalizer-3.4.9-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:bcf74c1df76758a395bf0af608c04c82257523f55c9868b334f06270d0f2112b", size = 207974, upload-time = "2026-07-07T14:32:44.258Z" }, + { url = "https://files.pythonhosted.org/packages/5e/be/7ee4453d7e88dfbc4104ccd34900b9f2c7c17dac22881865fe0e82424a25/charset_normalizer-3.4.9-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b5314963fce9b0b12743891de876e724997864ee22aa496f903f426c7e2fa5b2", size = 221655, upload-time = "2026-07-07T14:32:45.64Z" }, + { url = "https://files.pythonhosted.org/packages/1d/85/181c652953eb5276d198f375b1dd641047392050098100a3a02d6534f657/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e9701d0049d92c16703a42771b98d560b95248949f23f8cf7b4eddd201814fb9", size = 219229, upload-time = "2026-07-07T14:32:47.376Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e7/aaf6da33fc9f4691cda8f7efbc9f69179d3d39ec8a4799baf273ee1d8db0/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:65a7ff3f705e57d392f7261b6d0550fe137c3019477431f1c355e0db0a7d3e15", size = 209704, upload-time = "2026-07-07T14:32:48.855Z" }, + { url = "https://files.pythonhosted.org/packages/63/01/f2fb3bd3a73be48b173ee0c6aa8d2497af97d5663a8c4c4b491de4c62f7a/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79580094b00d1789d1f93ea55bc43cb2f611910c72235b7657f3482ddcc1b22d", size = 226243, upload-time = "2026-07-07T14:32:50.239Z" }, + { url = "https://files.pythonhosted.org/packages/c4/02/c57a22739fe05246b0b5783b3bfb6afaac4eebb46f3ececdfb2f048f780e/charset_normalizer-3.4.9-cp310-cp310-win32.whl", hash = "sha256:432786d3561e69aeeae6c7e8648964ce0ad05736120135601f87ac26b9c83381", size = 150935, upload-time = "2026-07-07T14:32:51.676Z" }, + { url = "https://files.pythonhosted.org/packages/37/8d/ca39a7559a4797505530d084fd3a49a2c959efbbbff146302fb7be4e3b35/charset_normalizer-3.4.9-cp310-cp310-win_amd64.whl", hash = "sha256:8c041122946b7ba21bb32c45b1aa57b1be35527690aeb3c5c234521085632eee", size = 162314, upload-time = "2026-07-07T14:32:53.193Z" }, + { url = "https://files.pythonhosted.org/packages/01/da/a44bd7a13d426e69e4894557106cd58669097bfad4a8681123b618fbfc5d/charset_normalizer-3.4.9-cp310-cp310-win_arm64.whl", hash = "sha256:375b83ed0aecfce76c16d198fbc21f3b11b337d68662bea0a995046682a11419", size = 153075, upload-time = "2026-07-07T14:32:54.554Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e3/85ec501f206fb049259288c1f3506e53876937fb00edb47009348e66756b/charset_normalizer-3.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e94703ec9684807f20cfb5eed95c70f67f2a8f21ad620146d7b5a13677b93e5", size = 317075, upload-time = "2026-07-07T14:32:56.021Z" }, + { url = "https://files.pythonhosted.org/packages/c3/69/2a5385192e67175f7d8bd5ce4f57c24bc956439adeae5c13a99aa28a53d1/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a441ea71902098ffe78c5abe6c494f44160b4af614ed16c3d9a3b1d17fd8ee2", size = 213837, upload-time = "2026-07-07T14:32:57.78Z" }, + { url = "https://files.pythonhosted.org/packages/b3/46/03ddc7da576d814fe0a36dd1f0fd3258e95404b4b2e3c026b7923d7e133f/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:304b13570067b2547562e308af560b3963857b1fa90bd6afd978130130fe2d6a", size = 235503, upload-time = "2026-07-07T14:32:59.205Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6e/de0229a7ef40f6f9d28a837eebf4ec47bdca5dab4e900c84f22919af636a/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4773092f8019072343a7447203308b176e10199920eb02d6195e81bbb3274c29", size = 229944, upload-time = "2026-07-07T14:33:00.803Z" }, + { url = "https://files.pythonhosted.org/packages/a5/34/49b9060e8418b14fb5cba9cf6bfb383111e2538a03a1fb18e66a95aeb3d5/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04ce310cb89c15df659582aee80a0603788732a5e017d5bd5c81158106ce249c", size = 221276, upload-time = "2026-07-07T14:33:02.199Z" }, + { url = "https://files.pythonhosted.org/packages/44/95/80282cce0fae9c3061203d723ee87da996aed79679e65d8935050ee7ca1f/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:c0323c9daef75ef2e5083624b4585018a0c9d5e3b40f607eed81a311270b934b", size = 205260, upload-time = "2026-07-07T14:33:03.698Z" }, + { url = "https://files.pythonhosted.org/packages/0c/74/2f62c8821b969ea3bd67cc2e6976834f48ca5d12664d2559ebcd9bcfbed7/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:871ff67ea1aad4dfd91736464934d56b32dac49f9fbe16cddba36198a7b3a0db", size = 217786, upload-time = "2026-07-07T14:33:05.12Z" }, + { url = "https://files.pythonhosted.org/packages/d9/8d/feabb82cb49fcad14515b1d7d1ca4787b0da7fc723a212bf89bc9e0fac52/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:67830fc78e67501f47bb950471b2dcb9b35b140084429318e862895a8e89c993", size = 216798, upload-time = "2026-07-07T14:33:06.629Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ff/c946d63bc3786d5b84d960b0f7ab7e25b828486a946b5aa997625bcaf6a6/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3d92613ec25e43b05f042302531ec0f00b8445190e43325880cbd6ab7c2581da", size = 206429, upload-time = "2026-07-07T14:33:08.006Z" }, + { url = "https://files.pythonhosted.org/packages/af/ba/5e5007c370702f85d2ef75791fac7943ed41e080364a673b20142e430e3e/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:280081916dc341820640489a66e4696049401ef1cf6dd672f672e70ad915aca3", size = 223066, upload-time = "2026-07-07T14:33:09.783Z" }, + { url = "https://files.pythonhosted.org/packages/83/d5/9096aa3cf532dfad237861544eb47a0f20d5adbf1039760fed8eaae935d9/charset_normalizer-3.4.9-cp311-cp311-win32.whl", hash = "sha256:ac351b3b8014eead140e77e9717e2992c6bbe30b63bc3422422eb84865412e3d", size = 150456, upload-time = "2026-07-07T14:33:11.217Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a1/e29995109e455dc8eff8d0fac6ae509be39561318a7cfeac5d33ad029213/charset_normalizer-3.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:6366a16e1a25018694d6a5d784d09b046edc9eac40ea2b54065c3052672516a1", size = 161410, upload-time = "2026-07-07T14:33:12.743Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8d/1569f4d0032d6ba2a4fe4591c35bf87868c600c41a71eb5c2e1ffa8464c2/charset_normalizer-3.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:1d22856ffbe153a602df38e4a5464f0b748a54002e0d69ac6d2ad0a197cc99ec", size = 152649, upload-time = "2026-07-07T14:33:14.173Z" }, + { url = "https://files.pythonhosted.org/packages/70/4a/ecbd131485c07fcdfad54e28946d513e3da22ef3b4bd854dcafae54ec739/charset_normalizer-3.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:45b0cc4e3556cd875e09102988d1ab8356c998b596c9fced84547c8138b487a0", size = 319300, upload-time = "2026-07-07T14:33:15.666Z" }, + { url = "https://files.pythonhosted.org/packages/ec/96/5d9364e3342d69f3a045e1777bc47c85c383e6e9466d561b33fdb419d1f9/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b2aff1c7b3884512b9512c3eaadd9bab39fb45042ffaaa1dd08ff2b9f8109d9", size = 215802, upload-time = "2026-07-07T14:33:17.031Z" }, + { url = "https://files.pythonhosted.org/packages/4b/4c/5361f9aa7f2cb58d94f2ab831b3d493f69efb1d239654b4744e3c09527cb/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9104ed0bd76a429d46f9ec0dbc9b08ad1d2dcdf2b00a5a0daa1c145329b35b44", size = 237171, upload-time = "2026-07-07T14:33:18.576Z" }, + { url = "https://files.pythonhosted.org/packages/50/78/ce342ca4ff30b2eb49fe6d9578df85974f90c67d294113e94efdd9664cbd/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7b86a2b16095d250c6f58b3d9b2eee6f4147754344f3dab0922f7c9bf7d226c9", size = 233075, upload-time = "2026-07-07T14:33:20.084Z" }, + { url = "https://files.pythonhosted.org/packages/01/c4/4fa4c8b3097a11f3c5f09a35b72ed6855fb1d332469504962ab7bafcc702/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e226f6218febc71f6c1fc2fafb91c226f75bdc1d8fb12d66823716e891608fd", size = 224256, upload-time = "2026-07-07T14:33:21.747Z" }, + { url = "https://files.pythonhosted.org/packages/87/3a/ad914516df7e358a81aae018caa5e0470ba827fa6d763b1d2e87d920a5f6/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:90c44bc373b7687f6948b693cceaea1348ae0975d7474746559494468e3c1d84", size = 208784, upload-time = "2026-07-07T14:33:23.313Z" }, + { url = "https://files.pythonhosted.org/packages/d7/74/3c12f9755717dfe5c5c87da63f35d765fa0c00382ec26bf23f7fae34f2ba/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cdef90ae47919cae358d8ab15797a800ed41da7aba5d72419fb510729e2ed4b", size = 219928, upload-time = "2026-07-07T14:33:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/33/9a/895095b83e7907abd6d3d99aad3a38ad0d9686cc186cb0c94c24320fe63e/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:60f44ade2cf573dad7a277e6f8ca9a51a21dda572b13bd7d8539bb3cd5dbedde", size = 218489, upload-time = "2026-07-07T14:33:26.42Z" }, + { url = "https://files.pythonhosted.org/packages/a1/34/ef5c05f412f42520d7709b7d3784d19640839eb7366ded1755511585429f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a1786910334ed46ab1dd73222f2cd1e05c2c3bb39f6dddb4f8b36fc382058a39", size = 210267, upload-time = "2026-07-07T14:33:27.952Z" }, + { url = "https://files.pythonhosted.org/packages/83/dc/9b29fa4412b318bf3bfea985c35d67eb55e04b59a7c3f2237168b0e0be6f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03d07803992c6c7bbc976327f34b18b6160327fc81cb82c9d504720ac0be3b62", size = 226030, upload-time = "2026-07-07T14:33:29.397Z" }, + { url = "https://files.pythonhosted.org/packages/0e/42/6dbc00b8cd16011691203e33570fa42ed5746599a2e878112d16eab403a3/charset_normalizer-3.4.9-cp312-cp312-win32.whl", hash = "sha256:78841cccf1af7b40f6f716338d50c0902dbe88d9f800b3c973b7a9a0a693a642", size = 151185, upload-time = "2026-07-07T14:33:30.781Z" }, + { url = "https://files.pythonhosted.org/packages/80/cc/f920afd1a23c58ccd53c1d36085a71893a4737ff5e66e0371efab6809850/charset_normalizer-3.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:4b3dac63058cc36820b0dd072f89898604e2d39686fe05321729d00d8ac185a0", size = 162557, upload-time = "2026-07-07T14:33:32.176Z" }, + { url = "https://files.pythonhosted.org/packages/f0/e6/0386d43a261ff4e4b30c5857af7df877254b46bec7b9d1b74b6bf969a90b/charset_normalizer-3.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:78fa18e436a1a0e58dbd7e02fc4473f3f32cceb12df9dfca542d075961c307d2", size = 152665, upload-time = "2026-07-07T14:33:33.711Z" }, + { url = "https://files.pythonhosted.org/packages/b2/06/97ec2aeae780b31d742b6352218b43841a6871e2564578ca522dce4a45c3/charset_normalizer-3.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:440eede837960000d74978f0eba527be106b5b9aee0daf779d395276ed0b0614", size = 317688, upload-time = "2026-07-07T14:33:35.408Z" }, + { url = "https://files.pythonhosted.org/packages/d0/39/8ff066c672434225f8d25f8b739f992af250944392173dcc88362681c9bf/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21e764fd1e70b6a3e205a0e46f3051701f98a8cb3fad66eeb80e48bb502f8698", size = 214982, upload-time = "2026-07-07T14:33:36.996Z" }, + { url = "https://files.pythonhosted.org/packages/92/8f/3a47a3667c83c2df9483d91644c6c107de3bf8874aa1793da9d3012eb986/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e4fd89cc178bced6ad29cb3e6dd4aa63fa5017c3524dbd0b25998fb64a87cc8b", size = 236460, upload-time = "2026-07-07T14:33:38.536Z" }, + { url = "https://files.pythonhosted.org/packages/f1/60/b22cdbee7e4013dab8b0d7647fc6181120fbbbc8f7025c226d15bd5a47fc/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bd47ba7fc3ca94896759ea0109775132d3e7ab921fbf54038e1bab2e46c313c9", size = 232003, upload-time = "2026-07-07T14:33:40.059Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f8/72eb13dcabe7257035cea8aefd922caad2f110d252bf9f67c4c2ca763aee/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:84fd18bcc17526fc2b3c1af7d2b9217d32c9c04448c16ec693b9b4f1985c3d33", size = 223149, upload-time = "2026-07-07T14:33:41.631Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3e/faee8f9de92b14ee1198e9163252bb15efee7301b31256a3b6d9ebfdd0dd/charset_normalizer-3.4.9-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:5b10cd92fc5c498b35a8635df6d5a100207f88b63a4dc1de7ef9a548e1e2cd63", size = 207901, upload-time = "2026-07-07T14:33:43.209Z" }, + { url = "https://files.pythonhosted.org/packages/3a/25/45f30093ae27dd7b92a793b61882a38685f993700113ca36e0c9c14965e1/charset_normalizer-3.4.9-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a4fbdde9dd4a9ce5fd52c2b3a347bb50cc89483ef783f1cb00d408c13f7a96c0", size = 219176, upload-time = "2026-07-07T14:33:44.725Z" }, + { url = "https://files.pythonhosted.org/packages/48/18/c8f397329c35e32f6a837e488986f4ae03bd2abebc453b48714991630c2f/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:416c229f77e5ea25b3dfd4b582f8d73d7e43c22320302b9ab128a2d3a0b38efe", size = 217356, upload-time = "2026-07-07T14:33:46.192Z" }, + { url = "https://files.pythonhosted.org/packages/86/7e/5ce0bba863470fd1902d5e5843968951bddf38abe4742fc97116ef4598b3/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:75286256590a6320cf106a0d28970d3560aad9ee09aa7b34fb40524792436d35", size = 209614, upload-time = "2026-07-07T14:33:47.705Z" }, + { url = "https://files.pythonhosted.org/packages/6c/ef/2473d3c4d869155be4af1191111d59c4d5c4e0173026f7e85b176e23bf65/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69b157c5d3292bcd443faca052f3096f637f1e074b98212a933c074ae23dc3b8", size = 224991, upload-time = "2026-07-07T14:33:49.238Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a3/53ddae3db108a088156aa8ddfafd411ebbc1340f48c5573f697b27f69a39/charset_normalizer-3.4.9-cp313-cp313-win32.whl", hash = "sha256:51307f5c71007673a2bf8232ad973483d281e74cb99c8c5a990af1eefa6277d9", size = 150622, upload-time = "2026-07-07T14:33:50.711Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ef/6953a77c7cf2c2ff9998e6f575ab3e380119f100223381565a4f94c1f836/charset_normalizer-3.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:fe2c7201c642b7c308f1675355ad7ff7b66acfe3541625efe5a3ad38f29d6115", size = 161947, upload-time = "2026-07-07T14:33:52.197Z" }, + { url = "https://files.pythonhosted.org/packages/6e/fb/d560d1d1555debbfe7849d9cac6145c1b537709d79576bf22557ed803b82/charset_normalizer-3.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:611057cc5d5c0afc743ba8be6bd828c17e0aaa8643f9d0a9b9bb7dea80eb8012", size = 152594, upload-time = "2026-07-07T14:33:53.486Z" }, + { url = "https://files.pythonhosted.org/packages/7e/8d/496817fa0944239ecae662dd57ea765cfeaec6a735f9f025d4b7b72e7143/charset_normalizer-3.4.9-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0327fcd59a935777d83410750c50600ee9571af2846f71ce40f25b13da1ef380", size = 317253, upload-time = "2026-07-07T14:33:54.994Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/ef4a69ea338ad3c0deceea0f5f7d2380ae8b52132b06d652cb0d2cd86706/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a79d9f4d8001473a30c163556b3c3bfebec837495a412dde78b51672f6134f9", size = 215898, upload-time = "2026-07-07T14:33:56.334Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e7/5ddfd76fc061eb52de219658a4aa431cbacadf0a0219c8854f00da50d289/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:33bdcc2a32c0a0e861f60841a512c8acc658c87c2ac59d89e3a46dacf7d866e4", size = 236718, upload-time = "2026-07-07T14:33:57.9Z" }, + { url = "https://files.pythonhosted.org/packages/49/ba/768fa3f36048d81c477a0ce61f813bc1454d80917ccfe550abd9f44f5e24/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f840ed6d8ecba8255df8c42b87fadeda98ddfc6eeec05e2dc66e26d46dd6f58a", size = 232519, upload-time = "2026-07-07T14:33:59.811Z" }, + { url = "https://files.pythonhosted.org/packages/f4/c4/b3e049d2aa3766180c78507110543d9d50894cc97f57de543f1be521dcdc/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c25fe15c70c59eb7c5ce8c06a1f3fa1da0ecc5ea1e7a5922c40fd2fa9b0d5046", size = 223143, upload-time = "2026-07-07T14:34:01.517Z" }, + { url = "https://files.pythonhosted.org/packages/19/79/55c32d06d76ae4feafe053f061f3e3ab70bcf19f4007797ce8c3efda7830/charset_normalizer-3.4.9-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:f7fb7d750cfa0a070d2c24e831fd3481019a60dd317ea2b39acbcebc08b6ed81", size = 206742, upload-time = "2026-07-07T14:34:03.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/e0/47c079dd82d217c807479cd59ffd30af56307ea31c108b75758970459ad3/charset_normalizer-3.4.9-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1c96a7a18b9690a4d46df09e3e3382406ae3213727cd1019ebade1c4a81917", size = 219191, upload-time = "2026-07-07T14:34:04.657Z" }, + { url = "https://files.pythonhosted.org/packages/42/ab/b9bc2e77d6b44a7e46ef62ec5cac1c9a6ba7b9135a5d560f002696ec9995/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a4cfde78a9f2880208d16a93b795726a3017d5977e08d1e162a7a31322479c41", size = 218328, upload-time = "2026-07-07T14:34:06.115Z" }, + { url = "https://files.pythonhosted.org/packages/f1/78/c9c71d599f5aa2d42bcdd35cbbd46d7f535351a57e40ff7d8e5a7e219401/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d4d6fcde76f94f5cb9e43e9e9a61f16dacefd228cbbf6f1a09bd9b219a92f1a1", size = 207406, upload-time = "2026-07-07T14:34:07.554Z" }, + { url = "https://files.pythonhosted.org/packages/f6/39/c914445c321a845097ce4f6ac7de9a18228a77b766272125a1ce00d851eb/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:898f0e9068ca27d37f8e83a5b962821df851532e6c4a7d615c1c033f9da6eedf", size = 225157, upload-time = "2026-07-07T14:34:09.061Z" }, + { url = "https://files.pythonhosted.org/packages/9b/f2/c0d4b8508565a36bc5c624e88ed297f5b0b1095011034d7f5b83a69908b5/charset_normalizer-3.4.9-cp314-cp314-win32.whl", hash = "sha256:c1c948747b03be832dceed96ca815cef7360de9aa19d37c730f8e3f6101aca48", size = 151095, upload-time = "2026-07-07T14:34:10.901Z" }, + { url = "https://files.pythonhosted.org/packages/49/fd/a1d26144398c67486422a72bf5812cda22cb4ccfcd95a290fb41ceb4b8e2/charset_normalizer-3.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:16b65ea0f2465b6fb52aa22de5eca612aa964ddfec00a912e26f4656cbef890b", size = 162796, upload-time = "2026-07-07T14:34:12.47Z" }, + { url = "https://files.pythonhosted.org/packages/20/95/d75e82f8ce9fd323ebf059c16c9aadefb22a1ecde13b7840b35835e4886c/charset_normalizer-3.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:40a126142a56b2dfc0aacbad1de8310cbf60da7656db0e6b16eebd48e3e93519", size = 153334, upload-time = "2026-07-07T14:34:14.044Z" }, + { url = "https://files.pythonhosted.org/packages/00/5e/17398df3a139985ba9d11ed072531986f408c8fca952835ef1ab1820c02b/charset_normalizer-3.4.9-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:609b3ba8fcc0fb5ab7af00719d0fb6ad0cb518e48e7712d12fd68f1327951198", size = 338848, upload-time = "2026-07-07T14:34:15.688Z" }, + { url = "https://files.pythonhosted.org/packages/cd/91/7253a32e86b7e1d1239b1b36ba6dd0f021a21107ab33054b53119cc083b9/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51447e9aa2684679af07ca5021c3db526e0284347ebf4ffcec1154c3350cfe32", size = 223022, upload-time = "2026-07-07T14:34:17.248Z" }, + { url = "https://files.pythonhosted.org/packages/cb/32/2e64bd2be10e89c61e57ebe6a93fd98ae88eb7ebe414b5121f22c96c69eb/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc1b0fff8ead343dae06305f954eb8468ba0ec1a97881f42489d198e4ce3c632", size = 241590, upload-time = "2026-07-07T14:34:18.813Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ef/d96ec496cfea0c21db43b0ad03891308b02388d054cc902cf0e5a1ad6a88/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fa36ec09ef71d158186bc79e359ff5fdd6e7996fe8ab638f00d6b93139ba4fcf", size = 239584, upload-time = "2026-07-07T14:34:20.52Z" }, + { url = "https://files.pythonhosted.org/packages/d4/ce/9af95f7876194bd7a14e3dfe4a4de2e0bff02666a3910d72beafd06cc297/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:df115d4d83168fdf2cae48ef1ff6d1cb4c466364e30861b37121de0f3bf1b990", size = 230224, upload-time = "2026-07-07T14:34:22.189Z" }, + { url = "https://files.pythonhosted.org/packages/52/94/af74dde74a3996bd959c350709bfe50e297823d70a8c1cbd54b838880863/charset_normalizer-3.4.9-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f86c6358749bd4fda175388691e3ba8c46e24c5347d0afd20f9b7edfc9faf07d", size = 212667, upload-time = "2026-07-07T14:34:23.857Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f0/f1c4fe746c395922961b5916ed1d7d6e7d4c84851d19ed43cc89980ec953/charset_normalizer-3.4.9-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:32286a2c8d167e897177b673176c1e3e00d4057caf5d2b64eef9a3666b03018e", size = 227179, upload-time = "2026-07-07T14:34:25.586Z" }, + { url = "https://files.pythonhosted.org/packages/e4/56/6c745619ac397e8871e2bcd3cea1eec86b877488f33888b3aef5c3ed506e/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:83aed2c10721ddd90f68140685391b50811a880af20654c59af6b6c66c40513c", size = 225372, upload-time = "2026-07-07T14:34:27.212Z" }, + { url = "https://files.pythonhosted.org/packages/78/ad/98aae8630ac71f16711968e38a5acfecce41b778bf2f0312851020f565a8/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cd6c3d4b783c556fa00bf540854e42f135e2f256abd29669fcd0da0f2dec79c2", size = 215222, upload-time = "2026-07-07T14:34:28.774Z" }, + { url = "https://files.pythonhosted.org/packages/f7/40/9593d54209765207a7f11073c06494c1721e4ca4a0a426c597679bf7f91e/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ee2f2a527e3c1a6e6411eb4209642e138b544a2d72fe5d0d76daf77b24063534", size = 231958, upload-time = "2026-07-07T14:34:30.345Z" }, + { url = "https://files.pythonhosted.org/packages/b1/27/693ee5e8a18191eb38647360c51cd505013e2bd3b366aa43fd5344c21e3c/charset_normalizer-3.4.9-cp314-cp314t-win32.whl", hash = "sha256:0d861473f743244d349b50f850d10eb87aeb22bbdcc8e64f79273c94af5a8226", size = 155580, upload-time = "2026-07-07T14:34:31.884Z" }, + { url = "https://files.pythonhosted.org/packages/80/3f/bd97d3d9c613013d07cb7733d299385b41df37f0471310f5a73dc359f0b8/charset_normalizer-3.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:9b8e0f3107e2200b76f6054de99016eac3ee6762713587b36baaa7e4bd2ae177", size = 167620, upload-time = "2026-07-07T14:34:33.438Z" }, + { url = "https://files.pythonhosted.org/packages/3d/c6/eee9dca4439b1061f76373f06ea855678cc4a64c1c3c90b50e479edbb8eb/charset_normalizer-3.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:19ac87f93086ce37b86e098888555c4b4bc48102279bae3350098c0ed664b501", size = 158037, upload-time = "2026-07-07T14:34:35.018Z" }, + { url = "https://files.pythonhosted.org/packages/98/2b/f97f1c193fb855c345d678f5077d6926034db0722df74c8f057020e05a25/charset_normalizer-3.4.9-py3-none-any.whl", hash = "sha256:68e5f26a1ad57ded6d1cfb85331d1c1a195314756471d97758c48498bb4dcdf5", size = 64538, upload-time = "2026-07-07T14:34:56.993Z" }, +] + +[[package]] +name = "cirq-core" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "attrs", marker = "python_full_version < '3.11'" }, + { name = "duet", marker = "python_full_version < '3.11'" }, + { name = "matplotlib", version = "3.10.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "pandas", marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sortedcontainers", marker = "python_full_version < '3.11'" }, + { name = "sympy", marker = "python_full_version < '3.11'" }, + { name = "tqdm", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/1e/ce461c2c75a029c47c10e0f2f95e0a694cedd4f2888b70b8e3fbcf806972/cirq_core-1.5.0-py3-none-any.whl", hash = "sha256:104a574c766011c979e897f0fb5e90eb69a2b58ec1dc389a73495e63124923d0", size = 1969788, upload-time = "2025-04-10T18:05:57.196Z" }, +] + +[package.optional-dependencies] +contrib = [ + { name = "opt-einsum", marker = "python_full_version < '3.11'" }, + { name = "ply", marker = "python_full_version < '3.11'" }, + { name = "pylatex", marker = "python_full_version < '3.11'" }, + { name = "quimb", version = "1.11.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] + +[[package]] +name = "cirq-core" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "attrs", marker = "python_full_version >= '3.11'" }, + { name = "duet", marker = "python_full_version >= '3.11'" }, + { name = "matplotlib", version = "3.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "pandas", marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "sympy", marker = "python_full_version >= '3.11'" }, + { name = "tqdm", marker = "python_full_version >= '3.11'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/28/fd3d6b68b4944f0f61a07e14f7ea0823aca50160a4662ab016863e24cb37/cirq_core-1.7.0-py3-none-any.whl", hash = "sha256:9d2e9610b06e2b2b2195184f44c0df4e94f31485831f8e1c6a96c858b7897bce", size = 2116400, upload-time = "2026-06-29T22:26:51.045Z" }, +] + +[package.optional-dependencies] +contrib = [ + { name = "opt-einsum", marker = "python_full_version >= '3.11'" }, + { name = "ply", marker = "python_full_version >= '3.11'" }, + { name = "pylatex", marker = "python_full_version >= '3.11'" }, + { name = "quimb", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] + +[[package]] +name = "clarabel" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, + { name = "numpy" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/e2/47f692161779dbd98876015de934943effb667a014e6f79a6d746b3e4c2a/clarabel-0.11.1.tar.gz", hash = "sha256:e7c41c47f0e59aeab99aefff9e58af4a8753ee5269bbeecbd5526fc6f41b9598", size = 253949, upload-time = "2025-06-11T16:49:05.864Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/f7/f82698b6d00a40a80c67e9a32b2628886aadfaf7f7b32daa12a463e44571/clarabel-0.11.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c39160e4222040f051f2a0598691c4f9126b4d17f5b9e7678f76c71d611e12d8", size = 1039511, upload-time = "2025-06-11T16:48:58.525Z" }, + { url = "https://files.pythonhosted.org/packages/b0/8f/13650cfe25762b51175c677330e6471d5d2c5851a6fbd6df77f0681bb34e/clarabel-0.11.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:8963687ee250d27310d139eea5a6816f9c3ae31f33691b56579ca4f0f0b64b63", size = 935135, upload-time = "2025-06-11T16:48:59.901Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9e/7af10d2b540b39f1a05d1ebba604fce933cc9bc0e65e88ec3b7a84976425/clarabel-0.11.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4837b9d0db01e98239f04b1e3526a6cf568529d3c19a8b3f591befdc467f9bb", size = 1079226, upload-time = "2025-06-11T16:49:00.987Z" }, + { url = "https://files.pythonhosted.org/packages/6b/a9/c76edf781ca3283186ff4b54a9a4fb51367fd04313a68e2b09f062407439/clarabel-0.11.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8c41aaa6f3f8c0f3bd9d86c3e568dcaee079562c075bd2ec9fb3a80287380ef", size = 1164345, upload-time = "2025-06-11T16:49:02.675Z" }, + { url = "https://files.pythonhosted.org/packages/41/e6/4eee3062088c221e5a18b054e51c69f616e0bb0dc1b0a1a5e0fe90dfa18e/clarabel-0.11.1-cp39-abi3-win_amd64.whl", hash = "sha256:557d5148a4377ae1980b65d00605ae870a8f34f95f0f6a41e04aa6d3edf67148", size = 887310, upload-time = "2025-06-11T16:49:04.277Z" }, +] + +[[package]] +name = "cloudpickle" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/51/913ecca3970a2227cf4d5e8937df52cc28f465ac442216110b8e3323262d/cloudpickle-2.2.1.tar.gz", hash = "sha256:d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5", size = 60800, upload-time = "2023-01-19T09:27:28.318Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/80/44286939ca215e88fa827b2aeb6fa3fd2b4a7af322485c7170d6f9fd96e0/cloudpickle-2.2.1-py3-none-any.whl", hash = "sha256:61f594d1f4c295fa5cd9014ceb3a1fc4a70b0de1164b94fbc2d854ccba056f9f", size = 25944, upload-time = "2023-01-19T09:27:26.341Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "numpy", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/a3/da4153ec8fe25d263aa48c1a4cbde7f49b59af86f0b6f7862788c60da737/contourpy-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ba38e3f9f330af820c4b27ceb4b9c7feee5fe0493ea53a8720f4792667465934", size = 268551, upload-time = "2025-04-15T17:34:46.581Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6c/330de89ae1087eb622bfca0177d32a7ece50c3ef07b28002de4757d9d875/contourpy-1.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc41ba0714aa2968d1f8674ec97504a8f7e334f48eeacebcaa6256213acb0989", size = 253399, upload-time = "2025-04-15T17:34:51.427Z" }, + { url = "https://files.pythonhosted.org/packages/c1/bd/20c6726b1b7f81a8bee5271bed5c165f0a8e1f572578a9d27e2ccb763cb2/contourpy-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9be002b31c558d1ddf1b9b415b162c603405414bacd6932d031c5b5a8b757f0d", size = 312061, upload-time = "2025-04-15T17:34:55.961Z" }, + { url = "https://files.pythonhosted.org/packages/22/fc/a9665c88f8a2473f823cf1ec601de9e5375050f1958cbb356cdf06ef1ab6/contourpy-1.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8d2e74acbcba3bfdb6d9d8384cdc4f9260cae86ed9beee8bd5f54fee49a430b9", size = 351956, upload-time = "2025-04-15T17:35:00.992Z" }, + { url = "https://files.pythonhosted.org/packages/25/eb/9f0a0238f305ad8fb7ef42481020d6e20cf15e46be99a1fcf939546a177e/contourpy-1.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e259bced5549ac64410162adc973c5e2fb77f04df4a439d00b478e57a0e65512", size = 320872, upload-time = "2025-04-15T17:35:06.177Z" }, + { url = "https://files.pythonhosted.org/packages/32/5c/1ee32d1c7956923202f00cf8d2a14a62ed7517bdc0ee1e55301227fc273c/contourpy-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad687a04bc802cbe8b9c399c07162a3c35e227e2daccf1668eb1f278cb698631", size = 325027, upload-time = "2025-04-15T17:35:11.244Z" }, + { url = "https://files.pythonhosted.org/packages/83/bf/9baed89785ba743ef329c2b07fd0611d12bfecbedbdd3eeecf929d8d3b52/contourpy-1.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cdd22595308f53ef2f891040ab2b93d79192513ffccbd7fe19be7aa773a5e09f", size = 1306641, upload-time = "2025-04-15T17:35:26.701Z" }, + { url = "https://files.pythonhosted.org/packages/d4/cc/74e5e83d1e35de2d28bd97033426b450bc4fd96e092a1f7a63dc7369b55d/contourpy-1.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b4f54d6a2defe9f257327b0f243612dd051cc43825587520b1bf74a31e2f6ef2", size = 1374075, upload-time = "2025-04-15T17:35:43.204Z" }, + { url = "https://files.pythonhosted.org/packages/0c/42/17f3b798fd5e033b46a16f8d9fcb39f1aba051307f5ebf441bad1ecf78f8/contourpy-1.3.2-cp310-cp310-win32.whl", hash = "sha256:f939a054192ddc596e031e50bb13b657ce318cf13d264f095ce9db7dc6ae81c0", size = 177534, upload-time = "2025-04-15T17:35:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/54/ec/5162b8582f2c994721018d0c9ece9dc6ff769d298a8ac6b6a652c307e7df/contourpy-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c440093bbc8fc21c637c03bafcbef95ccd963bc6e0514ad887932c18ca2a759a", size = 221188, upload-time = "2025-04-15T17:35:50.064Z" }, + { url = "https://files.pythonhosted.org/packages/b3/b9/ede788a0b56fc5b071639d06c33cb893f68b1178938f3425debebe2dab78/contourpy-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a37a2fb93d4df3fc4c0e363ea4d16f83195fc09c891bc8ce072b9d084853445", size = 269636, upload-time = "2025-04-15T17:35:54.473Z" }, + { url = "https://files.pythonhosted.org/packages/e6/75/3469f011d64b8bbfa04f709bfc23e1dd71be54d05b1b083be9f5b22750d1/contourpy-1.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b7cd50c38f500bbcc9b6a46643a40e0913673f869315d8e70de0438817cb7773", size = 254636, upload-time = "2025-04-15T17:35:58.283Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2f/95adb8dae08ce0ebca4fd8e7ad653159565d9739128b2d5977806656fcd2/contourpy-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6658ccc7251a4433eebd89ed2672c2ed96fba367fd25ca9512aa92a4b46c4f1", size = 313053, upload-time = "2025-04-15T17:36:03.235Z" }, + { url = "https://files.pythonhosted.org/packages/c3/a6/8ccf97a50f31adfa36917707fe39c9a0cbc24b3bbb58185577f119736cc9/contourpy-1.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:70771a461aaeb335df14deb6c97439973d253ae70660ca085eec25241137ef43", size = 352985, upload-time = "2025-04-15T17:36:08.275Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b6/7925ab9b77386143f39d9c3243fdd101621b4532eb126743201160ffa7e6/contourpy-1.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65a887a6e8c4cd0897507d814b14c54a8c2e2aa4ac9f7686292f9769fcf9a6ab", size = 323750, upload-time = "2025-04-15T17:36:13.29Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f3/20c5d1ef4f4748e52d60771b8560cf00b69d5c6368b5c2e9311bcfa2a08b/contourpy-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3859783aefa2b8355697f16642695a5b9792e7a46ab86da1118a4a23a51a33d7", size = 326246, upload-time = "2025-04-15T17:36:18.329Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e5/9dae809e7e0b2d9d70c52b3d24cba134dd3dad979eb3e5e71f5df22ed1f5/contourpy-1.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eab0f6db315fa4d70f1d8ab514e527f0366ec021ff853d7ed6a2d33605cf4b83", size = 1308728, upload-time = "2025-04-15T17:36:33.878Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/0058ba34aeea35c0b442ae61a4f4d4ca84d6df8f91309bc2d43bb8dd248f/contourpy-1.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d91a3ccc7fea94ca0acab82ceb77f396d50a1f67412efe4c526f5d20264e6ecd", size = 1375762, upload-time = "2025-04-15T17:36:51.295Z" }, + { url = "https://files.pythonhosted.org/packages/09/33/7174bdfc8b7767ef2c08ed81244762d93d5c579336fc0b51ca57b33d1b80/contourpy-1.3.2-cp311-cp311-win32.whl", hash = "sha256:1c48188778d4d2f3d48e4643fb15d8608b1d01e4b4d6b0548d9b336c28fc9b6f", size = 178196, upload-time = "2025-04-15T17:36:55.002Z" }, + { url = "https://files.pythonhosted.org/packages/5e/fe/4029038b4e1c4485cef18e480b0e2cd2d755448bb071eb9977caac80b77b/contourpy-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:5ebac872ba09cb8f2131c46b8739a7ff71de28a24c869bcad554477eb089a878", size = 222017, upload-time = "2025-04-15T17:36:58.576Z" }, + { url = "https://files.pythonhosted.org/packages/34/f7/44785876384eff370c251d58fd65f6ad7f39adce4a093c934d4a67a7c6b6/contourpy-1.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4caf2bcd2969402bf77edc4cb6034c7dd7c0803213b3523f111eb7460a51b8d2", size = 271580, upload-time = "2025-04-15T17:37:03.105Z" }, + { url = "https://files.pythonhosted.org/packages/93/3b/0004767622a9826ea3d95f0e9d98cd8729015768075d61f9fea8eeca42a8/contourpy-1.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82199cb78276249796419fe36b7386bd8d2cc3f28b3bc19fe2454fe2e26c4c15", size = 255530, upload-time = "2025-04-15T17:37:07.026Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7bd49e1f4fa805772d9fd130e0d375554ebc771ed7172f48dfcd4ca61549/contourpy-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106fab697af11456fcba3e352ad50effe493a90f893fca6c2ca5c033820cea92", size = 307688, upload-time = "2025-04-15T17:37:11.481Z" }, + { url = "https://files.pythonhosted.org/packages/fc/97/e1d5dbbfa170725ef78357a9a0edc996b09ae4af170927ba8ce977e60a5f/contourpy-1.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d14f12932a8d620e307f715857107b1d1845cc44fdb5da2bc8e850f5ceba9f87", size = 347331, upload-time = "2025-04-15T17:37:18.212Z" }, + { url = "https://files.pythonhosted.org/packages/6f/66/e69e6e904f5ecf6901be3dd16e7e54d41b6ec6ae3405a535286d4418ffb4/contourpy-1.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:532fd26e715560721bb0d5fc7610fce279b3699b018600ab999d1be895b09415", size = 318963, upload-time = "2025-04-15T17:37:22.76Z" }, + { url = "https://files.pythonhosted.org/packages/a8/32/b8a1c8965e4f72482ff2d1ac2cd670ce0b542f203c8e1d34e7c3e6925da7/contourpy-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b383144cf2d2c29f01a1e8170f50dacf0eac02d64139dcd709a8ac4eb3cfe", size = 323681, upload-time = "2025-04-15T17:37:33.001Z" }, + { url = "https://files.pythonhosted.org/packages/30/c6/12a7e6811d08757c7162a541ca4c5c6a34c0f4e98ef2b338791093518e40/contourpy-1.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c49f73e61f1f774650a55d221803b101d966ca0c5a2d6d5e4320ec3997489441", size = 1308674, upload-time = "2025-04-15T17:37:48.64Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8a/bebe5a3f68b484d3a2b8ffaf84704b3e343ef1addea528132ef148e22b3b/contourpy-1.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3d80b2c0300583228ac98d0a927a1ba6a2ba6b8a742463c564f1d419ee5b211e", size = 1380480, upload-time = "2025-04-15T17:38:06.7Z" }, + { url = "https://files.pythonhosted.org/packages/34/db/fcd325f19b5978fb509a7d55e06d99f5f856294c1991097534360b307cf1/contourpy-1.3.2-cp312-cp312-win32.whl", hash = "sha256:90df94c89a91b7362e1142cbee7568f86514412ab8a2c0d0fca72d7e91b62912", size = 178489, upload-time = "2025-04-15T17:38:10.338Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/fadd0b92ffa7b5eb5949bf340a63a4a496a6930a6c37a7ba0f12acb076d6/contourpy-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:8c942a01d9163e2e5cfb05cb66110121b8d07ad438a17f9e766317bcb62abf73", size = 223042, upload-time = "2025-04-15T17:38:14.239Z" }, + { url = "https://files.pythonhosted.org/packages/2e/61/5673f7e364b31e4e7ef6f61a4b5121c5f170f941895912f773d95270f3a2/contourpy-1.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:de39db2604ae755316cb5967728f4bea92685884b1e767b7c24e983ef5f771cb", size = 271630, upload-time = "2025-04-15T17:38:19.142Z" }, + { url = "https://files.pythonhosted.org/packages/ff/66/a40badddd1223822c95798c55292844b7e871e50f6bfd9f158cb25e0bd39/contourpy-1.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f9e896f447c5c8618f1edb2bafa9a4030f22a575ec418ad70611450720b5b08", size = 255670, upload-time = "2025-04-15T17:38:23.688Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c7/cf9fdee8200805c9bc3b148f49cb9482a4e3ea2719e772602a425c9b09f8/contourpy-1.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71e2bd4a1c4188f5c2b8d274da78faab884b59df20df63c34f74aa1813c4427c", size = 306694, upload-time = "2025-04-15T17:38:28.238Z" }, + { url = "https://files.pythonhosted.org/packages/dd/e7/ccb9bec80e1ba121efbffad7f38021021cda5be87532ec16fd96533bb2e0/contourpy-1.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de425af81b6cea33101ae95ece1f696af39446db9682a0b56daaa48cfc29f38f", size = 345986, upload-time = "2025-04-15T17:38:33.502Z" }, + { url = "https://files.pythonhosted.org/packages/dc/49/ca13bb2da90391fa4219fdb23b078d6065ada886658ac7818e5441448b78/contourpy-1.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:977e98a0e0480d3fe292246417239d2d45435904afd6d7332d8455981c408b85", size = 318060, upload-time = "2025-04-15T17:38:38.672Z" }, + { url = "https://files.pythonhosted.org/packages/c8/65/5245ce8c548a8422236c13ffcdcdada6a2a812c361e9e0c70548bb40b661/contourpy-1.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:434f0adf84911c924519d2b08fc10491dd282b20bdd3fa8f60fd816ea0b48841", size = 322747, upload-time = "2025-04-15T17:38:43.712Z" }, + { url = "https://files.pythonhosted.org/packages/72/30/669b8eb48e0a01c660ead3752a25b44fdb2e5ebc13a55782f639170772f9/contourpy-1.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c66c4906cdbc50e9cba65978823e6e00b45682eb09adbb78c9775b74eb222422", size = 1308895, upload-time = "2025-04-15T17:39:00.224Z" }, + { url = "https://files.pythonhosted.org/packages/05/5a/b569f4250decee6e8d54498be7bdf29021a4c256e77fe8138c8319ef8eb3/contourpy-1.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8b7fc0cd78ba2f4695fd0a6ad81a19e7e3ab825c31b577f384aa9d7817dc3bef", size = 1379098, upload-time = "2025-04-15T17:43:29.649Z" }, + { url = "https://files.pythonhosted.org/packages/19/ba/b227c3886d120e60e41b28740ac3617b2f2b971b9f601c835661194579f1/contourpy-1.3.2-cp313-cp313-win32.whl", hash = "sha256:15ce6ab60957ca74cff444fe66d9045c1fd3e92c8936894ebd1f3eef2fff075f", size = 178535, upload-time = "2025-04-15T17:44:44.532Z" }, + { url = "https://files.pythonhosted.org/packages/12/6e/2fed56cd47ca739b43e892707ae9a13790a486a3173be063681ca67d2262/contourpy-1.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e1578f7eafce927b168752ed7e22646dad6cd9bca673c60bff55889fa236ebf9", size = 223096, upload-time = "2025-04-15T17:44:48.194Z" }, + { url = "https://files.pythonhosted.org/packages/54/4c/e76fe2a03014a7c767d79ea35c86a747e9325537a8b7627e0e5b3ba266b4/contourpy-1.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0475b1f6604896bc7c53bb070e355e9321e1bc0d381735421a2d2068ec56531f", size = 285090, upload-time = "2025-04-15T17:43:34.084Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e2/5aba47debd55d668e00baf9651b721e7733975dc9fc27264a62b0dd26eb8/contourpy-1.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c85bb486e9be652314bb5b9e2e3b0d1b2e643d5eec4992c0fbe8ac71775da739", size = 268643, upload-time = "2025-04-15T17:43:38.626Z" }, + { url = "https://files.pythonhosted.org/packages/a1/37/cd45f1f051fe6230f751cc5cdd2728bb3a203f5619510ef11e732109593c/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:745b57db7758f3ffc05a10254edd3182a2a83402a89c00957a8e8a22f5582823", size = 310443, upload-time = "2025-04-15T17:43:44.522Z" }, + { url = "https://files.pythonhosted.org/packages/8b/a2/36ea6140c306c9ff6dd38e3bcec80b3b018474ef4d17eb68ceecd26675f4/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:970e9173dbd7eba9b4e01aab19215a48ee5dd3f43cef736eebde064a171f89a5", size = 349865, upload-time = "2025-04-15T17:43:49.545Z" }, + { url = "https://files.pythonhosted.org/packages/95/b7/2fc76bc539693180488f7b6cc518da7acbbb9e3b931fd9280504128bf956/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6c4639a9c22230276b7bffb6a850dfc8258a2521305e1faefe804d006b2e532", size = 321162, upload-time = "2025-04-15T17:43:54.203Z" }, + { url = "https://files.pythonhosted.org/packages/f4/10/76d4f778458b0aa83f96e59d65ece72a060bacb20cfbee46cf6cd5ceba41/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc829960f34ba36aad4302e78eabf3ef16a3a100863f0d4eeddf30e8a485a03b", size = 327355, upload-time = "2025-04-15T17:44:01.025Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/10cf483ea683f9f8ab096c24bad3cce20e0d1dd9a4baa0e2093c1c962d9d/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d32530b534e986374fc19eaa77fcb87e8a99e5431499949b828312bdcd20ac52", size = 1307935, upload-time = "2025-04-15T17:44:17.322Z" }, + { url = "https://files.pythonhosted.org/packages/78/73/69dd9a024444489e22d86108e7b913f3528f56cfc312b5c5727a44188471/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e298e7e70cf4eb179cc1077be1c725b5fd131ebc81181bf0c03525c8abc297fd", size = 1372168, upload-time = "2025-04-15T17:44:33.43Z" }, + { url = "https://files.pythonhosted.org/packages/0f/1b/96d586ccf1b1a9d2004dd519b25fbf104a11589abfd05484ff12199cca21/contourpy-1.3.2-cp313-cp313t-win32.whl", hash = "sha256:d0e589ae0d55204991450bb5c23f571c64fe43adaa53f93fc902a84c96f52fe1", size = 189550, upload-time = "2025-04-15T17:44:37.092Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e6/6000d0094e8a5e32ad62591c8609e269febb6e4db83a1c75ff8868b42731/contourpy-1.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:78e9253c3de756b3f6a5174d024c4835acd59eb3f8e2ca13e775dbffe1558f69", size = 238214, upload-time = "2025-04-15T17:44:40.827Z" }, + { url = "https://files.pythonhosted.org/packages/33/05/b26e3c6ecc05f349ee0013f0bb850a761016d89cec528a98193a48c34033/contourpy-1.3.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fd93cc7f3139b6dd7aab2f26a90dde0aa9fc264dbf70f6740d498a70b860b82c", size = 265681, upload-time = "2025-04-15T17:44:59.314Z" }, + { url = "https://files.pythonhosted.org/packages/2b/25/ac07d6ad12affa7d1ffed11b77417d0a6308170f44ff20fa1d5aa6333f03/contourpy-1.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:107ba8a6a7eec58bb475329e6d3b95deba9440667c4d62b9b6063942b61d7f16", size = 315101, upload-time = "2025-04-15T17:45:04.165Z" }, + { url = "https://files.pythonhosted.org/packages/8f/4d/5bb3192bbe9d3f27e3061a6a8e7733c9120e203cb8515767d30973f71030/contourpy-1.3.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ded1706ed0c1049224531b81128efbd5084598f18d8a2d9efae833edbd2b40ad", size = 220599, upload-time = "2025-04-15T17:45:08.456Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c0/91f1215d0d9f9f343e4773ba6c9b89e8c0cc7a64a6263f21139da639d848/contourpy-1.3.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5f5964cdad279256c084b69c3f412b7801e15356b16efa9d78aa974041903da0", size = 266807, upload-time = "2025-04-15T17:45:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/d4/79/6be7e90c955c0487e7712660d6cead01fa17bff98e0ea275737cc2bc8e71/contourpy-1.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49b65a95d642d4efa8f64ba12558fcb83407e58a2dfba9d796d77b63ccfcaff5", size = 318729, upload-time = "2025-04-15T17:45:20.166Z" }, + { url = "https://files.pythonhosted.org/packages/87/68/7f46fb537958e87427d98a4074bcde4b67a70b04900cfc5ce29bc2f556c1/contourpy-1.3.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8c5acb8dddb0752bf252e01a3035b21443158910ac16a3b0d20e7fed7d534ce5", size = 221791, upload-time = "2025-04-15T17:45:24.794Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "numpy", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/2e/c4390a31919d8a78b90e8ecf87cd4b4c4f05a5b48d05ec17db8e5404c6f4/contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1", size = 288773, upload-time = "2025-07-26T12:01:02.277Z" }, + { url = "https://files.pythonhosted.org/packages/0d/44/c4b0b6095fef4dc9c420e041799591e3b63e9619e3044f7f4f6c21c0ab24/contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381", size = 270149, upload-time = "2025-07-26T12:01:04.072Z" }, + { url = "https://files.pythonhosted.org/packages/30/2e/dd4ced42fefac8470661d7cb7e264808425e6c5d56d175291e93890cce09/contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7", size = 329222, upload-time = "2025-07-26T12:01:05.688Z" }, + { url = "https://files.pythonhosted.org/packages/f2/74/cc6ec2548e3d276c71389ea4802a774b7aa3558223b7bade3f25787fafc2/contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1", size = 377234, upload-time = "2025-07-26T12:01:07.054Z" }, + { url = "https://files.pythonhosted.org/packages/03/b3/64ef723029f917410f75c09da54254c5f9ea90ef89b143ccadb09df14c15/contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a", size = 380555, upload-time = "2025-07-26T12:01:08.801Z" }, + { url = "https://files.pythonhosted.org/packages/5f/4b/6157f24ca425b89fe2eb7e7be642375711ab671135be21e6faa100f7448c/contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db", size = 355238, upload-time = "2025-07-26T12:01:10.319Z" }, + { url = "https://files.pythonhosted.org/packages/98/56/f914f0dd678480708a04cfd2206e7c382533249bc5001eb9f58aa693e200/contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620", size = 1326218, upload-time = "2025-07-26T12:01:12.659Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d7/4a972334a0c971acd5172389671113ae82aa7527073980c38d5868ff1161/contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f", size = 1392867, upload-time = "2025-07-26T12:01:15.533Z" }, + { url = "https://files.pythonhosted.org/packages/75/3e/f2cc6cd56dc8cff46b1a56232eabc6feea52720083ea71ab15523daab796/contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff", size = 183677, upload-time = "2025-07-26T12:01:17.088Z" }, + { url = "https://files.pythonhosted.org/packages/98/4b/9bd370b004b5c9d8045c6c33cf65bae018b27aca550a3f657cdc99acdbd8/contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42", size = 225234, upload-time = "2025-07-26T12:01:18.256Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b6/71771e02c2e004450c12b1120a5f488cad2e4d5b590b1af8bad060360fe4/contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470", size = 193123, upload-time = "2025-07-26T12:01:19.848Z" }, + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/8dcfe16f0107943fa92388c23f6e05cff0ba58058c4c95b00280d4c75a14/contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497", size = 278809, upload-time = "2025-07-26T12:02:52.74Z" }, + { url = "https://files.pythonhosted.org/packages/85/a9/8b37ef4f7dafeb335daee3c8254645ef5725be4d9c6aa70b50ec46ef2f7e/contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8", size = 261593, upload-time = "2025-07-26T12:02:54.037Z" }, + { url = "https://files.pythonhosted.org/packages/0a/59/ebfb8c677c75605cc27f7122c90313fd2f375ff3c8d19a1694bda74aaa63/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e", size = 302202, upload-time = "2025-07-26T12:02:55.947Z" }, + { url = "https://files.pythonhosted.org/packages/3c/37/21972a15834d90bfbfb009b9d004779bd5a07a0ec0234e5ba8f64d5736f4/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989", size = 329207, upload-time = "2025-07-26T12:02:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" }, +] + +[[package]] +name = "cotengra" +version = "0.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "autoray" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/55/867bfde1fd7d91b79fd1ee23468f034fc5afb6da620124e43a1a004d3a05/cotengra-0.8.2.tar.gz", hash = "sha256:3040ec6cbcc5b3c5d0388444a97cef02dc5963c6a222106e669db0e586369da9", size = 2502794, upload-time = "2026-06-22T19:49:42.698Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/27/157df41828f9d3ea3db17b1d299c900e7faa84e14fc0cf32ded39e87b7e8/cotengra-0.8.2-py3-none-any.whl", hash = "sha256:f8c636bb392aa17e463c979d186a76c6220da7a98fdf6a252e02122a726009e2", size = 254409, upload-time = "2026-06-22T19:49:41.353Z" }, +] + +[[package]] +name = "cryptography" +version = "49.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/99/d1c90d6041656cc6ee229dc99cd67fd0cd5aec3c5f7d72fffc27cc750054/cryptography-49.0.0.tar.gz", hash = "sha256:f89660a348f4f78a92366240a61404e337586ef7f5909a2fef59ca88ef505493", size = 854345, upload-time = "2026-06-12T20:02:30.512Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/22/adf66990e63584a68dfb50c24f48a125c07b1699899381c8151e63ed458c/cryptography-49.0.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:966fe0e9c67490071f14c0d2b1cb2dfb3023c5ce39457343931415f08382f2db", size = 4032100, upload-time = "2026-06-12T20:02:32.143Z" }, + { url = "https://files.pythonhosted.org/packages/09/41/3797cfaf69cae04a13ee78ebd83f0678d9c02b4779d21ce24445326f1a69/cryptography-49.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36d1709f992593689b45bda411498d62c6e365f2ca00b84657d4dadd24de16db", size = 4692978, upload-time = "2026-06-12T20:01:21.305Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8b/43011f7ebe515a8aa20d61f290a326cd890c2e738e16e59eaff8d9c3a412/cryptography-49.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0e959b578856a3924bc0cbb710fc12c387b9412a951389f3ca61704a9e25f325", size = 4716422, upload-time = "2026-06-12T20:01:48.566Z" }, + { url = "https://files.pythonhosted.org/packages/4a/91/01ce7303a4579e6d3a6abef01bd322848e9ea7a219adcabc5048b9033571/cryptography-49.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:53ecee2e23f7169b6117e99fc8a944e5e50f79e69758a83b52a00cb98ab2b2d2", size = 4700503, upload-time = "2026-06-12T20:02:47.091Z" }, + { url = "https://files.pythonhosted.org/packages/62/99/a2c95cf8293f07491e9e27c20cc4dcd18176d944e674679adeb1d0173fd6/cryptography-49.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:2eda353d8a27bcbcaa4cbed18994a74ab4d19a2ca897db188ea269ab9b71419b", size = 5309779, upload-time = "2026-06-12T20:02:08.987Z" }, + { url = "https://files.pythonhosted.org/packages/20/2c/0622f20ff02b2ef32558733443805dc82fd4c275be01b2d19d14676f3a1b/cryptography-49.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2afe9051da7ae7bd5905da5a949280c7d2bb75682e188f650a9d0f2756b834c6", size = 4749683, upload-time = "2026-06-12T20:02:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/a3/5b/c5246635d5fd3b64e0d45ae10e99fd32fe9676a79915ccfe5a61ba9af1a5/cryptography-49.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:0b82e28ee398a386f0807bba7884d30f25218855690f45115831bcce5d90822c", size = 4337874, upload-time = "2026-06-12T20:02:54.323Z" }, + { url = "https://files.pythonhosted.org/packages/6d/88/05563c7fe2e914e87d1a536d06fe83e66b4e1d95cb593e05aea375531da8/cryptography-49.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ccac2bfebc306b862133e3bb71f3f6ee8bb525240089b2d952e4144b3a6d5da7", size = 4700283, upload-time = "2026-06-12T20:01:34.822Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b6/d7696e4e890d6ae1469935164c9e5215c557671cb78d6e3f458ccceaa632/cryptography-49.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:d0527ce944105f257f605a827d6ebead966c752038b6e8656abb9c5edee6fc68", size = 5265844, upload-time = "2026-06-12T20:01:24.09Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3c/f3ad17eecc1a57b0ba236dc01f90e783c51f4a2f35f64777cc4f47a184b2/cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:cbc77da8c523d5abd028635ba850a6966fcee2c82e2bf65a41d1d8afe0f98be9", size = 4749290, upload-time = "2026-06-12T20:01:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/4f/01/339573cf1023163a400b0b5d16f6d507de413b9f60be6fd1b77feeaf6737/cryptography-49.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b87e65d263b3e5d3bb92a57e2a6638e2f31110fa7aa890c7b2dbba42248d0a3f", size = 4834612, upload-time = "2026-06-12T20:01:29.246Z" }, + { url = "https://files.pythonhosted.org/packages/71/fd/577302e213a1be9468f92d1afef66fcf1ef83d516819d9992ca547f592bd/cryptography-49.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:66ec79c3904820572d7e987abdf304281f141d37ad9a489b8e97066e7b9b6459", size = 4980804, upload-time = "2026-06-12T20:01:42.853Z" }, + { url = "https://files.pythonhosted.org/packages/1f/09/f42b1d190c5ba75f72062a387f8030d1d75f6ab035788f1d9c4b01de6525/cryptography-49.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:e5dfc1e64de5677cec922ffa8da89c546d0415bf6efdf081842e5d44c84e1f0e", size = 3810026, upload-time = "2026-06-12T20:02:39.262Z" }, + { url = "https://files.pythonhosted.org/packages/ec/9e/db72b3ae7fc9cfad53e630e56c6ae83b9b6ff0bf3718ffb8012d20b3aabf/cryptography-49.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:73a205dce83953d131a4aa1e0fd917a2fd1c5b1eef251e9d7152efefcbf5caf7", size = 4013892, upload-time = "2026-06-12T20:02:10.735Z" }, + { url = "https://files.pythonhosted.org/packages/86/12/c48a424f38db03027be9f7ed5c7dc5de9933dbee992865f98b13727a009d/cryptography-49.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:196ecd6a36e4e9aa10270393bb98d8df88fccee0bf1e5128b91ae4eb4375896d", size = 4678835, upload-time = "2026-06-12T20:02:48.743Z" }, + { url = "https://files.pythonhosted.org/packages/68/28/8a3ad4653662c93fc44dc4e5d8fd374c25c42e07b34bbfbadf49cf57a5a8/cryptography-49.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7abcee80084cda3f7691f3eb1ce480d8df49cec637b429aa35986c1de71738aa", size = 4697239, upload-time = "2026-06-12T20:02:56.03Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b2/2193fc74f81aee4f9b62733133b73b5176718932ed8f2e4b03fa040480a6/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:4ae387c9cb68ea569ca17e490d66d8142b81c3cc814bf179974b7d146e490bbb", size = 4685593, upload-time = "2026-06-12T20:02:50.666Z" }, + { url = "https://files.pythonhosted.org/packages/47/f1/1d3eaa243bfc5de4a187b22aa8c048b3e4980bfbe830ac46e6bac2e66947/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:f37d847238971164fdbc68ade6f6574aecc9c0af714190e2083429ff68f4ce9d", size = 5289961, upload-time = "2026-06-12T20:01:46.468Z" }, + { url = "https://files.pythonhosted.org/packages/58/39/2d51306721330c486495853eda1c567880ff036de15a14c4b74f399934af/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:c2bc30226390d60ea19d9f82b19db005fe0452154a23c1c410c12ea801e43561", size = 4731145, upload-time = "2026-06-12T20:02:16.832Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/983e838c7fd0d87fd8c969bcdd328edaf5f756e38df5281637424c155873/cryptography-49.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:07cab27cc7b7e0fd28e5e26bb9eeedde5c135c868b46de4a27845abe94af6122", size = 4321719, upload-time = "2026-06-12T20:02:52.611Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f5/8f571d7e27c55bce9f76f026143bcb1e040a4233149ecca0bea5fa5dd5f7/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:b20133d204d2bb56ba047642199603876c872026ca53e79c35b83772ab2cc505", size = 4685209, upload-time = "2026-06-12T20:02:07.282Z" }, + { url = "https://files.pythonhosted.org/packages/e7/84/0e27016a6fc5a0886f797018b26aa42f40c09a82332bff77822a451deaaa/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b970c6da94d5bb18629db453d14f2a1300f6bf59b61e9b82377931ef95504866", size = 5246285, upload-time = "2026-06-12T20:01:32.439Z" }, + { url = "https://files.pythonhosted.org/packages/11/2d/5e1fb307cb5931881516b464c98774b3f2c36b5d4bb9a2830253cf553cad/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d8ecde755e2e91bf773fc94e8c9d730cd7f2007004cb492263a794ec3899a1c8", size = 4730441, upload-time = "2026-06-12T20:02:01.469Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c0/bff5a02ee731d207d6a1ed51732549d8c53d2bc8da1d10ec6f2844201d68/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e3fb64c420688e5319ae25113a354015abbd8dffbfbc41781a1ea66fc7622ac3", size = 4815869, upload-time = "2026-06-12T20:01:36.574Z" }, + { url = "https://files.pythonhosted.org/packages/b9/26/814681d14248d95d73d5c3eea0c39a94eb8302df966f670a2c60de90974b/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32703d93296f5c1f4b53349ad3a250c2cae0fdecd3a3dd5d47e616d8d616af27", size = 4960948, upload-time = "2026-06-12T20:02:18.688Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fe/93ecac273d3738939d023612ad12cca9a3740a5345d69fda04134c43fd96/cryptography-49.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:33cd0565932807baddb67b96dbee92f2c374b5c89dee09fd74079aeb8c8dba61", size = 3799153, upload-time = "2026-06-12T20:01:39.059Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/5bb823f5bedcf80718cea7fbc95ec5515cca3769633c4b01a32be7f30e7c/cryptography-49.0.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ec5e529fb80935c94fe7b729f9972b50e351a0e6b50aa294fd5cabb109fcc29a", size = 4025947, upload-time = "2026-06-12T20:01:25.745Z" }, + { url = "https://files.pythonhosted.org/packages/3d/df/40577043ca124e17012f408ddddaeb213b856336ac82ddb3bc915f39e29f/cryptography-49.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f78ff2c9ed8dc2d036b0f4d640e22522213d047c1b14e61205a7e55c80a494d4", size = 4692429, upload-time = "2026-06-12T20:01:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/2c/99/2d13299eb3dd27b02dcfaafcc91d6b5cb3329f7cbd6d8f51921acd566c1a/cryptography-49.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:35b151772baff2c74cba7fa290ceaff4c3b11c0c881eb93eb5dbc05a7cfbba18", size = 4700968, upload-time = "2026-06-12T20:02:45.383Z" }, + { url = "https://files.pythonhosted.org/packages/a5/4d/9c0cd02f95e2602dd5e563da149ee0830abef3537be8b34dc56281ebe27a/cryptography-49.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0f21641cf4b30fca7aee061ced0ec7ad7b073518088b7c9969a297c0ae796c69", size = 4697758, upload-time = "2026-06-12T20:01:41.13Z" }, + { url = "https://files.pythonhosted.org/packages/24/01/186c825898477d77e2324d5360fefe622ff1d8d1963ec0554e2cada8ec77/cryptography-49.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:9e82dcc8e56052715fb18b2429e3bca4823b1629136a2084fc45a9a5cecb9b64", size = 5298863, upload-time = "2026-06-12T20:02:24.579Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7b/62cbbab75d0659865bf0273790031544a0b16c8072d258f9428dcd8190dc/cryptography-49.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6f2debedf9ca60cf1d5bd466475638af5130f89965605cd818484d19987d3a21", size = 4735983, upload-time = "2026-06-12T20:01:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/6c/72/3e798c064bc39e471008075d0f9bc9daf77a80879c092e4a8e170c585ed4/cryptography-49.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:8c25ceb16df5b9435f3f6a9829204985b0e0cbee3b48aacd432c7d2c850b44d9", size = 4334173, upload-time = "2026-06-12T20:01:44.743Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ee/6fca21d1ac73e06f8bef71940abfd4d2f6472b4bca284d770f32bd4086f6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:28d8b15e6275f12c8a207dc309dfa957903c927d08d0cc937ee3f63f200693cc", size = 4697298, upload-time = "2026-06-12T20:02:20.918Z" }, + { url = "https://files.pythonhosted.org/packages/67/d0/a5fcd3515f0bae49a7b6d0413cc1bdccdcc1fc0047037a0d480642cdc5d6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:6fc361c34fb6aac015ce19435876635e5c6d21db31998b0920f675f131e043b8", size = 5254338, upload-time = "2026-06-12T20:02:22.737Z" }, + { url = "https://files.pythonhosted.org/packages/a0/84/84fe36f19caf857d61cb7fc9c63035a47ffabd84ea12d1d393148efa3615/cryptography-49.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2400ef9c9e2299a25614eb1dea3db54a69b1349efd043bfac9c67630d136df36", size = 4735650, upload-time = "2026-06-12T20:02:41.389Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a0/db537264e234f7273a73ec020873d6d6b39dfd8a53db78b550ca8320440e/cryptography-49.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:67e1d20ad9ef3a563c59ef22e7a8a0b8210bd26604369ea4a30a7c66aefe504e", size = 4834820, upload-time = "2026-06-12T20:01:51.847Z" }, + { url = "https://files.pythonhosted.org/packages/93/77/8df9eb486495979bccecd1062e2eaf435250e84437040295b57d09048b0b/cryptography-49.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:42b0684e0e40cf26122427802486f6d93aea593612603a94fbf260c7eb1e9c1b", size = 4967968, upload-time = "2026-06-12T20:02:12.524Z" }, + { url = "https://files.pythonhosted.org/packages/c2/e6/f60198ea8d9dfa15fff9ed4ca02ce362f6eadd9ba757dcc50634c4257b63/cryptography-49.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:026ac7423e6fa66872d3bf889be5974507da3944f866f704fa200eadacd00001", size = 3785547, upload-time = "2026-06-12T20:02:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/63/d3/4a83af35d65e3fad632c926fad684c193ea4398569ccb0bbbc7fe8f5dc9a/cryptography-49.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fc1e275c2f1d97b1a6450b8b0ea3ebfa6e087a611c2b26cb2404d48588abab7b", size = 3993685, upload-time = "2026-06-12T20:02:14.883Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a7/f9dac0ab7f80368c56993a7bf638ef9935f825c91902798481fac0898138/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83782480a4a9da4d0feb51950131ba32e12e70813848b3343f6e18c28a66838", size = 4676239, upload-time = "2026-06-12T20:02:28.793Z" }, + { url = "https://files.pythonhosted.org/packages/d7/70/2ba3769dd0ae167e2f33dfa9592d45db6ff9a61d62ca1a5b3d1bdd09068f/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b39efa323140595abd3ecca8529d321ae50f55f3aa3ba9cc81ea56a6011953d5", size = 4715584, upload-time = "2026-06-12T20:01:27.495Z" }, + { url = "https://files.pythonhosted.org/packages/94/64/2923570ac1c0bd3a737aa366ac3abbbbde273042308b8cde95e2364a6e6a/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b47db11c2c3525083296069b98ac5221907455e989ae0c2e3008bde851921615", size = 4675885, upload-time = "2026-06-12T20:01:55.49Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f8/614dc7e051418cfe53d55173c1e24c6b0085e89996fe90508c2fdf769aef/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:084ef1af862eb07ec46d25f68689f2102a9fc0e05ce7b80f14f5fe51e4eef0f6", size = 4715449, upload-time = "2026-06-12T20:02:05.469Z" }, + { url = "https://files.pythonhosted.org/packages/aa/50/a9caea39ad19c431c1a3f8a31114df65b260cdfe67786b6c7e7c040c4c44/cryptography-49.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be9fcb48a55f023493482827d4f459bd263cc20efde64f204b97c123201850c6", size = 3783731, upload-time = "2026-06-12T20:02:43.319Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "cytoolz" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "toolz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/d4/16916f3dc20a3f5455b63c35dcb260b3716f59ce27a93586804e70e431d5/cytoolz-1.1.0.tar.gz", hash = "sha256:13a7bf254c3c0d28b12e2290b82aed0f0977a4c2a2bf84854fcdc7796a29f3b0", size = 642510, upload-time = "2025-10-19T00:44:56.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/7a/3244e6e3587be9abfee3b1c320e43a279831b3c3a31fe5d08c1ee6193e6b/cytoolz-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:72d7043a88ea5e61ba9d17ea0d1c1eff10f645d7edfcc4e56a31ef78be287644", size = 1307813, upload-time = "2025-10-19T00:39:34.198Z" }, + { url = "https://files.pythonhosted.org/packages/32/7e/eaf504ca59addce323ef4d4ffedc2913d83c121ec19f6419bc402f7702dc/cytoolz-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d759e9ed421bacfeb456d47af8d734c057b9912b5f2441f95b27ca35e5efab07", size = 985777, upload-time = "2025-10-19T00:39:36.545Z" }, + { url = "https://files.pythonhosted.org/packages/d4/a1/ec95443f0cf4cd0dbc574fa26ac85a0442d35f3b601a90a0e3dda077f614/cytoolz-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fdb5be8fbcc0396141189022724155a4c1c93712ac4aef8c03829af0c2a816d7", size = 982865, upload-time = "2025-10-19T00:39:38.19Z" }, + { url = "https://files.pythonhosted.org/packages/a7/1b/8503604b0c0534977363fb77d371019395dfa031a216f9b1d8729d1280e4/cytoolz-1.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c8c0a513dc89bc05cc72893609118815bced5ef201f1a317b4cc3423b3a0e750", size = 2597969, upload-time = "2025-10-19T00:39:40.26Z" }, + { url = "https://files.pythonhosted.org/packages/4e/e5/30748da06417cb2d4bc58e380b0c11d8c6539f4e289dc1e4f4b4fc248d0e/cytoolz-1.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce94db4f8ebe842c30c0ece42ff5de977c47859088c2c363dede5a68f6906484", size = 2692230, upload-time = "2025-10-19T00:39:42.327Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/e06580b74deb97dfd3513e4e6b660c2dedc220c7653f5bd3e4f772f4d885/cytoolz-1.1.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b622d4f54e370c853ded94a668f94fe72c6d70e06ac102f17a2746661c27ab52", size = 2565243, upload-time = "2025-10-19T00:39:44.403Z" }, + { url = "https://files.pythonhosted.org/packages/91/5e/79c0122a34c33afcb5aaee1fec35be24fe16cecefb9bb8890f2908feae56/cytoolz-1.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:375a65baa5a5b4ff6a0c5ff17e170cf23312e4c710755771ca966144c24216b5", size = 2868602, upload-time = "2025-10-19T00:39:46.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/84/404698ff02b32292db1e39cc4a2fbdabe15164b092cc364902984c3ce0f4/cytoolz-1.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c0d51bcdb3203a062a78f66bbe33db5e3123048e24a5f0e1402422d79df8ee2d", size = 2905121, upload-time = "2025-10-19T00:39:48.078Z" }, + { url = "https://files.pythonhosted.org/packages/9f/33/afad6593829ba73fc87b5ae64441e380fc937f79f24a1cda60d23cb99b8c/cytoolz-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1010869529bb05dc9802b6d776a34ca1b6d48b9deec70ad5e2918ae175be5c2f", size = 2684382, upload-time = "2025-10-19T00:39:49.766Z" }, + { url = "https://files.pythonhosted.org/packages/ce/86/7900013a82ca9c6cadbfb22bf50d0fbfc3b192915d2bdd9fab3f69a9afba/cytoolz-1.1.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11a8f2e83295bdb33f35454d6bafcb7845b03b5881dcaed66ecbd726c7f16772", size = 2518183, upload-time = "2025-10-19T00:39:51.433Z" }, + { url = "https://files.pythonhosted.org/packages/c3/4b/acf9be2953fed6a6d795fb66de37c367915037a998a5b3d3b69476cf91fe/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0499c5e0a8e688ed367a2e51cc13792ae8f08226c15f7d168589fc44b9b9cada", size = 2609368, upload-time = "2025-10-19T00:39:53.458Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ec/3e30455fd526f5cc37bd3dd2a0e2aafb803ae4d271e50ce53bfc30810053/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:87d44e6033d4c5e95a7d39ba59b8e105ba1c29b1ccd1d215f26477cc1d64be39", size = 2561458, upload-time = "2025-10-19T00:39:55.493Z" }, + { url = "https://files.pythonhosted.org/packages/49/27/e5815c85bb18cdf95780f9596dcfd76dee910a4d635a1924648cb8a636c6/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a68cef396a7de237f7b97422a6a450dfb111722296ba217ba5b34551832f1f6e", size = 2578236, upload-time = "2025-10-19T00:39:57.512Z" }, + { url = "https://files.pythonhosted.org/packages/17/db/588e266eff397670398ea335a809152e77b02ee92e0ec42091115b42f09b/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:06ad4c95b258141f138a93ebfdc1d76ac087afc1a82f1401100a1f44b44ba656", size = 2770523, upload-time = "2025-10-19T00:39:59.194Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ad/82be0b999c7a0a0b362cedfc183eb090b872fd42937af2d6e97d58bc70f8/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ada59a4b3c59d4ac7162e0ed08667ffa78abf48e975c8a9f9d5b9bc50720f4fd", size = 2512909, upload-time = "2025-10-19T00:40:01.199Z" }, + { url = "https://files.pythonhosted.org/packages/25/21/45f07ab0339a20c518bc9006100922babc397ab7ea5ef40a395db83b9cdd/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a8957bcaea1ba01327a9b219d2adb84144377684f51444253890dab500ca171f", size = 2755345, upload-time = "2025-10-19T00:40:03.322Z" }, + { url = "https://files.pythonhosted.org/packages/8b/a7/e530bf2b304206f79b36d793caba1ff9448348713a41bb1ad0197714a0f2/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6d8cdc299d67eb0f3b9ecdafeeb55eb3b7b7470e2d950ac34b05ed4c7a5572b8", size = 2617790, upload-time = "2025-10-19T00:40:05.03Z" }, + { url = "https://files.pythonhosted.org/packages/9f/77/7f53092121d7431589344c7d65c3d43c4111547aafabb21d3ca9032d126c/cytoolz-1.1.0-cp310-cp310-win32.whl", hash = "sha256:d8e08464c5cdea4f6df31e84b11ed6bfd79cedb99fbcbfdc15eb9361a6053c5a", size = 900209, upload-time = "2025-10-19T00:40:06.647Z" }, + { url = "https://files.pythonhosted.org/packages/84/e4/902578658303b9bc76b1704d3ed85e6d307d311bd9fa0b919581bea56e62/cytoolz-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:7e49922a7ed54262d41960bf3b835a7700327bf79cff1e9bfc73d79021132ff8", size = 944802, upload-time = "2025-10-19T00:40:08.983Z" }, + { url = "https://files.pythonhosted.org/packages/71/9f/56a7003617b4eabd8ddfb470aacc240425cbe6ddeb756adfbbaadaa175f1/cytoolz-1.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:943a662d2e72ffc4438d43ab5a1de8d852237775a423236594a3b3e381b8032c", size = 904835, upload-time = "2025-10-19T00:40:11.024Z" }, + { url = "https://files.pythonhosted.org/packages/69/82/edf1d0c32b6222f2c22e5618d6db855d44eb59f9b6f22436ff963c5d0a5c/cytoolz-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dba8e5a8c6e3c789d27b0eb5e7ce5ed7d032a7a9aae17ca4ba5147b871f6e327", size = 1314345, upload-time = "2025-10-19T00:40:13.273Z" }, + { url = "https://files.pythonhosted.org/packages/2d/b5/0e3c1edaa26c2bd9db90cba0ac62c85bbca84224c7ae1c2e0072c4ea64c5/cytoolz-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:44b31c05addb0889167a720123b3b497b28dd86f8a0aeaf3ae4ffa11e2c85d55", size = 989259, upload-time = "2025-10-19T00:40:15.196Z" }, + { url = "https://files.pythonhosted.org/packages/09/aa/e2b2ee9fc684867e817640764ea5807f9d25aa1e7bdba02dd4b249aab0f7/cytoolz-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:653cb18c4fc5d8a8cfce2bce650aabcbe82957cd0536827367d10810566d5294", size = 986551, upload-time = "2025-10-19T00:40:16.831Z" }, + { url = "https://files.pythonhosted.org/packages/39/9f/4e8ee41acf6674f10a9c2c9117b2f219429a5a0f09bba6135f34ca4f08a6/cytoolz-1.1.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:853a5b4806915020c890e1ce70cc056bbc1dd8bc44f2d74d555cccfd7aefba7d", size = 2688378, upload-time = "2025-10-19T00:40:18.552Z" }, + { url = "https://files.pythonhosted.org/packages/78/94/ef006f3412bc22444d855a0fc9ecb81424237fb4e5c1a1f8f5fb79ac978f/cytoolz-1.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7b44e9de86bea013fe84fd8c399d6016bbb96c37c5290769e5c99460b9c53e5", size = 2798299, upload-time = "2025-10-19T00:40:20.191Z" }, + { url = "https://files.pythonhosted.org/packages/df/aa/365953926ee8b4f2e07df7200c0d73632155908c8867af14b2d19cc9f1f7/cytoolz-1.1.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:098d628a801dc142e9740126be5624eb7aef1d732bc7a5719f60a2095547b485", size = 2639311, upload-time = "2025-10-19T00:40:22.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ee/62beaaee7df208f22590ad07ef8875519af49c52ca39d99460b14a00f15a/cytoolz-1.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:779ee4096ed7a82cffab89372ffc339631c285079dbf33dbe7aff1f6174985df", size = 2979532, upload-time = "2025-10-19T00:40:24.006Z" }, + { url = "https://files.pythonhosted.org/packages/c5/04/2211251e450bed111ada1194dc42c461da9aea441de62a01e4085ea6de9f/cytoolz-1.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f2ce18dd99533d077e9712f9faa852f389f560351b1efd2f2bdb193a95eddde2", size = 3018632, upload-time = "2025-10-19T00:40:26.175Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a2/4a3400e4d07d3916172bf74fede08020d7b4df01595d8a97f1e9507af5ae/cytoolz-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac266a34437812cf841cecbfe19f355ab9c3dd1ef231afc60415d40ff12a76e4", size = 2788579, upload-time = "2025-10-19T00:40:27.878Z" }, + { url = "https://files.pythonhosted.org/packages/fe/82/bb88caa53a41f600e7763c517d50e2efbbe6427ea395716a92b83f44882a/cytoolz-1.1.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1920b9b9c13d60d0bb6cd14594b3bce0870022eccb430618c37156da5f2b7a55", size = 2593024, upload-time = "2025-10-19T00:40:29.601Z" }, + { url = "https://files.pythonhosted.org/packages/09/a8/8b25e59570da16c7a0f173b8c6ec0aa6f3abd47fd385c007485acb459896/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47caa376dafd2bdc29f8a250acf59c810ec9105cd6f7680b9a9d070aae8490ec", size = 2715304, upload-time = "2025-10-19T00:40:31.151Z" }, + { url = "https://files.pythonhosted.org/packages/d4/56/faec7696f235521b926ffdf92c102f5b029f072d28e1020364e55b084820/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5ab2c97d8aaa522b038cca9187b1153347af22309e7c998b14750c6fdec7b1cb", size = 2654461, upload-time = "2025-10-19T00:40:32.884Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/f790ed167c04b8d2a33bed30770a9b7066fc4f573321d797190e5f05685f/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4bce006121b120e8b359244ee140bb0b1093908efc8b739db8dbaa3f8fb42139", size = 2672077, upload-time = "2025-10-19T00:40:34.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b3/80b8183e7eee44f45bfa3cdd3ebdadf3dd43ffc686f96d442a6c4dded45d/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fc0f1e4e9bb384d26e73c6657bbc26abdae4ff66a95933c00f3d578be89181b", size = 2881589, upload-time = "2025-10-19T00:40:36.315Z" }, + { url = "https://files.pythonhosted.org/packages/8f/05/ac5ba5ddb88a3ba7ecea4bf192194a838af564d22ea7a4812cbb6bd106ce/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:dd3f894ff972da1994d06ac6157d74e40dda19eb31fe5e9b7863ca4278c3a167", size = 2589924, upload-time = "2025-10-19T00:40:38.317Z" }, + { url = "https://files.pythonhosted.org/packages/8e/cd/100483cae3849d24351c8333a815dc6adaf3f04912486e59386d86d9db9a/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0846f49cf8a4496bd42659040e68bd0484ce6af819709cae234938e039203ba0", size = 2868059, upload-time = "2025-10-19T00:40:40.025Z" }, + { url = "https://files.pythonhosted.org/packages/34/6e/3a7c56b325772d39397fc3aafb4dc054273982097178b6c3917c6dad48de/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:16a3af394ade1973226d64bb2f9eb3336adbdea03ed5b134c1bbec5a3b20028e", size = 2721692, upload-time = "2025-10-19T00:40:41.621Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ca/9fdaee32c3bc769dfb7e7991d9499136afccea67e423d097b8fb3c5acbc1/cytoolz-1.1.0-cp311-cp311-win32.whl", hash = "sha256:b786c9c8aeab76cc2f76011e986f7321a23a56d985b77d14f155d5e5514ea781", size = 899349, upload-time = "2025-10-19T00:40:43.183Z" }, + { url = "https://files.pythonhosted.org/packages/fd/04/2ab98edeea90311e4029e1643e43d2027b54da61453292d9ea51a103ee87/cytoolz-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:ebf06d1c5344fb22fee71bf664234733e55db72d74988f2ecb7294b05e4db30c", size = 945831, upload-time = "2025-10-19T00:40:44.693Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8d/777d86ea6bcc68b0fc926b0ef8ab51819e2176b37aadea072aac949d5231/cytoolz-1.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:b63f5f025fac893393b186e132e3e242de8ee7265d0cd3f5bdd4dda93f6616c9", size = 904076, upload-time = "2025-10-19T00:40:46.678Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ec/01426224f7acf60183d3921b25e1a8e71713d3d39cb464d64ac7aace6ea6/cytoolz-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:99f8e134c9be11649342853ec8c90837af4089fc8ff1e8f9a024a57d1fa08514", size = 1327800, upload-time = "2025-10-19T00:40:48.674Z" }, + { url = "https://files.pythonhosted.org/packages/b4/07/e07e8fedd332ac9626ad58bea31416dda19bfd14310731fa38b16a97e15f/cytoolz-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a6f44cf9319c30feb9a50aa513d777ef51efec16f31c404409e7deb8063df64", size = 997118, upload-time = "2025-10-19T00:40:50.919Z" }, + { url = "https://files.pythonhosted.org/packages/ab/72/c0f766d63ed2f9ea8dc8e1628d385d99b41fb834ce17ac3669e3f91e115d/cytoolz-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:945580dc158c557172fca899a35a99a16fbcebf6db0c77cb6621084bc82189f9", size = 991169, upload-time = "2025-10-19T00:40:52.887Z" }, + { url = "https://files.pythonhosted.org/packages/df/4b/1f757353d1bf33e56a7391ecc9bc49c1e529803b93a9d2f67fe5f92906fe/cytoolz-1.1.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:257905ec050d04f2f856854620d1e25556fd735064cebd81b460f54939b9f9d5", size = 2700680, upload-time = "2025-10-19T00:40:54.597Z" }, + { url = "https://files.pythonhosted.org/packages/25/73/9b25bb7ed8d419b9d6ff2ae0b3d06694de79a3f98f5169a1293ff7ad3a3f/cytoolz-1.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:82779049f352fb3ab5e8c993ab45edbb6e02efb1f17f0b50f4972c706cc51d76", size = 2824951, upload-time = "2025-10-19T00:40:56.137Z" }, + { url = "https://files.pythonhosted.org/packages/0c/93/9c787f7c909e75670fff467f2504725d06d8c3f51d6dfe22c55a08c8ccd4/cytoolz-1.1.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7d3e405e435320e08c5a1633afaf285a392e2d9cef35c925d91e2a31dfd7a688", size = 2679635, upload-time = "2025-10-19T00:40:57.799Z" }, + { url = "https://files.pythonhosted.org/packages/50/aa/9ee92c302cccf7a41a7311b325b51ebeff25d36c1f82bdc1bbe3f58dc947/cytoolz-1.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:923df8f5591e0d20543060c29909c149ab1963a7267037b39eee03a83dbc50a8", size = 2938352, upload-time = "2025-10-19T00:40:59.49Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a3/3b58c5c1692c3bacd65640d0d5c7267a7ebb76204f7507aec29de7063d2f/cytoolz-1.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:25db9e4862f22ea0ae2e56c8bec9fc9fd756b655ae13e8c7b5625d7ed1c582d4", size = 3022121, upload-time = "2025-10-19T00:41:01.209Z" }, + { url = "https://files.pythonhosted.org/packages/e1/93/c647bc3334355088c57351a536c2d4a83dd45f7de591fab383975e45bff9/cytoolz-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7a98deb11ccd8e5d9f9441ef2ff3352aab52226a2b7d04756caaa53cd612363", size = 2857656, upload-time = "2025-10-19T00:41:03.456Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c2/43fea146bf4141deea959e19dcddf268c5ed759dec5c2ed4a6941d711933/cytoolz-1.1.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dce4ee9fc99104bc77efdea80f32ca5a650cd653bcc8a1d984a931153d3d9b58", size = 2551284, upload-time = "2025-10-19T00:41:05.347Z" }, + { url = "https://files.pythonhosted.org/packages/6f/df/cdc7a81ce5cfcde7ef523143d545635fc37e80ccacce140ae58483a21da3/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80d6da158f7d20c15819701bbda1c041f0944ede2f564f5c739b1bc80a9ffb8b", size = 2721673, upload-time = "2025-10-19T00:41:07.528Z" }, + { url = "https://files.pythonhosted.org/packages/45/be/f8524bb9ad8812ad375e61238dcaa3177628234d1b908ad0b74e3657cafd/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3b5c5a192abda123ad45ef716ec9082b4cf7d95e9ada8291c5c2cc5558be858b", size = 2722884, upload-time = "2025-10-19T00:41:09.698Z" }, + { url = "https://files.pythonhosted.org/packages/23/e6/6bb8e4f9c267ad42d1ff77b6d2e4984665505afae50a216290e1d7311431/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5b399ce7d967b1cb6280250818b786be652aa8ddffd3c0bb5c48c6220d945ab5", size = 2685486, upload-time = "2025-10-19T00:41:11.349Z" }, + { url = "https://files.pythonhosted.org/packages/d7/dd/88619f9c8d2b682562c0c886bbb7c35720cb83fda2ac9a41bdd14073d9bd/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e7e29a1a03f00b4322196cfe8e2c38da9a6c8d573566052c586df83aacc5663c", size = 2839661, upload-time = "2025-10-19T00:41:13.053Z" }, + { url = "https://files.pythonhosted.org/packages/b8/8d/4478ebf471ee78dd496d254dc0f4ad729cd8e6ba8257de4f0a98a2838ef2/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5291b117d71652a817ec164e7011f18e6a51f8a352cc9a70ed5b976c51102fda", size = 2547095, upload-time = "2025-10-19T00:41:16.054Z" }, + { url = "https://files.pythonhosted.org/packages/e6/68/f1dea33367b0b3f64e199c230a14a6b6f243c189020effafd31e970ca527/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8caef62f846a9011676c51bda9189ae394cdd6bb17f2946ecaedc23243268320", size = 2870901, upload-time = "2025-10-19T00:41:17.727Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/33591c09dfe799b8fb692cf2ad383e2c41ab6593cc960b00d1fc8a145655/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:de425c5a8e3be7bb3a195e19191d28d9eb3c2038046064a92edc4505033ec9cb", size = 2765422, upload-time = "2025-10-19T00:41:20.075Z" }, + { url = "https://files.pythonhosted.org/packages/60/2b/a8aa233c9416df87f004e57ae4280bd5e1f389b4943d179f01020c6ec629/cytoolz-1.1.0-cp312-cp312-win32.whl", hash = "sha256:296440a870e8d1f2e1d1edf98f60f1532b9d3ab8dfbd4b25ec08cd76311e79e5", size = 901933, upload-time = "2025-10-19T00:41:21.646Z" }, + { url = "https://files.pythonhosted.org/packages/ad/33/4c9bdf8390dc01d2617c7f11930697157164a52259b6818ddfa2f94f89f4/cytoolz-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:07156987f224c6dac59aa18fb8bf91e1412f5463961862716a3381bf429c8699", size = 947989, upload-time = "2025-10-19T00:41:23.288Z" }, + { url = "https://files.pythonhosted.org/packages/35/ac/6e2708835875f5acb52318462ed296bf94ed0cb8c7cb70e62fbd03f709e3/cytoolz-1.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:23e616b38f5b3160c7bb45b0f84a8f3deb4bd26b29fb2dfc716f241c738e27b8", size = 903913, upload-time = "2025-10-19T00:41:24.992Z" }, + { url = "https://files.pythonhosted.org/packages/71/4a/b3ddb3ee44fe0045e95dd973746f93f033b6f92cce1fc3cbbe24b329943c/cytoolz-1.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:76c9b58555300be6dde87a41faf1f97966d79b9a678b7a526fcff75d28ef4945", size = 976728, upload-time = "2025-10-19T00:41:26.5Z" }, + { url = "https://files.pythonhosted.org/packages/42/21/a3681434aa425875dd828bb515924b0f12c37a55c7d2bc5c0c5de3aeb0b4/cytoolz-1.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d1d638b10d3144795655e9395566ce35807df09219fd7cacd9e6acbdef67946a", size = 986057, upload-time = "2025-10-19T00:41:28.911Z" }, + { url = "https://files.pythonhosted.org/packages/d9/cb/efc1b29e211e0670a6953222afaac84dcbba5cb940b130c0e49858978040/cytoolz-1.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:26801c1a165e84786a99e03c9c9973356caaca002d66727b761fb1042878ef06", size = 992632, upload-time = "2025-10-19T00:41:30.612Z" }, + { url = "https://files.pythonhosted.org/packages/be/b0/e50621d21e939338c97faab651f58ea7fa32101226a91de79ecfb89d71e1/cytoolz-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a9a464542912d3272f6dccc5142df057c71c6a5cbd30439389a732df401afb7", size = 1317534, upload-time = "2025-10-19T00:41:32.625Z" }, + { url = "https://files.pythonhosted.org/packages/0d/6b/25aa9739b0235a5bc4c1ea293186bc6822a4c6607acfe1422423287e7400/cytoolz-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ed6104fa942aa5784bf54f339563de637557e3443b105760bc4de8f16a7fc79b", size = 992336, upload-time = "2025-10-19T00:41:34.073Z" }, + { url = "https://files.pythonhosted.org/packages/e1/53/5f4deb0ff958805309d135d899c764364c1e8a632ce4994bd7c45fb98df2/cytoolz-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56161f0ab60dc4159ec343509abaf809dc88e85c7e420e354442c62e3e7cbb77", size = 986118, upload-time = "2025-10-19T00:41:35.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/e3/f6255b76c8cc0debbe1c0779130777dc0434da6d9b28a90d9f76f8cb67cd/cytoolz-1.1.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:832bd36cc9123535f1945acf6921f8a2a15acc19cfe4065b1c9b985a28671886", size = 2679563, upload-time = "2025-10-19T00:41:37.926Z" }, + { url = "https://files.pythonhosted.org/packages/59/8a/acc6e39a84e930522b965586ad3a36694f9bf247b23188ee0eb47b1c9ed1/cytoolz-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1842636b6e034f229bf084c2bcdcfd36c8437e752eefd2c74ce9e2f10415cb6e", size = 2813020, upload-time = "2025-10-19T00:41:39.935Z" }, + { url = "https://files.pythonhosted.org/packages/db/f5/0083608286ad1716eda7c41f868e85ac549f6fd6b7646993109fa0bdfd98/cytoolz-1.1.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:823df012ab90d2f2a0f92fea453528539bf71ac1879e518524cd0c86aa6df7b9", size = 2669312, upload-time = "2025-10-19T00:41:41.55Z" }, + { url = "https://files.pythonhosted.org/packages/47/a8/d16080b575520fe5da00cede1ece4e0a4180ec23f88dcdc6a2f5a90a7f7f/cytoolz-1.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f1fcf9e7e7b3487883ff3f815abc35b89dcc45c4cf81c72b7ee457aa72d197b", size = 2922147, upload-time = "2025-10-19T00:41:43.252Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bc/716c9c1243701e58cad511eb3937fd550e645293c5ed1907639c5d66f194/cytoolz-1.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4cdb3fa1772116827f263f25b0cdd44c663b6701346a56411960534a06c082de", size = 2981602, upload-time = "2025-10-19T00:41:45.354Z" }, + { url = "https://files.pythonhosted.org/packages/14/bc/571b232996846b27f4ac0c957dc8bf60261e9b4d0d01c8d955e82329544e/cytoolz-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d1b5c95041741b81430454db65183e133976f45ac3c03454cfa8147952568529", size = 2830103, upload-time = "2025-10-19T00:41:47.959Z" }, + { url = "https://files.pythonhosted.org/packages/5b/55/c594afb46ecd78e4b7e1fb92c947ed041807875661ceda73baaf61baba4f/cytoolz-1.1.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b2079fd9f1a65f4c61e6278c8a6d4f85edf30c606df8d5b32f1add88cbbe2286", size = 2533802, upload-time = "2025-10-19T00:41:49.683Z" }, + { url = "https://files.pythonhosted.org/packages/93/83/1edcf95832555a78fc43b975f3ebe8ceadcc9664dd47fd33747a14df5069/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a92a320d72bef1c7e2d4c6d875125cf57fc38be45feb3fac1bfa64ea401f54a4", size = 2706071, upload-time = "2025-10-19T00:41:51.386Z" }, + { url = "https://files.pythonhosted.org/packages/e2/df/035a408df87f25cfe3611557818b250126cd2281b2104cd88395de205583/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06d1c79aa51e6a92a90b0e456ebce2288f03dd6a76c7f582bfaa3eda7692e8a5", size = 2707575, upload-time = "2025-10-19T00:41:53.305Z" }, + { url = "https://files.pythonhosted.org/packages/7a/a4/ef78e13e16e93bf695a9331321d75fbc834a088d941f1c19e6b63314e257/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e1d7be25f6971e986a52b6d3a0da28e1941850985417c35528f6823aef2cfec5", size = 2660486, upload-time = "2025-10-19T00:41:55.542Z" }, + { url = "https://files.pythonhosted.org/packages/30/7a/2c3d60682b26058d435416c4e90d4a94db854de5be944dfd069ed1be648a/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:964b248edc31efc50a65e9eaa0c845718503823439d2fa5f8d2c7e974c2b5409", size = 2819605, upload-time = "2025-10-19T00:41:58.257Z" }, + { url = "https://files.pythonhosted.org/packages/45/92/19b722a1d83cc443fbc0c16e0dc376f8a451437890d3d9ee370358cf0709/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c9ff2b3c57c79b65cb5be14a18c6fd4a06d5036fb3f33e973a9f70e9ac13ca28", size = 2533559, upload-time = "2025-10-19T00:42:00.324Z" }, + { url = "https://files.pythonhosted.org/packages/1d/15/fa3b7891da51115204416f14192081d3dea0eaee091f123fdc1347de8dd1/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:22290b73086af600042d99f5ce52a43d4ad9872c382610413176e19fc1d4fd2d", size = 2839171, upload-time = "2025-10-19T00:42:01.881Z" }, + { url = "https://files.pythonhosted.org/packages/46/40/d3519d5cd86eebebf1e8b7174ec32dfb6ecec67b48b0cfb92bf226659b5a/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a2ade74fccd080ea793382968913ee38d7a35c921df435bbf0a6aeecf0d17574", size = 2743379, upload-time = "2025-10-19T00:42:03.809Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/a9e7511f0a13fdbefa5bf73cf8e4763878140de9453fd3e50d6ac57b6be7/cytoolz-1.1.0-cp313-cp313-win32.whl", hash = "sha256:db5dbcfda1c00e937426cbf9bdc63c24ebbc358c3263bfcbc1ab4a88dc52aa8e", size = 900844, upload-time = "2025-10-19T00:42:05.967Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a4/fb7eb403c6a4c81e5a30363f34a71adcc8bf5292dc8ea32e2440aa5668f2/cytoolz-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9e2d3fe3b45c3eb7233746f7aca37789be3dceec3e07dcc406d3e045ea0f7bdc", size = 946461, upload-time = "2025-10-19T00:42:07.983Z" }, + { url = "https://files.pythonhosted.org/packages/93/bb/1c8c33d353548d240bc6e8677ee8c3560ce5fa2f084e928facf7c35a6dcf/cytoolz-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:32c559f95ff44a9ebcbd934acaa1e6dc8f3e6ffce4762a79a88528064873d6d5", size = 902673, upload-time = "2025-10-19T00:42:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ba/4a53acc60f59030fcaf48c7766e3c4c81bd997379425aa45b129396557b5/cytoolz-1.1.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9e2cd93b28f667c5870a070ab2b8bb4397470a85c4b204f2454b0ad001cd1ca3", size = 1372336, upload-time = "2025-10-19T00:42:12.104Z" }, + { url = "https://files.pythonhosted.org/packages/ac/90/f28fd8ad8319d8f5c8da69a2c29b8cf52a6d2c0161602d92b366d58926ab/cytoolz-1.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f494124e141a9361f31d79875fe7ea459a3be2b9dadd90480427c0c52a0943d4", size = 1011930, upload-time = "2025-10-19T00:42:14.231Z" }, + { url = "https://files.pythonhosted.org/packages/c9/95/4561c4e0ad1c944f7673d6d916405d68080f10552cfc5d69a1cf2475a9a1/cytoolz-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53a3262bf221f19437ed544bf8c0e1980c81ac8e2a53d87a9bc075dba943d36f", size = 1020610, upload-time = "2025-10-19T00:42:15.877Z" }, + { url = "https://files.pythonhosted.org/packages/c3/14/b2e1ffa4995ec36e1372e243411ff36325e4e6d7ffa34eb4098f5357d176/cytoolz-1.1.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:47663e57d3f3f124921f38055e86a1022d0844c444ede2e8f090d3bbf80deb65", size = 2917327, upload-time = "2025-10-19T00:42:17.706Z" }, + { url = "https://files.pythonhosted.org/packages/4a/29/7cab6c609b4514ac84cca2f7dca6c509977a8fc16d27c3a50e97f105fa6a/cytoolz-1.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a5a8755c4104ee4e3d5ba434c543b5f85fdee6a1f1df33d93f518294da793a60", size = 3108951, upload-time = "2025-10-19T00:42:19.363Z" }, + { url = "https://files.pythonhosted.org/packages/9a/71/1d1103b819458679277206ad07d78ca6b31c4bb88d6463fd193e19bfb270/cytoolz-1.1.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4d96ff3d381423af1b105295f97de86d1db51732c9566eb37378bab6670c5010", size = 2807149, upload-time = "2025-10-19T00:42:20.964Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d4/3d83a05a21e7d2ed2b9e6daf489999c29934b005de9190272b8a2e3735d0/cytoolz-1.1.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0ec96b3d537cdf47d4e76ded199f7440715f4c71029b45445cff92c1248808c2", size = 3111608, upload-time = "2025-10-19T00:42:22.684Z" }, + { url = "https://files.pythonhosted.org/packages/51/88/96f68354c3d4af68de41f0db4fe41a23b96a50a4a416636cea325490cfeb/cytoolz-1.1.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:208e2f2ef90a32b0acbff3303d90d89b13570a228d491d2e622a7883a3c68148", size = 3179373, upload-time = "2025-10-19T00:42:24.395Z" }, + { url = "https://files.pythonhosted.org/packages/ce/50/ed87a5cd8e6f27ffbb64c39e9730e18ec66c37631db2888ae711909f10c9/cytoolz-1.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d416a81bb0bd517558668e49d30a7475b5445f9bbafaab7dcf066f1e9adba36", size = 3003120, upload-time = "2025-10-19T00:42:26.18Z" }, + { url = "https://files.pythonhosted.org/packages/d3/a7/acde155b050d6eaa8e9c7845c98fc5fb28501568e78e83ebbf44f8855274/cytoolz-1.1.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f32e94c91ffe49af04835ee713ebd8e005c85ebe83e7e1fdcc00f27164c2d636", size = 2703225, upload-time = "2025-10-19T00:42:27.93Z" }, + { url = "https://files.pythonhosted.org/packages/1b/b6/9d518597c5bdea626b61101e8d2ff94124787a42259dafd9f5fc396f346a/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15d0c6405efc040499c46df44056a5c382f551a7624a41cf3e4c84a96b988a15", size = 2956033, upload-time = "2025-10-19T00:42:29.993Z" }, + { url = "https://files.pythonhosted.org/packages/89/7a/93e5f860926165538c85e1c5e1670ad3424f158df810f8ccd269da652138/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:bf069c5381d757debae891401b88b3a346ba3a28ca45ba9251103b282463fad8", size = 2862950, upload-time = "2025-10-19T00:42:31.803Z" }, + { url = "https://files.pythonhosted.org/packages/76/e6/99d6af00487bedc27597b54c9fcbfd5c833a69c6b7a9b9f0fff777bfc7aa/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d5cf15892e63411ec1bd67deff0e84317d974e6ab2cdfefdd4a7cea2989df66", size = 2861757, upload-time = "2025-10-19T00:42:33.625Z" }, + { url = "https://files.pythonhosted.org/packages/71/ca/adfa1fb7949478135a37755cb8e88c20cd6b75c22a05f1128f05f3ab2c60/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3e3872c21170f8341656f8692f8939e8800dcee6549ad2474d4c817bdefd62cd", size = 2979049, upload-time = "2025-10-19T00:42:35.377Z" }, + { url = "https://files.pythonhosted.org/packages/70/4c/7bf47a03a4497d500bc73d4204e2d907771a017fa4457741b2a1d7c09319/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b9ddeff8e8fd65eb1fcefa61018100b2b627e759ea6ad275d2e2a93ffac147bf", size = 2699492, upload-time = "2025-10-19T00:42:37.133Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e7/3d034b0e4817314f07aa465d5864e9b8df9d25cb260a53dd84583e491558/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:02feeeda93e1fa3b33414eb57c2b0aefd1db8f558dd33fdfcce664a0f86056e4", size = 2995646, upload-time = "2025-10-19T00:42:38.912Z" }, + { url = "https://files.pythonhosted.org/packages/c1/62/be357181c71648d9fe1d1ce91cd42c63457dcf3c158e144416fd51dced83/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d08154ad45349162b6c37f12d5d1b2e6eef338e657b85e1621e4e6a4a69d64cb", size = 2919481, upload-time = "2025-10-19T00:42:40.85Z" }, + { url = "https://files.pythonhosted.org/packages/62/d5/bf5434fde726c4f80cb99912b2d8e0afa1587557e2a2d7e0315eb942f2de/cytoolz-1.1.0-cp313-cp313t-win32.whl", hash = "sha256:10ae4718a056948d73ca3e1bb9ab1f95f897ec1e362f829b9d37cc29ab566c60", size = 951595, upload-time = "2025-10-19T00:42:42.877Z" }, + { url = "https://files.pythonhosted.org/packages/64/29/39c161e9204a9715321ddea698cbd0abc317e78522c7c642363c20589e71/cytoolz-1.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:1bb77bc6197e5cb19784b6a42bb0f8427e81737a630d9d7dda62ed31733f9e6c", size = 1004445, upload-time = "2025-10-19T00:42:44.855Z" }, + { url = "https://files.pythonhosted.org/packages/e2/5a/7cbff5e9a689f558cb0bdf277f9562b2ac51acf7cd15e055b8c3efb0e1ef/cytoolz-1.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:563dda652c6ff52d215704fbe6b491879b78d7bbbb3a9524ec8e763483cb459f", size = 926207, upload-time = "2025-10-19T00:42:46.456Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e8/297a85ba700f437c01eba962428e6ab4572f6c3e68e8ff442ce5c9d3a496/cytoolz-1.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d542cee7c7882d2a914a33dec4d3600416fb336734df979473249d4c53d207a1", size = 980613, upload-time = "2025-10-19T00:42:47.988Z" }, + { url = "https://files.pythonhosted.org/packages/e8/d7/2b02c9d18e9cc263a0e22690f78080809f1eafe72f26b29ccc115d3bf5c8/cytoolz-1.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:31922849b701b0f24bb62e56eb2488dcd3aa6ae3057694bd6b3b7c4c2bc27c2f", size = 990476, upload-time = "2025-10-19T00:42:49.653Z" }, + { url = "https://files.pythonhosted.org/packages/89/26/b6b159d2929310fca0eff8a4989cd4b1ecbdf7c46fdff46c7a20fcae55c8/cytoolz-1.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:e68308d32afd31943314735c1335e4ab5696110e96b405f6bdb8f2a8dc771a16", size = 992712, upload-time = "2025-10-19T00:42:51.306Z" }, + { url = "https://files.pythonhosted.org/packages/42/a0/f7c572aa151ed466b0fce4a327c3cc916d3ef3c82e341be59ea4b9bee9e4/cytoolz-1.1.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fc4bb48b3b866e1867f7c6411a4229e5b44be3989060663713e10efc24c9bd5f", size = 1322596, upload-time = "2025-10-19T00:42:52.978Z" }, + { url = "https://files.pythonhosted.org/packages/72/7c/a55d035e20b77b6725e85c8f1a418b3a4c23967288b8b0c2d1a40f158cbe/cytoolz-1.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:456f77207d1445025d7ef262b8370a05492dcb1490cb428b0f3bf1bd744a89b0", size = 992825, upload-time = "2025-10-19T00:42:55.026Z" }, + { url = "https://files.pythonhosted.org/packages/03/af/39d2d3db322136e12e9336a1f13bab51eab88b386bfb11f91d3faff8ba34/cytoolz-1.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:174ebc71ebb20a9baeffce6ee07ee2cd913754325c93f99d767380d8317930f7", size = 990525, upload-time = "2025-10-19T00:42:56.666Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bd/65d7a869d307f9b10ad45c2c1cbb40b81a8d0ed1138fa17fd904f5c83298/cytoolz-1.1.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8b3604fef602bcd53415055a4f68468339192fd17be39e687ae24f476d23d56e", size = 2672409, upload-time = "2025-10-19T00:42:58.81Z" }, + { url = "https://files.pythonhosted.org/packages/2d/fb/74dfd844bfd67e810bd36e8e3903a143035447245828e7fcd7c81351d775/cytoolz-1.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3604b959a01f64c366e7d10ec7634d5f5cfe10301e27a8f090f6eb3b2a628a18", size = 2808477, upload-time = "2025-10-19T00:43:00.577Z" }, + { url = "https://files.pythonhosted.org/packages/d6/1f/587686c43e31c19241ec317da66438d093523921ea7749bbc65558a30df9/cytoolz-1.1.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6db2127a3c1bc2f59f08010d2ae53a760771a9de2f67423ad8d400e9ba4276e8", size = 2636881, upload-time = "2025-10-19T00:43:02.24Z" }, + { url = "https://files.pythonhosted.org/packages/bc/6d/90468cd34f77cb38a11af52c4dc6199efcc97a486395a21bef72e9b7602e/cytoolz-1.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56584745ac647993a016a21bc76399113b7595e312f8d0a1b140c9fcf9b58a27", size = 2937315, upload-time = "2025-10-19T00:43:03.954Z" }, + { url = "https://files.pythonhosted.org/packages/d9/50/7b92cd78c613b92e3509e6291d3fb7e0d72ebda999a8df806a96c40ca9ab/cytoolz-1.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:db2c4c3a7f7bd7e03bb1a236a125c8feb86c75802f4ecda6ecfaf946610b2930", size = 2959988, upload-time = "2025-10-19T00:43:05.758Z" }, + { url = "https://files.pythonhosted.org/packages/44/d5/34b5a28a8d9bb329f984b4c2259407ca3f501d1abeb01bacea07937d85d1/cytoolz-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48cb8a692111a285d2b9acd16d185428176bfbffa8a7c274308525fccd01dd42", size = 2795116, upload-time = "2025-10-19T00:43:07.411Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d9/5dd829e33273ec03bdc3c812e6c3281987ae2c5c91645582f6c331544a64/cytoolz-1.1.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d2f344ba5eb17dcf38ee37fdde726f69053f54927db8f8a1bed6ac61e5b1890d", size = 2535390, upload-time = "2025-10-19T00:43:09.104Z" }, + { url = "https://files.pythonhosted.org/packages/87/1f/7f9c58068a8eec2183110df051bc6b69dd621143f84473eeb6dc1b32905a/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:abf76b1c1abd031f098f293b6d90ee08bdaa45f8b5678430e331d991b82684b1", size = 2704834, upload-time = "2025-10-19T00:43:10.942Z" }, + { url = "https://files.pythonhosted.org/packages/d2/90/667def5665333575d01a65fe3ec0ca31b897895f6e3bc1a42d6ea3659369/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:ddf9a38a5b686091265ff45b53d142e44a538cd6c2e70610d3bc6be094219032", size = 2658441, upload-time = "2025-10-19T00:43:12.655Z" }, + { url = "https://files.pythonhosted.org/packages/23/79/6615f9a14960bd29ac98b823777b6589357833f65cf1a11b5abc1587c120/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:946786755274f07bb2be0400f28adb31d7d85a7c7001873c0a8e24a503428fb3", size = 2654766, upload-time = "2025-10-19T00:43:14.325Z" }, + { url = "https://files.pythonhosted.org/packages/b0/99/be59c6e0ae02153ef10ae1ff0f380fb19d973c651b50cf829a731f6c9e79/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b8f78b9fed79cf185ad4ddec099abeef45951bdcb416c5835ba05f0a1242c7", size = 2827649, upload-time = "2025-10-19T00:43:16.132Z" }, + { url = "https://files.pythonhosted.org/packages/19/b7/854ddcf9f9618844108677c20d48f4611b5c636956adea0f0e85e027608f/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fccde6efefdbc02e676ccb352a2ccc8a8e929f59a1c6d3d60bb78e923a49ca44", size = 2533456, upload-time = "2025-10-19T00:43:17.764Z" }, + { url = "https://files.pythonhosted.org/packages/45/66/bfe6fbb2bdcf03c8377c8c2f542576e15f3340c905a09d78a6cb3badd39a/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:717b7775313da5f51b0fbf50d865aa9c39cb241bd4cb605df3cf2246d6567397", size = 2826455, upload-time = "2025-10-19T00:43:19.561Z" }, + { url = "https://files.pythonhosted.org/packages/c3/0c/cce4047bd927e95f59e73319c02c9bc86bd3d76392e0eb9e41a1147a479c/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5158744a09d0e0e4a4f82225e3a3c4ebf38f9ae74467aaa905467270e52f2794", size = 2714897, upload-time = "2025-10-19T00:43:21.291Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9a/061323bb289b565802bad14fb7ab59fcd8713105df142bcf4dd9ff64f8ac/cytoolz-1.1.0-cp314-cp314-win32.whl", hash = "sha256:1ed534bdbbf063b2bb28fca7d0f6723a3e5a72b086e7c7fe6d74ae8c3e4d00e2", size = 901490, upload-time = "2025-10-19T00:43:22.895Z" }, + { url = "https://files.pythonhosted.org/packages/a3/20/1f3a733d710d2a25d6f10b463bef55ada52fe6392a5d233c8d770191f48a/cytoolz-1.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:472c1c9a085f5ad973ec0ad7f0b9ba0969faea6f96c9e397f6293d386f3a25ec", size = 946730, upload-time = "2025-10-19T00:43:24.838Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/2d657db4a5d1c10a152061800f812caba9ef20d7bd2406f51a5fd800c180/cytoolz-1.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:a7ad7ca3386fa86bd301be3fa36e7f0acb024f412f665937955acfc8eb42deff", size = 905722, upload-time = "2025-10-19T00:43:26.439Z" }, + { url = "https://files.pythonhosted.org/packages/19/97/b4a8c76796a9a8b9bc90c7992840fa1589a1af8e0426562dea4ce9b384a7/cytoolz-1.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:64b63ed4b71b1ba813300ad0f06b8aff19a12cf51116e0e4f1ed837cea4debcf", size = 1372606, upload-time = "2025-10-19T00:43:28.491Z" }, + { url = "https://files.pythonhosted.org/packages/08/d4/a1bb1a32b454a2d650db8374ff3bf875ba0fc1c36e6446ec02a83b9140a1/cytoolz-1.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a60ba6f2ed9eb0003a737e1ee1e9fa2258e749da6477946008d4324efa25149f", size = 1012189, upload-time = "2025-10-19T00:43:30.177Z" }, + { url = "https://files.pythonhosted.org/packages/21/4b/2f5cbbd81588918ee7dd70cffb66731608f578a9b72166aafa991071af7d/cytoolz-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1aa58e2434d732241f7f051e6f17657e969a89971025e24578b5cbc6f1346485", size = 1020624, upload-time = "2025-10-19T00:43:31.712Z" }, + { url = "https://files.pythonhosted.org/packages/f5/99/c4954dd86cd593cd776a038b36795a259b8b5c12cbab6363edf5f6d9c909/cytoolz-1.1.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6965af3fc7214645970e312deb9bd35a213a1eaabcfef4f39115e60bf2f76867", size = 2917016, upload-time = "2025-10-19T00:43:33.531Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7c/f1f70a17e272b433232bc8a27df97e46b202d6cc07e3b0d63f7f41ba0f2d/cytoolz-1.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ddd2863f321d67527d3b67a93000a378ad6f967056f68c06467fe011278a6d0e", size = 3107634, upload-time = "2025-10-19T00:43:35.57Z" }, + { url = "https://files.pythonhosted.org/packages/8f/bd/c3226a57474b4aef1f90040510cba30d0decd3515fed48dc229b37c2f898/cytoolz-1.1.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4e6b428e9eb5126053c2ae0efa62512ff4b38ed3951f4d0888ca7005d63e56f5", size = 2806221, upload-time = "2025-10-19T00:43:37.707Z" }, + { url = "https://files.pythonhosted.org/packages/c3/47/2f7bfe4aaa1e07dc9828bea228ed744faf73b26aee0c1bdf3b5520bf1909/cytoolz-1.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d758e5ef311d2671e0ae8c214c52e44617cf1e58bef8f022b547b9802a5a7f30", size = 3107671, upload-time = "2025-10-19T00:43:39.401Z" }, + { url = "https://files.pythonhosted.org/packages/4d/12/6ff3b04fbd1369d0fcd5f8b5910ba6e427e33bf113754c4c35ec3f747924/cytoolz-1.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a95416eca473e6c1179b48d86adcf528b59c63ce78f4cb9934f2e413afa9b56b", size = 3176350, upload-time = "2025-10-19T00:43:41.148Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/6691d986b728e77b5d2872743ebcd962d37a2d0f7e9ad95a81b284fbf905/cytoolz-1.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:36c8ede93525cf11e2cc787b7156e5cecd7340193ef800b816a16f1404a8dc6d", size = 3001173, upload-time = "2025-10-19T00:43:42.923Z" }, + { url = "https://files.pythonhosted.org/packages/7a/cb/f59d83a5058e1198db5a1f04e4a124c94d60390e4fa89b6d2e38ee8288a0/cytoolz-1.1.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c949755b6d8a649c5fbc888bc30915926f1b09fe42fea9f289e297c2f6ddd3", size = 2701374, upload-time = "2025-10-19T00:43:44.716Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f0/1ae6d28df503b0bdae094879da2072b8ba13db5919cd3798918761578411/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e1b6d37545816905a76d9ed59fa4e332f929e879f062a39ea0f6f620405cdc27", size = 2953081, upload-time = "2025-10-19T00:43:47.103Z" }, + { url = "https://files.pythonhosted.org/packages/f4/06/d86fe811c6222dc32d3e08f5d88d2be598a6055b4d0590e7c1428d55c386/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:05332112d4087904842b36954cd1d3fc0e463a2f4a7ef9477bd241427c593c3b", size = 2862228, upload-time = "2025-10-19T00:43:49.353Z" }, + { url = "https://files.pythonhosted.org/packages/ae/32/978ef6f42623be44a0a03ae9de875ab54aa26c7e38c5c4cd505460b0927d/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:31538ca2fad2d688cbd962ccc3f1da847329e2258a52940f10a2ac0719e526be", size = 2861971, upload-time = "2025-10-19T00:43:51.028Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f7/74c69497e756b752b359925d1feef68b91df024a4124a823740f675dacd3/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:747562aa70abf219ea16f07d50ac0157db856d447f7f498f592e097cbc77df0b", size = 2975304, upload-time = "2025-10-19T00:43:52.99Z" }, + { url = "https://files.pythonhosted.org/packages/5b/2b/3ce0e6889a6491f3418ad4d84ae407b8456b02169a5a1f87990dbba7433b/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:3dc15c48b20c0f467e15e341e102896c8422dccf8efc6322def5c1b02f074629", size = 2697371, upload-time = "2025-10-19T00:43:55.312Z" }, + { url = "https://files.pythonhosted.org/packages/15/87/c616577f0891d97860643c845f7221e95240aa589586de727e28a5eb6e52/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:3c03137ee6103ba92d5d6ad6a510e86fded69cd67050bd8a1843f15283be17ac", size = 2992436, upload-time = "2025-10-19T00:43:57.253Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9f/490c81bffb3428ab1fa114051fbb5ba18aaa2e2fe4da5bf4170ca524e6b3/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:be8e298d88f88bd172b59912240558be3b7a04959375646e7fd4996401452941", size = 2917612, upload-time = "2025-10-19T00:43:59.423Z" }, + { url = "https://files.pythonhosted.org/packages/66/35/0fec2769660ca6472bbf3317ab634675827bb706d193e3240aaf20eab961/cytoolz-1.1.0-cp314-cp314t-win32.whl", hash = "sha256:3d407140f5604a89578285d4aac7b18b8eafa055cf776e781aabb89c48738fad", size = 960842, upload-time = "2025-10-19T00:44:01.143Z" }, + { url = "https://files.pythonhosted.org/packages/46/b4/b7ce3d3cd20337becfec978ecfa6d0ef64884d0cf32d44edfed8700914b9/cytoolz-1.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:56e5afb69eb6e1b3ffc34716ee5f92ffbdb5cb003b3a5ca4d4b0fe700e217162", size = 1020835, upload-time = "2025-10-19T00:44:03.246Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1f/0498009aa563a9c5d04f520aadc6e1c0942434d089d0b2f51ea986470f55/cytoolz-1.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:27b19b4a286b3ff52040efa42dbe403730aebe5fdfd2def704eb285e2125c63e", size = 927963, upload-time = "2025-10-19T00:44:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/84/32/0522207170294cf691112a93c70a8ef942f60fa9ff8e793b63b1f09cedc0/cytoolz-1.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f32e93a55681d782fc6af939f6df36509d65122423cbc930be39b141064adff8", size = 922014, upload-time = "2025-10-19T00:44:44.911Z" }, + { url = "https://files.pythonhosted.org/packages/4c/49/9be2d24adaa18fa307ff14e3e43f02b2ae4b69c4ce51cee6889eb2114990/cytoolz-1.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:5d9bc596751cbda8073e65be02ca11706f00029768fbbbc81e11a8c290bb41aa", size = 918134, upload-time = "2025-10-19T00:44:47.122Z" }, + { url = "https://files.pythonhosted.org/packages/5c/b3/6a76c3b94c6c87c72ea822e7e67405be6b649c2e37778eeac7c0c0c69de8/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9b16660d01c3931951fab49db422c627897c38c1a1f0393a97582004019a4887", size = 981970, upload-time = "2025-10-19T00:44:48.906Z" }, + { url = "https://files.pythonhosted.org/packages/f6/8a/606e4c7ed14aa6a86aee6ca84a2cb804754dc6c4905b8f94e09e49f1ce60/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b7de5718e2113d4efccea3f06055758cdbc17388ecc3341ba4d1d812837d7c1a", size = 978877, upload-time = "2025-10-19T00:44:50.819Z" }, + { url = "https://files.pythonhosted.org/packages/97/ec/ad474dcb1f6c1ebfdda3c2ad2edbb1af122a0e79c9ff2cb901ffb5f59662/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a12a2a1a6bc44099491c05a12039efa08cc33a3d0f8c7b0566185e085e139283", size = 964279, upload-time = "2025-10-19T00:44:52.476Z" }, + { url = "https://files.pythonhosted.org/packages/68/8c/d245fd416c69d27d51f14d5ad62acc4ee5971088ee31c40ffe1cc109af68/cytoolz-1.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:047defa7f5f9a32f82373dbc3957289562e8a3fa58ae02ec8e4dca4f43a33a21", size = 916630, upload-time = "2025-10-19T00:44:54.059Z" }, +] + +[[package]] +name = "debugpy" +version = "1.8.21" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/aa/12037145b7a56eaa5b29b41872f7a21b538e807e13f32c4d3c46e59be084/debugpy-1.8.21.tar.gz", hash = "sha256:a3c53278e84c94e11bd87c53970ec391d1a67396c8b22609fcac576520e611a6", size = 1697577, upload-time = "2026-06-01T19:30:35.156Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/f3/6b1d4c71f4cbb5360009f928934a03b42906f28fc7b3f7f35f04e58acead/debugpy-1.8.21-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:8eeab7b5462f683452c57c0126aaa5ec4e974ddb705f39ba87dff8818c8e08f9", size = 2113873, upload-time = "2026-06-01T19:30:37.148Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f2/17c3bf91cebc173bfbf5734cd2669723d0a35c0cf9d2fd2124546efeae83/debugpy-1.8.21-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:0fddfdc130ac6d8bfc0415b0409822fa901c8f310e5c945ac5653a0352532344", size = 3004715, upload-time = "2026-06-01T19:30:38.888Z" }, + { url = "https://files.pythonhosted.org/packages/5a/22/1f8efd80c7b5909e760f9cfd0c9e8681d2d35d532f7c0a40760cd4da4a19/debugpy-1.8.21-cp310-cp310-win32.whl", hash = "sha256:72b5d676c4cbfac3bac5bb01c138a4656e843f93f03ce2a5f4e394ad49fbee73", size = 5303455, upload-time = "2026-06-01T19:30:40.52Z" }, + { url = "https://files.pythonhosted.org/packages/da/ce/54c79abd6cccef92fa7b43d97e3acafedf4d645557267ece05e948b5e4b8/debugpy-1.8.21-cp310-cp310-win_amd64.whl", hash = "sha256:a7fe47fd23da57b9e0bec3f4a8ee65a2dc55782455ed7f2141d75ab5d2eaeef5", size = 5331751, upload-time = "2026-06-01T19:30:42.146Z" }, + { url = "https://files.pythonhosted.org/packages/89/fb/cbf306d6e07a313a91e7171a98669054502840931432c227cfd505ee367f/debugpy-1.8.21-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:da456226c7b4c69e35dbe35dcee6623d912000a77816db7856a41af1c72a0264", size = 2203120, upload-time = "2026-06-01T19:30:43.964Z" }, + { url = "https://files.pythonhosted.org/packages/aa/57/aa739bd4ad2cbf96aeb1b20b56918ddd5ae4c28b68709bfcd327f02123ee/debugpy-1.8.21-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:f68b891688e61bdc08b8d364d919ff0051e0b94657b39dcd027bc3173edb7cdc", size = 3059958, upload-time = "2026-06-01T19:30:45.622Z" }, + { url = "https://files.pythonhosted.org/packages/a8/31/453d2c9a23d133fe2c8ec7ca1d816ded52a913487fe3ffef7c01b4b706af/debugpy-1.8.21-cp311-cp311-win32.whl", hash = "sha256:f843a8b08c2edeaf9b1582eed4f25441af21a297c22ff16bf76a662557aa9c9e", size = 5236515, upload-time = "2026-06-01T19:30:47.461Z" }, + { url = "https://files.pythonhosted.org/packages/60/94/6660de2f2d7bf388f229335ba4637646eebabdbf38564cb439a95a9193c9/debugpy-1.8.21-cp311-cp311-win_amd64.whl", hash = "sha256:84c564d8cc701d41843b29a92814c1f1bef6798724ca9d675c284ad9f6a547d7", size = 5256138, upload-time = "2026-06-01T19:30:49.113Z" }, + { url = "https://files.pythonhosted.org/packages/a2/df/bf625547431a9cadc9f4cbfeda38866e2b17f6aed147b625377e87834449/debugpy-1.8.21-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:9f96713896f39c3dff0ee841f47320c3f2983d33c341e009361bb0ebc79adc4e", size = 2483609, upload-time = "2026-06-01T19:30:50.794Z" }, + { url = "https://files.pythonhosted.org/packages/bf/09/59324b903599031ff9faaec1758292409f6561a0ec2492fe4b703327705a/debugpy-1.8.21-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:c193d474f0a211191f2b4449d2d06157c689013035bd952f3b617e0ef422b176", size = 3968900, upload-time = "2026-06-01T19:30:52.341Z" }, + { url = "https://files.pythonhosted.org/packages/14/cd/27f65b805d7fe005c44e1a36b9183ecdfbcdbf9d3e721a5115d461ecc7ee/debugpy-1.8.21-cp312-cp312-win32.whl", hash = "sha256:4743373c1cac7f9e74a1b9915bf1dbe0e900eca657ffb170ae07ac8363205ae9", size = 5336340, upload-time = "2026-06-01T19:30:54.047Z" }, + { url = "https://files.pythonhosted.org/packages/77/1d/c84e30c0c674184948b66f076ab271c01d940618a2824c23cd035a27bc20/debugpy-1.8.21-cp312-cp312-win_amd64.whl", hash = "sha256:bd7ba9dd3daa7c2f942c6ca8d4695a16bf9ac16b63615261c7982bc74f7ed20c", size = 5374751, upload-time = "2026-06-01T19:30:55.891Z" }, + { url = "https://files.pythonhosted.org/packages/77/6b/d817e1f8cc77aa055d37fba092e0febfdff40fe652d8d53d4cd7a86ad98d/debugpy-1.8.21-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:13678151fc401e2d68c9880b91e28714f797d40422994572b24560ef80910a88", size = 2477398, upload-time = "2026-06-01T19:30:57.644Z" }, + { url = "https://files.pythonhosted.org/packages/48/57/412421516afc3055fa577516f00beec3d663f9b0ab330639547ae6c57720/debugpy-1.8.21-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:ecbd158386c31ffe71d46f72d44d56e66331ab9b16cad649156d514368f23ab2", size = 3962096, upload-time = "2026-06-01T19:30:59.235Z" }, + { url = "https://files.pythonhosted.org/packages/c1/62/2c616337cf6ba7b07ebbc97f02c6c945a8e2f76b365e33ee809c32ee36d1/debugpy-1.8.21-cp313-cp313-win32.whl", hash = "sha256:2c2ae706dec41d99a9ca1f7ebc987a83e65578363be6f6b3ac9067504917fae1", size = 5336288, upload-time = "2026-06-01T19:31:00.79Z" }, + { url = "https://files.pythonhosted.org/packages/f8/99/9175103392f84c4b1bf7622888cdc68da07f0ff7d9e581266428f6776033/debugpy-1.8.21-cp313-cp313-win_amd64.whl", hash = "sha256:aa648733047443eb1d07682c4ef287d36a54507b643ffdf38b09a3ef002c72a0", size = 5376567, upload-time = "2026-06-01T19:31:02.56Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3d/f4bbb323a548bfab2af3d6b4ffd9bf22636e55956a1285d317a1de643aad/debugpy-1.8.21-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9bb2a685287a2ac9b181cde89edcec64845cb51de7faaa75badb9a698bc24782", size = 2477209, upload-time = "2026-06-01T19:31:04.157Z" }, + { url = "https://files.pythonhosted.org/packages/8c/2d/6e7ec524984a1702777868de49a4c53202bddac2a432a76a093469587750/debugpy-1.8.21-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:3d6922439bf33fd38a3e2c447869ebc7b97da5cd3d329ff1ef9bc06c4903437e", size = 3927115, upload-time = "2026-06-01T19:31:05.863Z" }, + { url = "https://files.pythonhosted.org/packages/97/47/d1aa6d64005a98a9144647d99306b419396f9ad7bf1d73c119e17a81fb4d/debugpy-1.8.21-cp314-cp314-win32.whl", hash = "sha256:15d4963bd5ffa48f0da0947fd06757fa7621945048a14ad7705431566d3c0e7c", size = 5336724, upload-time = "2026-06-01T19:31:07.711Z" }, + { url = "https://files.pythonhosted.org/packages/5f/67/b905b90d163af11878c1af8abafa4a25206335e112e284e413454543a6da/debugpy-1.8.21-cp314-cp314-win_amd64.whl", hash = "sha256:fe0744a12353406de0ae8ccff0d0a4a666f00801a3db8fd04e7a5f761cd520e8", size = 5373803, upload-time = "2026-06-01T19:31:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/95/51/67e7cf11a53e40694f720457d5b3a1cdaaa3d5a9a633e482f225456b93ff/debugpy-1.8.21-py2.py3-none-any.whl", hash = "sha256:b1e37d333663c8851516a47364ef473da127f9caebe4417e6df6f5825a7e9a92", size = 5352888, upload-time = "2026-06-01T19:31:25.186Z" }, +] + +[[package]] +name = "decorator" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/60/8b/32f9823da46cde7df2087faa08cd98d01b908f8dcab982cdba9c84e85355/decorator-5.3.1.tar.gz", hash = "sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82", size = 58084, upload-time = "2026-05-18T06:03:28.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl", hash = "sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c", size = 10365, upload-time = "2026-05-18T06:03:26.517Z" }, +] + +[[package]] +name = "deprecated" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634/deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223", size = 2932523, upload-time = "2025-10-30T08:19:02.757Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/d0/205d54408c08b13550c733c4b85429e7ead111c7f0014309637425520a9a/deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f", size = 11298, upload-time = "2025-10-30T08:19:00.758Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload-time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "duet" +version = "0.2.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/b8/ef7c1a8a515d5195970ba5fdf420400052346873d3370de75f8b97e413bd/duet-0.2.9.tar.gz", hash = "sha256:d6fa39582e6a3dce1096c47e5fbcbda648a633eed94a38943e68662afa2587f3", size = 24438, upload-time = "2023-07-26T06:39:02.351Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/95/03c8215f675349ff719cb44cd837c2468fdc0c05f55f523f3cad86bbdcc6/duet-0.2.9-py3-none-any.whl", hash = "sha256:a16088b68b0faee8aee12cdf4d0a8af060ed958badb44f3e32f123f13f64119a", size = 29560, upload-time = "2023-07-26T06:38:58.931Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload-time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "equinox" +version = "0.13.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jax", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "jax", version = "0.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "jaxtyping", version = "0.3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "jaxtyping", version = "0.3.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions" }, + { name = "wadler-lindig" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/ff/522336d2f8264f2ad97119710b76e2cddf66145d03a1e89899175d26b192/equinox-0.13.8.tar.gz", hash = "sha256:dd075050018e2dd02e252e9d29d3060f7e67f085622d8d27a8e89e24bb8523db", size = 145257, upload-time = "2026-05-05T10:03:43.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/d6/69a76c8ccdef14af687c497040292a46e59fc7a0ab24724b60e50ca61030/equinox-0.13.8-py3-none-any.whl", hash = "sha256:ca004348533cc30a63ebe8823d7dd4bb626dce17743d40bbddb89b402ef2a240", size = 185813, upload-time = "2026-05-05T10:03:41.673Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "ffmpeg" +version = "1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/cc/3b7408b8ecf7c1d20ad480c3eaed7619857bf1054b690226e906fdf14258/ffmpeg-1.4.tar.gz", hash = "sha256:6931692c890ff21d39938433c2189747815dca0c60ddc7f9bb97f199dba0b5b9", size = 5055, upload-time = "2018-10-08T07:50:05.748Z" } + +[[package]] +name = "filelock" +version = "3.29.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/94/00f2059e4835eace3ae8fde680b932c496f8ec7bdc99168dfa53fb2e6b79/filelock-3.29.7.tar.gz", hash = "sha256:5b481979797ae69e72f0b389d89a80bdd585c260c5b3f1fb9c0a5ba9bb3f195d", size = 71521, upload-time = "2026-07-08T05:46:58.716Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/02/be4a57b60c7149b55b9e3b3c13f609cd8eb5307c751f22bd8fb8d262e75b/filelock-3.29.7-py3-none-any.whl", hash = "sha256:987db6f789a3a2a59f55081801b2b3697cb97e2a736b5f1a9e99b559285fbc51", size = 46036, upload-time = "2026-07-08T05:46:57.53Z" }, +] + +[[package]] +name = "fonttools" +version = "4.63.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/84/69/c97f2c18e0db87d2c7b15da1974dace76ae938f1cfa22e2727a648b7ed43/fonttools-4.63.0.tar.gz", hash = "sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0", size = 3597189, upload-time = "2026-05-14T12:04:30.958Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/c9/4141c90a90db20f807c7e10bfd689fe53eb8f7f4caff58ee4d4dfe46919f/fonttools-4.63.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e3297a6a4059b4acc3a1e9a8b04741f240a80044eef08ebd32e8b5bcdddce75b", size = 2884632, upload-time = "2026-05-14T12:02:38.56Z" }, + { url = "https://files.pythonhosted.org/packages/b8/46/ad12b5c10eae602d7ef814b02afa08aacbf89da917fed5b071282b7eadc2/fonttools-4.63.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b1cd75a03ad8cb5bc40c90bfde68c0c47de423aa19e5c0f362b43520645eea94", size = 2429441, upload-time = "2026-05-14T12:02:41.162Z" }, + { url = "https://files.pythonhosted.org/packages/90/8f/bdca24a84c81d56fffed052229cdcff368f6e05882e526f4558891481f65/fonttools-4.63.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0425b277a59cff3d80ca42162a8de360f318438a2ac83570842a678d826d579", size = 4946346, upload-time = "2026-05-14T12:02:43.41Z" }, + { url = "https://files.pythonhosted.org/packages/04/59/a639c0e136441ee91a65b56fdf89e5d075927e7a09c559d1b0f5276577db/fonttools-4.63.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d7e5c9973aa04c95650c96e5f5ad865fbf42d62079163ecfab1e01cbc2504c22", size = 4903184, upload-time = "2026-05-14T12:02:45.742Z" }, + { url = "https://files.pythonhosted.org/packages/e6/53/91b7e0cb45b536f3da1b29ba8cbab89f27e8b986809e0b1982303a3f4eca/fonttools-4.63.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cb014d58140a38135f16064c74c652ed57aa0b75cbf8bb59cac821f7edb5334e", size = 4922967, upload-time = "2026-05-14T12:02:48.386Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b7/87439bf44e6b97c5538cd29d0b7e366a5b8ce2cc132a4134fb67fa3f2fa2/fonttools-4.63.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:032038247a96c1690f9f31e377c389383c902531b085aa4e4dabd6f57f870e69", size = 5042799, upload-time = "2026-05-14T12:02:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/ad/7c/8b96c3263b89ef99cded544c0f0636686f85dbd3c211c4dceef0231fca23/fonttools-4.63.0-cp310-cp310-win32.whl", hash = "sha256:a8b33a82979e0a6a34ff435cc81317be1f95ec1ebb7a3a2d1c8a6a54f02ae44e", size = 1519704, upload-time = "2026-05-14T12:02:52.523Z" }, + { url = "https://files.pythonhosted.org/packages/e5/4d/2c2f0069970b6907de8fb5b05c5c0193cc22f717df151d1c7aef1c738f58/fonttools-4.63.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c18358a155d75034911c5ee397a5b44cd19dd325dbb8b35fb60bf421d6a72ac", size = 1568666, upload-time = "2026-05-14T12:02:54.917Z" }, + { url = "https://files.pythonhosted.org/packages/75/2b/a7f1545bdf5da69c4bda0cea2a5781f0ad2a6623e0277267672db43c5fe6/fonttools-4.63.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b8ae05d9eacf6081414d759c0a352769ac28ce31280d6bb8e77b03f9e3c449f", size = 2881793, upload-time = "2026-05-14T12:02:56.645Z" }, + { url = "https://files.pythonhosted.org/packages/49/50/965308c703f085f225db2886813b27e015b8b3438c350b22dd65b52c2a2c/fonttools-4.63.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79cdc9f567aec74a72918fd060283911406750cbc9fd28c1316023deb6ce31a9", size = 2428130, upload-time = "2026-05-14T12:02:58.891Z" }, + { url = "https://files.pythonhosted.org/packages/d8/38/6937fbd7f2dc3a6b48725851bc2c15ec949b9af14d9bbcb5fe83cdf9bdf9/fonttools-4.63.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c14b4fd138c4bafcca294765c547914e1aa431ae1ca94ab99d8db08c958bd3b", size = 5111952, upload-time = "2026-05-14T12:03:01.263Z" }, + { url = "https://files.pythonhosted.org/packages/0b/43/a81f20050a3115b57d62c8e781446949512eac36690dc384ccea65ff4cc1/fonttools-4.63.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76ac49f929aecaf82d83250b8347e099d7aecba0f4726c1d9b6df3b8bb5fe18", size = 5082308, upload-time = "2026-05-14T12:03:03.211Z" }, + { url = "https://files.pythonhosted.org/packages/67/00/cdd9d4944ca6ae280d01e69cc37bde3bf663630b837a6fc6d2cd65d80e0e/fonttools-4.63.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dcf076a4474fe0d7367e5bbf5b052c7284fa1feca729c04176ce513521afd8a0", size = 5087932, upload-time = "2026-05-14T12:03:05.147Z" }, + { url = "https://files.pythonhosted.org/packages/f5/f1/0aa0dbea778c75adbef223c42019fd47d22262b905974d62d829545d485f/fonttools-4.63.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7dd683fef0663e9f0f45cf541d788d24caa3ec9db50796b588e1757d8b3bc007", size = 5213271, upload-time = "2026-05-14T12:03:07.238Z" }, + { url = "https://files.pythonhosted.org/packages/a8/99/253e4056e1f0e67b9390125a154b73b5eb73ad521bece95c004858fdeec2/fonttools-4.63.0-cp311-cp311-win32.whl", hash = "sha256:afefc1ed0a59785a7fb06ea7e1678e849c193e1e387db783579bc7b3056fcfcb", size = 2304473, upload-time = "2026-05-14T12:03:09.271Z" }, + { url = "https://files.pythonhosted.org/packages/08/60/defa5e69641db890a63be281f41345f4c33b157824eaf0b9fad3e08b0dcb/fonttools-4.63.0-cp311-cp311-win_amd64.whl", hash = "sha256:063e08bd17bd5a90127a14123de0d6a952dbc847695fd98b63c043d58057f90c", size = 2356389, upload-time = "2026-05-14T12:03:11.53Z" }, + { url = "https://files.pythonhosted.org/packages/08/ef/b3c6b9b5be2f82416d73fe2ed2e96e2793cd80e7510bd6a17ca79cdd88ec/fonttools-4.63.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02", size = 2881131, upload-time = "2026-05-14T12:03:13.386Z" }, + { url = "https://files.pythonhosted.org/packages/44/a0/c815bea63117fa63e4e1c01f8a1110d2112fa003f838e6467094ec2432ce/fonttools-4.63.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0", size = 2426704, upload-time = "2026-05-14T12:03:15.801Z" }, + { url = "https://files.pythonhosted.org/packages/44/04/0b91d8e916e92ad1fac9e4624760baf0fd5ff2ead614c2f68fb21373f03f/fonttools-4.63.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af", size = 5044298, upload-time = "2026-05-14T12:03:18.085Z" }, + { url = "https://files.pythonhosted.org/packages/77/c7/2342da9830e3e9d4870305ca5d2091d2a83284f2953079b7bdd3b5e029d8/fonttools-4.63.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8", size = 4999800, upload-time = "2026-05-14T12:03:20.161Z" }, + { url = "https://files.pythonhosted.org/packages/e6/6d/67fe16c48d7ce050979b33f47e0d28a318f02da030602e944c34f7a16ef3/fonttools-4.63.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b", size = 4982666, upload-time = "2026-05-14T12:03:22.87Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/3bbab338c07c71fa56269953845e92c951a61457bbbb0f1022551ea266d9/fonttools-4.63.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78", size = 5133598, upload-time = "2026-05-14T12:03:25.168Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/aa27c7f98db5b064883dadcc5283947e81e034de42e22a33675878d98b54/fonttools-4.63.0-cp312-cp312-win32.whl", hash = "sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263", size = 2292575, upload-time = "2026-05-14T12:03:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/87/36/cccb9bc2a6ab63d1b2980374f0dca72ce95ae267c9b4cfe77455bb70d0d4/fonttools-4.63.0-cp312-cp312-win_amd64.whl", hash = "sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272", size = 2343211, upload-time = "2026-05-14T12:03:30.057Z" }, + { url = "https://files.pythonhosted.org/packages/0f/8d/d8fec3dcde2963f8c908fb315e5ff2cd0ac34f82394bbbf73a2aa5145ce3/fonttools-4.63.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd", size = 2876062, upload-time = "2026-05-14T12:03:32.554Z" }, + { url = "https://files.pythonhosted.org/packages/ef/71/d935dc54e4ff121bfdd11e08702db63a7e6f25af21d8a3d7b7212df53641/fonttools-4.63.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59", size = 2424594, upload-time = "2026-05-14T12:03:34.86Z" }, + { url = "https://files.pythonhosted.org/packages/8e/40/e76320afa1df918e146155ef239b1719ee266092e96f5423bfd075affba1/fonttools-4.63.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d", size = 5024840, upload-time = "2026-05-14T12:03:36.745Z" }, + { url = "https://files.pythonhosted.org/packages/ce/36/0b805d8c485f872f65a509cbe3b58a5d0d17bee855333b54a150c79d3061/fonttools-4.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68", size = 4975801, upload-time = "2026-05-14T12:03:38.833Z" }, + { url = "https://files.pythonhosted.org/packages/c8/26/2cee03d0aa083ab022da5c07aff9ed3f689da1defb81ad6917c9627896da/fonttools-4.63.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be", size = 4965009, upload-time = "2026-05-14T12:03:41.494Z" }, + { url = "https://files.pythonhosted.org/packages/7e/48/cc4b66d9058c0d0982c833fad10127c4b0e9324606aafa41382295ca4102/fonttools-4.63.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27", size = 5105892, upload-time = "2026-05-14T12:03:43.525Z" }, + { url = "https://files.pythonhosted.org/packages/d8/1f/a98a30a814b9ddef3a2e706025f90b9e0bc94890e6cb15254bc86547d11a/fonttools-4.63.0-cp313-cp313-win32.whl", hash = "sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380", size = 2291313, upload-time = "2026-05-14T12:03:45.594Z" }, + { url = "https://files.pythonhosted.org/packages/92/46/5177b01f3b4abfdd4409f31cca4ab279c9343a26efbe9ec78c97fc612e02/fonttools-4.63.0-cp313-cp313-win_amd64.whl", hash = "sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b", size = 2342299, upload-time = "2026-05-14T12:03:47.414Z" }, + { url = "https://files.pythonhosted.org/packages/27/d2/23d25e3f247b328be58d04a4c9f894178a0d1eda7d42867cfb388adaf416/fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745", size = 2875338, upload-time = "2026-05-14T12:03:50.052Z" }, + { url = "https://files.pythonhosted.org/packages/cd/58/7dfa0c761cb3b2964e2a84c4dc986c926a87de0cb9fb60d5b28ded3f2914/fonttools-4.63.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03", size = 2422661, upload-time = "2026-05-14T12:03:52.154Z" }, + { url = "https://files.pythonhosted.org/packages/dd/87/64cfa18a7a1621d17b7f4502b2b0ed8a135a90c3db51ea590ee99043e76b/fonttools-4.63.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49", size = 5010526, upload-time = "2026-05-14T12:03:54.647Z" }, + { url = "https://files.pythonhosted.org/packages/36/e1/a8933a72c45a87177fbde2696e0d0755c8c9062f8c077a961c6215fa27b1/fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b", size = 4923946, upload-time = "2026-05-14T12:03:56.984Z" }, + { url = "https://files.pythonhosted.org/packages/27/60/872e6e233b8c5e8b41413796ff18b7fe479661bd40147e071b450dfad7a1/fonttools-4.63.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6", size = 4962489, upload-time = "2026-05-14T12:03:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/30/c4/83c24f2ec38b90cfda84bf4b1a1f49df80e84a1db4e7ac6e0d41bf23bc39/fonttools-4.63.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4", size = 5071870, upload-time = "2026-05-14T12:04:02.122Z" }, + { url = "https://files.pythonhosted.org/packages/de/40/3ae22b60ff1d41ce0bd044b31238cdc72cef99f28b976f1e128ebd618c9b/fonttools-4.63.0-cp314-cp314-win32.whl", hash = "sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616", size = 2295026, upload-time = "2026-05-14T12:04:04.47Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d4/98078064ccc76b45cb0f6c002452011e93c4bd26f6850344f0951cc1fe89/fonttools-4.63.0-cp314-cp314-win_amd64.whl", hash = "sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5", size = 2347454, upload-time = "2026-05-14T12:04:06.752Z" }, + { url = "https://files.pythonhosted.org/packages/49/4e/652d1580c5f4e39f7d103b0c793e4773129ad633dce4addd0cf4dfebde02/fonttools-4.63.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001", size = 2958152, upload-time = "2026-05-14T12:04:08.706Z" }, + { url = "https://files.pythonhosted.org/packages/0e/55/ad864c9a9b219f552eb46b32cd7906c466e5a578ba0c3abfcc0fe7413eb6/fonttools-4.63.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e", size = 2460809, upload-time = "2026-05-14T12:04:10.783Z" }, + { url = "https://files.pythonhosted.org/packages/ea/2b/0aa8db70f18cf52e49b4ed5ecec68547f981160bf5ded3b5aed6faa0a6f9/fonttools-4.63.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096", size = 5148649, upload-time = "2026-05-14T12:04:12.747Z" }, + { url = "https://files.pythonhosted.org/packages/7f/63/18e4369c25043096f1048e0c9915951adc4f842bd81c6b18155824d6fa99/fonttools-4.63.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f", size = 4932147, upload-time = "2026-05-14T12:04:14.806Z" }, + { url = "https://files.pythonhosted.org/packages/a1/3f/67f3eac2ffd8a98446c5022f8ed3864eac878a5ff7af8df4c8286dba16cc/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40", size = 5027237, upload-time = "2026-05-14T12:04:17.675Z" }, + { url = "https://files.pythonhosted.org/packages/1a/ba/4e6214cb38a7b04779e97bb7636de9a5c7f20af7018d03dee0b64c08510a/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196", size = 5053933, upload-time = "2026-05-14T12:04:20.818Z" }, + { url = "https://files.pythonhosted.org/packages/34/3b/214dcc19ee31d3d38fb5ad2755c11ef0514e5dc300bbaf41c0b69f393799/fonttools-4.63.0-cp314-cp314t-win32.whl", hash = "sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8", size = 2359326, upload-time = "2026-05-14T12:04:24.22Z" }, + { url = "https://files.pythonhosted.org/packages/dd/1e/3ff1a9b523058c2eeb6a9d50f5574e2a738200d0d94107d5bc4105e8da3f/fonttools-4.63.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419", size = 2425829, upload-time = "2026-05-14T12:04:26.829Z" }, + { url = "https://files.pythonhosted.org/packages/2c/47/c99d5268f354002ce80f8d029cd9d7d872969da1de8b93d32de4dc56d6f4/fonttools-4.63.0-py3-none-any.whl", hash = "sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d", size = 1164562, upload-time = "2026-05-14T12:04:29.092Z" }, +] + +[[package]] +name = "furl" +version = "2.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "orderedmultidict" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/e4/203a76fa2ef46cdb0a618295cc115220cbb874229d4d8721068335eb87f0/furl-2.1.4.tar.gz", hash = "sha256:877657501266c929269739fb5f5980534a41abd6bbabcb367c136d1d3b2a6015", size = 57526, upload-time = "2025-03-09T05:36:21.175Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/8c/dce3b1b7593858eba995b2dfdb833f872c7f863e3da92aab7128a6b11af4/furl-2.1.4-py2.py3-none-any.whl", hash = "sha256:da34d0b34e53ffe2d2e6851a7085a05d96922b5b578620a37377ff1dbeeb11c8", size = 27550, upload-time = "2025-03-09T05:36:19.928Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.18" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711, upload-time = "2026-06-02T14:34:07.794Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455, upload-time = "2026-06-02T14:34:06.319Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "ipykernel" +version = "6.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython", version = "8.39.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "ipython", version = "9.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a5/1d/d5ba6edbfe6fae4c3105bca3a9c889563cc752c7f2de45e333164c7f4846/ipykernel-6.31.0.tar.gz", hash = "sha256:2372ce8bc1ff4f34e58cafed3a0feb2194b91fc7cad0fc72e79e47b45ee9e8f6", size = 167493, upload-time = "2025-10-20T11:42:39.948Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/d8/502954a4ec0efcf264f99b65b41c3c54e65a647d9f0d6f62cd02227d242c/ipykernel-6.31.0-py3-none-any.whl", hash = "sha256:abe5386f6ced727a70e0eb0cf1da801fa7c5fa6ff82147747d5a0406cd8c94af", size = 117003, upload-time = "2025-10-20T11:42:37.502Z" }, +] + +[[package]] +name = "ipython" +version = "8.39.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version < '3.11'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "jedi", marker = "python_full_version < '3.11'" }, + { name = "matplotlib-inline", marker = "python_full_version < '3.11'" }, + { name = "pexpect", marker = "python_full_version < '3.11' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version < '3.11'" }, + { name = "pygments", marker = "python_full_version < '3.11'" }, + { name = "stack-data", marker = "python_full_version < '3.11'" }, + { name = "traitlets", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/18/f8598d287006885e7136451fdea0755af4ebcbfe342836f24deefaed1164/ipython-8.39.0.tar.gz", hash = "sha256:4110ae96012c379b8b6db898a07e186c40a2a1ef5d57a7fa83166047d9da7624", size = 5513971, upload-time = "2026-03-27T10:02:13.94Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/56/4cc7fc9e9e3f38fd324f24f8afe0ad8bb5fa41283f37f1aaf9de0612c968/ipython-8.39.0-py3-none-any.whl", hash = "sha256:bb3c51c4fa8148ab1dea07a79584d1c854e234ea44aa1283bcb37bc75054651f", size = 831849, upload-time = "2026-03-27T10:02:07.846Z" }, +] + +[[package]] +name = "ipython" +version = "9.15.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version >= '3.11'" }, + { name = "ipython-pygments-lexers", marker = "python_full_version >= '3.11'" }, + { name = "jedi", marker = "python_full_version >= '3.11'" }, + { name = "matplotlib-inline", marker = "python_full_version >= '3.11'" }, + { name = "pexpect", marker = "python_full_version >= '3.11' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version >= '3.11'" }, + { name = "psutil", marker = "python_full_version >= '3.11' and sys_platform != 'cygwin' and sys_platform != 'emscripten'" }, + { name = "pygments", marker = "python_full_version >= '3.11'" }, + { name = "stack-data", marker = "python_full_version >= '3.11'" }, + { name = "traitlets", marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version == '3.11.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/59/165d3b4d75cc34add3122c4417ecb229085140ac573103c223cd01dde96f/ipython-9.15.0.tar.gz", hash = "sha256:da2819ce2aa83135257df830660b1176d986c3d2876db24df01974fa955b2756", size = 4442580, upload-time = "2026-06-26T11:03:35.913Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/3a/948263ca3b9d65bb2b1b0c521b3a49fad5d59ada58724bd87d2bd5ff3f36/ipython-9.15.0-py3-none-any.whl", hash = "sha256:515ad9c3cdf0c932a5a9f6245419e8aba706b7bd03c3e1d3a1c83d9351d6aa6e", size = 630895, upload-time = "2026-06-26T11:03:33.809Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "jax" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "jaxlib", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "ml-dtypes", marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "opt-einsum", marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cf/1e/267f59c8fb7f143c3f778c76cb7ef1389db3fd7e4540f04b9f42ca90764d/jax-0.6.2.tar.gz", hash = "sha256:a437d29038cbc8300334119692744704ca7941490867b9665406b7f90665cd96", size = 2334091, upload-time = "2025-06-17T23:10:27.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/a8/97ef0cbb7a17143ace2643d600a7b80d6705b2266fc31078229e406bdef2/jax-0.6.2-py3-none-any.whl", hash = "sha256:bb24a82dc60ccf704dcaf6dbd07d04957f68a6c686db19630dd75260d1fb788c", size = 2722396, upload-time = "2025-06-17T23:10:25.293Z" }, +] + +[[package]] +name = "jax" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "jaxlib", version = "0.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "ml-dtypes", marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "opt-einsum", marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/73/eb91d98fcadfa2cbcfdd4e417ab116e47eb20882acc5ee678e47c35d6b57/jax-0.10.2.tar.gz", hash = "sha256:bf77428a8c2e6904c4f46d5ab12aa5cfc6cad2179f07f7e4c0fc75ac86ef0639", size = 2775110, upload-time = "2026-06-17T23:44:57.818Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/82/5ab5211079a151b6f661529369c0c8e98ec64cabf5c0cf22a0a05af124d8/jax-0.10.2-py3-none-any.whl", hash = "sha256:724d73c4678d8b06f6a6ab4db1b8a2fea8cd4f1e2c2564f99601634ec7b8d1c6", size = 3219515, upload-time = "2026-06-17T23:42:41.259Z" }, +] + +[[package]] +name = "jaxlib" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "ml-dtypes", marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/c5/41598634c99cbebba46e6777286fb76abc449d33d50aeae5d36128ca8803/jaxlib-0.6.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4601b2b5dc8c23d6afb293eacfb9aec4e1d1871cb2f29c5a151d103e73b0f8", size = 54298019, upload-time = "2025-06-17T23:10:36.916Z" }, + { url = "https://files.pythonhosted.org/packages/81/af/db07d746cd5867d5967528e7811da53374e94f64e80a890d6a5a4b95b130/jaxlib-0.6.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:4205d098ce8efb5f7fe2fe5098bae6036094dc8d8829f5e0e0d7a9b155326336", size = 79440052, upload-time = "2025-06-17T23:10:41.282Z" }, + { url = "https://files.pythonhosted.org/packages/7e/d8/b7ae9e819c62c1854dbc2c70540a5c041173fbc8bec5e78ab7fd615a4aee/jaxlib-0.6.2-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:c087a0eb6fb7f6f8f54d56f4730328dfde5040dd3b5ddfa810e7c28ea7102b42", size = 89917034, upload-time = "2025-06-17T23:10:45.897Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e5/87e91bc70569ac5c3e3449eefcaf47986e892f10cfe1d5e5720dceae3068/jaxlib-0.6.2-cp310-cp310-win_amd64.whl", hash = "sha256:153eaa51f778b60851720729d4f461a91edd9ba3932f6f3bc598d4413870038b", size = 57896337, upload-time = "2025-06-17T23:10:50.179Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ee/6899b0aed36a4acc51319465ddd83c7c300a062a9e236cceee00984ffe0b/jaxlib-0.6.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a208ff61c58128d306bb4e5ad0858bd2b0960f2c1c10ad42c548f74a60c0020e", size = 54300346, upload-time = "2025-06-17T23:10:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/e6/03/34bb6b346609079a71942cfbf507892e3c877a06a430a0df8429c455cebc/jaxlib-0.6.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:11eae7e05bc5a79875da36324afb9eddd4baeaef2a0386caf6d4f3720b9aef28", size = 79438425, upload-time = "2025-06-17T23:10:58.356Z" }, + { url = "https://files.pythonhosted.org/packages/80/02/49b05cbab519ffd3cb79586336451fbbf8b6523f67128a794acc9f179000/jaxlib-0.6.2-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:335d7e3515ce78b52a410136f46aa4a7ea14d0e7d640f34e1e137409554ad0ac", size = 89920354, upload-time = "2025-06-17T23:11:03.086Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7a/93b28d9452b46c15fc28dd65405672fc8a158b35d46beabaa0fe9631afb0/jaxlib-0.6.2-cp311-cp311-win_amd64.whl", hash = "sha256:c6815509997d6b05e5c9daa7994b9ad473ce3e8c8a17bdbbcacc3c744f76f7a0", size = 57895707, upload-time = "2025-06-17T23:11:07.074Z" }, + { url = "https://files.pythonhosted.org/packages/ac/db/05e702d2534e87abf606b1067b46a273b120e6adc7d459696e3ce7399317/jaxlib-0.6.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34d8a684a8be949dd87dd4acc97101b4106a0dc9ad151ec891da072319a57b99", size = 54301644, upload-time = "2025-06-17T23:11:10.977Z" }, + { url = "https://files.pythonhosted.org/packages/0d/8a/b0a96887b97a25d45ae2c30e4acecd2f95acd074c18ec737dda8c5cc7016/jaxlib-0.6.2-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:87ec2dc9c3ed9ab936eec8535160c5fbd2c849948559f1c5daa75f63fabe5942", size = 79439161, upload-time = "2025-06-17T23:11:14.822Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e8/71c2555431edb5dd115cf86a7b599aa7e1be26728d89ae59aa11251d299c/jaxlib-0.6.2-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:f1dd09b481a93c1d4c750013f467f74194493ba7bd29fcd4d1cec16e3a214f65", size = 89942952, upload-time = "2025-06-17T23:11:19.181Z" }, + { url = "https://files.pythonhosted.org/packages/de/3a/06849113c844b86d20174df54735c84202ccf82cbd36d805f478c834418b/jaxlib-0.6.2-cp312-cp312-win_amd64.whl", hash = "sha256:921dbd4db214eba19a29ba9f2450d880e08b2b2c7b968f28cc89da3e62366af4", size = 57919603, upload-time = "2025-06-17T23:11:23.207Z" }, + { url = "https://files.pythonhosted.org/packages/af/38/bed4279c2a3407820ed8bcd72dbad43c330ada35f88fafe9952b35abf785/jaxlib-0.6.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bff67b188133ce1f0111c7b163ac321fd646b59ed221ea489063e2e0f85cb967", size = 54300638, upload-time = "2025-06-17T23:11:26.372Z" }, + { url = "https://files.pythonhosted.org/packages/52/dc/9e35a1dc089ddf3d6be53ef2e6ba4718c5b6c0f90bccc535a20edac0c895/jaxlib-0.6.2-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:70498837caf538bd458ff6858c8bfd404db82015aba8f663670197fa9900ff02", size = 79439983, upload-time = "2025-06-17T23:11:30.016Z" }, + { url = "https://files.pythonhosted.org/packages/34/16/e93f0184b80a4e1ad38c6998aa3a2f7569c0b0152cbae39f7572393eda04/jaxlib-0.6.2-cp313-cp313-manylinux2014_x86_64.whl", hash = "sha256:f94163f14c8fd3ba93ae14b631abacf14cb031bba0b59138869984b4d10375f8", size = 89941720, upload-time = "2025-06-17T23:11:34.62Z" }, + { url = "https://files.pythonhosted.org/packages/06/b9/ea50792ee0333dba764e06c305fe098bce1cb938dcb66fbe2fc47ef5dd02/jaxlib-0.6.2-cp313-cp313-win_amd64.whl", hash = "sha256:b977604cd36c74b174d25ed685017379468138eb747d865f75e466cb273c801d", size = 57919073, upload-time = "2025-06-17T23:11:39.344Z" }, + { url = "https://files.pythonhosted.org/packages/09/ce/9596391c104a0547fcaf6a8c72078bbae79dbc8e7f0843dc8318f6606328/jaxlib-0.6.2-cp313-cp313t-manylinux2014_aarch64.whl", hash = "sha256:39cf9555f85ae1ce2e2c1a59fc71f2eca4f9867a7cb934fef881ba56b11371d1", size = 79579638, upload-time = "2025-06-17T23:11:43.054Z" }, + { url = "https://files.pythonhosted.org/packages/10/79/f6e80f7f4cacfc9f03e64ac57ecb856b140de7c2f939b25f8dcf1aff63f9/jaxlib-0.6.2-cp313-cp313t-manylinux2014_x86_64.whl", hash = "sha256:3abd536e44b05fb1657507e3ff1fc3691f99613bae3921ecab9e82f27255f784", size = 90066675, upload-time = "2025-06-17T23:11:47.454Z" }, +] + +[[package]] +name = "jaxlib" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "ml-dtypes", marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/2c/7038fc73154307389631b5b2dbe5ac529e1918eecc19a27e6644ad114bbf/jaxlib-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5a98873fc867623b81f2bee15d554b8edd6588a183d01fa50d21b1e3db96ff2b", size = 61429039, upload-time = "2026-06-17T23:43:44.858Z" }, + { url = "https://files.pythonhosted.org/packages/66/c6/d69a0a33046f84930b89387861c061996d5207671b35080898679ca9960a/jaxlib-0.10.2-cp311-cp311-manylinux_2_27_aarch64.whl", hash = "sha256:d44565dcfd1b4f60f76d911c6512118a8a4fc764bdef92663fecb8bfccd54f23", size = 81079180, upload-time = "2026-06-17T23:43:48.245Z" }, + { url = "https://files.pythonhosted.org/packages/e2/27/fb54e3265c0ffcb687f93e9fb761c589acebbe958c3fed1b2c74c3f0e782/jaxlib-0.10.2-cp311-cp311-manylinux_2_27_x86_64.whl", hash = "sha256:1faca3c5d4662cb4a6130a68105d68bb520764817e165d6eebfd6786c0d1f30f", size = 85448560, upload-time = "2026-06-17T23:43:51.724Z" }, + { url = "https://files.pythonhosted.org/packages/21/bc/31fbb3d892c3cb97c73af9226eca63d60d8e224017145bdb6871d1d24da6/jaxlib-0.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:e7a9214e6b0b9e0825d905573d1bbf2253c20e9d7464a63e085b60519975553f", size = 65867603, upload-time = "2026-06-17T23:43:54.939Z" }, + { url = "https://files.pythonhosted.org/packages/ca/93/ee9cc8743191544f65d26ab7eeb82d65968fe60905662d1a5554d056654b/jaxlib-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47bb7c011515ea862be7e8313f40f9c56cbec09dc98a0fcb5016785fcd454c01", size = 61434612, upload-time = "2026-06-17T23:43:57.808Z" }, + { url = "https://files.pythonhosted.org/packages/11/06/8cc36021bf74d617c312eeed94c280282bb1bcbb32b63f2a42b10ae41575/jaxlib-0.10.2-cp312-cp312-manylinux_2_27_aarch64.whl", hash = "sha256:53b72977ae582c03a9e8e1cdee1efbf8ebc1418270965b0e69eade57acf40331", size = 81085366, upload-time = "2026-06-17T23:44:01.067Z" }, + { url = "https://files.pythonhosted.org/packages/48/17/38b718af2353dba7753300871e83fbb64a88a772e12727ae27373ab675ce/jaxlib-0.10.2-cp312-cp312-manylinux_2_27_x86_64.whl", hash = "sha256:fe88ec443714c4379968b6c109f9fa617c7ad19b802828e4d7bf861cd66da4b7", size = 85467828, upload-time = "2026-06-17T23:44:04.238Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c2/d41d13826ebdfe62e56cd87ba70fab3bb9fcbea4a6c9086739a91667e5bf/jaxlib-0.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:4b08f5fbc596b83f76308181863996f93d901d1f09cfd4e130a65c1998e1b371", size = 65900139, upload-time = "2026-06-17T23:44:07.476Z" }, + { url = "https://files.pythonhosted.org/packages/c2/68/eaa4cebe253359196a8e80a33b242959e27d8d2a6ae3d09339f21da2acb8/jaxlib-0.10.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4df530afa354a22dc1747a5d560640450cbb895d49889338a3f58c76a4c76c8e", size = 61434805, upload-time = "2026-06-17T23:44:10.511Z" }, + { url = "https://files.pythonhosted.org/packages/25/c1/4b884ea5962b6beb3c0f93742db54246bbf8b3274e48b0aca47908e454be/jaxlib-0.10.2-cp313-cp313-manylinux_2_27_aarch64.whl", hash = "sha256:45b28b0238697ab74bbcf20411aafb6db42acc31836cc2fd711e5cf056bf9556", size = 81084260, upload-time = "2026-06-17T23:44:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/36/ac/4ee28c65861605945223145fbcd3c9362ec2255ddf7d917574e205548c82/jaxlib-0.10.2-cp313-cp313-manylinux_2_27_x86_64.whl", hash = "sha256:9e4818b4a8756fd3918766ca2aa5342125809f4f08a6fe46026d4386e7c23644", size = 85467706, upload-time = "2026-06-17T23:44:17.471Z" }, + { url = "https://files.pythonhosted.org/packages/79/54/9918b0f77a25a1299818c0610305ca2bea38ed90584f4489b60357e2dd39/jaxlib-0.10.2-cp313-cp313-win_amd64.whl", hash = "sha256:c75d6f1df1c9cff08e110b4a21c79560fdc502f4288972d6b117d25dafd44352", size = 65897894, upload-time = "2026-06-17T23:44:21.153Z" }, + { url = "https://files.pythonhosted.org/packages/56/5b/70df11da52a8b1a826184cccc05a3fec8aed76058a980021873fba3069cb/jaxlib-0.10.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4c202d8ff7c1f3b5049dbd8f1e30e52759cd4e0a5835f0b3c7ae076a05818e28", size = 61564746, upload-time = "2026-06-17T23:44:24.421Z" }, + { url = "https://files.pythonhosted.org/packages/23/5c/184a648ea5db6c8b1a08fc5784c157b4c557255e009fb56091393df3c6de/jaxlib-0.10.2-cp313-cp313t-manylinux_2_27_aarch64.whl", hash = "sha256:b7b029bb95d981566750475b9719a9d6b66ed5dd2748851667899b6cfe075299", size = 81204888, upload-time = "2026-06-17T23:44:27.57Z" }, + { url = "https://files.pythonhosted.org/packages/6c/5c/539596a55265711d74147913278bcdc38412980be7d74d9c9d860297c486/jaxlib-0.10.2-cp313-cp313t-manylinux_2_27_x86_64.whl", hash = "sha256:e8b126097d609b0c6e6786e89f6dd6978adc02ebd5f63a1c61293fbac7821305", size = 85583810, upload-time = "2026-06-17T23:44:30.962Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0d/27471ec9f1d04674f6e62de809412371e097aed3eca7d9483e677c54c214/jaxlib-0.10.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:72eba28b12fee02616fa42aa4b881b4ab62d7757c7843c462401d3fb34a27be4", size = 61446097, upload-time = "2026-06-17T23:44:34.196Z" }, + { url = "https://files.pythonhosted.org/packages/af/c8/941a7f7f37510f51290a5bd1a413aeef977fb8ba8adc0cfe8391233a764c/jaxlib-0.10.2-cp314-cp314-manylinux_2_27_aarch64.whl", hash = "sha256:f18f56fee90699cfba9b6627045a7a299702cb0e2af82ce180d9a6a7c8048093", size = 81096546, upload-time = "2026-06-17T23:44:37.486Z" }, + { url = "https://files.pythonhosted.org/packages/69/77/ac054882c220872512df28d16aeb648fe0e651efbb5be4fd7c4817fd88b0/jaxlib-0.10.2-cp314-cp314-manylinux_2_27_x86_64.whl", hash = "sha256:ca34f363197fb0ac4082582ca755007910369e33f8a8ba3d35ed94b71070107d", size = 85472993, upload-time = "2026-06-17T23:44:40.904Z" }, + { url = "https://files.pythonhosted.org/packages/0d/7d/c592d1fa69c210be0d2743fffc598dfc2f54efa9671c5f6f5d1e151c6f4a/jaxlib-0.10.2-cp314-cp314-win_amd64.whl", hash = "sha256:99818b0a18adc0b899abf4873795e8d65169441d87ab2e5cbb228e73d0f25808", size = 68376553, upload-time = "2026-06-17T23:44:44.968Z" }, + { url = "https://files.pythonhosted.org/packages/54/9b/91b00ec74985d29708b50420b4103c1f651c8f1c253d4fcb49d1bbb532cd/jaxlib-0.10.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fc62997fce8831819551a2a5469a818169b09582b5b648c102d11ac7205bb812", size = 61564620, upload-time = "2026-06-17T23:44:48.217Z" }, + { url = "https://files.pythonhosted.org/packages/a1/c7/49d2b19c3b3105c30e1d3af2062e82e1977fb239d3dc3cbb583ef676dda7/jaxlib-0.10.2-cp314-cp314t-manylinux_2_27_aarch64.whl", hash = "sha256:a24d6e3cba263978293eae8b41330d5ccf24d6cdd1a6bcd4e82aff34e767620d", size = 81206365, upload-time = "2026-06-17T23:44:51.419Z" }, + { url = "https://files.pythonhosted.org/packages/bf/99/006cedf443f4a01f2088651facce79b2105bfb4905bfe9162eb0920a6dfb/jaxlib-0.10.2-cp314-cp314t-manylinux_2_27_x86_64.whl", hash = "sha256:5a2ac7aed7c4e661f67600bbcdec9e589151c1efec91f4cdb8d484af1a45c895", size = 85584458, upload-time = "2026-06-17T23:44:55.377Z" }, +] + +[[package]] +name = "jaxtyping" +version = "0.3.7" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "wadler-lindig", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/40/a2ea3ce0e3e5f540eb970de7792c90fa58fef1b27d34c83f9fa94fea4729/jaxtyping-0.3.7.tar.gz", hash = "sha256:3bd7d9beb7d3cb01a89f93f90581c6f4fff3e5c5dc3c9307e8f8687a040d10c4", size = 45721, upload-time = "2026-01-30T14:18:47.409Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/42/caf65e9a0576a3abadc537e2f831701ba9081f21317fb3be87d64451587a/jaxtyping-0.3.7-py3-none-any.whl", hash = "sha256:303ab8599edf412eeb40bf06c863e3168fa186cf0e7334703fa741ddd7046e66", size = 56101, upload-time = "2026-01-30T14:18:45.954Z" }, +] + +[[package]] +name = "jaxtyping" +version = "0.3.11" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "wadler-lindig", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/c1/091b8852bd7cbf50bd655543c8506033cf4029300c67f8c176c1286879a9/jaxtyping-0.3.11.tar.gz", hash = "sha256:b09c14acf6686feb9e0df5b0d8c6e7c5b6f8d36bf059ee54cd522a186c2ef050", size = 46489, upload-time = "2026-06-13T18:35:23.167Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/38/c66bbdc5047f4776c2bd3e47e5295a350e3fa44d5b8942105e71c2a876a0/jaxtyping-0.3.11-py3-none-any.whl", hash = "sha256:8a4bedc4e3f963fa82df41bd13c7ebc2bad925601eb48614c65798f21329d4e3", size = 56593, upload-time = "2026-06-13T18:35:22.01Z" }, +] + +[[package]] +name = "jedi" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/b7/a3635f6a2d7cf5b5dd98064fc1d5fbbafcb25477bcea204a3a92145d158b/jedi-0.20.0.tar.gz", hash = "sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011", size = 3119416, upload-time = "2026-05-01T23:38:47.814Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl", hash = "sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67", size = 4884812, upload-time = "2026-05-01T23:38:43.919Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jmespath" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d", size = 27377, upload-time = "2026-01-22T16:35:26.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64", size = 20419, upload-time = "2026-01-22T16:35:24.919Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "rpds-py", version = "2026.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "juliacall" +version = "0.9.35" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "juliapkg" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/25/58cd25408a347f848174528f2d77b2da5d2b31fef19b0c2ba30571a39745/juliacall-0.9.35.tar.gz", hash = "sha256:7b1ad7572aff3651bbe4fa554140f0f5fd970c9820d998af6ae0deb98a270ad3", size = 499488, upload-time = "2026-06-08T07:37:55.526Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/3b/ce7b39f8572f78f8946380e7cf53477f8cffbb8085e49fc54ad34124cc62/juliacall-0.9.35-py3-none-any.whl", hash = "sha256:fd58e7858b12a8e1aa44f9f9eeaea05ff8029dd9a19d98521a5451ca94f2f81a", size = 12593, upload-time = "2026-06-08T07:37:56.782Z" }, +] + +[[package]] +name = "juliapkg" +version = "0.1.24" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "semver" }, + { name = "tomli" }, + { name = "tomlkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/db/a419cef4a40f2a85578509e8369da1295c05a405cf6f4f097ab030ffb7bd/juliapkg-0.1.24.tar.gz", hash = "sha256:5fdb000639c2d00edbc7524753cc732d1503902473bdbf6bd46e69c7d8f2cbd5", size = 23872, upload-time = "2026-05-31T15:09:06.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/00/fe4ed0756d1bbc30c7de45ec084f2468b74de4cdebcca2a27fb1bb366d62/juliapkg-0.1.24-py3-none-any.whl", hash = "sha256:cc3d39ccd26c82aa1fcaea413c6d7be062bbabdda07b922ac73a1abb7f38b7f8", size = 22297, upload-time = "2026-05-31T15:09:05.488Z" }, +] + +[[package]] +name = "jupyter-client" +version = "8.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/dc/5512503b088997c2250b8bf18258fba9d9ce5ead641183700960d3c9d342/jupyter_client-8.9.1.tar.gz", hash = "sha256:a58f730dd9e728ba16ba1d62ebccf7ffe1ebbdbce4e95cfae941b7321ae1f4fa", size = 359256, upload-time = "2026-06-09T13:15:01.033Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/6f/56d39bf385c5c27988aebaf0c18a2a17e960575740100973511018bd904e/jupyter_client-8.9.1-py3-none-any.whl", hash = "sha256:0b7a295bc46e8751e9adae84781f726c851c1d911bd793edc4a3bde942e3da81", size = 109828, upload-time = "2026-06-09T13:14:58.835Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupytext" +version = "1.19.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "mdit-py-plugins" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/52/e014296ac8f40ca783aeb73dae52e65edbb0eaae0dcdc1ea41bfaa8aebf7/jupytext-1.19.4.tar.gz", hash = "sha256:739bcd4bc12aa4fe298a38017cdb5ae27b08a6ba3a5470728d2fe9e04b155db1", size = 4581977, upload-time = "2026-06-21T21:48:58.32Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/e9/e2ae007456069dbe01865c69a4203a7ada6f7e337b78fc2f12e51bd3fae7/jupytext-1.19.4-py3-none-any.whl", hash = "sha256:032d4ef4bd2e96addcac780b9b1d6b5a266ca39beceaaca95bfb4f06e0b77029", size = 170889, upload-time = "2026-06-21T21:48:56.352Z" }, +] + +[[package]] +name = "jwskate" +version = "0.12.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "binapy" }, + { name = "cryptography" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/45/85a545c824439ba37aa61bed6c10ddf89dc51915d28b937931de8cca2eef/jwskate-0.12.2.tar.gz", hash = "sha256:7c38b036b633d689b31c89b358823dbc8c439e4c74596cb1fceb0dfe4cf9efce", size = 128629, upload-time = "2025-04-02T10:06:46.539Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/21/4252ccb378deb49f9e38635731b30d43aee03c2238d2fe0100011242af62/jwskate-0.12.2-py3-none-any.whl", hash = "sha256:fd10271bd651db8da7df256f7b5bcface84bf165a203b991ae05fb728f3d3aef", size = 88775, upload-time = "2025-04-02T10:06:45.021Z" }, +] + +[[package]] +name = "kahip" +version = "3.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/be/a5f1cfedba8c4d7daa83b0f6136486a38168210d1bf0d90508486f3427ed/kahip-3.25.tar.gz", hash = "sha256:610fdce247c374b32986378c592df122a88e46efdd97b113ceca8993c51e1b2a", size = 2453401, upload-time = "2026-03-13T22:56:26.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/ea/f9752d0b93754fa23edbe9d95389148bfce5c925acff8361267c607e9317/kahip-3.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a05e4c3c88801ca8deaf8f0ecc613dc93feaaee04aca37af7c0b61f98eed1fe0", size = 4014922, upload-time = "2026-03-13T22:55:51.104Z" }, + { url = "https://files.pythonhosted.org/packages/03/43/43e32d408acda4caf3c10c376525703e95eb2a8e5cd996ccef8fb7c41100/kahip-3.25-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e6ea76524e9fc01b27e6f5c5f00b7eec71c94cbd1e84678ce2a14d64dfc9eda4", size = 9388099, upload-time = "2026-03-13T22:55:53.187Z" }, + { url = "https://files.pythonhosted.org/packages/98/73/5ea5aab27bfd98fb39a972cfb827f01aa977c9aca744e1e1a0834c26493b/kahip-3.25-cp310-cp310-win_amd64.whl", hash = "sha256:681e3baa688752b032df4abbcd8ba0118327cf134f3db5fcaedd3e86e3303c40", size = 3550426, upload-time = "2026-03-13T22:55:55.52Z" }, + { url = "https://files.pythonhosted.org/packages/f4/6a/c9dc75797566dd551ee28024bc5aadf7b17b93665ac6bd00133e348a7944/kahip-3.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3b164fb98d010ab13448c588dc9f4293eaab13dc60830aeb9c60d479ca4cb073", size = 4016064, upload-time = "2026-03-13T22:55:56.945Z" }, + { url = "https://files.pythonhosted.org/packages/90/9d/afece24392ec6f1d8816e3027c7d53796ee011a0906326c5c086c2201699/kahip-3.25-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2df003240700286fabaacdc6123ec3489171a632867fcdba26c1b87bbb20dc2b", size = 9389873, upload-time = "2026-03-13T22:55:58.96Z" }, + { url = "https://files.pythonhosted.org/packages/c4/19/5af65dbbc4a937e6d4368cd4c901ee7febe6b0a9529708220ce8e0e3ed3b/kahip-3.25-cp311-cp311-win_amd64.whl", hash = "sha256:5fdab1594907c6e4dd53d5b2d45aeed997344192c3adf6fc03181de7ab114de6", size = 3550894, upload-time = "2026-03-13T22:56:01.173Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ff/67a5a9942f09a181f3ae017af1dc103ffeeaf263ff9e81a149c23b701a49/kahip-3.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a7e9367d13435e591b8190929c31b2707fe8b5092076e200e4c6f76356db1d2e", size = 4016253, upload-time = "2026-03-13T22:56:02.924Z" }, + { url = "https://files.pythonhosted.org/packages/5c/11/5964e8e04377754b64780e2fa5e879527d479a6b2c209cb3653cca3b9957/kahip-3.25-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3074dfe9ea3d6da6da14213428f3a5db81f1b843ff2763ffc70cb52c23101f29", size = 9390266, upload-time = "2026-03-13T22:56:04.56Z" }, + { url = "https://files.pythonhosted.org/packages/28/5c/a557990d1aec523ddbe985785bb5168f8277dbcbeb74548f6c839f246d80/kahip-3.25-cp312-cp312-win_amd64.whl", hash = "sha256:21a66824b53d2ef92aa563845a97ed9bc42ba07b581c87e80b4efb9a3e800940", size = 3551413, upload-time = "2026-03-13T22:56:07.006Z" }, + { url = "https://files.pythonhosted.org/packages/0f/74/50f3c443942925e0ac61a0010f2385720d022016bc8cb0c92221cb90c498/kahip-3.25-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa02fcadd7bb03b3ddc092c6f84c0e38dfae3925030846025d21372ab16dfaa7", size = 4016306, upload-time = "2026-03-13T22:56:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/a4/f4/71a59e6e8133a7bf2cf9d50b0c99d07bddd7dd19e00767582116bb0b44ee/kahip-3.25-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9f842108b42f236b739915bed852edda0d5f00b6b0c9cfda0ae0940f61fac630", size = 9390194, upload-time = "2026-03-13T22:56:10.44Z" }, + { url = "https://files.pythonhosted.org/packages/fa/4f/b167a64b5736d06c5fbb568308bde34ea4c80589a1349da8636b486b4e77/kahip-3.25-cp313-cp313-win_amd64.whl", hash = "sha256:7c23a1354df843ce64fd30734d3d098c06982f630461a8d075a542df9c10c342", size = 3551474, upload-time = "2026-03-13T22:56:12.86Z" }, + { url = "https://files.pythonhosted.org/packages/95/4b/e3ddd408753e589d22f2b4f8602e176eb788dfb0d552c8819a2fa6b1deb1/kahip-3.25-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2e01884c3bfde4d6d439da2c890113b2604d8c3121c47bd08dbc4453c2525c7e", size = 4016454, upload-time = "2026-03-13T22:56:14.373Z" }, + { url = "https://files.pythonhosted.org/packages/87/62/f07ca660150b4c21af892cb62840074a0a4956bf3e860f1b7776b484e27a/kahip-3.25-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e46638100297cf5323b15ceca864f6c2e05a7b4b50e50aab8822f388a7d98bac", size = 9390396, upload-time = "2026-03-13T22:56:16.728Z" }, + { url = "https://files.pythonhosted.org/packages/64/e9/c78475eca491c4b62c333321441b6a22596433d020712dd0846650922114/kahip-3.25-cp314-cp314-win_amd64.whl", hash = "sha256:d2f118b72657d19be39781b98cf8b13f2e3414d7150b461d18903e5220b3fa4d", size = 3635667, upload-time = "2026-03-13T22:56:19.029Z" }, +] + +[[package]] +name = "kirin-toolchain" +version = "0.22.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "pymongo" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/b6/768047b9bc4858b8ab51342ad464e34f8667cdbb864a1e91e9ecbbc17a42/kirin_toolchain-0.22.11.tar.gz", hash = "sha256:c4a725d40329aabd70aa26eed180c3fcd97c48e828a7b46a3909506af4ae8179", size = 1251166, upload-time = "2026-05-08T15:35:50.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/2f/5ac78fb8b495883dd3496b4b395334e1c6d7f9deac2cc18e667332e07012/kirin_toolchain-0.22.11-py3-none-any.whl", hash = "sha256:9d65975ef27ead55b82c3a592f1597dea8d7e7095da106c033492c6e6af4fd3b", size = 258663, upload-time = "2026-05-08T15:35:48.53Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482, upload-time = "2026-03-09T13:15:53.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/f8/06549565caa026e540b7e7bab5c5a90eb7ca986015f4c48dace243cd24d9/kiwisolver-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32cc0a5365239a6ea0c6ed461e8838d053b57e397443c0ca894dcc8e388d4374", size = 122802, upload-time = "2026-03-09T13:12:37.515Z" }, + { url = "https://files.pythonhosted.org/packages/84/eb/8476a0818850c563ff343ea7c9c05dcdcbd689a38e01aa31657df01f91fa/kiwisolver-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc0b66c1eec9021353a4b4483afb12dfd50e3669ffbb9152d6842eb34c7e29fd", size = 66216, upload-time = "2026-03-09T13:12:38.812Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/f9c8a6b4c21aed4198566e45923512986d6cef530e7263b3a5f823546561/kiwisolver-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86e0287879f75621ae85197b0877ed2f8b7aa57b511c7331dce2eb6f4de7d476", size = 63917, upload-time = "2026-03-09T13:12:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/f1/0e/ba4ae25d03722f64de8b2c13e80d82ab537a06b30fc7065183c6439357e3/kiwisolver-1.5.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:62f59da443c4f4849f73a51a193b1d9d258dcad0c41bc4d1b8fb2bcc04bfeb22", size = 1628776, upload-time = "2026-03-09T13:12:41.976Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e4/3f43a011bc8a0860d1c96f84d32fa87439d3feedf66e672fef03bf5e8bac/kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9190426b7aa26c5229501fa297b8d0653cfd3f5a36f7990c264e157cbf886b3b", size = 1228164, upload-time = "2026-03-09T13:12:44.002Z" }, + { url = "https://files.pythonhosted.org/packages/4b/34/3a901559a1e0c218404f9a61a93be82d45cb8f44453ba43088644980f033/kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c8277104ded0a51e699c8c3aff63ce2c56d4ed5519a5f73e0fd7057f959a2b9e", size = 1246656, upload-time = "2026-03-09T13:12:45.557Z" }, + { url = "https://files.pythonhosted.org/packages/87/9e/f78c466ea20527822b95ad38f141f2de1dcd7f23fb8716b002b0d91bbe59/kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8f9baf6f0a6e7571c45c8863010b45e837c3ee1c2c77fcd6ef423be91b21fedb", size = 1295562, upload-time = "2026-03-09T13:12:47.562Z" }, + { url = "https://files.pythonhosted.org/packages/0a/66/fd0e4a612e3a286c24e6d6f3a5428d11258ed1909bc530ba3b59807fd980/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cff8e5383db4989311f99e814feeb90c4723eb4edca425b9d5d9c3fefcdd9537", size = 2178473, upload-time = "2026-03-09T13:12:50.254Z" }, + { url = "https://files.pythonhosted.org/packages/dc/8e/6cac929e0049539e5ee25c1ee937556f379ba5204840d03008363ced662d/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ebae99ed6764f2b5771c522477b311be313e8841d2e0376db2b10922daebbba4", size = 2274035, upload-time = "2026-03-09T13:12:51.785Z" }, + { url = "https://files.pythonhosted.org/packages/ca/d3/9d0c18f1b52ea8074b792452cf17f1f5a56bd0302a85191f405cfbf9da16/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d5cd5189fc2b6a538b75ae45433140c4823463918f7b1617c31e68b085c0022c", size = 2443217, upload-time = "2026-03-09T13:12:53.329Z" }, + { url = "https://files.pythonhosted.org/packages/45/2a/6e19368803a038b2a90857bf4ee9e3c7b667216d045866bf22d3439fd75e/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f42c23db5d1521218a3276bb08666dcb662896a0be7347cba864eca45ff64ede", size = 2249196, upload-time = "2026-03-09T13:12:55.057Z" }, + { url = "https://files.pythonhosted.org/packages/75/2b/3f641dfcbe72e222175d626bacf2f72c3b34312afec949dd1c50afa400f5/kiwisolver-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:94eff26096eb5395136634622515b234ecb6c9979824c1f5004c6e3c3c85ccd2", size = 73389, upload-time = "2026-03-09T13:12:56.496Z" }, + { url = "https://files.pythonhosted.org/packages/da/88/299b137b9e0025d8982e03d2d52c123b0a2b159e84b0ef1501ef446339cf/kiwisolver-1.5.0-cp310-cp310-win_arm64.whl", hash = "sha256:dd952e03bfbb096cfe2dd35cd9e00f269969b67536cb4370994afc20ff2d0875", size = 64782, upload-time = "2026-03-09T13:12:57.609Z" }, + { url = "https://files.pythonhosted.org/packages/12/dd/a495a9c104be1c476f0386e714252caf2b7eca883915422a64c50b88c6f5/kiwisolver-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c", size = 122798, upload-time = "2026-03-09T13:12:58.963Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/37b4047a2af0cf5ef6d8b4b26e91829ae6fc6a2d1f74524bcb0e7cd28a32/kiwisolver-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb", size = 66216, upload-time = "2026-03-09T13:13:00.155Z" }, + { url = "https://files.pythonhosted.org/packages/0a/aa/510dc933d87767584abfe03efa445889996c70c2990f6f87c3ebaa0a18c5/kiwisolver-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac", size = 63911, upload-time = "2026-03-09T13:13:01.671Z" }, + { url = "https://files.pythonhosted.org/packages/80/46/bddc13df6c2a40741e0cc7865bb1c9ed4796b6760bd04ce5fae3928ef917/kiwisolver-1.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27", size = 1438209, upload-time = "2026-03-09T13:13:03.385Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d6/76621246f5165e5372f02f5e6f3f48ea336a8f9e96e43997d45b240ed8cd/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398", size = 1248888, upload-time = "2026-03-09T13:13:05.231Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c1/31559ec6fb39a5b48035ce29bb63ade628f321785f38c384dee3e2c08bc1/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db", size = 1266304, upload-time = "2026-03-09T13:13:06.743Z" }, + { url = "https://files.pythonhosted.org/packages/5e/ef/1cb8276f2d29cc6a41e0a042f27946ca347d3a4a75acf85d0a16aa6dcc82/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc", size = 1319650, upload-time = "2026-03-09T13:13:08.607Z" }, + { url = "https://files.pythonhosted.org/packages/4c/e4/5ba3cecd7ce6236ae4a80f67e5d5531287337d0e1f076ca87a5abe4cd5d0/kiwisolver-1.5.0-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679", size = 970949, upload-time = "2026-03-09T13:13:10.299Z" }, + { url = "https://files.pythonhosted.org/packages/5a/69/dc61f7ae9a2f071f26004ced87f078235b5507ab6e5acd78f40365655034/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309", size = 2199125, upload-time = "2026-03-09T13:13:11.841Z" }, + { url = "https://files.pythonhosted.org/packages/e5/7b/abbe0f1b5afa85f8d084b73e90e5f801c0939eba16ac2e49af7c61a6c28d/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2", size = 2293783, upload-time = "2026-03-09T13:13:14.399Z" }, + { url = "https://files.pythonhosted.org/packages/8a/80/5908ae149d96d81580d604c7f8aefd0e98f4fd728cf172f477e9f2a81744/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c", size = 1960726, upload-time = "2026-03-09T13:13:16.047Z" }, + { url = "https://files.pythonhosted.org/packages/84/08/a78cb776f8c085b7143142ce479859cfec086bd09ee638a317040b6ef420/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08", size = 2464738, upload-time = "2026-03-09T13:13:17.897Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e1/65584da5356ed6cb12c63791a10b208860ac40a83de165cb6a6751a686e3/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4", size = 2270718, upload-time = "2026-03-09T13:13:19.421Z" }, + { url = "https://files.pythonhosted.org/packages/be/6c/28f17390b62b8f2f520e2915095b3c94d88681ecf0041e75389d9667f202/kiwisolver-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b", size = 73480, upload-time = "2026-03-09T13:13:20.818Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0e/2ee5debc4f77a625778fec5501ff3e8036fe361b7ee28ae402a485bb9694/kiwisolver-1.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac", size = 64930, upload-time = "2026-03-09T13:13:21.997Z" }, + { url = "https://files.pythonhosted.org/packages/4d/b2/818b74ebea34dabe6d0c51cb1c572e046730e64844da6ed646d5298c40ce/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9", size = 123158, upload-time = "2026-03-09T13:13:23.127Z" }, + { url = "https://files.pythonhosted.org/packages/bf/d9/405320f8077e8e1c5c4bd6adc45e1e6edf6d727b6da7f2e2533cf58bff71/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588", size = 66388, upload-time = "2026-03-09T13:13:24.765Z" }, + { url = "https://files.pythonhosted.org/packages/99/9f/795fedf35634f746151ca8839d05681ceb6287fbed6cc1c9bf235f7887c2/kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819", size = 64068, upload-time = "2026-03-09T13:13:25.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f", size = 1477934, upload-time = "2026-03-09T13:13:27.166Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2f/cebfcdb60fd6a9b0f6b47a9337198bcbad6fbe15e68189b7011fd914911f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf", size = 1278537, upload-time = "2026-03-09T13:13:28.707Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0d/9b782923aada3fafb1d6b84e13121954515c669b18af0c26e7d21f579855/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d", size = 1296685, upload-time = "2026-03-09T13:13:30.528Z" }, + { url = "https://files.pythonhosted.org/packages/27/70/83241b6634b04fe44e892688d5208332bde130f38e610c0418f9ede47ded/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083", size = 1346024, upload-time = "2026-03-09T13:13:32.818Z" }, + { url = "https://files.pythonhosted.org/packages/e4/db/30ed226fb271ae1a6431fc0fe0edffb2efe23cadb01e798caeb9f2ceae8f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6", size = 987241, upload-time = "2026-03-09T13:13:34.435Z" }, + { url = "https://files.pythonhosted.org/packages/ec/bd/c314595208e4c9587652d50959ead9e461995389664e490f4dce7ff0f782/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1", size = 2227742, upload-time = "2026-03-09T13:13:36.4Z" }, + { url = "https://files.pythonhosted.org/packages/c1/43/0499cec932d935229b5543d073c2b87c9c22846aab48881e9d8d6e742a2d/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0", size = 2323966, upload-time = "2026-03-09T13:13:38.204Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6f/79b0d760907965acfd9d61826a3d41f8f093c538f55cd2633d3f0db269f6/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15", size = 1977417, upload-time = "2026-03-09T13:13:39.966Z" }, + { url = "https://files.pythonhosted.org/packages/ab/31/01d0537c41cb75a551a438c3c7a80d0c60d60b81f694dac83dd436aec0d0/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314", size = 2491238, upload-time = "2026-03-09T13:13:41.698Z" }, + { url = "https://files.pythonhosted.org/packages/e4/34/8aefdd0be9cfd00a44509251ba864f5caf2991e36772e61c408007e7f417/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9", size = 2294947, upload-time = "2026-03-09T13:13:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/ad/cf/0348374369ca588f8fe9c338fae49fa4e16eeb10ffb3d012f23a54578a9e/kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384", size = 73569, upload-time = "2026-03-09T13:13:45.792Z" }, + { url = "https://files.pythonhosted.org/packages/28/26/192b26196e2316e2bd29deef67e37cdf9870d9af8e085e521afff0fed526/kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7", size = 64997, upload-time = "2026-03-09T13:13:46.878Z" }, + { url = "https://files.pythonhosted.org/packages/9d/69/024d6711d5ba575aa65d5538042e99964104e97fa153a9f10bc369182bc2/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09", size = 123166, upload-time = "2026-03-09T13:13:48.032Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/adbb40df306f587054a348831220812b9b1d787aff714cfbc8556e38fccd/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3", size = 66395, upload-time = "2026-03-09T13:13:49.365Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3a/d0a972b34e1c63e2409413104216cd1caa02c5a37cb668d1687d466c1c45/kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd", size = 64065, upload-time = "2026-03-09T13:13:50.562Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0a/7b98e1e119878a27ba8618ca1e18b14f992ff1eda40f47bccccf4de44121/kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3", size = 1477903, upload-time = "2026-03-09T13:13:52.084Z" }, + { url = "https://files.pythonhosted.org/packages/18/d8/55638d89ffd27799d5cc3d8aa28e12f4ce7a64d67b285114dbedc8ea4136/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96", size = 1278751, upload-time = "2026-03-09T13:13:54.673Z" }, + { url = "https://files.pythonhosted.org/packages/b8/97/b4c8d0d18421ecceba20ad8701358453b88e32414e6f6950b5a4bad54e65/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099", size = 1296793, upload-time = "2026-03-09T13:13:56.287Z" }, + { url = "https://files.pythonhosted.org/packages/c4/10/f862f94b6389d8957448ec9df59450b81bec4abb318805375c401a1e6892/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8", size = 1346041, upload-time = "2026-03-09T13:13:58.269Z" }, + { url = "https://files.pythonhosted.org/packages/a3/6a/f1650af35821eaf09de398ec0bc2aefc8f211f0cda50204c9f1673741ba9/kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87", size = 987292, upload-time = "2026-03-09T13:13:59.871Z" }, + { url = "https://files.pythonhosted.org/packages/de/19/d7fb82984b9238115fe629c915007be608ebd23dc8629703d917dbfaffd4/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23", size = 2227865, upload-time = "2026-03-09T13:14:01.401Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b9/46b7f386589fd222dac9e9de9c956ce5bcefe2ee73b4e79891381dda8654/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859", size = 2324369, upload-time = "2026-03-09T13:14:02.972Z" }, + { url = "https://files.pythonhosted.org/packages/92/8b/95e237cf3d9c642960153c769ddcbe278f182c8affb20cecc1cc983e7cc5/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902", size = 1977989, upload-time = "2026-03-09T13:14:04.503Z" }, + { url = "https://files.pythonhosted.org/packages/1b/95/980c9df53501892784997820136c01f62bc1865e31b82b9560f980c0e649/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167", size = 2491645, upload-time = "2026-03-09T13:14:06.106Z" }, + { url = "https://files.pythonhosted.org/packages/cb/32/900647fd0840abebe1561792c6b31e6a7c0e278fc3973d30572a965ca14c/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0", size = 2295237, upload-time = "2026-03-09T13:14:08.891Z" }, + { url = "https://files.pythonhosted.org/packages/be/8a/be60e3bbcf513cc5a50f4a3e88e1dcecebb79c1ad607a7222877becaa101/kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276", size = 73573, upload-time = "2026-03-09T13:14:12.327Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d2/64be2e429eb4fca7f7e1c52a91b12663aeaf25de3895e5cca0f47ef2a8d0/kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c", size = 64998, upload-time = "2026-03-09T13:14:13.469Z" }, + { url = "https://files.pythonhosted.org/packages/b0/69/ce68dd0c85755ae2de490bf015b62f2cea5f6b14ff00a463f9d0774449ff/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1", size = 125700, upload-time = "2026-03-09T13:14:14.636Z" }, + { url = "https://files.pythonhosted.org/packages/74/aa/937aac021cf9d4349990d47eb319309a51355ed1dbdc9c077cdc9224cb11/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e", size = 67537, upload-time = "2026-03-09T13:14:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/ee/20/3a87fbece2c40ad0f6f0aefa93542559159c5f99831d596050e8afae7a9f/kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7", size = 65514, upload-time = "2026-03-09T13:14:18.035Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7f/f943879cda9007c45e1f7dba216d705c3a18d6b35830e488b6c6a4e7cdf0/kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c", size = 1584848, upload-time = "2026-03-09T13:14:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/37/f8/4d4f85cc1870c127c88d950913370dd76138482161cd07eabbc450deff01/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368", size = 1391542, upload-time = "2026-03-09T13:14:21.54Z" }, + { url = "https://files.pythonhosted.org/packages/04/0b/65dd2916c84d252b244bd405303220f729e7c17c9d7d33dca6feeff9ffc4/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489", size = 1404447, upload-time = "2026-03-09T13:14:23.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/2606a373247babce9b1d056c03a04b65f3cf5290a8eac5d7bdead0a17e21/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1", size = 1455918, upload-time = "2026-03-09T13:14:24.74Z" }, + { url = "https://files.pythonhosted.org/packages/d5/d1/c6078b5756670658e9192a2ef11e939c92918833d2745f85cd14a6004bdf/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3", size = 1072856, upload-time = "2026-03-09T13:14:26.597Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c8/7def6ddf16eb2b3741d8b172bdaa9af882b03c78e9b0772975408801fa63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18", size = 2333580, upload-time = "2026-03-09T13:14:28.237Z" }, + { url = "https://files.pythonhosted.org/packages/9e/87/2ac1fce0eb1e616fcd3c35caa23e665e9b1948bb984f4764790924594128/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021", size = 2423018, upload-time = "2026-03-09T13:14:30.018Z" }, + { url = "https://files.pythonhosted.org/packages/67/13/c6700ccc6cc218716bfcda4935e4b2997039869b4ad8a94f364c5a3b8e63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310", size = 2062804, upload-time = "2026-03-09T13:14:32.888Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bd/877056304626943ff0f1f44c08f584300c199b887cb3176cd7e34f1515f1/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3", size = 2597482, upload-time = "2026-03-09T13:14:34.971Z" }, + { url = "https://files.pythonhosted.org/packages/75/19/c60626c47bf0f8ac5dcf72c6c98e266d714f2fbbfd50cf6dab5ede3aaa50/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2", size = 2394328, upload-time = "2026-03-09T13:14:36.816Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/6a6d5e5bb8273756c27b7d810d47f7ef2f1f9b9fd23c9ee9a3f8c75c9cef/kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53", size = 68410, upload-time = "2026-03-09T13:14:38.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231, upload-time = "2026-03-09T13:14:41.323Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489, upload-time = "2026-03-09T13:14:42.534Z" }, + { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063, upload-time = "2026-03-09T13:14:44.759Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913, upload-time = "2026-03-09T13:14:46.247Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782, upload-time = "2026-03-09T13:14:48.458Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815, upload-time = "2026-03-09T13:14:50.721Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925, upload-time = "2026-03-09T13:14:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322, upload-time = "2026-03-09T13:14:54.637Z" }, + { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857, upload-time = "2026-03-09T13:14:56.471Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376, upload-time = "2026-03-09T13:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549, upload-time = "2026-03-09T13:14:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680, upload-time = "2026-03-09T13:15:01.364Z" }, + { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905, upload-time = "2026-03-09T13:15:03.925Z" }, + { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086, upload-time = "2026-03-09T13:15:07.775Z" }, + { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577, upload-time = "2026-03-09T13:15:09.139Z" }, + { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794, upload-time = "2026-03-09T13:15:10.525Z" }, + { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646, upload-time = "2026-03-09T13:15:12.016Z" }, + { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511, upload-time = "2026-03-09T13:15:13.311Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858, upload-time = "2026-03-09T13:15:15.103Z" }, + { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539, upload-time = "2026-03-09T13:15:16.661Z" }, + { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310, upload-time = "2026-03-09T13:15:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244, upload-time = "2026-03-09T13:15:20.444Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154, upload-time = "2026-03-09T13:15:22.039Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377, upload-time = "2026-03-09T13:15:23.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288, upload-time = "2026-03-09T13:15:25.789Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158, upload-time = "2026-03-09T13:15:27.63Z" }, + { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260, upload-time = "2026-03-09T13:15:29.421Z" }, + { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403, upload-time = "2026-03-09T13:15:31.517Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687, upload-time = "2026-03-09T13:15:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032, upload-time = "2026-03-09T13:15:34.411Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fa/2910df836372d8761bb6eff7d8bdcb1613b5c2e03f260efe7abe34d388a7/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797", size = 130262, upload-time = "2026-03-09T13:15:35.629Z" }, + { url = "https://files.pythonhosted.org/packages/0f/41/c5f71f9f00aabcc71fee8b7475e3f64747282580c2fe748961ba29b18385/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203", size = 138036, upload-time = "2026-03-09T13:15:36.894Z" }, + { url = "https://files.pythonhosted.org/packages/fa/06/7399a607f434119c6e1fdc8ec89a8d51ccccadf3341dee4ead6bd14caaf5/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7", size = 194295, upload-time = "2026-03-09T13:15:38.22Z" }, + { url = "https://files.pythonhosted.org/packages/b5/91/53255615acd2a1eaca307ede3c90eb550bae9c94581f8c00081b6b1c8f44/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57", size = 75987, upload-time = "2026-03-09T13:15:39.65Z" }, + { url = "https://files.pythonhosted.org/packages/17/6f/6fd4f690a40c2582fa34b97d2678f718acf3706b91d270c65ecb455d0a06/kiwisolver-1.5.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:295d9ffe712caa9f8a3081de8d32fc60191b4b51c76f02f951fd8407253528f4", size = 59606, upload-time = "2026-03-09T13:15:40.81Z" }, + { url = "https://files.pythonhosted.org/packages/82/a0/2355d5e3b338f13ce63f361abb181e3b6ea5fffdb73f739b3e80efa76159/kiwisolver-1.5.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:51e8c4084897de9f05898c2c2a39af6318044ae969d46ff7a34ed3f96274adca", size = 57537, upload-time = "2026-03-09T13:15:42.071Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b9/1d50e610ecadebe205b71d6728fd224ce0e0ca6aba7b9cbe1da049203ac5/kiwisolver-1.5.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b83af57bdddef03c01a9138034c6ff03181a3028d9a1003b301eb1a55e161a3f", size = 79888, upload-time = "2026-03-09T13:15:43.317Z" }, + { url = "https://files.pythonhosted.org/packages/cd/ee/b85ffcd75afed0357d74f0e6fc02a4507da441165de1ca4760b9f496390d/kiwisolver-1.5.0-pp310-pypy310_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf4679a3d71012a7c2bf360e5cd878fbd5e4fcac0896b56393dec239d81529ed", size = 77584, upload-time = "2026-03-09T13:15:44.605Z" }, + { url = "https://files.pythonhosted.org/packages/6b/dd/644d0dde6010a8583b4cd66dd41c5f83f5325464d15c4f490b3340ab73b4/kiwisolver-1.5.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:41024ed50e44ab1a60d3fe0a9d15a4ccc9f5f2b1d814ff283c8d01134d5b81bc", size = 73390, upload-time = "2026-03-09T13:15:45.832Z" }, + { url = "https://files.pythonhosted.org/packages/e9/eb/5fcbbbf9a0e2c3a35effb88831a483345326bbc3a030a3b5b69aee647f84/kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232", size = 59532, upload-time = "2026-03-09T13:15:47.047Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9b/e17104555bb4db148fd52327feea1e96be4b88e8e008b029002c281a21ab/kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a", size = 57420, upload-time = "2026-03-09T13:15:48.199Z" }, + { url = "https://files.pythonhosted.org/packages/48/44/2b5b95b7aa39fb2d8d9d956e0f3d5d45aef2ae1d942d4c3ffac2f9cfed1a/kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737", size = 79892, upload-time = "2026-03-09T13:15:49.694Z" }, + { url = "https://files.pythonhosted.org/packages/52/7d/7157f9bba6b455cfb4632ed411e199fc8b8977642c2b12082e1bd9e6d173/kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16", size = 77603, upload-time = "2026-03-09T13:15:50.945Z" }, + { url = "https://files.pythonhosted.org/packages/0a/dd/8050c947d435c8d4bc94e3252f4d8bb8a76cfb424f043a8680be637a57f1/kiwisolver-1.5.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1", size = 73558, upload-time = "2026-03-09T13:15:52.112Z" }, +] + +[[package]] +name = "lark" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" }, +] + +[[package]] +name = "ldpc" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pymatching" }, + { name = "pytest" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "sinter" }, + { name = "stim" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/3d/1642f2456dc4c494ab1209b8da8a886cd4e82280839c8ef434294492738d/ldpc-2.4.1.tar.gz", hash = "sha256:729376026af4e46e550c333152f073dcf42224589380d309f38923e00736ceba", size = 1077057, upload-time = "2025-12-08T15:10:52.19Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/ff/3117aefc1c96e326f9202148e90b2df079134b01560baa1afad7e5a6b180/ldpc-2.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd3236dfafca2d131fda447bc0967cfebe416c300e57843ecc4ad2e6bcbb5b41", size = 1838599, upload-time = "2025-12-08T15:10:16.083Z" }, + { url = "https://files.pythonhosted.org/packages/c8/5c/956b57ce1ca189874bcb3dd2a1e0b69e1983ec3959fa7985a852b89b1c1b/ldpc-2.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4668eb988c0f02fc5aa9a33546a5d8d77e22a313cc05bd4057e29b45234fcfc", size = 1799645, upload-time = "2025-12-08T15:10:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/82/69/880f2c6de35725544406242f20834f248f786a5f79327f0d25a89014b76f/ldpc-2.4.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1bfa21ec4839e203651627dedf94931d7b88ca6888afd3161c79f5cfb49c766", size = 8111299, upload-time = "2025-12-08T15:10:20.223Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8e/79dc136fb4a375787bfea2a825b7a8ffb4bf1399d94e000f24e216f5fa62/ldpc-2.4.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b861c9b6e0e9d21db95a1adad9f69fe06e729417edb44363c8c37c24259816d", size = 8241769, upload-time = "2025-12-08T15:10:21.882Z" }, + { url = "https://files.pythonhosted.org/packages/27/c0/41d4797ad25d912bf271810dd43cce98bdc86108b097fc61bbfb8482beff/ldpc-2.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:b143a62e55ac8d8ee60d7956b835426f980d04897af91185c978552321caf7e8", size = 1741775, upload-time = "2025-12-08T15:10:23.485Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fe/df722641c8ebacc84ab11ef923b5d43bbf6016ce7e5f7d72e82de6115564/ldpc-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fae91c5a279cb60c0c1d78ae343e241124e4de1a6dcca881cda688a9ea7a404c", size = 1834765, upload-time = "2025-12-08T15:10:24.689Z" }, + { url = "https://files.pythonhosted.org/packages/97/db/37528f37cf7919bbce5695e05336fc2f83019f4d433d2c2abe8975871450/ldpc-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a15d944db7434a7435df512666b7b60e7c243809fa160f94bb9123009656c4dd", size = 1797083, upload-time = "2025-12-08T15:10:26.088Z" }, + { url = "https://files.pythonhosted.org/packages/13/f8/702edc71d4d5a3e5eefb1a6c8b65993989de114eae7c452548efebff5cca/ldpc-2.4.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1af8949d463273bfec595411dbf98192510a80255844bac464a05b909939fc80", size = 8231235, upload-time = "2025-12-08T15:10:27.19Z" }, + { url = "https://files.pythonhosted.org/packages/82/51/bc19ffc320d0cb6430c57c7c1e1457e4e8fb4ab3ae10883b28639a40f41a/ldpc-2.4.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:37028d9d045130b101f4fcedae3b7a4c04802633bf2b09927703d3a0604c8554", size = 8355639, upload-time = "2025-12-08T15:10:28.555Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b0/00dd384b4ff54c9b9ab8bfe7e52b212963831bef3d72547092a5cb77971c/ldpc-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:602445197320d9dc9ce4a2af6e0661d8d303ef2cddea24b99bee6b51415a343e", size = 1741069, upload-time = "2025-12-08T15:10:30.218Z" }, + { url = "https://files.pythonhosted.org/packages/d0/3b/11c487a402c58e646ce5736412ff4aa06ff0cbf20c4e228e1c942c473b08/ldpc-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:035ceb48f9d8c0d2ab37eee67f87692a935ba586ebc380a0f7ad7bac3192a872", size = 1834836, upload-time = "2025-12-08T15:10:31.333Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ee/157f674b39807af9a16a2d682b6993a3696709278c83fe9039356cbd5460/ldpc-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4010c9ac9eff008c058dfa9f225325d5aed8b7a0b55ec0975a737fc7352aa301", size = 1795380, upload-time = "2025-12-08T15:10:32.459Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b3/491228c3ee52889be6dbc9d3dbc1cff7f81d7174154dff564307fa76d694/ldpc-2.4.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6701b042f8d505f205c7fe39820566513f1191ed04413e0968bb54bfbc6f0086", size = 8122834, upload-time = "2025-12-08T15:10:33.59Z" }, + { url = "https://files.pythonhosted.org/packages/d6/b0/a480113901c689b73087406f0a09a2206de2c71e2b791257802362bd5b12/ldpc-2.4.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b49b8b14413ec0d4c68c4f5a9bcaff0232363aed71652a75ed6af1234c58031b", size = 8266025, upload-time = "2025-12-08T15:10:35.163Z" }, + { url = "https://files.pythonhosted.org/packages/39/05/6b2cab8a9417d4de79bd67f281f420dd5862c1fe7b6f12b0910001d05938/ldpc-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:1d7965b6c3dc53ac0bc852e3769516a4b4a2756f26c6a683ea675c1e1771da42", size = 1736143, upload-time = "2025-12-08T15:10:36.837Z" }, + { url = "https://files.pythonhosted.org/packages/63/ba/bd1a4ebdbd1a06bfbded0e8c1117ee07be9f85427116c9ff8ad877fb01a3/ldpc-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9b4d3630f4410700a099a8a3fefd030684294ed624e3285f415c6997b0a9f63f", size = 1830219, upload-time = "2025-12-08T15:10:38.126Z" }, + { url = "https://files.pythonhosted.org/packages/bf/fb/f370df5080ee59316244cef6f8b88391fbd392fe8f702f116138bc57d804/ldpc-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:08ebc2e6cde49b1c0645a0eab8e2b4a843935858daeb3fd86598119c9c3a6d99", size = 1790660, upload-time = "2025-12-08T15:10:39.551Z" }, + { url = "https://files.pythonhosted.org/packages/3e/94/3f92b7f2c5f073e11b900b6af540534a77ea968e048131dd403576b1fd1f/ldpc-2.4.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:07ecf26a3ffe5ffddd6bbe5d6c4c764d11753664379b566a86e136a4a6f9dd59", size = 8111488, upload-time = "2025-12-08T15:10:40.76Z" }, + { url = "https://files.pythonhosted.org/packages/e0/72/7502708d32e54e1a220967c92429b1ee056aaca34d22018573251e16c91a/ldpc-2.4.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a77bcfd3570bc3cda0c429ba9e5b3a4404c422228d3b6fcc1b0e7dee6493cdf", size = 8250654, upload-time = "2025-12-08T15:10:42.639Z" }, + { url = "https://files.pythonhosted.org/packages/f0/8a/c92b85dd756121a699ce94c3ea15c6222a6613b1d3e3564de45b5d59a92d/ldpc-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:5790180b77c588a72d2bf828b4e38e6f85c5e9dae967420c6b2ac7c317b3bd83", size = 1733849, upload-time = "2025-12-08T15:10:43.878Z" }, + { url = "https://files.pythonhosted.org/packages/85/b8/22c448877853ea5a4404332b27e3dc6b9494c85fd7d79e5fc7fa11102277/ldpc-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:609f71596553e9c1d916bc154674dd6c9b90062de8a53ff0a197e2d2e9422480", size = 1850426, upload-time = "2025-12-08T15:10:45.024Z" }, + { url = "https://files.pythonhosted.org/packages/11/85/4e69e11161b26f3a84c3bfbf9f8d450f67db4ec1ba85e19a05b48933ddf0/ldpc-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:73c59007646cb2256711240e42a857dfda3c65c099c4b8c45d99857d8737e803", size = 1812908, upload-time = "2025-12-08T15:10:46.566Z" }, + { url = "https://files.pythonhosted.org/packages/c9/8e/acc202ff674adbd7ea669bdebd3a25d79ef959580d00fc83abad15044651/ldpc-2.4.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5a5359842a5be1bd026a887e4cdd77e8ba01c5ad70088fd50180715b60eac21", size = 8108700, upload-time = "2025-12-08T15:10:47.939Z" }, + { url = "https://files.pythonhosted.org/packages/a1/5d/9b225037ffeae0ed37d8a7480d42896be062dfca77107f966e7dad04d40c/ldpc-2.4.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:569e9b6b13aa0165a49c6108eec3fda573054f62bb04927ff934c06ba5420c8e", size = 8226530, upload-time = "2025-12-08T15:10:49.235Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b0/bdf54742c088af7eeda98a79e27bf36f9c51f7fa674456c1ac1a4d5a2ebf/ldpc-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:35426040ccbf633683009de0528eee06b4fa944ffdf13e6f89167770bc4fe10d", size = 1762702, upload-time = "2025-12-08T15:10:50.702Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.48.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/a0/acc8ffcd5bdc63df0097e22c719bfcd61b604358343089313a8aebbb24ab/llvmlite-0.48.0.tar.gz", hash = "sha256:543b19f9ef8f3c7c60d1468191e4ee1b1537bf9f8a3d56f64c0ddd98de92edd2", size = 184016, upload-time = "2026-07-02T20:20:05.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/4e/32543c42568fb321b3bdfcf9106e4116ab8f5a7bbcfd9ecf5569b0c07d83/llvmlite-0.48.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:614aad57df707e3172efd5165f2aa7da6a0c6897e40dce590bf756396815ba76", size = 40480650, upload-time = "2026-07-01T18:41:01.945Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0d/6aa48abd423067139a129d1434b77bbcc56080db51d12a88510bb491ca3d/llvmlite-0.48.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:13532f248960ba888ad5ab8150494e2f3a3d20e5f59f264e63741ea5b0ba844c", size = 59890118, upload-time = "2026-07-01T18:41:10.608Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c7/aa917444d871a79608af49149de1b28764e87d2ab41f933c5cd02431d03d/llvmlite-0.48.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ee0c77685a18f5fca994ae21d0763007fca5c5c64b41de37accc78b69079176", size = 58343459, upload-time = "2026-07-01T18:41:06.21Z" }, + { url = "https://files.pythonhosted.org/packages/c5/2b/ceee1cdc263617109d514ac4d1b31f10a282662740ff7d5777baae25b3b5/llvmlite-0.48.0-cp310-cp310-win_amd64.whl", hash = "sha256:02853fe4214acb3780fc920c3fee10564b61d58a35e1b78afcc8a546c2deaba3", size = 41864734, upload-time = "2026-07-01T18:41:14.746Z" }, + { url = "https://files.pythonhosted.org/packages/9a/55/595981f14fbae9ba966feb12af552b1fe69889e44e64ac883a731ed335e0/llvmlite-0.48.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:56a7e24607d3f02d7b1bae8d29c7e1e423d53143d68b072999777f19678fe77b", size = 40480651, upload-time = "2026-07-01T18:41:18.438Z" }, + { url = "https://files.pythonhosted.org/packages/26/08/0109d1b9cb3f4603f3890e30bc66c65332b79185f12a045343b2ae431f67/llvmlite-0.48.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6fa532d6bb3fd3f0803567c736401c54aecfe1a396d3ad25d2440d220e09f0e7", size = 59890118, upload-time = "2026-07-01T18:41:28.184Z" }, + { url = "https://files.pythonhosted.org/packages/02/eb/c5281be180c789cdffbf45b671884c57d7e61345ef3b0f643a4965e108e8/llvmlite-0.48.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:979a66a3f28a02565383ff463527dce78e9b856298872a361283132488e83591", size = 58343458, upload-time = "2026-07-01T18:41:23.397Z" }, + { url = "https://files.pythonhosted.org/packages/aa/f7/b3222b13f2d424dae3c9e63fde476af25ebccf1f3faf0b52d1b79fc15c70/llvmlite-0.48.0-cp311-cp311-win_amd64.whl", hash = "sha256:efaee0276e5e17c2b99b92e0c974bd484ef5977cf5dbc9168e82b71578edb47f", size = 41864734, upload-time = "2026-07-01T18:41:31.932Z" }, + { url = "https://files.pythonhosted.org/packages/92/a2/28696a9e61e245d1a79816d29d106692a90a2b6e7d78c98b326db70827af/llvmlite-0.48.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:d66c3beb4209087ddd4cf4ed2a0856b6887e6a913bdcf1aacfec9851cf2cba4e", size = 40480651, upload-time = "2026-07-01T18:41:35.694Z" }, + { url = "https://files.pythonhosted.org/packages/80/f2/72409351db66d0a317ec5087e076f31fb7b773a640db8a90ce6b5cac9edd/llvmlite-0.48.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:416fa4c2c66c2c6dc6d0a402648c19206e548efa0aa1eff01ad5cdad0af8217d", size = 59890118, upload-time = "2026-07-01T18:41:44.886Z" }, + { url = "https://files.pythonhosted.org/packages/3a/27/5ae2f3722606360480707adb47f001ad89df8251d06b14ee80336e660b66/llvmlite-0.48.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5e5a5131045b72345c71062ea1a91910dde913792b6c9b28ebb2c1c0a712e98", size = 58343459, upload-time = "2026-07-01T18:41:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/16/78/d824ffff7521cd140dc2006e44ce2bc82e64b48d1b32e90e956308c85a74/llvmlite-0.48.0-cp312-cp312-win_amd64.whl", hash = "sha256:d45c7541a80934ec6d8ab0defe67439494ecd2193cbf852a44ba827808976ac1", size = 41865022, upload-time = "2026-07-01T18:41:48.663Z" }, + { url = "https://files.pythonhosted.org/packages/9c/23/fe9316d14626b42c73ef0b502e724705a6ee9450afe53759c0a99c37c2d7/llvmlite-0.48.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a83a99ef0c05b4ccddf9b6218ed9fe84b653a0caf7c1d9dbe148d6d16c67f518", size = 40480652, upload-time = "2026-07-01T18:41:52.216Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4a/90715fa12006d681270b08d881195b6fab3ec39572e048764a1f7f59fed7/llvmlite-0.48.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8761b9e522f55207e24424fcd98370289eec2710bf8e915c82d1053f642450dc", size = 59890120, upload-time = "2026-07-01T18:42:00.748Z" }, + { url = "https://files.pythonhosted.org/packages/70/5e/7b3e20d64650ca3c80af0cdb664ec4b575ec83d9d4dd05bea8bd31f9bbb6/llvmlite-0.48.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fe5cb59b2063bfa039dcb8ca6481c0181bf552f340d10dcf61d7996a665556e", size = 58343457, upload-time = "2026-07-01T18:41:56.41Z" }, + { url = "https://files.pythonhosted.org/packages/17/97/5a430055d1838cf1fb7a01cfa943300f5e4c026fc6333a522c5e4a03b0c1/llvmlite-0.48.0-cp313-cp313-win_amd64.whl", hash = "sha256:91c7e24e74cde3f02b88aa5acca678373f9e069f3b98531b3dbb3a142d9d10bb", size = 41865022, upload-time = "2026-07-01T18:42:04.57Z" }, + { url = "https://files.pythonhosted.org/packages/8d/8e/8170f2e0c217f88069c333d85bb976e536b332aecfcce606ddbdb249385f/llvmlite-0.48.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:321f1ac39b462603f0b589751aecf2d237d056f6d005749c1752b6f23ec3f074", size = 40480650, upload-time = "2026-07-01T18:42:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e1/05b50692b647cac3c18200ac485b04f342f00ed173c9cc46767274469a15/llvmlite-0.48.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:05f0103c8f2f96a37441337e3643863c01b8e83e530aff38960dcb383c54a065", size = 59890115, upload-time = "2026-07-01T18:42:17.805Z" }, + { url = "https://files.pythonhosted.org/packages/f7/c3/470b8c4ff9ae2db2f9cf5c3e73de76ed908a32788ae9eb5602d43e6a476b/llvmlite-0.48.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37d66fae72802175b0bfe1ea06e624b51e2d7aee6c3c34bbd09739b8f88e8e0b", size = 58343457, upload-time = "2026-07-01T18:42:13.217Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2d/6a5171fb7236ac0895e1a02ccba3735bf291e8597239aa6421894d3c0ba8/llvmlite-0.48.0-cp314-cp314-win_amd64.whl", hash = "sha256:966dcab0a598e2bd8fb5f2cc082cf7b07bae564fc485a3a8692393caf986facf", size = 42986372, upload-time = "2026-07-01T18:42:21.483Z" }, + { url = "https://files.pythonhosted.org/packages/94/e3/7a93e09c9f94e637ca90209ceef0334a9a1d45b0bdb7c92ff922d25d6187/llvmlite-0.48.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7a5c413317050a1d67c34708bde97707f9b2257ef1017f7532d21fe7d9a9ff30", size = 40480654, upload-time = "2026-07-01T18:42:25.076Z" }, + { url = "https://files.pythonhosted.org/packages/27/98/a29133b4728671a175f7d616fab8b1c6e1d8c269d1523581d3160697bfb1/llvmlite-0.48.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d9f952dff6c350c529997423d4fa43abae9722a884ac7ffafc37a3af676e7db", size = 59890119, upload-time = "2026-07-01T18:42:33.88Z" }, + { url = "https://files.pythonhosted.org/packages/1a/cf/7aac11a1f1c7ec54b60c7f6814e87561fb6b55b2f290455d7941eb113420/llvmlite-0.48.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:054aa7d46595935565f276cf0c1659b4f10929c996dd4a606875fae26fba2a23", size = 58343460, upload-time = "2026-07-01T18:42:29.545Z" }, + { url = "https://files.pythonhosted.org/packages/db/41/b96f440c7df5ebba07872cad4e30fbc3560387755b1ea0b629adb76d5ca8/llvmlite-0.48.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d0b3c61aac83b42fb48cc96bffbf57c81b82b2aa92276b7ed6420c814629a99a", size = 42986383, upload-time = "2026-07-01T18:42:37.544Z" }, +] + +[[package]] +name = "loguru" +version = "0.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "win32-setctime", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559, upload-time = "2024-12-06T11:20:56.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" }, +] + +[[package]] +name = "lxml" +version = "6.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/3b/aab6728cae887456f409b4d75e8a01856e4f04bd510de38052a47768b680/lxml-6.1.1.tar.gz", hash = "sha256:ba96ae44888e0185281e937633a743ea90d5a196c6000f82565ebb0580012d40", size = 4197430, upload-time = "2026-05-18T19:19:06.424Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/da/dbe4dfc01ac226fb0504fad035f4d69f3202f3502e20e68537631daddd96/lxml-6.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:09dd5b7075dc2f7709654a46543ba1ea3c2e217b2ed8fbd413a8a945a0f40f60", size = 8541124, upload-time = "2026-05-18T19:17:11.589Z" }, + { url = "https://files.pythonhosted.org/packages/78/20/f7095ed9fc2c025f9cfe71cc6ec9f1feb05624edc1812423b5f1aecf3d4b/lxml-6.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f6ac4ef4d82dff54670227a69c67782ae0b811b5cf6b17954f1e8f7502fc0d1d", size = 4602783, upload-time = "2026-05-18T19:17:20.888Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a4/65c63ca98bd129f6cff7b8c2fa48953ab058cc6005b541354e7dd54d8000/lxml-6.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:556e94a63c9b04716f8e4de2abb65775061f846e89331b6c5be79183a24f98ea", size = 5002687, upload-time = "2026-05-18T19:17:01.738Z" }, + { url = "https://files.pythonhosted.org/packages/96/1d/ab7a5c4b5a394d98a94e2d0fc67bab8297597426770dd4978370fbdaf531/lxml-6.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5c6bf403fbb3b3e348a561a5f4f0b9961835657981c802a1df03653eef8a9074", size = 5155099, upload-time = "2026-05-18T19:17:05.159Z" }, + { url = "https://files.pythonhosted.org/packages/d0/b1/07603bfeeb891a2596d5c2a68f7d2f70f7d11c841ebe391412c69c2857b0/lxml-6.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1dde6131244bba38a17c745836ba190bc753fd73c9291666287fd0a3fa3dcf30", size = 5057225, upload-time = "2026-05-18T19:17:08.117Z" }, + { url = "https://files.pythonhosted.org/packages/7a/16/cb391ee4b90186fa16d9ebcbe3ea96c71b8da3b0686386c8dcbcc3c67d44/lxml-6.1.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98fc784c2c1440667aeedf8465bdfe10208acf0ead656a2c68627299f546b315", size = 5287643, upload-time = "2026-05-18T19:17:11.507Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d6/b619717f918fd76747448fdbaee0e769edbc70e659b5b5d0112b7020b7a3/lxml-6.1.1-cp310-cp310-manylinux_2_28_i686.whl", hash = "sha256:add8cf6ddf9a65116119a28ece0f7886e30af27ba724a7594305f1d1b58a92a1", size = 5412445, upload-time = "2026-05-18T19:17:22.182Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/12bc5390ac0a3edeb579d9535e5049a5dda663438728e179d52fb319c33a/lxml-6.1.1-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:cf9d57306d848218f3601fee7601fab1a327c942d56e2e97610583cb4dd74206", size = 4770864, upload-time = "2026-05-18T19:17:26.851Z" }, + { url = "https://files.pythonhosted.org/packages/0b/59/6500c09da3137f54f020e908d81cfc5ee3e8888e908fd380207afad7c2e6/lxml-6.1.1-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88136950da4d13c318bde414ce10219931937851327f44328f2df4d2c4614067", size = 5359594, upload-time = "2026-05-18T19:17:32.527Z" }, + { url = "https://files.pythonhosted.org/packages/f2/9b/f64b4cc6b7ebcf75d95af3cde934d254b5f2f10d4163928d838d86b6eb48/lxml-6.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cecdd5dfdc87b1fd87dbf81d4b037a544f47f4c744200a67013771682d67686a", size = 5107713, upload-time = "2026-05-18T19:17:04.402Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/c7388ad5d3a72315d2832dc1458cbf4f2af7f2b990b606ff4876efd04511/lxml-6.1.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd312b9692e831d2ffcad61eab31d91d4b4655a962e61de8fb410472cbcd37aa", size = 4803973, upload-time = "2026-05-18T19:17:06.545Z" }, + { url = "https://files.pythonhosted.org/packages/3f/22/76197f0bbf165f0b9e75be59be4997e5259cde973f12f098c1b54c7f5d60/lxml-6.1.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:5b7328b46d49fc9477d91ae8f6d55340347d827b7734ba3ea33faae0efef1383", size = 5349925, upload-time = "2026-05-18T19:17:09.743Z" }, + { url = "https://files.pythonhosted.org/packages/24/52/d2a0cfeccb9bcdc47c7ee05cdae5d69b48c9acf20997790a6338bb0d0b3b/lxml-6.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37a58976370f36d9329d118ad0b953c5aeb9119ac9c6a4e258942a225d0573a1", size = 5309825, upload-time = "2026-05-18T19:17:13.831Z" }, + { url = "https://files.pythonhosted.org/packages/19/4a/b30944266776c2f49749ef2445aa7e78898194134b80ad776386f61b56ae/lxml-6.1.1-cp310-cp310-win32.whl", hash = "sha256:cea3f4c1af79af13cdb2da0c028111d8f8522d4f22a000c82385535f24e5cf3a", size = 3598402, upload-time = "2026-05-18T19:17:08.21Z" }, + { url = "https://files.pythonhosted.org/packages/9e/97/33691c66a4d7ec1a5a98e7c909a5b83ee45c7f7ba4cf92b1c4cf26e98079/lxml-6.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:3abf332af33a74288675d936fe861fd4344da0dd6622193fbc4f2bfbb35536b5", size = 4021295, upload-time = "2026-05-18T19:17:28.638Z" }, + { url = "https://files.pythonhosted.org/packages/d0/5f/26a4dd0e12b9456ff7b12a21af5b491eb6629680d1edd73f4140fd386bcf/lxml-6.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:8dadbe5b217ff35b6a8d16610dd710219b59b76d13f0e3f0d9f36786206e4485", size = 3667717, upload-time = "2026-05-19T19:22:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/62/b0/83f481780d1548750b8ce2ec824073deef2f452d9cd1a6faff8507e3d16d/lxml-6.1.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:53b7d2b7a10b1c35c0a5e21e9224accf60c1bbfba523990732e521b2b73adef2", size = 8526461, upload-time = "2026-05-18T19:17:25.862Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d5/30fa0f808002c7329397bfbb24e306789c0b29f04aa5842c07b174b4216f/lxml-6.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ff3f333630ab480244a1bff72043e511a91eb22e7595dead8653ee5612dd8f3d", size = 4595375, upload-time = "2026-05-18T19:17:34.555Z" }, + { url = "https://files.pythonhosted.org/packages/4f/d2/edb71cf0e561581a7c5eb2626244320eb04e9f8ce6d563184fd668b45073/lxml-6.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a4bbea04c97f6d78a48e3fbc1cb9116d2780b1b39e03a23f6eb9b603fd61f510", size = 4923654, upload-time = "2026-05-18T19:17:42.917Z" }, + { url = "https://files.pythonhosted.org/packages/4c/77/1bc7eeb0de4577d783fb625aa092cc9357883bba35845a3666bf1259f3dc/lxml-6.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:db1d75f6617a49c1c01bc7023713e0ff59ab32c9579ae62a7674c0e34f3b0b0a", size = 5067921, upload-time = "2026-05-18T19:17:49.175Z" }, + { url = "https://files.pythonhosted.org/packages/1b/3c/c0690d74bd2bc17bc03b5b0d093569ead597dd0bfa088bf99eef8c24e19c/lxml-6.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a12689be69a28ddaa0ab99a5a1137da2afd5f8f16df7b5680b66f616d3eda1d", size = 5002456, upload-time = "2026-05-18T19:17:59.715Z" }, + { url = "https://files.pythonhosted.org/packages/66/8d/d1b3271af0c0f1e27e8472a849e4d2c65bc7766884b9ad2da9e76e145c88/lxml-6.1.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b73c339ae29b90fd2d06e58ebd555a751bde9cd6bbd36cc0281b9a2c94e9d8", size = 5202776, upload-time = "2026-05-18T19:18:08.924Z" }, + { url = "https://files.pythonhosted.org/packages/7a/45/689824ffb237fd10125ad273f32b28ff04dc6203c2822c85ff65a93df65e/lxml-6.1.1-cp311-cp311-manylinux_2_28_i686.whl", hash = "sha256:752d3bbfe874715ccd0aec7f88d7fc623c0f1fd7aa7b3238a084e017bad2a009", size = 5329945, upload-time = "2026-05-18T19:18:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/5d/c0/ef73af53767e958fd87d437c170f272e2f6e6c0f854939f133a895f1e711/lxml-6.1.1-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:6b1761fbf9ec984e2e9d9c589ef5f5fd684b7c19f92aadd567a26c5224958db6", size = 4659237, upload-time = "2026-05-18T19:18:18.657Z" }, + { url = "https://files.pythonhosted.org/packages/a0/5e/e1158e40397585e91cb0472374a1f63d0926a1ddeaa92f13d1a1ffe306d5/lxml-6.1.1-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d680fbcb768404c601ecb43519ecd8461f6954cb11c06a78962f666832ccfca8", size = 5265904, upload-time = "2026-05-18T19:18:24.883Z" }, + { url = "https://files.pythonhosted.org/packages/a0/16/8687e5d1400ed1c0bc41dace232ebb7553952b618ea1f2e5fb6e2cfbbe23/lxml-6.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:162af1091cd785f2f27e62d3547ae9bc58ec5c86dd314d67021fd02463708d83", size = 5045225, upload-time = "2026-05-18T19:17:20.073Z" }, + { url = "https://files.pythonhosted.org/packages/ca/18/d877bd1ae2e5ffdfd4836565aba350db31feb2f2656d6ce70316ed66a05e/lxml-6.1.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e9308ff8241c532df3f3e570f9a5aeed6c853f888512ba4b75638d7c11c95ef6", size = 4712721, upload-time = "2026-05-18T19:17:40.512Z" }, + { url = "https://files.pythonhosted.org/packages/44/4d/1f44fd1d770b10dacbf6b5c6e520f4d6e0708744930f719dc04e67cab981/lxml-6.1.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5f6994074ebae6ffb04447268e37dc16edc304f9859cf91acb86e0af6c1b395c", size = 5252549, upload-time = "2026-05-18T19:17:51.236Z" }, + { url = "https://files.pythonhosted.org/packages/64/5d/1d66b84f850089254c230ef6ea6b267a5a54e2e179a5d960036a05d501d7/lxml-6.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80c2dfadb855da477cf73373ad29a333535dedb9b12bad02c9814c8e2b43bf08", size = 5226877, upload-time = "2026-05-18T19:18:00.875Z" }, + { url = "https://files.pythonhosted.org/packages/ad/00/84c4b5302d42a2d0184f38d538c8a197f33b52a50bd4f7bcfe990bce3036/lxml-6.1.1-cp311-cp311-win32.whl", hash = "sha256:30a89d3ac8faec007453fb541f3f46807eeec88edd5826f6e3fe001752a2c621", size = 3594072, upload-time = "2026-05-18T19:17:12.714Z" }, + { url = "https://files.pythonhosted.org/packages/61/9d/2e2f7d876349f45e0f3e29f72da311668853d59b58d473a2dea4f0160135/lxml-6.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:abbefa31eee84842140f67acef1c828e28bba8bbf0c3bc6e5492a9af88152c28", size = 4025469, upload-time = "2026-05-18T19:17:50.566Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d5/570e6390e4110331e6208b2ba83d1482cc9146808ee118b22824a34c1070/lxml-6.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:dcb292aa7fe485ceff7af4f92e46c5af397daec5dff64871a528f0fc47a3cc5b", size = 3667640, upload-time = "2026-05-19T19:22:48.293Z" }, + { url = "https://files.pythonhosted.org/packages/6a/6e/c4add832b6fc1e887125b96f880d7b9b70aae5248718e046b1704bcac4b9/lxml-6.1.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:104c09bda8d2a562824c0e319d0768ce26a779b7601e0931d33b09b53c392ef7", size = 8570821, upload-time = "2026-05-18T19:17:42.068Z" }, + { url = "https://files.pythonhosted.org/packages/22/00/ff3009c88e65de8011630acf8ab5a09cb2becd2aaf47fba2f3449f6224e9/lxml-6.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:25c6997a9a534e016695a0ba06b2f07945de682731ff01065b6d5a4474179da1", size = 4624252, upload-time = "2026-05-18T19:17:47.897Z" }, + { url = "https://files.pythonhosted.org/packages/42/95/bb63f0fd62e554fe078e1fb3c8fe9083c14ddc7ad7fa178d10e57e071ac7/lxml-6.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c921ba5c51e4e9f63b8b00267d06566e1f63407408a0496da2d1d0bfc819c7fc", size = 4930746, upload-time = "2026-05-18T19:18:29.637Z" }, + { url = "https://files.pythonhosted.org/packages/eb/99/0013e8d9b5960f4f041cf0b73e2f80c23eb5205b1f7bfb20203243651359/lxml-6.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:54a7f95e4de5fb94e2f9f4b9055c6ba33bf3d628fd77a1d647c5923caa2cdcdc", size = 5093723, upload-time = "2026-05-18T19:18:34.168Z" }, + { url = "https://files.pythonhosted.org/packages/29/91/317b332636bfc7bddcff828d41b3307f50043f4b237e40849c333d80fa1a/lxml-6.1.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f2ec43df44b1f76249ee0a615334f9b5b060e1c8bd90e706dad2d14d02f383", size = 5005557, upload-time = "2026-05-18T19:18:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/42/2f/cc9bf06afe70f9c9093ae60855d9759da9db601ec4080f7473319666ffd7/lxml-6.1.1-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:70ef8a7e102a1508f8121aae5b0867abd663f72c14f0a9c937e6554cb4587b7b", size = 5631036, upload-time = "2026-05-18T19:18:44.858Z" }, + { url = "https://files.pythonhosted.org/packages/08/f6/af32e23e563971ffb0fb86be52bc5be5c2c118858ffc119bf6a9039b173d/lxml-6.1.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ebe6af670449830d6d9b752c256a983291c766a1365ba5d5460048f9e33a7818", size = 5240367, upload-time = "2026-05-18T19:18:49.217Z" }, + { url = "https://files.pythonhosted.org/packages/78/83/8555d40948b09ce86f1bd0c68a7ac31d07b1929f92cc1b074006c97ef2d2/lxml-6.1.1-cp312-cp312-manylinux_2_28_i686.whl", hash = "sha256:27acc820660aaffa4f7c087f29120e12980f7779d56d8492d263170111284740", size = 5350171, upload-time = "2026-05-18T19:18:52.779Z" }, + { url = "https://files.pythonhosted.org/packages/63/75/5d92da93729b7bad783689e6496049fa40927b45bec7bf183c981de3ca70/lxml-6.1.1-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:1db753c9115ec7100d073b744d17e25e88a8f90f5c39b2f5dd878149af59671f", size = 4694874, upload-time = "2026-05-18T19:18:55.139Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b5/3aad415a9a25b822e783f15deeb4dffccf5113030f1afa2222dd929313d9/lxml-6.1.1-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c4f469aebd783bb741c2ecb2a681008fd26bfe5c16a9a72ed5467f834e810df2", size = 5244492, upload-time = "2026-05-18T19:19:01.28Z" }, + { url = "https://files.pythonhosted.org/packages/f1/a1/5fcf7eb9904b80086aa47dcf0027de07b1bb990afad2e6823144c368ae04/lxml-6.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:766b010012d59470072c1816b5b6c69f1d243e5db36ea5968e94accf430a4635", size = 5048232, upload-time = "2026-05-18T19:18:12.67Z" }, + { url = "https://files.pythonhosted.org/packages/77/74/1f601b63c7a69fcdf10fa9b148c81da8442204194f6c55509cc485c786b9/lxml-6.1.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b8d812c6011c08b8111a15e54dd990b8923692d80adf35488bee34026c35accf", size = 4777023, upload-time = "2026-05-18T19:18:15.928Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b9/7a78f51aec95b1bf780d78e12705a9f6533284f8693dc5c0e6724fa53d3f/lxml-6.1.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fe0306bd29505a9177aac19f1877174b0e7422c222a59f70b2cd41633448c3dc", size = 5645773, upload-time = "2026-05-18T19:18:23.223Z" }, + { url = "https://files.pythonhosted.org/packages/a5/6e/98a7b7ad54e4e74fa1f20fff776913980619d0ebe5558232d7da6580bdd8/lxml-6.1.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5ba186ad207446c65d3bb3d3e0412b032b1d9f595e59861e2354798c5703d955", size = 5233088, upload-time = "2026-05-18T19:18:31.433Z" }, + { url = "https://files.pythonhosted.org/packages/65/d1/bc0ed2427bf609f2ee10da303a6a226f9c8bce94f945dc29a32ce55de6e4/lxml-6.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aa366a1e55b8ebfe8ca8ddc3cfe75c8ebade181aeb0f661d0cb05986b647f72a", size = 5260995, upload-time = "2026-05-18T19:18:37.091Z" }, + { url = "https://files.pythonhosted.org/packages/69/8b/6772e1a4b513fc50a8d931f19edde0e13ae6918510a1e13ff67864f3e5ed/lxml-6.1.1-cp312-cp312-win32.whl", hash = "sha256:126c93f7f56f0eda92f6d8c619edc463a4f23d9252f1c9d0405a76f25fa9f11a", size = 3596382, upload-time = "2026-05-18T19:17:18.37Z" }, + { url = "https://files.pythonhosted.org/packages/1b/89/45198e9624762af2dfd2cb8782598477ceb29f6e59caab560388ae1f4ec1/lxml-6.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:26e6eda8d38c1fcab1090dd196ee87cbd13788e531937610e2589085de074e77", size = 3997255, upload-time = "2026-05-18T19:17:56.781Z" }, + { url = "https://files.pythonhosted.org/packages/90/a9/7a54b6834088d9ae528a7b780584ba6a39a9457b0ac330479f20ffbc9449/lxml-6.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:6540377fbd53fe1b629172288c464fb18db11ce1fa7dc15891da10aa9dcc3e7f", size = 3659610, upload-time = "2026-05-19T19:22:50.843Z" }, + { url = "https://files.pythonhosted.org/packages/a5/eb/7e6f37c5584ccbb2ff267f56fd0339016938c1c8684cfefab9b33ffc2f36/lxml-6.1.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:68a9198d0fc122d14bb76837de9aa80cf84caed990b5b237f532ed87d3706736", size = 8559780, upload-time = "2026-05-18T19:17:57.661Z" }, + { url = "https://files.pythonhosted.org/packages/a1/36/587c2521cf23a2cd6c9c22108aa7528f683a1f195ed7ccd23a4b1786ad36/lxml-6.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7d47866cb32fb503450b6edc9df355d10dc49836af2e89901bd6ac6b0896d9d9", size = 4618006, upload-time = "2026-05-18T19:18:04.452Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ca/ab7bfe2bf4c972af5e7878262845ead3a24a929a9b04bc11c7c1ece6c82a/lxml-6.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb7c9811bfaa8b1ed5ed319f5d370dfbcaa59d52ea64be2a5a85e18195930354", size = 4924139, upload-time = "2026-05-18T19:19:04.873Z" }, + { url = "https://files.pythonhosted.org/packages/6b/55/a0c72851dfee5ecc689f949723a73dea457758912542cb955b108eaf0d8f/lxml-6.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:762ff394d5bd56da0cf034a23dcce4e13923f15321a2adfa2ac00201dc6d3fca", size = 5082329, upload-time = "2026-05-18T19:19:09.728Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b6/0608f7d61a3b96cc67e5648a3d906e31a5082093e10e7be65b3886289938/lxml-6.1.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a088f287f7d8275a33c07f2cac6c50b9319309a0200a39e7e75d80c707723099", size = 4993564, upload-time = "2026-05-18T19:19:13.608Z" }, + { url = "https://files.pythonhosted.org/packages/4c/66/ae227524b066d29d55bf0b453d93d2d793c40218657d643dcbbca13b8faf/lxml-6.1.1-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e902da4b04e6b52e5893900d4b8ab46068f75f3561f01bf1080957f9fd932ed6", size = 5613467, upload-time = "2026-05-18T19:19:16.228Z" }, + { url = "https://files.pythonhosted.org/packages/a6/76/dbe4a00b50385e40194231dcfe5a12c059de7cf90e89c83407d2b085b719/lxml-6.1.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1d4962d4c66bf830a7e59ed6cfc17d148149898a3aefa8ec6e59763e6e3ed085", size = 5228304, upload-time = "2026-05-18T19:19:19.354Z" }, + { url = "https://files.pythonhosted.org/packages/1c/01/00b1b8442ed2041793336868ba0b9ea4b13d7da7c085c6404c207a63bf79/lxml-6.1.1-cp313-cp313-manylinux_2_28_i686.whl", hash = "sha256:581d4c8ae690a6609e64862dd6b7c2489635c2d13907fc2b20f2bc200ff1d21e", size = 5341607, upload-time = "2026-05-18T19:19:22.297Z" }, + { url = "https://files.pythonhosted.org/packages/63/36/1ad29931e9a4638bb707869f01d423a6c815f82152138d1a40dfcfde2b95/lxml-6.1.1-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:876e1ff5930ed8bf295ec5ef9a8155e9b6b1876bbf1deed8b3a8069311875a8f", size = 4700168, upload-time = "2026-05-18T19:19:25.133Z" }, + { url = "https://files.pythonhosted.org/packages/3c/d1/a9536cecf9be18a0dc72d32bead283a2332d1ffebd2dd3ac70ce444686e5/lxml-6.1.1-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9eb9b5a968f6e0f6d640092a567e14529ff8cea2e29d00da6f78a79fa49f013c", size = 5232487, upload-time = "2026-05-18T19:19:28.603Z" }, + { url = "https://files.pythonhosted.org/packages/0e/77/b4fb1e03bf5d130e879214d3100092e386418807fb74dd0adc4b0a48f351/lxml-6.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:aa49e06d94aba782c6a02eecb7e507969e7e7a41b267f1b359bb35585f295d5b", size = 5044231, upload-time = "2026-05-18T19:18:42.246Z" }, + { url = "https://files.pythonhosted.org/packages/26/4c/d00daeeb0a5530c4028a9232aa1b93db3ef4ed2158c116ea73c79a9765b3/lxml-6.1.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:70cdfd80589d59e43e18005dd7244e8895e93db8ab6a620b7e23df5445a4e3d2", size = 4769450, upload-time = "2026-05-18T19:18:48.013Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6a/715a3a8d156ce42f29cf014706f5410c2ff3b02267774110fc23266409fe/lxml-6.1.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:aad9aa39483ed8ec44d6d2e59e5b98a0d80676ef0d92f44bfc374836111f62f5", size = 5635874, upload-time = "2026-05-18T19:18:51.914Z" }, + { url = "https://files.pythonhosted.org/packages/45/37/0544bc21dde2a88f3a17b504e6fc79c0e01d25a33c2f6079724e9e72b9c7/lxml-6.1.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:d49514be2f28d895c38cf9d2b72d7b9a07d00314519f456c0b50b53cfcf4c785", size = 5223987, upload-time = "2026-05-18T19:18:59.715Z" }, + { url = "https://files.pythonhosted.org/packages/4d/f8/f6a5e8185bcb28c2befae3d31f8e3df3b811cb0f47746517a81279fcafe1/lxml-6.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:47402e62c52ff5988c1e8c6c63177f5708bccf48e366dea4e3dcf1e645e04947", size = 5250276, upload-time = "2026-05-18T19:19:03.834Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f2/1a2b9f1b7a49d45495369be7ef9ad05b262930f2eab3e3145706fca8083f/lxml-6.1.1-cp313-cp313-win32.whl", hash = "sha256:3483644525531e1d5762b0c44a8e18b6efba321b6dcf8a8952de10b037618bca", size = 3596903, upload-time = "2026-05-18T19:17:29.863Z" }, + { url = "https://files.pythonhosted.org/packages/e6/99/f4ffb024f238eec2131aaa09f3278fb6129cf892741bf68e1fc1afb8c100/lxml-6.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:a10bd2fd62e8ce916ececb342f348f190724a098c1faa056fdfb2a22ad5e8660", size = 3995869, upload-time = "2026-05-18T19:18:02.596Z" }, + { url = "https://files.pythonhosted.org/packages/d1/53/70eb8c5c6037f27448f1e3c54ebede9545a801ae63f0a7254afca4fe8e45/lxml-6.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:424aa57aca0897eb922aef34395bd1289b3b6f04e6bae20ea123c0c7e333cffc", size = 3658490, upload-time = "2026-05-19T19:22:53.846Z" }, + { url = "https://files.pythonhosted.org/packages/13/e2/2e325795566de01d0d7c3bb57d3c370616b2d07b01214e84eec5d3b10963/lxml-6.1.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:19b7ab10b210b0b3ad7985d9ac4eb66ab09a90b20fe6e2f7ba55d01a234345d0", size = 8577146, upload-time = "2026-05-18T19:18:17.765Z" }, + { url = "https://files.pythonhosted.org/packages/93/cf/5630b5e4be7d2e6bee8efe83865c925221103cf0221303b104ce134b01e2/lxml-6.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c08e5c694306507275f2290073350c4f32e383db15213b2c69e7ff39c1193840", size = 4623866, upload-time = "2026-05-18T19:18:30.669Z" }, + { url = "https://files.pythonhosted.org/packages/d2/51/3904907c063451cf8d4a5c9fe0cad95fa1f4ec57f4e3884fa0731bd7a305/lxml-6.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:74a9717fd0d82effef5c2854f0d917231d5324b5a3eb7275c43ac9fa32f97a14", size = 4950022, upload-time = "2026-05-18T19:19:31.958Z" }, + { url = "https://files.pythonhosted.org/packages/94/cd/9c7611a51c37a2830928405817cc5d56a97f64fab83cc3f628748b135749/lxml-6.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efe0374196335f93b53269acd811b944f2e6bdc88e8894f214bd636455484909", size = 5086695, upload-time = "2026-05-18T19:19:34.764Z" }, + { url = "https://files.pythonhosted.org/packages/da/d6/24e3b5906abb0b674ff2ae195bc3ce59708df2bcd17cf17703b2d7dd643a/lxml-6.1.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac931cdc9442c1763b8a8f6cd62c0c938737eafc5be75eff88df55fc73bc0d00", size = 5031642, upload-time = "2026-05-18T19:19:37.771Z" }, + { url = "https://files.pythonhosted.org/packages/2d/db/6ec54f99019838bff54785c51da07f189eb4676861c5f2730962b0d8d665/lxml-6.1.1-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:aee395f5d0927f947758b4ec119fd5fc8ec71f07a1c5c52077b30b04c0fa6955", size = 5647338, upload-time = "2026-05-18T19:19:40.553Z" }, + { url = "https://files.pythonhosted.org/packages/42/3d/ef4dcfffd22d27a61805d8ed9f7fb888495bc6aa88648fa07c1eaa5586b6/lxml-6.1.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9395002973c827b3ed67db77e6ec09f092919a587022174554096a269378fb13", size = 5239528, upload-time = "2026-05-18T19:19:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/62/bb/37fb3f0dff146bdcfa78eec47879273820b2a0bf350ec236ce14bd0b1c26/lxml-6.1.1-cp314-cp314-manylinux_2_28_i686.whl", hash = "sha256:73bc2086f141224ebddb7fc5c6a36ca58b31b94b561e1dfe8e073e3270fad1e7", size = 5350730, upload-time = "2026-05-18T19:19:46.307Z" }, + { url = "https://files.pythonhosted.org/packages/90/42/43253f168388df4fae1f38c01df36ddb9bee39e2048167b54cdcbae85ea3/lxml-6.1.1-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:3779def59032b81e44a5f70096ef6bf2082f8d901937dca354474ba09782e245", size = 4697530, upload-time = "2026-05-18T19:19:49.889Z" }, + { url = "https://files.pythonhosted.org/packages/eb/a8/c5a8504f81bbdfc8e7094c2c850cdb4ed6777fc4d5ddd9e5ab819f3b0d54/lxml-6.1.1-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:86c89b9d55ebf820ad7c90bc533410f0d098054f293351f10603c0c46ff598f5", size = 5250670, upload-time = "2026-05-18T19:19:53.199Z" }, + { url = "https://files.pythonhosted.org/packages/77/b7/c7e76ab18744d75e21f320ebf9ff9d1ceae2b54dd431ea5a64caf26c9672/lxml-6.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19607c6bbff2a44cf3fe8250abccd20942d3462473e0a721d01d379ed017e462", size = 5084485, upload-time = "2026-05-18T19:19:08.422Z" }, + { url = "https://files.pythonhosted.org/packages/31/31/b35c53f8ef7b7c31cacd23d3638652fff7bcd1deb6eedb709ab43b685908/lxml-6.1.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:c6ed5141a5c7507cf3ee76bd363b0d6f801e3321adc35b5d825a23115faa5465", size = 4737635, upload-time = "2026-05-18T19:19:12.321Z" }, + { url = "https://files.pythonhosted.org/packages/d9/06/31f23c813a7fe8e0cb1b175e915b08c9bf4e86d225b210feadbdbe519667/lxml-6.1.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:62aeb7e85b5d60320b9d77eef2e773994e2c0ce10121b277e0a19804e1654a5a", size = 5670681, upload-time = "2026-05-18T19:19:15.001Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bc/ce619bccc89b1fd9ad8a8e1330ee3f3beff9f2ff95b712d7bbcdd6e22fc3/lxml-6.1.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b1b963fd8f5caa68e99dfae060d54de1fe9cba899b8718b44a00cdca53c3e590", size = 5238229, upload-time = "2026-05-18T19:19:18.131Z" }, + { url = "https://files.pythonhosted.org/packages/2f/5d/b329acbbedc0b619ebc2be6cf7ee9ed07e80892c88d4dfd612c33805789a/lxml-6.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:63876be28efefa04a1df615b46770e82042cce445cfdce55160522f57b231ccb", size = 5264191, upload-time = "2026-05-18T19:19:21.118Z" }, + { url = "https://files.pythonhosted.org/packages/d6/85/be36fb1425b30db3c3f9df75fe86343ebffb79e6320bd7f588e25bfeac39/lxml-6.1.1-cp314-cp314-win32.whl", hash = "sha256:7f7a92e8583f06b1fd49d01158143b8461cfcd135dcb10ec807270a3051bd603", size = 3657202, upload-time = "2026-05-18T19:17:39.509Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ce/3cf9a827342269f54d405a6202397de63f07c69cbd6ce7d183a3f0cba1e9/lxml-6.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:b2d444f2e66624d68e9c6b211e28a76e22fff5fcabcfff4deac18b529b7d4137", size = 4064497, upload-time = "2026-05-18T19:18:14.662Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3e/1a957bde8f0760039e627f94699f82caa782c9d838d86c3d28245ee67212/lxml-6.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:3fd9728a2735fda14f4e8235830c86b539e9661e849665bf926d3f867943b4bf", size = 3741991, upload-time = "2026-05-19T19:22:59.111Z" }, + { url = "https://files.pythonhosted.org/packages/78/b2/00ed55b3a2efa4658fb795c38d1090ec9b3e8a6c3683d4441fa517f09c3b/lxml-6.1.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:787b2496d0dbe8cd180984e8d29e3a6f76e7ea34db781cb3bd55e4ba1ef8b4ee", size = 8827545, upload-time = "2026-05-18T19:18:41.193Z" }, + { url = "https://files.pythonhosted.org/packages/c0/73/74573db19baa618d5f266f2407898b087ff6927115b00b71e5fc1b700847/lxml-6.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2c8daa471358dc2d6fcf02165e80ec68f77871a286df95bc5cc3816153b0fd2c", size = 4735736, upload-time = "2026-05-18T19:18:46.761Z" }, + { url = "https://files.pythonhosted.org/packages/16/02/6f7061f4f95f51e545d48e87647c54791d204a4e881be4156e7a26ba5338/lxml-6.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:acd7d70b64c0aae0c7922cca83d288a16f5f6da523637697872253415269baef", size = 4970291, upload-time = "2026-05-18T19:19:56.215Z" }, + { url = "https://files.pythonhosted.org/packages/b0/02/55fc057d8283427dea7d6edb102e7a840239c77a64a983d92f62a304c0e9/lxml-6.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4f0dd2f01f9f8a89f565d000e03abcf0a13d692a346c8d22f628d49af098777a", size = 5102822, upload-time = "2026-05-18T19:19:59.223Z" }, + { url = "https://files.pythonhosted.org/packages/e4/48/8e1cf78d89d66850121d9255a2a24414c98f775da93b90cf976956c24b14/lxml-6.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b7e8a14c8634bf6f7a568634cb395305a6d964aeb5b7ee32248094bed3a7e2c", size = 5027923, upload-time = "2026-05-18T19:20:01.549Z" }, + { url = "https://files.pythonhosted.org/packages/ed/00/0632a0647612c8af24d26997b3b961397daa9d5b2581444805933629a4cb/lxml-6.1.1-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:86281fbdd6a8162756f8d603f37e3435bfa38043adb79c6dc6a2dfee065e7525", size = 5595843, upload-time = "2026-05-18T19:20:03.93Z" }, + { url = "https://files.pythonhosted.org/packages/bc/86/ab008a7dc360711b66858d61c80a5979a70a09f2aa2b05d9698df80b803d/lxml-6.1.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5d7152ec39ca7c402d8fb9bad86140a15b9503bd0c54484e3f1bbe3dd37ceca", size = 5224515, upload-time = "2026-05-18T19:20:06.381Z" }, + { url = "https://files.pythonhosted.org/packages/75/c6/2702ff375e728e34f56d9a45339a9cf7e4427e917f542225242d63a05afa/lxml-6.1.1-cp314-cp314t-manylinux_2_28_i686.whl", hash = "sha256:88d8cb75b9d82858497a5393e3c63cfbf03035225e4b35a49ed7ccb151e4dc0e", size = 5312511, upload-time = "2026-05-18T19:20:09.308Z" }, + { url = "https://files.pythonhosted.org/packages/b7/57/a5807c98f87a86f10ef9ffab35516df7c0f0c4b6d5d33e9f608ab9c04a31/lxml-6.1.1-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f64ec5397ea6a41fc1b4af0380d79b44a755b5531dcaccd9940fb260dca93038", size = 4639206, upload-time = "2026-05-18T19:20:11.704Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e1/8a0a2c35734812395f4da4eaf33748a7e5705bfb2a58b128da764339d5ec/lxml-6.1.1-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d34bbf07dbc7ca5970671b1512e928991fb5e9d95365636c9b2d8b4f53af405e", size = 5232404, upload-time = "2026-05-18T19:20:14.064Z" }, + { url = "https://files.pythonhosted.org/packages/c2/e2/0e6a4dd5ad84d01d99aa7bae7cfefd4a760a0e0f8176818241de17d9b6c0/lxml-6.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:17e0e18d4ad8adbd0399291bc44845b69d9dd68439a3cdebdf35ff902ec05072", size = 5083769, upload-time = "2026-05-18T19:19:23.758Z" }, + { url = "https://files.pythonhosted.org/packages/a0/7e/161f33d463f6ffc1c7679104b65086dea120080d49dde4d238f015aaee2f/lxml-6.1.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:3ab541146f1f6968c462d6c2ac495148e8cdba2f8347700b2141b6ec5a75bf52", size = 4758936, upload-time = "2026-05-18T19:19:27.256Z" }, + { url = "https://files.pythonhosted.org/packages/f1/fb/2369825e3f6ca99305bf9f7b7085fda91c8b0922a89e54d900974aa3ef85/lxml-6.1.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2a0217714657e023ef4293500f65aa20fce6164c8fd6b08fa5bd4a859fb14b9b", size = 5620296, upload-time = "2026-05-18T19:19:29.993Z" }, + { url = "https://files.pythonhosted.org/packages/30/90/d61e383146f74c5ab683947ea14dc7b82778838ab9b95ea73a23b60d0191/lxml-6.1.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:05a82eb6e1530a64f26225b55cbd178113bd0b5af1c2b625f25e5296742c26d2", size = 5228598, upload-time = "2026-05-18T19:19:33.523Z" }, + { url = "https://files.pythonhosted.org/packages/76/2d/2dafd8149e94b05bb070690efd5bb2680720681e03ff03fc57d2b70a1105/lxml-6.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9e36f163528fc50cbef305f02a5fd66d404edf7049cdaff211dbc2cba5a7013e", size = 5247845, upload-time = "2026-05-18T19:19:36.649Z" }, + { url = "https://files.pythonhosted.org/packages/ce/68/b30e913340c380ddac9580c6e6230991fc37240ec4f64704833e4f3e2769/lxml-6.1.1-cp314-cp314t-win32.whl", hash = "sha256:649dda677cf3bd6ac9ae14007ba0c824ded8ce5808b53fc7431d9140399118c1", size = 3897345, upload-time = "2026-05-18T19:17:33.562Z" }, + { url = "https://files.pythonhosted.org/packages/3c/4e/9eb2af5335545f9fbcd7af57bcf87c6025d31eaa31b14ec184a6c8675328/lxml-6.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:793033d6c5cdf33a573f910d9bea14ef8f5771820411d118da8e1182edb53d5e", size = 4393350, upload-time = "2026-05-18T19:18:10.076Z" }, + { url = "https://files.pythonhosted.org/packages/7f/2c/0f1e93c636720e8a3eb59af2bfda99d98b55891e1c53bc30c2e0e865f01b/lxml-6.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:58bb955caba94e467d2a96da17660d2d704e0675894cba21ab8a775b8621fd1c", size = 3817223, upload-time = "2026-05-19T19:22:56.823Z" }, + { url = "https://files.pythonhosted.org/packages/b5/32/86a3f0f724a3a402d4627937a7fc27b160e45e7012b4adf47f6e1e844511/lxml-6.1.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:31033dc34636ea6b7d5cc11b1ddbda78a14de858ba9d3e1ed4b69a3085bc521e", size = 3930127, upload-time = "2026-05-18T19:19:02.27Z" }, + { url = "https://files.pythonhosted.org/packages/40/44/d832e82af08723761556d004b1d04d281c09f9a8cecd7d3148548c9941a3/lxml-6.1.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3893c14c4b6ac5b2d54ba8cf03e99fe5104e592de491f19bd6b82756c09f8004", size = 4210769, upload-time = "2026-05-18T19:20:41.427Z" }, + { url = "https://files.pythonhosted.org/packages/6d/39/0dc5949f759ed7d951e0bb8c2f2d9d7aca1908d22352fa84a8afd2ea54af/lxml-6.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c07da4cebf6889f03ebac8d238f62318e29f495de0aa18a51ea14e61ae907e2e", size = 4318163, upload-time = "2026-05-18T19:20:44.702Z" }, + { url = "https://files.pythonhosted.org/packages/e6/fb/8ab3845fe046ba4cbf74536bcf6801a774b7caf4350de1c5d37f1f0a9e90/lxml-6.1.1-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6f0ce10945fab9c4c06ce14e22af9059d1a87493a9af4501a5b0b9187e21cf2", size = 4250945, upload-time = "2026-05-18T19:20:47.385Z" }, + { url = "https://files.pythonhosted.org/packages/68/1b/7553ab136894374ffae8851ec06f98f511cd8e66246e41b6be059d0a7289/lxml-6.1.1-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f8844cd288697c6425c9beba919302241e3278871dc6519515e72b04e987abcf", size = 4401664, upload-time = "2026-05-18T19:20:50.489Z" }, + { url = "https://files.pythonhosted.org/packages/db/a4/441aee36c6f6b249823d20fd91f9be9ab89d7c5a8ae542a4a4ca6d342d56/lxml-6.1.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:ed21202aec73cda4d55d1ce57b389aadb90ffb044e6cd1080b8347efe1b1ec84", size = 3508989, upload-time = "2026-05-18T19:18:38.158Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "contourpy", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "cycler", marker = "python_full_version < '3.11'" }, + { name = "fonttools", marker = "python_full_version < '3.11'" }, + { name = "kiwisolver", marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "pillow", marker = "python_full_version < '3.11'" }, + { name = "pyparsing", marker = "python_full_version < '3.11'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233, upload-time = "2026-04-24T00:14:13.539Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/6f/340b04986e67aac6f66c5145ce68bf72c64bed30f92c8913499a6e6b8f99/matplotlib-3.10.9-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77210dce9cb8153dffc967efaae990543392563d5a376d4dd8539bebcb0ed217", size = 8296625, upload-time = "2026-04-24T00:11:43.376Z" }, + { url = "https://files.pythonhosted.org/packages/bb/2f/127081eb83162053ebb9678ceac64220b93a663e0167432566e9c7c82aab/matplotlib-3.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1e7698ac9868428e84d2c967424803b2472ff7167d9d6590d4204ed775343c3b", size = 8188790, upload-time = "2026-04-24T00:11:46.556Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b7/d8bcec2626c35f96972bff656299fef4578113ea6193c8fdad324710410c/matplotlib-3.10.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1aa972116abb4c9d201bf245620b433726cb6856f3bef6a78f776a00f5c92d37", size = 8769389, upload-time = "2026-04-24T00:11:48.959Z" }, + { url = "https://files.pythonhosted.org/packages/12/49/b78e214a527ea732033b7f4d37f7afb504d74ba9d134bd47938230dfb8b1/matplotlib-3.10.9-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae2f11957b27ce53497dd4d7b235c4d4f1faf383dfb39d0c5beb833bff883294", size = 9589657, upload-time = "2026-04-24T00:11:51.915Z" }, + { url = "https://files.pythonhosted.org/packages/5f/15/5246f7b43beae19c74dfee651d58d6cc8112e06f77adb4e88cc04f2e3a23/matplotlib-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b049278ddce116aaa1c1377ebf58adea909132dfce0281cf7e3a1ea9fc2e2c65", size = 9651983, upload-time = "2026-04-24T00:11:54.766Z" }, + { url = "https://files.pythonhosted.org/packages/75/77/5acecfe672ba0fa1b8c0454f69ce155d1e6fc5852fa7206bf9afaf767121/matplotlib-3.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:82834c3c292d24d3a8aae77cd2d20019de69d692a34a970e4fdb8d33e2ea3dda", size = 8199701, upload-time = "2026-04-24T00:11:58.389Z" }, + { url = "https://files.pythonhosted.org/packages/4c/8c/290f021104741fea63769c31494f5324c0cd249bf536a65a4350767b1f22/matplotlib-3.10.9-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:68cfdcede415f7c8f5577b03303dd94526cdb6d11036cecdc205e08733b2d2bb", size = 8306860, upload-time = "2026-04-24T00:12:01.207Z" }, + { url = "https://files.pythonhosted.org/packages/51/18/325cd32ece1120d1da51cc4e4294c6580190699490183fc2fe8cb6d61ec5/matplotlib-3.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfca0129678bd56379db26c52b5d77ed7de314c047492fbdc763aa7501710cfb", size = 8199254, upload-time = "2026-04-24T00:12:04.239Z" }, + { url = "https://files.pythonhosted.org/packages/79/db/e28c1b83e3680740aa78925f5fb2ae4d16207207419ad75ea9fe604f8676/matplotlib-3.10.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e436d155fa8a3399dc62683f8f5d0e2e50d25d0144a73edd73f82eec8f4abfb", size = 8777092, upload-time = "2026-04-24T00:12:06.793Z" }, + { url = "https://files.pythonhosted.org/packages/55/fa/3ce7adfe9ba101748f465211660d9c6374c876b671bdb8c2bb6d347e8b94/matplotlib-3.10.9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56fc0bd271b00025c6edfdc7c2dcd247372c8e1544971d62e1dc7c17367e8bf9", size = 9595691, upload-time = "2026-04-24T00:12:09.706Z" }, + { url = "https://files.pythonhosted.org/packages/36/c4/6960a76686ed668f2c60f84e9799ba4c0d56abdb36b1577b60c1d061d1ec/matplotlib-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5a6104ed666402ba5106d7f36e0e0cdca4e8d7fa4d39708ca88019e2835a2eb", size = 9659771, upload-time = "2026-04-24T00:12:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0d/271aace3342157c64700c9ff4c59c7b392f3dbab393692e8db6fbe7ab96c/matplotlib-3.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:d730e984eddf56974c3e72b6129c7ca462ac38dc624338f4b0b23eb23ecba00f", size = 8205112, upload-time = "2026-04-24T00:12:15.773Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ee/cb57ad4754f3e7b9174ce6ce66d9205fb827067e48a9f58ac09d7e7d6b77/matplotlib-3.10.9-cp311-cp311-win_arm64.whl", hash = "sha256:51bf0ddbdc598e060d46c16b5590708f81a1624cefbaaf62f6a81bf9285b8c80", size = 8132310, upload-time = "2026-04-24T00:12:18.645Z" }, + { url = "https://files.pythonhosted.org/packages/35/c6/5581e26c72233ebb2a2a6fed2d24fb7c66b4700120b813f51b0555acf0b6/matplotlib-3.10.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1", size = 8319908, upload-time = "2026-04-24T00:12:21.323Z" }, + { url = "https://files.pythonhosted.org/packages/b7/18/4880dd762e40cd360c1bf06e890c5a97b997e91cb324602b1a19950ad5ce/matplotlib-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320", size = 8216016, upload-time = "2026-04-24T00:12:23.4Z" }, + { url = "https://files.pythonhosted.org/packages/32/91/d024616abdba99e83120e07a20658976f6a343646710760c4a51df126029/matplotlib-3.10.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285", size = 8789336, upload-time = "2026-04-24T00:12:26.096Z" }, + { url = "https://files.pythonhosted.org/packages/5c/04/030a2f61ef2158f5e4c259487a92ac877732499fb33d871585d89e03c42d/matplotlib-3.10.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2", size = 9604602, upload-time = "2026-04-24T00:12:29.052Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c2/541e4d09d87bb6b5830fc28b4c887a9a8cf4e1c6cee698a8c05552ae2003/matplotlib-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf", size = 9670966, upload-time = "2026-04-24T00:12:32.131Z" }, + { url = "https://files.pythonhosted.org/packages/04/a1/4571fc46e7702de8d0c2dc54ad1b2f8e29328dea3ee90831181f7353d93c/matplotlib-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6", size = 8217462, upload-time = "2026-04-24T00:12:35.226Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d0/2269edb12aa30c13c8bcc9382892e39943ce1d28aab4ec296e0381798e81/matplotlib-3.10.9-cp312-cp312-win_arm64.whl", hash = "sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42", size = 8136688, upload-time = "2026-04-24T00:12:37.442Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d3/8d4f6afbecb49fc04e060a57c0fce39ea51cc163a6bd87303ccd698e4fa6/matplotlib-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f", size = 8320331, upload-time = "2026-04-24T00:12:39.688Z" }, + { url = "https://files.pythonhosted.org/packages/63/d9/9e14bc7564bf92d5ffa801ae5fac819ce74b925dfb55e3ebde61a3bbad3e/matplotlib-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e", size = 8216461, upload-time = "2026-04-24T00:12:42.494Z" }, + { url = "https://files.pythonhosted.org/packages/8a/17/4402d0d14ccf1dfc70932600b68097fbbf9c898a4871d2cbbe79c7801a32/matplotlib-3.10.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f", size = 8790091, upload-time = "2026-04-24T00:12:44.789Z" }, + { url = "https://files.pythonhosted.org/packages/3e/0b/322aeec06dd9b91411f92028b37d447342770a24392aa4813e317064dad5/matplotlib-3.10.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838", size = 9605027, upload-time = "2026-04-24T00:12:47.583Z" }, + { url = "https://files.pythonhosted.org/packages/74/88/5f13482f55e7b00bcfc09838b093c2456e1379978d2a146844aae05350ad/matplotlib-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2", size = 9671269, upload-time = "2026-04-24T00:12:50.878Z" }, + { url = "https://files.pythonhosted.org/packages/c5/e0/0840fd2f93da988ec660b8ad1984abe9f25d2aed22a5e394ff1c68c88307/matplotlib-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921", size = 8217588, upload-time = "2026-04-24T00:12:53.784Z" }, + { url = "https://files.pythonhosted.org/packages/47/b9/d706d06dd605c49b9f83a2aed8c13e3e5db70697d7a80b7e3d7915de6b17/matplotlib-3.10.9-cp313-cp313-win_arm64.whl", hash = "sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8", size = 8136913, upload-time = "2026-04-24T00:12:56.501Z" }, + { url = "https://files.pythonhosted.org/packages/9b/45/6e32d96978264c8ca8c4b1010adb955a1a49cfaf314e212bbc8908f04a61/matplotlib-3.10.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9", size = 8368019, upload-time = "2026-04-24T00:12:58.896Z" }, + { url = "https://files.pythonhosted.org/packages/86/0a/c8e3d3bba245f0f7fc424937f8ff7ef77291a36af3edb97ccd78aa93d84f/matplotlib-3.10.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4", size = 8264645, upload-time = "2026-04-24T00:13:01.406Z" }, + { url = "https://files.pythonhosted.org/packages/3d/aa/5bf5a14fe4fed73a4209a155606f8096ff797aad89c6c35179026571133e/matplotlib-3.10.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc", size = 8802194, upload-time = "2026-04-24T00:13:03.702Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5e/b4be852d6bba6fd15893fadf91ff26ae49cb91aac789e95dde9d342e664f/matplotlib-3.10.9-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99", size = 9622684, upload-time = "2026-04-24T00:13:06.647Z" }, + { url = "https://files.pythonhosted.org/packages/4c/3d/ed428c971139112ef730f62770654d609467346d09d4b62617e1afd68a5a/matplotlib-3.10.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d", size = 9680790, upload-time = "2026-04-24T00:13:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/e7/09/052e884aaf2b985c63cb79f715f1d5b6a3eaa7de78f6a52b9dbc077d5b53/matplotlib-3.10.9-cp313-cp313t-win_amd64.whl", hash = "sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8", size = 8287571, upload-time = "2026-04-24T00:13:13.087Z" }, + { url = "https://files.pythonhosted.org/packages/f4/38/ae27288e788c35a4250491422f3db7750366fc8c97d6f36fbdecfc1f5518/matplotlib-3.10.9-cp313-cp313t-win_arm64.whl", hash = "sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38", size = 8188292, upload-time = "2026-04-24T00:13:15.546Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e6/3bd8afd04949f02eabc1c17115ea5255e19cacd4d06fc5abdde4eeb0052c/matplotlib-3.10.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d", size = 8321276, upload-time = "2026-04-24T00:13:18.318Z" }, + { url = "https://files.pythonhosted.org/packages/41/86/86231232fff41c9f8e4a1a7d7a597d349a02527109c3af7d618366122139/matplotlib-3.10.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f", size = 8218218, upload-time = "2026-04-24T00:13:20.974Z" }, + { url = "https://files.pythonhosted.org/packages/85/8f/becc9722cafc64f5d2eb0b7c1bf5f585271c618a45dbd8fabeb021f898b6/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b", size = 9608145, upload-time = "2026-04-24T00:13:23.228Z" }, + { url = "https://files.pythonhosted.org/packages/32/5d/f7e914f7d9325abff4057cee62c0fa70263683189f774473cbfb534cd13b/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2", size = 9885085, upload-time = "2026-04-24T00:13:25.849Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fd/fa69f2221534e80cc5772ac2b7d222011a2acafc2ec7216d5dd174c864ae/matplotlib-3.10.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716", size = 9672358, upload-time = "2026-04-24T00:13:28.906Z" }, + { url = "https://files.pythonhosted.org/packages/ab/1a/5a4f747a8b271cbb024946d2dd3c913ab5032ba430626f8c3528ada96b4b/matplotlib-3.10.9-cp314-cp314-win_amd64.whl", hash = "sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f", size = 8349970, upload-time = "2026-04-24T00:13:31.904Z" }, + { url = "https://files.pythonhosted.org/packages/64/dc/95d60ecaefe30680a154b52ea96ab4b0dab547f1fd6aa12f5fb655e89cae/matplotlib-3.10.9-cp314-cp314-win_arm64.whl", hash = "sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456", size = 8272785, upload-time = "2026-04-24T00:13:34.511Z" }, + { url = "https://files.pythonhosted.org/packages/70/a0/005d68bc8b8418300ce6591f18586910a8526806e2ab663933d9f20a41e9/matplotlib-3.10.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe", size = 8367999, upload-time = "2026-04-24T00:13:36.962Z" }, + { url = "https://files.pythonhosted.org/packages/22/05/1236cc9290be70b2498af20ca348add76e3fffe7f67b477db5133a84f3ea/matplotlib-3.10.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6", size = 8264543, upload-time = "2026-04-24T00:13:39.851Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c2/071f5a5ff6c5bd63aaaf2f45c811d9bf2ced94bde188d9e1a519e21d0cba/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c", size = 9622800, upload-time = "2026-04-24T00:13:42.296Z" }, + { url = "https://files.pythonhosted.org/packages/95/57/da7d1f10a85624b9e7db68e069dd94e58dc41dbf9463c5921632ecbe3661/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4", size = 9888561, upload-time = "2026-04-24T00:13:45.026Z" }, + { url = "https://files.pythonhosted.org/packages/67/b2/ef8d6bb59b0edb6c16c968b70f548aa13b54348972def5aa6ac85df67145/matplotlib-3.10.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf", size = 9680884, upload-time = "2026-04-24T00:13:48.066Z" }, + { url = "https://files.pythonhosted.org/packages/61/1c/d21bfeb9931881ebe96bcfcff27c7ae4b160ae0ec291a714c42641a56d75/matplotlib-3.10.9-cp314-cp314t-win_amd64.whl", hash = "sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39", size = 8432333, upload-time = "2026-04-24T00:13:51.008Z" }, + { url = "https://files.pythonhosted.org/packages/78/23/92493c3e6e1b635ccfff146f7b99e674808787915420373ac399283764c2/matplotlib-3.10.9-cp314-cp314t-win_arm64.whl", hash = "sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c", size = 8324785, upload-time = "2026-04-24T00:13:53.633Z" }, + { url = "https://files.pythonhosted.org/packages/2c/2b/0e92ad0ac446633f928a1563db4aa8add407e1924faf0ded5b95b35afb27/matplotlib-3.10.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1872fb212a05b729e649754a72d5da61d03e0554d76e80303b6f83d1d2c0552b", size = 8293058, upload-time = "2026-04-24T00:13:56.339Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/74682fd369f5299ceda438fea2a0662e6383b85c9383fb9cdfcf04713e07/matplotlib-3.10.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:985f2238880e2e69093f588f5fe2e46771747febf0649f3cf7f7b7480875317f", size = 8186627, upload-time = "2026-04-24T00:13:58.623Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e8/368aab88f3c4cd8992800f31abfe0670c3e47540ba20a97e9fdbcde594b3/matplotlib-3.10.9-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6640f75af2c6148293caa0a2b39dd806a492dd66c8a8b04035813e33d0fd2585", size = 8764117, upload-time = "2026-04-24T00:14:01.684Z" }, + { url = "https://files.pythonhosted.org/packages/63/e2/9f66ca6a651a52abfe0d4964ce01439ed34f3f1e119de10ff3a07f403043/matplotlib-3.10.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:42fb814efabe95c06c1994d8ab5a8385f43a249e23badd3ba931d4308e5bca20", size = 8304420, upload-time = "2026-04-24T00:14:04.57Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e8/467c03568218792906aa87b5e7bb379b605e056ed0c74fe00c051786d925/matplotlib-3.10.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f76e640a5268850bfda54b5131b1b1941cc685e42c5fa98ed9f2d64038308cba", size = 8197981, upload-time = "2026-04-24T00:14:07.233Z" }, + { url = "https://files.pythonhosted.org/packages/6f/87/afead29192170917537934c6aff4b008c805fff7b1ccea0c79120d96beda/matplotlib-3.10.9-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3fc0364dfbe1d07f6d15c5ebd0c5bf89e126916e5a8667dd4a7a6e84c36653d4", size = 8774002, upload-time = "2026-04-24T00:14:09.816Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.11.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "contourpy", version = "1.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "cycler", marker = "python_full_version >= '3.11'" }, + { name = "fonttools", marker = "python_full_version >= '3.11'" }, + { name = "kiwisolver", marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "packaging", marker = "python_full_version >= '3.11'" }, + { name = "pillow", marker = "python_full_version >= '3.11'" }, + { name = "pyparsing", marker = "python_full_version >= '3.11'" }, + { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/24/080c99d223d158d3a8902769269ab6da5b50f7a0e6e072513907e02b7a6c/matplotlib-3.11.0.tar.gz", hash = "sha256:68c0c7be01b30dcca3638934f7f591df73401235cbdbf0d1ab1c71e7db7f8b57", size = 33251176, upload-time = "2026-06-12T02:29:15.508Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/a2/78f662f1b18968531f67d3fcde1b7ea8496920bacd4f16ddb5b79d112e46/matplotlib-3.11.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f857524b442f0f36e641868ce2171aafa88cb0bc0644f4e1d8a5df9b32649fef", size = 9436261, upload-time = "2026-06-12T02:27:34.161Z" }, + { url = "https://files.pythonhosted.org/packages/5e/92/044f1de43901310202f4c79acf4f141be53b2ca8d8380e2fcefb3d523a75/matplotlib-3.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:57baa92fdc82948ed716eae6d2579d4d6f40965cd8d2f416755b4a72580a3233", size = 9264669, upload-time = "2026-06-12T02:27:37.413Z" }, + { url = "https://files.pythonhosted.org/packages/53/f4/f0b4f9ba7ec14a7af8151f3ad71ecfe3561e6ba38cfab1db3681ba4ca112/matplotlib-3.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:630eee0e67d35cce2019a0e670719f4816e3b86aff0fa72729f6c69786fceb45", size = 10021076, upload-time = "2026-06-12T02:27:39.926Z" }, + { url = "https://files.pythonhosted.org/packages/d7/33/4d679c6dcd594a156542080ac907ddccf7b09ca11655c4b28eca8e9ee5da/matplotlib-3.11.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5106c444d0bf966eee2853548c03772af4ab7199118e086c62fbac8ccb07c055", size = 10828999, upload-time = "2026-06-12T02:27:42.433Z" }, + { url = "https://files.pythonhosted.org/packages/07/74/0a3683802037d8cd013144d77c247219b47f2aabace6fdde74faa12bacf7/matplotlib-3.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4d7aea652b58e686444079be3376ef546bffa1eee9b9bb9c472b9fcf6cf410d3", size = 10913103, upload-time = "2026-06-12T02:27:44.827Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9f/970fcbf381e82ec66fdf5da8ea76e2e9240f61a24011ce9fd1d42c37ac2d/matplotlib-3.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:70a5b3e9a5dab708c0f039709ae7c68d5b4d254e291ef76492cdba230c8bb5e4", size = 9310945, upload-time = "2026-06-12T02:27:46.867Z" }, + { url = "https://files.pythonhosted.org/packages/14/4e/6e7cfed23611265ded53806852343b5c59339e506e84c474a9b5afc3b249/matplotlib-3.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:3d68266213e73823ac3be90615bab0cf31f88851e114cdb1dd25dacf3b01e1a7", size = 8999304, upload-time = "2026-06-12T02:27:48.798Z" }, + { url = "https://files.pythonhosted.org/packages/da/17/f5276b496c61477a6c4fc5e7401f4bfe1c2e5ef7c6cd67896f2ade3809cb/matplotlib-3.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:06b5872e9cf11adc8f589ded3ce11bc3e1061ad498259664fabc1f6615beb918", size = 9449976, upload-time = "2026-06-12T02:27:50.989Z" }, + { url = "https://files.pythonhosted.org/packages/82/34/bdd77418adb2178a1d59f044bd67bfebb115896e91b840b8a197eb3f4f4e/matplotlib-3.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0515d495124be3124340e59f164d901ed4484e2246a5b74cfa483cac3b80bd97", size = 9279307, upload-time = "2026-06-12T02:27:53.247Z" }, + { url = "https://files.pythonhosted.org/packages/94/95/7f522393c88313336b20d70fc849555757b2e5febc22b83b3a3f0fd4bce9/matplotlib-3.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be5f93a1d21981bfb802ded0d77a0caa92d4342a47d45754fac77e314a506344", size = 10031353, upload-time = "2026-06-12T02:27:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/87/ce/8f25a0e3186aefd61913e7467d1b999465bcd0d0c03ac695c1b26ca559b7/matplotlib-3.11.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41635d7909d19e52e924a521dde6d8f670b0f53ab1d0e8c331fa831554f681d1", size = 10839232, upload-time = "2026-06-12T02:27:57.746Z" }, + { url = "https://files.pythonhosted.org/packages/85/c2/db15da2bbdf9e3ca66df7db8e2c33a1dfed67be24a24d2c878efaaff01d6/matplotlib-3.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:94f5000f67ca9faa300863ea17f8bce9175cb67b88bec4bc7780502d53dd7c9e", size = 10923899, upload-time = "2026-06-12T02:28:00.223Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2f/a58a4443a4d052a4ea77557478336aefc26c7981f6408d37adba763aa758/matplotlib-3.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:ac6f1ef39f3d0f9e2463303013094992cdbe0f85f43bc54155bc472b2042768e", size = 9329528, upload-time = "2026-06-12T02:28:02.27Z" }, + { url = "https://files.pythonhosted.org/packages/61/0f/4b669589d47733b97ab9df4b58d6fc1e68acb5ea42a928dc7cbdd6bf5871/matplotlib-3.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:9dd11fb612ce7bc60b1de5b4fc87ff959d22317b5de42aabf392f66f97af22eb", size = 9003413, upload-time = "2026-06-12T02:28:04.49Z" }, + { url = "https://files.pythonhosted.org/packages/55/41/aa47f156b061d14c98b906f76c428507397708ec63ff94f410ae1752b426/matplotlib-3.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce3b839b34ae1f430b4616893a2945a2999debaa7e94e7e29a2a8bbf286f7b5", size = 9450532, upload-time = "2026-06-12T02:28:06.769Z" }, + { url = "https://files.pythonhosted.org/packages/8c/4f/5a9eb0375e81413953febf8af7b012a6b6357f53438a15c4f5ad86c6bbb5/matplotlib-3.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:373db8f91214e8ccaf35ac833cc1dd59dd961e148bbd55dd027141591dde1313", size = 9279760, upload-time = "2026-06-12T02:28:09.152Z" }, + { url = "https://files.pythonhosted.org/packages/a4/c0/1117d53077e3ac3152503a84e9cf7a5c239576805ee71276e80c2aaa7471/matplotlib-3.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be152b7570324dc8d01574cc9474dd2d803237acf528bcbb5b211fa347461a09", size = 10031623, upload-time = "2026-06-12T02:28:11.26Z" }, + { url = "https://files.pythonhosted.org/packages/92/7e/e937138daffad65b71bf831a377809dcbc830fb4f31a31e067dc1faa2575/matplotlib-3.11.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:126f256df600652d7e4b394cf3164ff75210a00038f287c95a012a6f58d0e83f", size = 10839372, upload-time = "2026-06-12T02:28:14.102Z" }, + { url = "https://files.pythonhosted.org/packages/1d/c2/438ecc197ffb8023b6b9922915542f2172f5fd45b76703b0b4fc47322243/matplotlib-3.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:03acfeddf87b0dddb11b081ef7740ad445a3ca8bcb6b8e3011b08f2cf802b75c", size = 10924099, upload-time = "2026-06-12T02:28:16.383Z" }, + { url = "https://files.pythonhosted.org/packages/40/2e/395883da416f378b3ed2c9f3e843ac477eae1ce731b671b79adaa6f0bacd/matplotlib-3.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:ab3722f04f3ff34c23b5012c5873d2894174e06c3822fcdac3610965a5ac7d06", size = 9329727, upload-time = "2026-06-12T02:28:18.581Z" }, + { url = "https://files.pythonhosted.org/packages/61/82/2c388956abf8bf392dfb5b8917c502f1082df6a941b781ab8c8e5ba2474b/matplotlib-3.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c945824670fb8915b4ac879e5e61f3c58e0913022f70a0de4c082b17372f8771", size = 9003506, upload-time = "2026-06-12T02:28:20.474Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c1/34454baa44da7975ada82e9aea37105ec47059514dc967d3be14426ba8dc/matplotlib-3.11.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3489c3dc487669b4a980bc3068f87856de7a1564248d3f6c629efb2a58b03f24", size = 9499838, upload-time = "2026-06-12T02:28:22.713Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c3/98fe79a398cf232219f090163a7fa7e6766e9f2e0ad26df54d6f8934d8ee/matplotlib-3.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6a98f5476ce784a50ce09998f4ae1e6a9f25043cef8a480c98949902eda74620", size = 9332298, upload-time = "2026-06-12T02:28:24.796Z" }, + { url = "https://files.pythonhosted.org/packages/95/e4/b4b7c33151e74e5c802f3cde1ba807ebfc38401e329b44e215a5888dd76d/matplotlib-3.11.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:565af866fd63e4bd3f987d580afe27c44c2552a3b3305f4ecbb85133601ea6f3", size = 10045491, upload-time = "2026-06-12T02:28:27.141Z" }, + { url = "https://files.pythonhosted.org/packages/71/28/394548efd68354110c1a1be11fe6b6e559e06d1a23da35908a0e316c55a9/matplotlib-3.11.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e6b3e64dea5062c570f04358e2711859f3531b459f29516274fbad889079e4f3", size = 10857059, upload-time = "2026-06-12T02:28:29.222Z" }, + { url = "https://files.pythonhosted.org/packages/c8/44/e7922e6e2a4d63bdfbc9dc4a53e3850ab438d46cf42e6779bb15ec92c948/matplotlib-3.11.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:942b37c5db1899610bd1543ce8e13e4ecff9a4633e7f63bb6aa9205d2644ebd1", size = 10939576, upload-time = "2026-06-12T02:28:31.66Z" }, + { url = "https://files.pythonhosted.org/packages/3d/be/b1ca96003a441d619b727fee21d671fdff7a5ce2f1bb797b2521aa2f679a/matplotlib-3.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c08e649a6313e1291e713623b97a38e5bb4aa580b2a100a94a3309bc6b9c8eb3", size = 9379519, upload-time = "2026-06-12T02:28:33.888Z" }, + { url = "https://files.pythonhosted.org/packages/e3/72/4bf3b91821c34596dd6a7bdac5836d94f744144c8208939ef49d8ec43f7e/matplotlib-3.11.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2746cd2c113742ff6ce37a864c5ac5fd7aa644568f445e66166e457ac78e40e0", size = 9055456, upload-time = "2026-06-12T02:28:35.878Z" }, + { url = "https://files.pythonhosted.org/packages/57/52/a94102ac99eb78e2fe9b826674f9ef9ee23327110ea6ab4776c1b4eb6209/matplotlib-3.11.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3338e3e3de128cf50d0d2fb92a122815daf9c755bd882a474343c05f8fd7ec79", size = 9452137, upload-time = "2026-06-12T02:28:37.93Z" }, + { url = "https://files.pythonhosted.org/packages/7c/03/b8cdb625a21f710dfa11bbca1f48fb4057d2c0286975f8b415bf80942c99/matplotlib-3.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:25c2e5455efd8d99f41fb79871a31feb7d301569642e332ec58d72cfe9282bc3", size = 9281514, upload-time = "2026-06-12T02:28:40.028Z" }, + { url = "https://files.pythonhosted.org/packages/b7/2d/4e1240ea82ee197dfb3851e71f71c87eeeb975f1753b56a0588e4e80739a/matplotlib-3.11.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9695457a467ff86d23f35037a43deb6f1134dd6d3e2ac8ce1e2087cff09ffb9", size = 10843005, upload-time = "2026-06-12T02:28:42.39Z" }, + { url = "https://files.pythonhosted.org/packages/29/dc/6377ecfaa5fef79430f74a1a16638b4e2aa30d4692bae2c19f9d76fe3b01/matplotlib-3.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19c16c61dea63b3582918503e6b294193961261d9daa806d4ae2151f1ad05430", size = 11127459, upload-time = "2026-06-12T02:28:44.483Z" }, + { url = "https://files.pythonhosted.org/packages/6f/41/795c405aa7560443a3b01309424cde4a1113b85c90b8a63417444a749617/matplotlib-3.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2d72ea8b7924f3cb955e61518d21e43b3df1e6c8a793b480a0c1214f185d30ba", size = 10925160, upload-time = "2026-06-12T02:28:46.564Z" }, + { url = "https://files.pythonhosted.org/packages/1a/f7/3a9e6389a7cfaeff76c56e40c2dabcb13110e21e82f837228c834ebe748c/matplotlib-3.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:1c02da0a629dfa9debf52725ea06866b74c1fb70a895bae05e4493d34074f9f2", size = 9485186, upload-time = "2026-06-12T02:28:49.344Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c0/396478ee7cf2091d182db8b4a8695f6a37f1ddb978989cf9dbb84cd5c123/matplotlib-3.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:aa55d73b3117d4b07f959cd9eb6f69b375d8df3414139c479388e551aa5d999d", size = 9160349, upload-time = "2026-06-12T02:28:51.382Z" }, + { url = "https://files.pythonhosted.org/packages/c5/6f/1c3bd51bb2b34eaacdcf3c3d859dbb357f952fc8020c617dc118ad7c9e38/matplotlib-3.11.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a9d8c6e7cd2f0ddf11d8d92e520dd1d9d2abb0cf6ac8831e338666c81e905847", size = 9500921, upload-time = "2026-06-12T02:28:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/4d861d0121840cb1a3fd4a10deb211efd6fccd481ed23e553f31f4f4da4a/matplotlib-3.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:be050fcf32f729eda99f7f75a80bf67612ce16ab9ac1c23a387dcaede95cb70e", size = 9332190, upload-time = "2026-06-12T02:28:55.623Z" }, + { url = "https://files.pythonhosted.org/packages/4b/cb/22f6bc35711a0b5639a784e74e653e77c86210bd4304449dd399a482f74e/matplotlib-3.11.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfabef0230d0697aa0d717385194dd41162e00207a68bf4abf94c2bf4c27dca0", size = 10854181, upload-time = "2026-06-12T02:28:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/3f/7e/9a9eaca731a2939589da520f0ebe8fd8753d0f51fca98c7d20af6dbe261a/matplotlib-3.11.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1644db30e759199443493ac5e5caec24fdb775a8f6123021f85ba47c4133c3cb", size = 11137715, upload-time = "2026-06-12T02:29:00.555Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f9/9b030b6088354acb0296871bb624b25befc1c42509d3c6cd17420c83a5b8/matplotlib-3.11.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:15b0d160079cb10699a0e98b5989c70677b2df7cacdc62af67c30f2facec46d9", size = 10939427, upload-time = "2026-06-12T02:29:02.527Z" }, + { url = "https://files.pythonhosted.org/packages/59/94/6b273eaee4ee250863567d100865da61a5c1527fa67f527b7ed22e0dd29c/matplotlib-3.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:446307e6b04b57b1f1239e228a1ec2af0d589a1008cebc3dfa3f5441d095cfb6", size = 9535809, upload-time = "2026-06-12T02:29:04.994Z" }, + { url = "https://files.pythonhosted.org/packages/60/95/1d36bddf2b7e2692c1540e78a6e5bc88bc1496b137e3e35a611f91b65ac3/matplotlib-3.11.0-cp314-cp314t-win_arm64.whl", hash = "sha256:652fb5696271d4c50f196d22a5ff4f8e4444c74f847423570d7dc0aa2bbd0159", size = 9209226, upload-time = "2026-06-12T02:29:07.033Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c2/f5da6cd37ed6871f5c9b3c0507ddb69f14d6c36fac4541e4e0c60cb8cdfc/matplotlib-3.11.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81ae77077a1e16d37a5b61096ccb07c8d90a99b518fa8256b8f21578932f2f62", size = 9434094, upload-time = "2026-06-12T02:29:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/f8/07/56f66906e0f87a0c6d0d0acbd34dbc9432b1931d8f26ef618bd6f92932a9/matplotlib-3.11.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ddef37840695f5eef65f9f070fe2d2f510f584c2156203f9f622a5b0584efffd", size = 9262183, upload-time = "2026-06-12T02:29:11.283Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d8/c4ecab06b7ea36a570c4f3bd2d48d1799fd5d9174470e45c2194199431e7/matplotlib-3.11.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cf662e5ac5707658cb931e19972c4bd99f7b4f8b7bf79d3c821d239fa6b71e64", size = 10015653, upload-time = "2026-06-12T02:29:13.251Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/c0/9f7c9a46090390368a4d7bcb76bb87a4a36c421e4c0792cdb53486ffac7a/matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79", size = 8150, upload-time = "2026-05-08T17:33:33.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6", size = 9534, upload-time = "2026-05-08T17:33:32.055Z" }, +] + +[[package]] +name = "mdit-py-plugins" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/59/fc/f8d0863f8862f25602c0404d75568e89fb6b4109804645e5cdfb1be5cf56/mdit_py_plugins-0.6.1.tar.gz", hash = "sha256:a2bca0f039f39dbd35fb74ae1b5f998608c437463371f0ff7f49a19a17a114d0", size = 56114, upload-time = "2026-05-13T09:03:38.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/69/6da5581c6a7fede7dc261bf4e67d6adca4196f176b43288b55b3db395b6e/mdit_py_plugins-0.6.1-py3-none-any.whl", hash = "sha256:214c82fb2ac524472ab6a5bcab1de80f73b50443e187f401bfd77efbc7c6481d", size = 66663, upload-time = "2026-05-13T09:03:37.76Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "ml-dtypes" +version = "0.5.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/4a/c27b42ed9b1c7d13d9ba8b6905dece787d6259152f2309338aed29b2447b/ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453", size = 692314, upload-time = "2025-11-17T22:32:31.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/3a/c5b855752a70267ff729c349e650263adb3c206c29d28cc8ea7ace30a1d5/ml_dtypes-0.5.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b95e97e470fe60ed493fd9ae3911d8da4ebac16bd21f87ffa2b7c588bf22ea2c", size = 679735, upload-time = "2025-11-17T22:31:31.367Z" }, + { url = "https://files.pythonhosted.org/packages/41/79/7433f30ee04bd4faa303844048f55e1eb939131c8e5195a00a96a0939b64/ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4b801ebe0b477be666696bda493a9be8356f1f0057a57f1e35cd26928823e5a", size = 5051883, upload-time = "2025-11-17T22:31:33.658Z" }, + { url = "https://files.pythonhosted.org/packages/10/b1/8938e8830b0ee2e167fc75a094dea766a1152bde46752cd9bfc57ee78a82/ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:388d399a2152dd79a3f0456a952284a99ee5c93d3e2f8dfe25977511e0515270", size = 5030369, upload-time = "2025-11-17T22:31:35.595Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a3/51886727bd16e2f47587997b802dd56398692ce8c6c03c2e5bb32ecafe26/ml_dtypes-0.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:4ff7f3e7ca2972e7de850e7b8fcbb355304271e2933dd90814c1cb847414d6e2", size = 210738, upload-time = "2025-11-17T22:31:37.43Z" }, + { url = "https://files.pythonhosted.org/packages/c6/5e/712092cfe7e5eb667b8ad9ca7c54442f21ed7ca8979745f1000e24cf8737/ml_dtypes-0.5.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c7ecb74c4bd71db68a6bea1edf8da8c34f3d9fe218f038814fd1d310ac76c90", size = 679734, upload-time = "2025-11-17T22:31:39.223Z" }, + { url = "https://files.pythonhosted.org/packages/4f/cf/912146dfd4b5c0eea956836c01dcd2fce6c9c844b2691f5152aca196ce4f/ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc11d7e8c44a65115d05e2ab9989d1e045125d7be8e05a071a48bc76eb6d6040", size = 5056165, upload-time = "2025-11-17T22:31:41.071Z" }, + { url = "https://files.pythonhosted.org/packages/a9/80/19189ea605017473660e43762dc853d2797984b3c7bf30ce656099add30c/ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19b9a53598f21e453ea2fbda8aa783c20faff8e1eeb0d7ab899309a0053f1483", size = 5034975, upload-time = "2025-11-17T22:31:42.758Z" }, + { url = "https://files.pythonhosted.org/packages/b4/24/70bd59276883fdd91600ca20040b41efd4902a923283c4d6edcb1de128d2/ml_dtypes-0.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:7c23c54a00ae43edf48d44066a7ec31e05fdc2eee0be2b8b50dd1903a1db94bb", size = 210742, upload-time = "2025-11-17T22:31:44.068Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c9/64230ef14e40aa3f1cb254ef623bf812735e6bec7772848d19131111ac0d/ml_dtypes-0.5.4-cp311-cp311-win_arm64.whl", hash = "sha256:557a31a390b7e9439056644cb80ed0735a6e3e3bb09d67fd5687e4b04238d1de", size = 160709, upload-time = "2025-11-17T22:31:46.557Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b8/3c70881695e056f8a32f8b941126cf78775d9a4d7feba8abcb52cb7b04f2/ml_dtypes-0.5.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a174837a64f5b16cab6f368171a1a03a27936b31699d167684073ff1c4237dac", size = 676927, upload-time = "2025-11-17T22:31:48.182Z" }, + { url = "https://files.pythonhosted.org/packages/54/0f/428ef6881782e5ebb7eca459689448c0394fa0a80bea3aa9262cba5445ea/ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7f7c643e8b1320fd958bf098aa7ecf70623a42ec5154e3be3be673f4c34d900", size = 5028464, upload-time = "2025-11-17T22:31:50.135Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cb/28ce52eb94390dda42599c98ea0204d74799e4d8047a0eb559b6fd648056/ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ad459e99793fa6e13bd5b7e6792c8f9190b4e5a1b45c63aba14a4d0a7f1d5ff", size = 5009002, upload-time = "2025-11-17T22:31:52.001Z" }, + { url = "https://files.pythonhosted.org/packages/f5/f0/0cfadd537c5470378b1b32bd859cf2824972174b51b873c9d95cfd7475a5/ml_dtypes-0.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:c1a953995cccb9e25a4ae19e34316671e4e2edaebe4cf538229b1fc7109087b7", size = 212222, upload-time = "2025-11-17T22:31:53.742Z" }, + { url = "https://files.pythonhosted.org/packages/16/2e/9acc86985bfad8f2c2d30291b27cd2bb4c74cea08695bd540906ed744249/ml_dtypes-0.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:9bad06436568442575beb2d03389aa7456c690a5b05892c471215bfd8cf39460", size = 160793, upload-time = "2025-11-17T22:31:55.358Z" }, + { url = "https://files.pythonhosted.org/packages/d9/a1/4008f14bbc616cfb1ac5b39ea485f9c63031c4634ab3f4cf72e7541f816a/ml_dtypes-0.5.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c760d85a2f82e2bed75867079188c9d18dae2ee77c25a54d60e9cc79be1bc48", size = 676888, upload-time = "2025-11-17T22:31:56.907Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b7/dff378afc2b0d5a7d6cd9d3209b60474d9819d1189d347521e1688a60a53/ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce756d3a10d0c4067172804c9cc276ba9cc0ff47af9078ad439b075d1abdc29b", size = 5036993, upload-time = "2025-11-17T22:31:58.497Z" }, + { url = "https://files.pythonhosted.org/packages/eb/33/40cd74219417e78b97c47802037cf2d87b91973e18bb968a7da48a96ea44/ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:533ce891ba774eabf607172254f2e7260ba5f57bdd64030c9a4fcfbd99815d0d", size = 5010956, upload-time = "2025-11-17T22:31:59.931Z" }, + { url = "https://files.pythonhosted.org/packages/e1/8b/200088c6859d8221454825959df35b5244fa9bdf263fd0249ac5fb75e281/ml_dtypes-0.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:f21c9219ef48ca5ee78402d5cc831bd58ea27ce89beda894428bc67a52da5328", size = 212224, upload-time = "2025-11-17T22:32:01.349Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/dfc3775cb36367816e678f69a7843f6f03bd4e2bcd79941e01ea960a068e/ml_dtypes-0.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:35f29491a3e478407f7047b8a4834e4640a77d2737e0b294d049746507af5175", size = 160798, upload-time = "2025-11-17T22:32:02.864Z" }, + { url = "https://files.pythonhosted.org/packages/4f/74/e9ddb35fd1dd43b1106c20ced3f53c2e8e7fc7598c15638e9f80677f81d4/ml_dtypes-0.5.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:304ad47faa395415b9ccbcc06a0350800bc50eda70f0e45326796e27c62f18b6", size = 702083, upload-time = "2025-11-17T22:32:04.08Z" }, + { url = "https://files.pythonhosted.org/packages/74/f5/667060b0aed1aa63166b22897fdf16dca9eb704e6b4bbf86848d5a181aa7/ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a0df4223b514d799b8a1629c65ddc351b3efa833ccf7f8ea0cf654a61d1e35d", size = 5354111, upload-time = "2025-11-17T22:32:05.546Z" }, + { url = "https://files.pythonhosted.org/packages/40/49/0f8c498a28c0efa5f5c95a9e374c83ec1385ca41d0e85e7cf40e5d519a21/ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531eff30e4d368cb6255bc2328d070e35836aa4f282a0fb5f3a0cd7260257298", size = 5366453, upload-time = "2025-11-17T22:32:07.115Z" }, + { url = "https://files.pythonhosted.org/packages/8c/27/12607423d0a9c6bbbcc780ad19f1f6baa2b68b18ce4bddcdc122c4c68dc9/ml_dtypes-0.5.4-cp313-cp313t-win_amd64.whl", hash = "sha256:cb73dccfc991691c444acc8c0012bee8f2470da826a92e3a20bb333b1a7894e6", size = 225612, upload-time = "2025-11-17T22:32:08.615Z" }, + { url = "https://files.pythonhosted.org/packages/e5/80/5a5929e92c72936d5b19872c5fb8fc09327c1da67b3b68c6a13139e77e20/ml_dtypes-0.5.4-cp313-cp313t-win_arm64.whl", hash = "sha256:3bbbe120b915090d9dd1375e4684dd17a20a2491ef25d640a908281da85e73f1", size = 164145, upload-time = "2025-11-17T22:32:09.782Z" }, + { url = "https://files.pythonhosted.org/packages/72/4e/1339dc6e2557a344f5ba5590872e80346f76f6cb2ac3dd16e4666e88818c/ml_dtypes-0.5.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2b857d3af6ac0d39db1de7c706e69c7f9791627209c3d6dedbfca8c7e5faec22", size = 673781, upload-time = "2025-11-17T22:32:11.364Z" }, + { url = "https://files.pythonhosted.org/packages/04/f9/067b84365c7e83bda15bba2b06c6ca250ce27b20630b1128c435fb7a09aa/ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:805cef3a38f4eafae3a5bf9ebdcdb741d0bcfd9e1bd90eb54abd24f928cd2465", size = 5036145, upload-time = "2025-11-17T22:32:12.783Z" }, + { url = "https://files.pythonhosted.org/packages/c6/bb/82c7dcf38070b46172a517e2334e665c5bf374a262f99a283ea454bece7c/ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14a4fd3228af936461db66faccef6e4f41c1d82fcc30e9f8d58a08916b1d811f", size = 5010230, upload-time = "2025-11-17T22:32:14.38Z" }, + { url = "https://files.pythonhosted.org/packages/e9/93/2bfed22d2498c468f6bcd0d9f56b033eaa19f33320389314c19ef6766413/ml_dtypes-0.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:8c6a2dcebd6f3903e05d51960a8058d6e131fe69f952a5397e5dbabc841b6d56", size = 221032, upload-time = "2025-11-17T22:32:15.763Z" }, + { url = "https://files.pythonhosted.org/packages/76/a3/9c912fe6ea747bb10fe2f8f54d027eb265db05dfb0c6335e3e063e74e6e8/ml_dtypes-0.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:5a0f68ca8fd8d16583dfa7793973feb86f2fbb56ce3966daf9c9f748f52a2049", size = 163353, upload-time = "2025-11-17T22:32:16.932Z" }, + { url = "https://files.pythonhosted.org/packages/cd/02/48aa7d84cc30ab4ee37624a2fd98c56c02326785750cd212bc0826c2f15b/ml_dtypes-0.5.4-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:bfc534409c5d4b0bf945af29e5d0ab075eae9eecbb549ff8a29280db822f34f9", size = 702085, upload-time = "2025-11-17T22:32:18.175Z" }, + { url = "https://files.pythonhosted.org/packages/5a/e7/85cb99fe80a7a5513253ec7faa88a65306be071163485e9a626fce1b6e84/ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2314892cdc3fcf05e373d76d72aaa15fda9fb98625effa73c1d646f331fcecb7", size = 5355358, upload-time = "2025-11-17T22:32:19.7Z" }, + { url = "https://files.pythonhosted.org/packages/79/2b/a826ba18d2179a56e144aef69e57fb2ab7c464ef0b2111940ee8a3a223a2/ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d2ffd05a2575b1519dc928c0b93c06339eb67173ff53acb00724502cda231cf", size = 5366332, upload-time = "2025-11-17T22:32:21.193Z" }, + { url = "https://files.pythonhosted.org/packages/84/44/f4d18446eacb20ea11e82f133ea8f86e2bf2891785b67d9da8d0ab0ef525/ml_dtypes-0.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:4381fe2f2452a2d7589689693d3162e876b3ddb0a832cde7a414f8e1adf7eab1", size = 236612, upload-time = "2025-11-17T22:32:22.579Z" }, + { url = "https://files.pythonhosted.org/packages/ad/3f/3d42e9a78fe5edf792a83c074b13b9b770092a4fbf3462872f4303135f09/ml_dtypes-0.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:11942cbf2cf92157db91e5022633c0d9474d4dfd813a909383bd23ce828a4b7d", size = 168825, upload-time = "2025-11-17T22:32:23.766Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "narwhals" +version = "2.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/ac/66ed1fc6e38a0c0f330627ec5c5d597990d6159b6712b82af0ad2c65f06c/narwhals-2.23.0.tar.gz", hash = "sha256:13e7ff5b4bb4a2f77b907c2e4d8a76e273dfc1323a3c997440a2f9fd26aed408", size = 656209, upload-time = "2026-07-01T11:21:53.278Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/4e/afc8c31605cb8be1d3bb4438c4d979daa104dab6306cd2b87abe9c3a7299/narwhals-2.23.0-py3-none-any.whl", hash = "sha256:769e7b9ab102c93d8fa019f6b4cd1a657909b04a20bf6210e5a35aae06814ae9", size = 458938, upload-time = "2026-07-01T11:21:51.677Z" }, +] + +[[package]] +name = "nbclient" +version = "0.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "nbformat" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "numba" +version = "0.66.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/a0/570e3dc53e5602b49108f62a13e529f1eec8bfc7ef37d49c825924dcf546/numba-0.66.0.tar.gz", hash = "sha256:b900e63a0e26c05ea9a6d5a3a5a0a177cb64c5011887bf43edb8c3ed2c38d363", size = 2806181, upload-time = "2026-07-01T23:12:46.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/48/d139bde40f2359351bfe26ee1b261937f458ac177ab810d4f045ae1c9d92/numba-0.66.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:27951c47e0def9bf8afe580eb961102902e2fd23cb77924b7d9d7cc0f8b444cb", size = 2727368, upload-time = "2026-07-01T23:12:04.282Z" }, + { url = "https://files.pythonhosted.org/packages/36/e4/b780bfa9191410da50ba249cb3248a75014e17f611e72709cbddcb21f42d/numba-0.66.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc408c54b450f41582f4be1608f8981c1dcc44c7f40355cc150dd93015753407", size = 3803554, upload-time = "2026-07-01T23:12:06.379Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b2/a051b96626bdf5c4d8fa6b8d450605c09638d85dc872ab63ef9a67096dca/numba-0.66.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c14c044c06b453ec3fa7715dfe75425e2ba72c73377a7ffde6d9ec511dfd94c", size = 3510065, upload-time = "2026-07-01T23:12:08.051Z" }, + { url = "https://files.pythonhosted.org/packages/34/01/24dcdc3e919522e2efbd92969c281ff40deb1d5f8a994bcd0057081c158c/numba-0.66.0-cp310-cp310-win_amd64.whl", hash = "sha256:2338cc0d43609fe448930848fd35a5bc688761b986f81b597a6f45cc0f8c9577", size = 2780379, upload-time = "2026-07-01T23:12:09.772Z" }, + { url = "https://files.pythonhosted.org/packages/9e/02/970796b4daa709604cde22e87a7cda9bde473c278ea4a75f59fe38cee47f/numba-0.66.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:bbd531c327557a9004507fa6bff06c53ab51a7a5776b75261bb9cef1efe2b2ea", size = 2727049, upload-time = "2026-07-01T23:12:11.296Z" }, + { url = "https://files.pythonhosted.org/packages/8c/99/33a6ed9c1a0b5e42efa98eb0edf617d61dca576c82625947377b1d4540c9/numba-0.66.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc6629becb21a867d85401ec89f426dd24c484a4193ade8a38309debfd1529ca", size = 3808870, upload-time = "2026-07-01T23:12:12.944Z" }, + { url = "https://files.pythonhosted.org/packages/04/20/8c51126025211659235b8de2866dfa226984ae0c8273461a3cf374716741/numba-0.66.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aac69f3ccb8af100f5913c1241edc9692bad1cdd2508721713f426eb06c9a659", size = 3514498, upload-time = "2026-07-01T23:12:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c9/9476940bc6d5caf5c0cf2e4c5feecbf01244bbe6f914614082dd7a3e520e/numba-0.66.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb601841d9e02e6237bb6522e36d0741614be3cfe2b482a6f00a41b5ba209443", size = 2780225, upload-time = "2026-07-01T23:12:16.924Z" }, + { url = "https://files.pythonhosted.org/packages/62/a3/70deb7f88461c1cd5d16aa990c2380604102661a427667b8950dcdccc27f/numba-0.66.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:53ca5900b7cab15109796030113a6b28576bae5ad7bb507ad6dd1360ddd81ba4", size = 2727264, upload-time = "2026-07-01T23:12:18.669Z" }, + { url = "https://files.pythonhosted.org/packages/2d/55/25c319845e9a4e08f16611ddbda56a192eb7b6ed13e1a2bff2da272ffb97/numba-0.66.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0999e3ee1b18c48e1fb51d11af35ef59852c7f4f50569c9550c25faef0616ad1", size = 3866252, upload-time = "2026-07-01T23:12:20.429Z" }, + { url = "https://files.pythonhosted.org/packages/71/ef/a82d6fd6bf1b0fe461651e924d3647eeec9ac17f8eee4896264bf7480930/numba-0.66.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:efe0d2d5099790df945e0cb6e1b3104bd965d7bbfac50d62f1d5d1d6ade0825d", size = 3566974, upload-time = "2026-07-01T23:12:22.116Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/9e6171e378822ab191c7abcfd3d8cfc8644516f6c7834c22e210e4acc070/numba-0.66.0-cp312-cp312-win_amd64.whl", hash = "sha256:b075a4e7ebc43dc6294f223e2821659656209fd5e0ce53245877c23d66d6e1a9", size = 2797403, upload-time = "2026-07-01T23:12:23.724Z" }, + { url = "https://files.pythonhosted.org/packages/03/52/176c02d005c5c5143cde10a85bbcdcb6236d9e34c3aac089380e0506cd1d/numba-0.66.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:380b2556a2019ccd1e956ae77dd257eaa39403f7520768b626d44b755112785e", size = 2727084, upload-time = "2026-07-01T23:12:25.434Z" }, + { url = "https://files.pythonhosted.org/packages/44/b5/e930010965568fe7f2c6c962fd2849d458cb9f62c3ab7584af8a19a2b40a/numba-0.66.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:939316d5d8619751207b8972a67852b5a7646665298cb4de693cd6bf135152f4", size = 3873663, upload-time = "2026-07-01T23:12:27.308Z" }, + { url = "https://files.pythonhosted.org/packages/d0/ec/5b51457cbe96e4831141d83e892e65191b23a1b78728456c62909d231ace/numba-0.66.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cdf506775d9f02eb92a87bf5c5b1e0d25506fd18cafd769f4ed914a8feac73e7", size = 3573529, upload-time = "2026-07-01T23:12:28.944Z" }, + { url = "https://files.pythonhosted.org/packages/83/7e/cea7710e96913d3c7f2999f16db1b28e6c5be5171cbf40f77f98333a7243/numba-0.66.0-cp313-cp313-win_amd64.whl", hash = "sha256:c5bfe5350284509ab0474390321454c3a8627a188af5b68c910e83df3e2db4a7", size = 2797247, upload-time = "2026-07-01T23:12:30.774Z" }, + { url = "https://files.pythonhosted.org/packages/96/7a/7e0e73550eb4e41ede6e72fb5371f4539537a4d770a3b73fa9b61aea0622/numba-0.66.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:46ae5f2b19e2af3c33c2df100306a90ea2f981c8158b0390f8bf6c20eee7357e", size = 2727296, upload-time = "2026-07-01T23:12:32.39Z" }, + { url = "https://files.pythonhosted.org/packages/0f/26/885774c006de6620ed3d10f45d8e20fe0b8e6aad6d573211a2cbc8b3e528/numba-0.66.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e2b101f23b8b63978d334574d2039f27f0dccfe1d891756f33a2e2f3e4c88cf4", size = 3842720, upload-time = "2026-07-01T23:12:33.938Z" }, + { url = "https://files.pythonhosted.org/packages/93/99/edebf7de890b73973d839dd971cf73734adfb81ffa1b4504f84b9059c3e5/numba-0.66.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:63b943eb2c9ba371908ce2cd6dfc643db51fc40f7966993376a1701bc922f537", size = 3543537, upload-time = "2026-07-01T23:12:35.566Z" }, + { url = "https://files.pythonhosted.org/packages/66/c5/b46ad28ac3681d035ea21365c5e052149062e1a0a9affd0563d2760ea6ff/numba-0.66.0-cp314-cp314-win_amd64.whl", hash = "sha256:bd57790acd20f6a468e0ad333ef6b82355e309a92310fb7dff80e919f01a21a9", size = 2799250, upload-time = "2026-07-01T23:12:37.154Z" }, + { url = "https://files.pythonhosted.org/packages/10/6f/5e77a7397a37dd16f57a7b72e7e470db5227b68e3639df0d13a8e674883d/numba-0.66.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:db7735d15ea17a283d6485b9fa3504769f78fd86e5146638ad5e8da57c031b9e", size = 2730342, upload-time = "2026-07-01T23:12:38.758Z" }, + { url = "https://files.pythonhosted.org/packages/39/fd/e9c9680a3813f3d781c20e5d53c1074801b787d4feecca0472fdd7c05ce1/numba-0.66.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:651a2b53298340956db26ecbe7ab043106b50a40c2807e66d617a4917245a4ab", size = 3878695, upload-time = "2026-07-01T23:12:40.302Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/9b363287b85fcd4537ea3878793822878b2ac1008a78159d2096fea628de/numba-0.66.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c1144ba1720ea59ad79f4f488ed54d149b2613b357f7e445678b7d0739c70e9", size = 3596323, upload-time = "2026-07-01T23:12:42.805Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f2/dca53d50b8f2289dd01954ace9da261e0487d5b74b188b4304e4ecc3492c/numba-0.66.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d426178fb991a85714c43112a8ea7b9d9579ea856ad8dcdb9c1c3941903ba5be", size = 2804772, upload-time = "2026-07-01T23:12:44.399Z" }, +] + +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, +] + +[[package]] +name = "openpulse" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "antlr4-python3-runtime" }, + { name = "openqasm3", extra = ["parser"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4b/41/0cdb6190148de664b7b200b65496a20a54b952567eb4d040e3f4117b4473/openpulse-1.0.1.tar.gz", hash = "sha256:4c184e3012907ec35f04202ed72621037b1a06d70195769576bfc9e62c01bf94", size = 519151, upload-time = "2024-10-01T16:59:17.386Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/41/429b613fe56124f5714f0d7ff5c1a2c74913e3db2fdde3fd13bf732a116f/openpulse-1.0.1-py3-none-any.whl", hash = "sha256:75fb2d4d7f74db3a86027719744541fcb725e1f5b79e14b78dc5b34ed8c66e87", size = 537758, upload-time = "2024-10-01T16:59:15.568Z" }, +] + +[[package]] +name = "openqasm3" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/a0/678ce1e4efbeb1cf06a7728b4056754e52bfd2c5cad174dae0f2a17b2d03/openqasm3-1.0.1.tar.gz", hash = "sha256:c589dc05d4ced50ca24167d14e0f2c916e717499ba0442e0ff2a3030ef312d0a", size = 536861, upload-time = "2025-02-19T22:51:06.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/dd/2aa7698341948f3229f7a1cb75e84d9677444d9c730632d1907716574dc5/openqasm3-1.0.1-py3-none-any.whl", hash = "sha256:0d3a1ebe3465e3ea619bcaa369858bba8944cbb0c49604b24f94662d3ec41d41", size = 541545, upload-time = "2025-02-19T22:51:01.852Z" }, +] + +[package.optional-dependencies] +parser = [ + { name = "antlr4-python3-runtime" }, +] + +[[package]] +name = "opt-einsum" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/b9/2ac072041e899a52f20cf9510850ff58295003aa75525e58343591b0cbfb/opt_einsum-3.4.0.tar.gz", hash = "sha256:96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac", size = 63004, upload-time = "2024-09-26T14:33:24.483Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl", hash = "sha256:69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd", size = 71932, upload-time = "2024-09-26T14:33:23.039Z" }, +] + +[[package]] +name = "oqpy" +version = "0.3.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "numpy" }, + { name = "openpulse" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/4d/032f9bf1c5636fb499ba4dc9866f1956f15ecd6e9532ce084d02c124045c/oqpy-0.3.10.tar.gz", hash = "sha256:be2155f6035ee8df89e4053bef9035f91fe264ad897415ec7098e33a0cb827cb", size = 31773, upload-time = "2026-02-25T15:04:39.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/47/157996e81032852e68af47dde52a9df7568306df2420c4fa8ec0fbac41a5/oqpy-0.3.10-py3-none-any.whl", hash = "sha256:d158af2f546a86759845863c107d700b61d320fd7aaec99b67d70dff3ff84206", size = 35870, upload-time = "2026-02-25T15:04:38.143Z" }, +] + +[[package]] +name = "ordered-set" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/ca/bfac8bc689799bcca4157e0e0ced07e70ce125193fc2e166d2e685b7e2fe/ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8", size = 12826, upload-time = "2022-01-26T14:38:56.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/55/af02708f230eb77084a299d7b08175cff006dea4f2721074b92cdb0296c0/ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562", size = 7634, upload-time = "2022-01-26T14:38:48.677Z" }, +] + +[[package]] +name = "orderedmultidict" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/62/61ad51f6c19d495970230a7747147ce7ed3c3a63c2af4ebfdb1f6d738703/orderedmultidict-1.0.2.tar.gz", hash = "sha256:16a7ae8432e02cc987d2d6d5af2df5938258f87c870675c73ee77a0920e6f4a6", size = 13973, upload-time = "2025-11-18T08:00:42.649Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/6c/d8a02ffb24876b5f51fbd781f479fc6525a518553a4196bd0433dae9ff8e/orderedmultidict-1.0.2-py2.py3-none-any.whl", hash = "sha256:ab5044c1dca4226ae4c28524cfc5cc4c939f0b49e978efa46a6ad6468049f79b", size = 11897, upload-time = "2025-11-18T08:00:41.44Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763, upload-time = "2025-09-29T23:16:53.287Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217, upload-time = "2025-09-29T23:17:04.522Z" }, + { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791, upload-time = "2025-09-29T23:17:18.444Z" }, + { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373, upload-time = "2025-09-29T23:17:35.846Z" }, + { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444, upload-time = "2025-09-29T23:17:49.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459, upload-time = "2025-09-29T23:18:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086, upload-time = "2025-09-29T23:18:18.505Z" }, + { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, + { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, +] + +[[package]] +name = "parso" +version = "0.8.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload-time = "2026-05-01T23:13:02.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload-time = "2026-05-01T23:12:58.867Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pillow" +version = "12.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/c2/669d88644cddb1485bd9534e63e8cf476c8e51cb3c3a1297677023505c0e/pillow-12.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6c0016e7b354317c4e9e525b937ac8596c38d2d232b419529b9cd7a1cd46e39a", size = 5392418, upload-time = "2026-07-01T11:53:27.808Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ba/3762f376a2948e3036488d773a146e0ae6ecc2ca03ac20e2615bd0b2ba02/pillow-12.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bcc33feacfaefce60c12fd500a277533bdc02b10a19f7f6d348763d8140bbba7", size = 4785287, upload-time = "2026-07-01T11:53:29.761Z" }, + { url = "https://files.pythonhosted.org/packages/07/50/b5d688cc9c52d4482f3d5bcab6ce20bc2a74a85d2343841c907444a3be2c/pillow-12.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5594fc43d548a7ed94949d139aa1341b270f1863f11cfd37f5a6c8b778a6b67f", size = 6253754, upload-time = "2026-07-01T11:53:32.298Z" }, + { url = "https://files.pythonhosted.org/packages/4e/89/36f4cd76cf4baf05c50ababb976249153f18c959171c7f6ba09a6f217260/pillow-12.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0606c8bf2cdefea14a43530f7657cbbb7ecf1c4222512492ef4a4434a9501ec", size = 6925605, upload-time = "2026-07-01T11:53:34.487Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c0/4de58cf6633b9e3a6061ef4be6fb91fc3c90b812ece886f531e3c523d777/pillow-12.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:85f998ea1848bc6757289e739cfbdda3a04adfd58b02fc018ce54d754a5ce468", size = 6327788, upload-time = "2026-07-01T11:53:36.433Z" }, + { url = "https://files.pythonhosted.org/packages/87/3c/14d53682a19550dbbaf3b598f807d5457646c510805a44c7d7891cd1cd1a/pillow-12.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:25b9b82bb22e6e2b3cd07b39c68b7b862001226cb3dff7130d1cb914121b39ed", size = 7036288, upload-time = "2026-07-01T11:53:38.712Z" }, + { url = "https://files.pythonhosted.org/packages/38/1d/36279e3c77efe034e4cc2b0393ee74ffdb5a62391dacbf9b916154f5f0b8/pillow-12.3.0-cp310-cp310-win32.whl", hash = "sha256:37dc8f7bbb66efe481bb60defacef820c950c24713fb44962ed6aa2a50966de1", size = 6472396, upload-time = "2026-07-01T11:53:40.781Z" }, + { url = "https://files.pythonhosted.org/packages/48/7c/8fa0039574c476d7c6fa57dd7c32a130436877c6ec1e5ce1cc8ec44878c1/pillow-12.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:300557495eb45ebb8aec96c2da9c4be642fbf7cd937278b4013ba894ea8eb0eb", size = 7226887, upload-time = "2026-07-01T11:53:42.764Z" }, + { url = "https://files.pythonhosted.org/packages/fa/17/e324be141d173c1c919428066c3259f21c1b8982e564e01a4a81e96dbdcf/pillow-12.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:514435a37670e3e5e08f3945b68718b6ed329bb84367777e16f9f4dfe1e61a0f", size = 2568039, upload-time = "2026-07-01T11:53:45.372Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756", size = 5392415, upload-time = "2026-07-01T11:53:47.162Z" }, + { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6", size = 4785266, upload-time = "2026-07-01T11:53:49.079Z" }, + { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd", size = 6263814, upload-time = "2026-07-01T11:53:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd", size = 6934408, upload-time = "2026-07-01T11:53:53.487Z" }, + { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c", size = 6337160, upload-time = "2026-07-01T11:53:55.457Z" }, + { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5", size = 7045172, upload-time = "2026-07-01T11:53:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size = 6472232, upload-time = "2026-07-01T11:53:59.767Z" }, + { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", size = 7233653, upload-time = "2026-07-01T11:54:02.066Z" }, + { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", size = 2568195, upload-time = "2026-07-01T11:54:04.622Z" }, + { url = "https://files.pythonhosted.org/packages/37/bf/fb3ebff8ddcb76aac5a01389251bbbb9519922a9b520d8247c1ca864a25d/pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965", size = 5345969, upload-time = "2026-07-01T11:54:06.397Z" }, + { url = "https://files.pythonhosted.org/packages/d8/66/9a386a92561f402389a4fc70c18838bf6d35eb5eb5c6850b4b2dc64f5048/pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7", size = 4780323, upload-time = "2026-07-01T11:54:09.351Z" }, + { url = "https://files.pythonhosted.org/packages/25/27/ac8f99618ffd3dde21db0f4d4b1d2ab00c0880595bfd17df103f7f39fd0c/pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9", size = 6266838, upload-time = "2026-07-01T11:54:11.71Z" }, + { url = "https://files.pythonhosted.org/packages/84/21/a35af28dcc61f37ed850a2d64c65c701321dfbf25085e469d5559360cbbf/pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91", size = 6940830, upload-time = "2026-07-01T11:54:13.732Z" }, + { url = "https://files.pythonhosted.org/packages/eb/51/8b08617af3ad95e33ce6d7dd2c99ed6c8298f7fb131636303956be022e25/pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c", size = 6344383, upload-time = "2026-07-01T11:54:15.756Z" }, + { url = "https://files.pythonhosted.org/packages/1d/72/cf78ac9780bb93c28328f408973845a309d4d145041665f734572ced1b52/pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df", size = 7052934, upload-time = "2026-07-01T11:54:17.721Z" }, + { url = "https://files.pythonhosted.org/packages/20/20/25e0f4dc178a6bc0696793720055519a0de89e7661dae886992decbd2f81/pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f", size = 6472684, upload-time = "2026-07-01T11:54:19.839Z" }, + { url = "https://files.pythonhosted.org/packages/45/89/da2f7971a317f83d807fdd4065c0af40208e59e692cc43d315a71a0e96d1/pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09", size = 7227137, upload-time = "2026-07-01T11:54:22.025Z" }, + { url = "https://files.pythonhosted.org/packages/de/47/4845a0a6c0dbf1db8456bd9fc791f13c5ced7ced20606d08a0aacfd25b49/pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510", size = 2568267, upload-time = "2026-07-01T11:54:24.051Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ac/31fb64e1e7efb5a4b50cd3d92049ba89ac6e4d8d3bb6a74e15048ca3353e/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89", size = 4161684, upload-time = "2026-07-01T11:54:25.934Z" }, + { url = "https://files.pythonhosted.org/packages/87/b4/9805e23d2b4d77842b468513841fda254ee42f0289d25088340e4ff46e2d/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace", size = 4255487, upload-time = "2026-07-01T11:54:27.935Z" }, + { url = "https://files.pythonhosted.org/packages/df/39/ecf519435a200c693fe053a6ee4d835b41cf963a4dfc2551c4e637cb2a71/pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec", size = 3696433, upload-time = "2026-07-01T11:54:29.813Z" }, + { url = "https://files.pythonhosted.org/packages/42/92/2fc3ffad878ae8dd5469ec1bc8eb83b71f48e13efdf68f02709003982a32/pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66", size = 5345889, upload-time = "2026-07-01T11:54:31.97Z" }, + { url = "https://files.pythonhosted.org/packages/10/76/8803c13605b763d33d156c4678fc77f8443389c0c51c8aef707bb02015f4/pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35", size = 4780109, upload-time = "2026-07-01T11:54:34.026Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/e18aff37cb0b4aac47ac90f016d347a49aca667ef97f190b06ac2aabc928/pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65", size = 6263736, upload-time = "2026-07-01T11:54:36.131Z" }, + { url = "https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3", size = 6937129, upload-time = "2026-07-01T11:54:38.216Z" }, + { url = "https://files.pythonhosted.org/packages/70/4d/105627a13300c5e0df1d174230b32fd1273062c96f7745fd552b945d1e1d/pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a", size = 6339562, upload-time = "2026-07-01T11:54:40.354Z" }, + { url = "https://files.pythonhosted.org/packages/6b/1d/f13de01a553988ab895ba1c722e06cf3144d4f57656fd5b81b6d881f1179/pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e", size = 7049439, upload-time = "2026-07-01T11:54:42.489Z" }, + { url = "https://files.pythonhosted.org/packages/c9/f9/066794cca041b969964f779ee5fa66a9498bbf34248ac39c5d7954e4198f/pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f", size = 6473287, upload-time = "2026-07-01T11:54:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/7a58e61d62be561da3a356fe2384d4059a6345fc130e23ef1c36a5b81d24/pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8", size = 7239691, upload-time = "2026-07-01T11:54:47.141Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b0/c4ed4f0ef8f8fa5ee8351537db6650bb8189f7e118842978dd6589065692/pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b", size = 2568185, upload-time = "2026-07-01T11:54:49.137Z" }, + { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330", size = 4161736, upload-time = "2026-07-01T11:54:51.156Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217", size = 4255435, upload-time = "2026-07-01T11:54:53.414Z" }, + { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930", size = 3696262, upload-time = "2026-07-01T11:54:55.739Z" }, + { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8", size = 5350344, upload-time = "2026-07-01T11:54:57.657Z" }, + { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0", size = 4780131, upload-time = "2026-07-01T11:54:59.713Z" }, + { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321", size = 6263757, upload-time = "2026-07-01T11:55:01.778Z" }, + { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b", size = 6936962, upload-time = "2026-07-01T11:55:03.93Z" }, + { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198", size = 6339171, upload-time = "2026-07-01T11:55:05.989Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130", size = 7048116, upload-time = "2026-07-01T11:55:08.131Z" }, + { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size = 6467209, upload-time = "2026-07-01T11:55:10.408Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", size = 7237707, upload-time = "2026-07-01T11:55:12.745Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", size = 2565995, upload-time = "2026-07-01T11:55:14.736Z" }, + { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e", size = 5352503, upload-time = "2026-07-01T11:55:17.076Z" }, + { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17", size = 4782956, upload-time = "2026-07-01T11:55:19.448Z" }, + { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385", size = 6322855, upload-time = "2026-07-01T11:55:21.613Z" }, + { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c", size = 6989642, upload-time = "2026-07-01T11:55:24.006Z" }, + { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d", size = 6391281, upload-time = "2026-07-01T11:55:26.252Z" }, + { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931", size = 7096716, upload-time = "2026-07-01T11:55:28.318Z" }, + { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", size = 6474125, upload-time = "2026-07-01T11:55:30.956Z" }, + { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c", size = 7242939, upload-time = "2026-07-01T11:55:34.044Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45", size = 2567506, upload-time = "2026-07-01T11:55:35.988Z" }, + { url = "https://files.pythonhosted.org/packages/5d/dc/8fdce34ec725a33c81c6ba122b904d6b9024e50ea9ac7bede62fab54506c/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139", size = 4162063, upload-time = "2026-07-01T11:55:37.941Z" }, + { url = "https://files.pythonhosted.org/packages/76/66/2044b9a63d3b84ff048228dfcb7cd9bf0df983e8470971bf7d4c57b693de/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402", size = 4255549, upload-time = "2026-07-01T11:55:40.022Z" }, + { url = "https://files.pythonhosted.org/packages/52/7e/1f67e6f4ece6b582ee4b539decbcc9f848dc245a93ed8cd7338bafef72f1/pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c", size = 3696331, upload-time = "2026-07-01T11:55:41.98Z" }, + { url = "https://files.pythonhosted.org/packages/12/40/d306fc2c8e4d45d7f175c77edca7063be7b86fe7fe6e68f4353bf71d808c/pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f", size = 5350370, upload-time = "2026-07-01T11:55:44.028Z" }, + { url = "https://files.pythonhosted.org/packages/dd/44/668fb1437e8ce420f62d6106eb66e44a5971602a4d794615bdf79315d82d/pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701", size = 4780147, upload-time = "2026-07-01T11:55:46.073Z" }, + { url = "https://files.pythonhosted.org/packages/0c/08/93fa2e70e30a2d81547e481b6ee2bb9522117221fb1e0ce4b5df70967677/pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace", size = 6273659, upload-time = "2026-07-01T11:55:48.264Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6d/043e96ff814fc31a33077e4cba86082167db520c93632afdf2042febbb0c/pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4", size = 6947439, upload-time = "2026-07-01T11:55:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/af/92/ba71d2ee2ac0edf3fa33bd9d5ee9ee080da70b1766f3ca3934f9938ddac9/pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39", size = 6353577, upload-time = "2026-07-01T11:55:52.697Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ce/e63064e2122923ff687c8ad792d0d736a7b3920a56a46982e81a7fdd25d6/pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71", size = 7060394, upload-time = "2026-07-01T11:55:55.149Z" }, + { url = "https://files.pythonhosted.org/packages/54/76/a09cc3ccc8d773a7283d34c38bec1708f9e3cc932093cbc4c5e71ac4060b/pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827", size = 6467375, upload-time = "2026-07-01T11:55:57.769Z" }, + { url = "https://files.pythonhosted.org/packages/3e/03/1846c49ba3b1d5550392a4bbd06d6fb4578e1cd91a803198b5c90f5f7d53/pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5", size = 7237048, upload-time = "2026-07-01T11:55:59.975Z" }, + { url = "https://files.pythonhosted.org/packages/fb/bb/89f35dcc79610423f9f195504d7def7f0d1416a711541b42867e25fe3412/pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658", size = 2566006, upload-time = "2026-07-01T11:56:02.143Z" }, + { url = "https://files.pythonhosted.org/packages/30/88/707027ba09942dfa2c28759b5c222d769290a41c6d20ea60ec250801941f/pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf", size = 5352509, upload-time = "2026-07-01T11:56:04.2Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6d/00352fa25332c2569cd387851f568cc5a4b75a9adbfb37ac4fbce4c02eec/pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64", size = 4783167, upload-time = "2026-07-01T11:56:06.631Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/9e049dfa21af7c22427275720e2490267ba8138120add5c4c574deb69782/pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e", size = 6329237, upload-time = "2026-07-01T11:56:08.868Z" }, + { url = "https://files.pythonhosted.org/packages/36/16/cf6eeaae8d0fce8dd390a33437cf68c5d5bd73834a2bc6e2f14efda0ab45/pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777", size = 6997047, upload-time = "2026-07-01T11:56:11.379Z" }, + { url = "https://files.pythonhosted.org/packages/1e/69/dbf769bdd55f48bf5733cac28edc6364ffaa072ec9ba336266e4fe66be55/pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1", size = 6400440, upload-time = "2026-07-01T11:56:13.908Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e1/ffc9cfc2eea0d178da8018e18e959301ad9d6bc9f3edb7181e748a474b97/pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9", size = 7105895, upload-time = "2026-07-01T11:56:16.575Z" }, + { url = "https://files.pythonhosted.org/packages/18/f0/a5595c1e8c3ae44b9828cb2f0fa8155e5095ef04d6327b8f61cf44a3df85/pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8", size = 6474384, upload-time = "2026-07-01T11:56:18.855Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/62bcd9f844984c5938d3b05264a61d797a29d3e0812341a8204af70bbdee/pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418", size = 7243537, upload-time = "2026-07-01T11:56:21.214Z" }, + { url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59", size = 2567491, upload-time = "2026-07-01T11:56:23.506Z" }, + { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468", size = 5302510, upload-time = "2026-07-01T11:56:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94", size = 4736058, upload-time = "2026-07-01T11:56:28.041Z" }, + { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e", size = 5237776, upload-time = "2026-07-01T11:56:30.263Z" }, + { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3", size = 5860358, upload-time = "2026-07-01T11:56:32.68Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/47/e4501f49c178ae1d9f4a75073fda4204f52647993f075a9db4d14930e0c5/platformdirs-4.10.0.tar.gz", hash = "sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7", size = 31224, upload-time = "2026-05-28T03:32:53.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/e6/cd9575ac904136b3cbf7aa7ee819ef86eedb7274e46f230e94ea4342e729/platformdirs-4.10.0-py3-none-any.whl", hash = "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a", size = 22743, upload-time = "2026-05-28T03:32:52.175Z" }, +] + +[[package]] +name = "plotext" +version = "5.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/d7/f75f397af966fe252d0d34ffd3cae765317fce2134f925f95e7d6725d1ce/plotext-5.3.2.tar.gz", hash = "sha256:52d1e932e67c177bf357a3f0fe6ce14d1a96f7f7d5679d7b455b929df517068e", size = 61967, upload-time = "2024-09-24T15:13:37.728Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/1e/12fe7c40cd2099a1f454518754ed229b01beaf3bbb343127f0cc13ce6c22/plotext-5.3.2-py3-none-any.whl", hash = "sha256:394362349c1ddbf319548cfac17ca65e6d5dfc03200c40dfdc0503b3e95a2283", size = 64047, upload-time = "2024-09-24T15:13:36.296Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "plum-dispatch" +version = "2.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1b/b7/84146ae5ff6c40d11357acdb36aafe3db7e104de01c1026d8e1b0ce3e7f1/plum_dispatch-2.9.0.tar.gz", hash = "sha256:fb45c5b2dd4dadd57def51bcf321dfa3a258df5c725f43adea7e7f6db3b79b52", size = 244502, upload-time = "2026-04-28T08:38:34.442Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/e1/8fa7fffff5699fa9d7aae2c57de27f2b21a242189f8c102c80a0961dcc89/plum_dispatch-2.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6c5f5dfd1afd42dfd738c1b7701b9e03279c52b4952d6bb56e169564b1d48eb9", size = 174089, upload-time = "2026-04-28T08:38:15.801Z" }, + { url = "https://files.pythonhosted.org/packages/33/91/a2879973fd40c985aeb55ffe522d7b91c10062f82b251b9ad202f063a3e8/plum_dispatch-2.9.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cec06a2f2545a2b09e8dde81be6f1512e1df850b3ab2fbf582ef79a10956b23", size = 206109, upload-time = "2026-04-28T08:38:17.219Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3a/578642ace42b78507a98e8b27ad7d8554d197b7ec67d28eab6806b0a0fc0/plum_dispatch-2.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:7e767a7e52f7d4cb3f10010024047d043c29d7ed0ab7df63bceef5371c44a2fa", size = 152556, upload-time = "2026-04-28T08:38:18.51Z" }, + { url = "https://files.pythonhosted.org/packages/e0/20/7aa36a01b1689d427a9fc20c80b1c0bc8340d1413c8071f08fb1e9a01939/plum_dispatch-2.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:25f62c2209b7bff00c6cdc25fe153ac09df304d7d833fab2852fc46fffbb7e87", size = 172039, upload-time = "2026-04-28T08:38:19.985Z" }, + { url = "https://files.pythonhosted.org/packages/63/01/eee83f936500e3e0100ac421483fa78768fec70214e4ce0241187ec3a2f1/plum_dispatch-2.9.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4d34cab84908abbdff501e356296eba960ff5d5fc04668b71ebc6f9ff84fa2f", size = 203364, upload-time = "2026-04-28T08:38:21.431Z" }, + { url = "https://files.pythonhosted.org/packages/d8/05/78c229ccce36fbd6dbc1cde698baae57313515ff1bff6ebad28be46c9386/plum_dispatch-2.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:1050150b6ae3600ac19a406b23cb7d0707825b227f608a54b8be9994d1f4b710", size = 152110, upload-time = "2026-04-28T08:38:22.975Z" }, + { url = "https://files.pythonhosted.org/packages/82/d6/fc6591336731b5e291319ec3c43d81cd6cc7940c9079183b333b85ed4d77/plum_dispatch-2.9.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:39a325b0b041fad687271d71abc11b5271d5a3b62af2c6b1271f4ececc3b59de", size = 175166, upload-time = "2026-04-28T08:38:24.467Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4d/5418649397b477ae08839564c97596ede5ef36523147899bb913bbe959d1/plum_dispatch-2.9.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d39b20a1af776a39e4a0833e97c6258d938e5d874c7f3537bb7d772c39718c1e", size = 205988, upload-time = "2026-04-28T08:38:25.838Z" }, + { url = "https://files.pythonhosted.org/packages/e1/a5/28a6c4e45c4465a6e1a30d65206e913c217690752dc3c9261d78a9187aed/plum_dispatch-2.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:beb9b92c6994404a0d2dc83c857263f5da49519575e5cbb8a13060652746c44c", size = 152563, upload-time = "2026-04-28T08:38:27.37Z" }, + { url = "https://files.pythonhosted.org/packages/cb/18/19e01dbbaececb75815abb37bc71e10d87a7561829b4eae47ec3b342c94f/plum_dispatch-2.9.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:78987caf558fbdd675a7a4a5c144069f1f9524610195123fb7d0f0234d0af01a", size = 174490, upload-time = "2026-04-28T08:38:28.881Z" }, + { url = "https://files.pythonhosted.org/packages/fc/29/7b3de57cd86430fd00d71bc5a8a078bf2c63d4ada7fdfb30853fe976a19f/plum_dispatch-2.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:36662d76ae6d87aaa041fade036d2242f0b88b68c9fb4c96b7ba0026320065d3", size = 204734, upload-time = "2026-04-28T08:38:30.398Z" }, + { url = "https://files.pythonhosted.org/packages/ba/98/23d19326af0da251bb98a39f517ab6da983e5aad5eb9cc398b60933df2cc/plum_dispatch-2.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:a0d16daf09482a6588025e9f133a338d99474e8dd3c3dbbc4c5282a4fffe5a0e", size = 152624, upload-time = "2026-04-28T08:38:31.886Z" }, + { url = "https://files.pythonhosted.org/packages/64/a7/ee4d01d26032b060d379f44a29124180f756d907e3840d3bc450f8a0d2a7/plum_dispatch-2.9.0-py3-none-any.whl", hash = "sha256:5a516cdac5460343937a2b813562ac00b0eeac973ac023916e538610bdf34397", size = 45328, upload-time = "2026-04-28T08:38:33.022Z" }, +] + +[[package]] +name = "ply" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da/ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", size = 159130, upload-time = "2018-02-15T19:01:31.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce", size = 49567, upload-time = "2018-02-15T19:01:27.172Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681, upload-time = "2025-01-24T01:42:12.693Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696, upload-time = "2025-01-24T01:42:10.371Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443, upload-time = "2024-12-18T11:31:54.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/bc/fed5f74b5d802cf9a03e83f60f18864e90e3aed7223adaca5ffb7a8d8d64/pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa", size = 1895938, upload-time = "2024-12-18T11:27:14.406Z" }, + { url = "https://files.pythonhosted.org/packages/71/2a/185aff24ce844e39abb8dd680f4e959f0006944f4a8a0ea372d9f9ae2e53/pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c", size = 1815684, upload-time = "2024-12-18T11:27:16.489Z" }, + { url = "https://files.pythonhosted.org/packages/c3/43/fafabd3d94d159d4f1ed62e383e264f146a17dd4d48453319fd782e7979e/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a", size = 1829169, upload-time = "2024-12-18T11:27:22.16Z" }, + { url = "https://files.pythonhosted.org/packages/a2/d1/f2dfe1a2a637ce6800b799aa086d079998959f6f1215eb4497966efd2274/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5", size = 1867227, upload-time = "2024-12-18T11:27:25.097Z" }, + { url = "https://files.pythonhosted.org/packages/7d/39/e06fcbcc1c785daa3160ccf6c1c38fea31f5754b756e34b65f74e99780b5/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c", size = 2037695, upload-time = "2024-12-18T11:27:28.656Z" }, + { url = "https://files.pythonhosted.org/packages/7a/67/61291ee98e07f0650eb756d44998214231f50751ba7e13f4f325d95249ab/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7", size = 2741662, upload-time = "2024-12-18T11:27:30.798Z" }, + { url = "https://files.pythonhosted.org/packages/32/90/3b15e31b88ca39e9e626630b4c4a1f5a0dfd09076366f4219429e6786076/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a", size = 1993370, upload-time = "2024-12-18T11:27:33.692Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/c06d333ee3a67e2e13e07794995c1535565132940715931c1c43bfc85b11/pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236", size = 1996813, upload-time = "2024-12-18T11:27:37.111Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f7/89be1c8deb6e22618a74f0ca0d933fdcb8baa254753b26b25ad3acff8f74/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962", size = 2005287, upload-time = "2024-12-18T11:27:40.566Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7d/8eb3e23206c00ef7feee17b83a4ffa0a623eb1a9d382e56e4aa46fd15ff2/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9", size = 2128414, upload-time = "2024-12-18T11:27:43.757Z" }, + { url = "https://files.pythonhosted.org/packages/4e/99/fe80f3ff8dd71a3ea15763878d464476e6cb0a2db95ff1c5c554133b6b83/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af", size = 2155301, upload-time = "2024-12-18T11:27:47.36Z" }, + { url = "https://files.pythonhosted.org/packages/2b/a3/e50460b9a5789ca1451b70d4f52546fa9e2b420ba3bfa6100105c0559238/pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4", size = 1816685, upload-time = "2024-12-18T11:27:50.508Z" }, + { url = "https://files.pythonhosted.org/packages/57/4c/a8838731cb0f2c2a39d3535376466de6049034d7b239c0202a64aaa05533/pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31", size = 1982876, upload-time = "2024-12-18T11:27:53.54Z" }, + { url = "https://files.pythonhosted.org/packages/c2/89/f3450af9d09d44eea1f2c369f49e8f181d742f28220f88cc4dfaae91ea6e/pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc", size = 1893421, upload-time = "2024-12-18T11:27:55.409Z" }, + { url = "https://files.pythonhosted.org/packages/9e/e3/71fe85af2021f3f386da42d291412e5baf6ce7716bd7101ea49c810eda90/pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7", size = 1814998, upload-time = "2024-12-18T11:27:57.252Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3c/724039e0d848fd69dbf5806894e26479577316c6f0f112bacaf67aa889ac/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15", size = 1826167, upload-time = "2024-12-18T11:27:59.146Z" }, + { url = "https://files.pythonhosted.org/packages/2b/5b/1b29e8c1fb5f3199a9a57c1452004ff39f494bbe9bdbe9a81e18172e40d3/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306", size = 1865071, upload-time = "2024-12-18T11:28:02.625Z" }, + { url = "https://files.pythonhosted.org/packages/89/6c/3985203863d76bb7d7266e36970d7e3b6385148c18a68cc8915fd8c84d57/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99", size = 2036244, upload-time = "2024-12-18T11:28:04.442Z" }, + { url = "https://files.pythonhosted.org/packages/0e/41/f15316858a246b5d723f7d7f599f79e37493b2e84bfc789e58d88c209f8a/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459", size = 2737470, upload-time = "2024-12-18T11:28:07.679Z" }, + { url = "https://files.pythonhosted.org/packages/a8/7c/b860618c25678bbd6d1d99dbdfdf0510ccb50790099b963ff78a124b754f/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048", size = 1992291, upload-time = "2024-12-18T11:28:10.297Z" }, + { url = "https://files.pythonhosted.org/packages/bf/73/42c3742a391eccbeab39f15213ecda3104ae8682ba3c0c28069fbcb8c10d/pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d", size = 1994613, upload-time = "2024-12-18T11:28:13.362Z" }, + { url = "https://files.pythonhosted.org/packages/94/7a/941e89096d1175d56f59340f3a8ebaf20762fef222c298ea96d36a6328c5/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b", size = 2002355, upload-time = "2024-12-18T11:28:16.587Z" }, + { url = "https://files.pythonhosted.org/packages/6e/95/2359937a73d49e336a5a19848713555605d4d8d6940c3ec6c6c0ca4dcf25/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474", size = 2126661, upload-time = "2024-12-18T11:28:18.407Z" }, + { url = "https://files.pythonhosted.org/packages/2b/4c/ca02b7bdb6012a1adef21a50625b14f43ed4d11f1fc237f9d7490aa5078c/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6", size = 2153261, upload-time = "2024-12-18T11:28:21.471Z" }, + { url = "https://files.pythonhosted.org/packages/72/9d/a241db83f973049a1092a079272ffe2e3e82e98561ef6214ab53fe53b1c7/pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c", size = 1812361, upload-time = "2024-12-18T11:28:23.53Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ef/013f07248041b74abd48a385e2110aa3a9bbfef0fbd97d4e6d07d2f5b89a/pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc", size = 1982484, upload-time = "2024-12-18T11:28:25.391Z" }, + { url = "https://files.pythonhosted.org/packages/10/1c/16b3a3e3398fd29dca77cea0a1d998d6bde3902fa2706985191e2313cc76/pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4", size = 1867102, upload-time = "2024-12-18T11:28:28.593Z" }, + { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127, upload-time = "2024-12-18T11:28:30.346Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340, upload-time = "2024-12-18T11:28:32.521Z" }, + { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900, upload-time = "2024-12-18T11:28:34.507Z" }, + { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177, upload-time = "2024-12-18T11:28:36.488Z" }, + { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046, upload-time = "2024-12-18T11:28:39.409Z" }, + { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386, upload-time = "2024-12-18T11:28:41.221Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060, upload-time = "2024-12-18T11:28:44.709Z" }, + { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870, upload-time = "2024-12-18T11:28:46.839Z" }, + { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822, upload-time = "2024-12-18T11:28:48.896Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364, upload-time = "2024-12-18T11:28:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303, upload-time = "2024-12-18T11:28:54.122Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064, upload-time = "2024-12-18T11:28:56.074Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046, upload-time = "2024-12-18T11:28:58.107Z" }, + { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092, upload-time = "2024-12-18T11:29:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709, upload-time = "2024-12-18T11:29:03.193Z" }, + { url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273, upload-time = "2024-12-18T11:29:05.306Z" }, + { url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027, upload-time = "2024-12-18T11:29:07.294Z" }, + { url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888, upload-time = "2024-12-18T11:29:09.249Z" }, + { url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738, upload-time = "2024-12-18T11:29:11.23Z" }, + { url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138, upload-time = "2024-12-18T11:29:16.396Z" }, + { url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025, upload-time = "2024-12-18T11:29:20.25Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633, upload-time = "2024-12-18T11:29:23.877Z" }, + { url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404, upload-time = "2024-12-18T11:29:25.872Z" }, + { url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130, upload-time = "2024-12-18T11:29:29.252Z" }, + { url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946, upload-time = "2024-12-18T11:29:31.338Z" }, + { url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387, upload-time = "2024-12-18T11:29:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453, upload-time = "2024-12-18T11:29:35.533Z" }, + { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186, upload-time = "2024-12-18T11:29:37.649Z" }, + { url = "https://files.pythonhosted.org/packages/46/72/af70981a341500419e67d5cb45abe552a7c74b66326ac8877588488da1ac/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e", size = 1891159, upload-time = "2024-12-18T11:30:54.382Z" }, + { url = "https://files.pythonhosted.org/packages/ad/3d/c5913cccdef93e0a6a95c2d057d2c2cba347815c845cda79ddd3c0f5e17d/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8", size = 1768331, upload-time = "2024-12-18T11:30:58.178Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f0/a3ae8fbee269e4934f14e2e0e00928f9346c5943174f2811193113e58252/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3", size = 1822467, upload-time = "2024-12-18T11:31:00.6Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7a/7bbf241a04e9f9ea24cd5874354a83526d639b02674648af3f350554276c/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f", size = 1979797, upload-time = "2024-12-18T11:31:07.243Z" }, + { url = "https://files.pythonhosted.org/packages/4f/5f/4784c6107731f89e0005a92ecb8a2efeafdb55eb992b8e9d0a2be5199335/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133", size = 1987839, upload-time = "2024-12-18T11:31:09.775Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a7/61246562b651dff00de86a5f01b6e4befb518df314c54dec187a78d81c84/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc", size = 1998861, upload-time = "2024-12-18T11:31:13.469Z" }, + { url = "https://files.pythonhosted.org/packages/86/aa/837821ecf0c022bbb74ca132e117c358321e72e7f9702d1b6a03758545e2/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50", size = 2116582, upload-time = "2024-12-18T11:31:17.423Z" }, + { url = "https://files.pythonhosted.org/packages/81/b0/5e74656e95623cbaa0a6278d16cf15e10a51f6002e3ec126541e95c29ea3/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9", size = 2151985, upload-time = "2024-12-18T11:31:19.901Z" }, + { url = "https://files.pythonhosted.org/packages/63/37/3e32eeb2a451fddaa3898e2163746b0cffbbdbb4740d38372db0490d67f3/pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151", size = 2004715, upload-time = "2024-12-18T11:31:22.821Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pylatex" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ordered-set" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/a8/10cf6b955b5fa19438790d9949867e04c785ae845e631c5ef6db444401d1/PyLaTeX-1.4.2.tar.gz", hash = "sha256:bb7b21bec57ecdba3f6f44c856ebebdf6549fd6e80661bd44fd5094236729242", size = 59710, upload-time = "2023-10-19T16:22:54.096Z" } + +[[package]] +name = "pymatching" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib", version = "3.10.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "matplotlib", version = "3.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/19/39472c89d532e576890320eff5e9738e4b4d7828d027315f7e198ba0be8c/pymatching-2.4.0.tar.gz", hash = "sha256:0c30dafa506b086f50d15530debd7b7b39228597d22c52d5ccd114bcbb0a2326", size = 347169, upload-time = "2026-05-22T18:10:07.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/56/f12f6ffbae1eb625cd5865e819a68c4c3a18ca66a805b922d627bdaaf6d1/pymatching-2.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c51ee0ffa161f35ae6b887a0bebdf85e3fa456139e56d5e070823ef0434f692f", size = 380016, upload-time = "2026-05-22T18:09:21.66Z" }, + { url = "https://files.pythonhosted.org/packages/36/ce/833b2d944f89b9747dc3471a800908549df0739ce4183440bde64b9fe2df/pymatching-2.4.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:8778d0a06b606b169f8517279f01d4c0f9bf1725085f7a3d1ddcb24a53952fdd", size = 411645, upload-time = "2026-05-22T18:09:23.678Z" }, + { url = "https://files.pythonhosted.org/packages/95/b7/fb2c636ecd614617f5facf075b9b01d2bde4bdac3f84fe930b8e9db8079e/pymatching-2.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd8699227cda0d9c95152ee67ce2e5119fc845ff7951bfd8ed34dab9628733c1", size = 623826, upload-time = "2026-05-22T18:09:25.285Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e3/eb30dd8f5e0e209d0fc703fcf43a6a4c37703339198ba12a9c92b78c4393/pymatching-2.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:4683b652ba3983bc26405107382d666d8ccf68f53ea50fc5fb274251871177ec", size = 345239, upload-time = "2026-05-22T18:09:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/0e/21/e1985ee29b8cc3f317c8a2504fdee1bb9ba1e13c1dd1220a9bcf35ad537c/pymatching-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:133168b1fec946bfc992a9e5abbdbbc7eebc672b04d27cfd060ea153eb6cf576", size = 381268, upload-time = "2026-05-22T18:09:28.887Z" }, + { url = "https://files.pythonhosted.org/packages/ca/21/67745b4a411f0bad057cb16c7243dceb411450bf2719e40aceaeb595d42c/pymatching-2.4.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:df8c9229c5265d71f871fba3fbdbd27cda71ca81969275eefeb64688ee2f59f4", size = 412929, upload-time = "2026-05-22T18:09:30.533Z" }, + { url = "https://files.pythonhosted.org/packages/0b/6c/9b5a4c35727d74917b8a611f8cacbe9e5c81198648bcd7b5958f6573d39e/pymatching-2.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac25684a41ab859cbb0f2ea34d86485aa89d4d22f97df684f9579c167c7d560a", size = 624601, upload-time = "2026-05-22T18:09:32.111Z" }, + { url = "https://files.pythonhosted.org/packages/7c/27/990d222ce88eba0f9afa4af68dc00adaf0134348c743feee0c1ab647f9eb/pymatching-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a1b831f8ebf47f5e2a865d1bcc250da208c57ff881a37177ee548248da447c2", size = 345942, upload-time = "2026-05-22T18:09:33.822Z" }, + { url = "https://files.pythonhosted.org/packages/80/bc/4983d49570d97b4489de8ed1580faea58e63a16e6c7046e45aaa636ea054/pymatching-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:881f3410975b5a2d393561d44fa4513c878653d0e718e55930b08f52e9a04fc5", size = 380199, upload-time = "2026-05-22T18:09:35.25Z" }, + { url = "https://files.pythonhosted.org/packages/5c/0e/00cd2b9c2da28fb3dafb77da8e2da18ceedda42de2298c682fbb016a9189/pymatching-2.4.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:af03cdd7389e7b9f93069f1dd1bb9931c3836a2bfc0d01952993f394b0bfa10d", size = 412898, upload-time = "2026-05-22T18:09:37.024Z" }, + { url = "https://files.pythonhosted.org/packages/0f/03/b3186c28500a5aa751f7fc37b52fe6129ba24092604a8118faea456f482c/pymatching-2.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15e6d73153713a8f383f44ba4497d478fb4c4d765fbdd30f9fc1e1d47af75760", size = 626230, upload-time = "2026-05-22T18:09:38.547Z" }, + { url = "https://files.pythonhosted.org/packages/60/c8/d9abe73cc6dbaddf61d3c5875a9687aaa9591a976b109cc7cb6b7595cccb/pymatching-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:eb4428581a2578a8cc77f695ab267c184f444d9de5cb25301fe9f3f893214ea4", size = 347707, upload-time = "2026-05-22T18:09:40.805Z" }, + { url = "https://files.pythonhosted.org/packages/ac/18/375faa94219e1781ef5fc05aac95a2ba1047e0071069f2aae1416bfeb393/pymatching-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fe3baa498155a227f5ce1ee6fe07f40524d9fb9961ac299a2050e69f7de50dba", size = 380257, upload-time = "2026-05-22T18:09:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/79/eb/36ceb0597d6ec4fc2c976b076c9523450ef61812173fc8c58bce669d6328/pymatching-2.4.0-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:a49db8f20d01523c9e12fc8207a5831ed261b53fb8e629c78e45b0081fcd5199", size = 413005, upload-time = "2026-05-22T18:09:44.574Z" }, + { url = "https://files.pythonhosted.org/packages/80/8d/a4450b34a032cc7eee70b45c21a03d32c89dad311ea5b41deb386539fbcb/pymatching-2.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6450797ca5001449fcf5b43a68181a783f4ca50650f880a02ef5bf91b13aa359", size = 625936, upload-time = "2026-05-22T18:09:46.059Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c5/ca8cd432ce388cdbdc7df86110a2987d7526743269416d0a1cc83d5b2fd7/pymatching-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:a14022ecf4e810152db998d14429d430630433b9ed1edc2abe53494753b0a0ca", size = 347728, upload-time = "2026-05-22T18:09:47.678Z" }, + { url = "https://files.pythonhosted.org/packages/13/65/4289d2923789a407ca34e67b0d44f47caeba1f2219abdfa5f679a66e6e72/pymatching-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e071c90c108daf1c6f8cefcac9ad4989a1a1694fe7433ee413cef7b65f4207e", size = 381252, upload-time = "2026-05-22T18:09:49.122Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0f/5d532d693eca9bfe49e4a798a3e3d3b05f1da24b8aee7b4e21c3ade55502/pymatching-2.4.0-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:f2390db2679b5009509b6ea1b0838187966c2d8fd1ab8050e5d9b6c908a3ea7e", size = 413276, upload-time = "2026-05-22T18:09:50.624Z" }, + { url = "https://files.pythonhosted.org/packages/33/13/be44c3e2f8749652c23adc77a94c4efe5383287a4c01a548cc031d0e439c/pymatching-2.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:70869b2a4a8fab2f1e54cc0b68fd050b7556133b5ce8c2d2d5d4f4d1319c14d3", size = 625898, upload-time = "2026-05-22T18:09:52.415Z" }, + { url = "https://files.pythonhosted.org/packages/17/0d/eb2df17fe0bf089c43445ba759e89150a0d36fb7fcbc44e750d8d31f0dbe/pymatching-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:5c5ce4ed245d3670ea7d62b09f8a29b105533b032a3d21fdf6df04c9b6441ff1", size = 356304, upload-time = "2026-05-22T18:09:54.3Z" }, +] + +[[package]] +name = "pymongo" +version = "4.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/64/50be6fbac9c79fe2e4c17401a467da2d8764d82833d83cec325afe5cab32/pymongo-4.17.0.tar.gz", hash = "sha256:70ffa08ba641468cc068cf46c06b34f01a8ce3489f6411309fcb5ceabe6b2fc0", size = 2523370, upload-time = "2026-04-20T16:39:53.524Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/77/28ebbf69772a4341d530831c7a006cdb06877ac23075cb53b0a227df4fe1/pymongo-4.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:47b021363cd923ace5edc7a1d63c0ff8a6d9d43859b8a1ba23645f5afae63221", size = 819234, upload-time = "2026-04-20T16:37:20.888Z" }, + { url = "https://files.pythonhosted.org/packages/88/cf/5a70cee503ff9a2fea20607607f14d189f4d975960ac0945ec306ee7b695/pymongo-4.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:422fa50d7d7f5c22ea0953554396c9ef95684a2d775f860bd75a7b510538dfca", size = 819969, upload-time = "2026-04-20T16:37:24.187Z" }, + { url = "https://files.pythonhosted.org/packages/23/d5/07b7e27e662c58d872efd104a0e8055eb6569aa1b6d4da436f3fdee7f897/pymongo-4.17.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:addd0498ebbdc6354227f6ed457ed9fce442d48a3bb30d5b5bad33e104996561", size = 1244510, upload-time = "2026-04-20T16:37:26.069Z" }, + { url = "https://files.pythonhosted.org/packages/fb/be/7cac5b1e89bd5a8e395067648241390321593a7c29243e36f91343c02a90/pymongo-4.17.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5c8e180cb2cabe37300e1e36c60aa4f2ff956cc579f0142135a5d2cba252243", size = 1263245, upload-time = "2026-04-20T16:37:28.003Z" }, + { url = "https://files.pythonhosted.org/packages/2e/20/40e8e99824c1fda18261411e65ce3b0cd3d9a6ed3c056cdd0a569adc870b/pymongo-4.17.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bd835cdb37a1adec359dd072c24f8bb14809e2644fde86fab4ee2fc9719b9483", size = 1304113, upload-time = "2026-04-20T16:37:30.048Z" }, + { url = "https://files.pythonhosted.org/packages/3a/94/fb7e25441dd66f2069a9b172380849b0eaa5881c18b3db217bf64a6d393c/pymongo-4.17.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c4979e7e8887862bbb44d203f00cc8263a3f27237876fa691b6beba23e40e6d8", size = 1297046, upload-time = "2026-04-20T16:37:32.054Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c9/7352e0c20fe772541556e4d283c05e07ec48f8b0d2737ad930ac4a1b6655/pymongo-4.17.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:77aa4bc164b4de60d5db193b322f0f5b6ead716e831031bfdef8e8bd92205556", size = 1265708, upload-time = "2026-04-20T16:37:33.934Z" }, + { url = "https://files.pythonhosted.org/packages/8d/e4/3df15494c2015ed297958517f0e4f6493e21b00990748068a973e66d45e0/pymongo-4.17.0-cp310-cp310-win32.whl", hash = "sha256:48bbc576677b50af043df870d84ded67cc3a9b4aa7553201beef4da5dc050a0a", size = 805533, upload-time = "2026-04-20T16:37:35.744Z" }, + { url = "https://files.pythonhosted.org/packages/22/fa/b4e71bb8cb82ad7d21bb4e8c476f2d573ba68b20368aac36ef06e4a196b4/pymongo-4.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46767f28dea610e02edf6c5d956ce615c3c7790ea396660b9b1efd5c5ead2e0", size = 815677, upload-time = "2026-04-20T16:37:37.808Z" }, + { url = "https://files.pythonhosted.org/packages/22/e2/0a4bba644f1cda3970ea1012149eeae3594ebfeed3f81fdaf32b61d90c95/pymongo-4.17.0-cp310-cp310-win_arm64.whl", hash = "sha256:757f2a4c0c2c46cab87df0333681ce69e86c9d5b45bc5203ceba5410b3489e59", size = 807293, upload-time = "2026-04-20T16:37:39.707Z" }, + { url = "https://files.pythonhosted.org/packages/c4/e2/336d86f221cf1b56b2ed9330d4a3b98f9f38f0b37829ae9a9184617d5419/pymongo-4.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4141e6c6a339789b2974efa00ecd9409101672d77a0e3ee2cc3839eedf8ec4df", size = 874668, upload-time = "2026-04-20T16:37:41.39Z" }, + { url = "https://files.pythonhosted.org/packages/34/8e/75d3c6c935d187ab59c61e9c15d9aab3f274b563eaf1706e8cae5f508dec/pymongo-4.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e68c76b84e0c132d9dbf9307f12ff8185702328187a87b9aca8c941303873433", size = 875294, upload-time = "2026-04-20T16:37:43.432Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ec/62e855744489dbcd54fd778aae4d80fa4c4819e8fb228ca0cf6f21a03997/pymongo-4.17.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ba2195d4f386f839a52a23ea1cfd60ffaaba78a3d7841db51b7e433001139918", size = 1496233, upload-time = "2026-04-20T16:37:45.518Z" }, + { url = "https://files.pythonhosted.org/packages/82/e8/93e4e5e5ce8fdf8929dabeefe24aafa5ce046028eed0dfa8eeb936e72c49/pymongo-4.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8446ff4bfcb6ec2a2e50998c860986a1e992136f998b7f53e7a717fb8aa5a0b9", size = 1522927, upload-time = "2026-04-20T16:37:47.492Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ca/425dc1d21e0f17bdea0072fc463f662f7fa06d2852af52975c9eced3c07c/pymongo-4.17.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2a0d5ac205728c86e0a02192f1aa5f865b0d7d51f8df6101c01a69a7fc620d72", size = 1583468, upload-time = "2026-04-20T16:37:49.221Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9d/f08b07eeffda1a43c1759f0fa625e88ae12360996eb56d42aad832fa7dff/pymongo-4.17.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:485c8a8eaa4c739f00a331fc73757898ee7c092c214a79e63866ff76aaf282ff", size = 1572787, upload-time = "2026-04-20T16:37:51.061Z" }, + { url = "https://files.pythonhosted.org/packages/e9/c2/6855a07aafa7b894929af23675b6fb9634800ce43122b76a62f6eeb8da2a/pymongo-4.17.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b2dfcc795f5b9fedbe179a11fdf6051581479d196582a3fe819a92a00e9b9969", size = 1526184, upload-time = "2026-04-20T16:37:53.358Z" }, + { url = "https://files.pythonhosted.org/packages/4e/05/c952bac7db71c1942ea3559fcd308b49754cc5004b455935fb4000d1f37b/pymongo-4.17.0-cp311-cp311-win32.whl", hash = "sha256:c2292144505fb12156b981bd440f3dc994a883da06ac726c0c8692ccdbc1c510", size = 852621, upload-time = "2026-04-20T16:37:55.28Z" }, + { url = "https://files.pythonhosted.org/packages/11/c0/c04da9f4c0c6252404598f4e394b862a58a9e866822a70ae261c8a018fdf/pymongo-4.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:2e190827834fce70ecdf9d46796c6dbc0ce08ea87dc2ff5bc6f3f5579b605cb9", size = 867852, upload-time = "2026-04-20T16:37:57.233Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b2/c7b4870fbeef471e947d3e014676f5910d02e0197074d692ebcf24ec049a/pymongo-4.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:a8f9c40a09bb7d4b9fc8b1da65ecf6efa79bda5cb2756f39d9b6940fac1d19ae", size = 855019, upload-time = "2026-04-20T16:37:58.983Z" }, + { url = "https://files.pythonhosted.org/packages/98/90/60bcb508840135d5ee46b51b1a950f548338aa8145a8366dbe6639ae51ac/pymongo-4.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53ffa94b2340dbf6b055e09a0090618c60482c158ecfc9565642fc996bf0944", size = 930529, upload-time = "2026-04-20T16:38:00.936Z" }, + { url = "https://files.pythonhosted.org/packages/a6/e9/313840f1e52c6dfac47f704428cbfbce59956ebe7633bffc92b03f74f0ad/pymongo-4.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6fe0de9d0f6791abce3471230b32b4817bf89d27b1182b6a550e1ec0fa72aa9a", size = 930665, upload-time = "2026-04-20T16:38:02.915Z" }, + { url = "https://files.pythonhosted.org/packages/78/35/9d3565ea45b1606f635c1e2cd2563c28d66caafdc50f7ad7d979fcd1b363/pymongo-4.17.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e537e95514dae1aaa718f481ec03151a0f0394bcd05f1322896d8fc1330cb729", size = 1762369, upload-time = "2026-04-20T16:38:05.375Z" }, + { url = "https://files.pythonhosted.org/packages/95/ee/149b0d4b1a11c38bff6f14c23d5814c9b0843fd6dc38ad40596bdb1a62d2/pymongo-4.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37a8385c29881b43eab31f584100fa0eaddedd5607adf010147ba1810118be90", size = 1798044, upload-time = "2026-04-20T16:38:07.195Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d4/4cee4a7b8d8f6f0550ef6cd2fea42455c5ed619a220cb6ba4fb40d6a5bc8/pymongo-4.17.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f3ee3d241ed77a4fc99ce3cff3b289c3ebce37f61fdd7349d3592c23b82c8784", size = 1878567, upload-time = "2026-04-20T16:38:09.121Z" }, + { url = "https://files.pythonhosted.org/packages/45/ef/7fe366c84952619ee2f69973566c214775e083dd4df465751912153e4b72/pymongo-4.17.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9eb5d63a3c518cb0804ed678f5e2b875af032d89a7cf57a57360322cf6a4d222", size = 1864881, upload-time = "2026-04-20T16:38:10.896Z" }, + { url = "https://files.pythonhosted.org/packages/2f/35/b577d82c6d1be7aee7ac7e249bc86f7847998345042e5f8360de238e177b/pymongo-4.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e97e03fa13327c87e3fdc5656acd01e71817f0c1dc3221cd8f30de136bf4ec3", size = 1800349, upload-time = "2026-04-20T16:38:13.589Z" }, + { url = "https://files.pythonhosted.org/packages/b8/69/dafcf04f66e130ddd91aeb92e7a692480eda46dcd04ec1dbe82c06619e10/pymongo-4.17.0-cp312-cp312-win32.whl", hash = "sha256:6877214bff5f06f6884a9fc8d9016a4a7a5f51f537f5c51ac3a576f93e7dfb32", size = 900518, upload-time = "2026-04-20T16:38:15.541Z" }, + { url = "https://files.pythonhosted.org/packages/11/35/5c9262a459f988b4eb2605f70815240b77a0d4131136c4326d18f1822b89/pymongo-4.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:9828485f72f63c7d802e0ec41f71906f633c2692621ab3af55ca990186b091b1", size = 920335, upload-time = "2026-04-20T16:38:17.665Z" }, + { url = "https://files.pythonhosted.org/packages/8d/da/e9c7265ee176faccf4e52c4797837e794d93569a1046f6b19a4acc36e5ad/pymongo-4.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:1195370a77baf003b59b10e91ecc4706297197f0dd9d29c840cc556dc08f7cee", size = 903289, upload-time = "2026-04-20T16:38:19.33Z" }, + { url = "https://files.pythonhosted.org/packages/2a/6b/c1206879708b94e82fcd8b9653440ec271f79a3674d122192df383047f5a/pymongo-4.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:809ec74de3b9148ae43fa8df9faf53470f511c8d384f13b99d6f671f2a379f15", size = 985829, upload-time = "2026-04-20T16:38:21.031Z" }, + { url = "https://files.pythonhosted.org/packages/cb/cf/bb044ed85160e5c40f568c7c4f4e8ea16f40764ff5d302e5befbe8f6f814/pymongo-4.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a431b737816bf4cddd4fa0fcef04e424ad36b7692734a64150f872fb8f3208be", size = 985899, upload-time = "2026-04-20T16:38:23.409Z" }, + { url = "https://files.pythonhosted.org/packages/74/0a/f6dfd5ea3901e5d6888da8de8ba728971a1d447debab681cfc56f90d1208/pymongo-4.17.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e4fab10f8403169ce92f3cea921609d9ee81107306caae06c08f592d4b8ad2b5", size = 2028569, upload-time = "2026-04-20T16:38:25.343Z" }, + { url = "https://files.pythonhosted.org/packages/4a/c5/081f59a1c02ae8c0dc73ae58e563838c44eec81aeafa7d0b93a637841c9b/pymongo-4.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20323b0b1c1d33770ad1fc68d429c757734ce9ad3594421c3d6618f10572b1b9", size = 2072916, upload-time = "2026-04-20T16:38:27.291Z" }, + { url = "https://files.pythonhosted.org/packages/31/42/6e41d434297ffe8b30d9c3717916591a4a7be9075a0dcc2fafdfaaaa62ed/pymongo-4.17.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5a5de048e6da5c18e27cc2437e8c15b3b0cdc8385c15b41178b0caa3322a09c2", size = 2173234, upload-time = "2026-04-20T16:38:29.474Z" }, + { url = "https://files.pythonhosted.org/packages/3d/cf/1e4a7db352ef9485831c7268dfe8402f0117b32a9ad54b16e810699e3617/pymongo-4.17.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dff3de1294fbbc1db0ba6b511f77b8e540601d092538a31312e99c8a91a78b1e", size = 2156784, upload-time = "2026-04-20T16:38:32.134Z" }, + { url = "https://files.pythonhosted.org/packages/12/10/6195be29962a61ebb5f4bd9e4c7519890b172f7968a0a0d880398c6ddb02/pymongo-4.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:faf03e4c2aafd6de626dbd30ba246d369ae33f47f10629d1bbe40f72115027a6", size = 2074446, upload-time = "2026-04-20T16:38:34.004Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/33410b8819837ed370c738587306bdf060b59cef11823be212f4a07703c5/pymongo-4.17.0-cp313-cp313-win32.whl", hash = "sha256:c9786665926a09630c5d420c79762cfadbff35a9438bcbc4c81a9fb5ab9228b7", size = 948435, upload-time = "2026-04-20T16:38:35.922Z" }, + { url = "https://files.pythonhosted.org/packages/6f/77/c0ed522f798a286b99acaa7914ed8d9c80ab091f97f57c59ffed72906e5e/pymongo-4.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:5960519b4d7168f1ecdd3ea10c81b2aedeb9423651aca953cfbc8e76705d3b38", size = 972847, upload-time = "2026-04-20T16:38:37.888Z" }, + { url = "https://files.pythonhosted.org/packages/97/f0/c39480a2db385fde23861d0c8acda41cdaf1d43e46579db72c5c013a2e81/pymongo-4.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:0ff6bd2f735ab5356541e3e57d5b7dbfbc3f2ee1ccb10b6b0f82d58af69d1d8e", size = 951575, upload-time = "2026-04-20T16:38:40.544Z" }, + { url = "https://files.pythonhosted.org/packages/da/49/2b0250762a89737ed6f9cea238331baca061b89a8ddd10dd17fee52c3970/pymongo-4.17.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ff5aa3f1c7e3f08eb0e7a016c91ba468b1850ccfd63d9b1f12f56350f4974cef", size = 1040945, upload-time = "2026-04-20T16:38:42.783Z" }, + { url = "https://files.pythonhosted.org/packages/89/1c/7a9b5447a08be20e84b6e5b17330917e8d6d9507daa3cd099a9309f11ad7/pymongo-4.17.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e816db649ba5d7de0568cf3a9f287a9dc9aad21cf0ca667ab156a7ef47fca0b0", size = 1041187, upload-time = "2026-04-20T16:38:45.358Z" }, + { url = "https://files.pythonhosted.org/packages/78/a1/71704f61632dfc90407a5834fe5f6132854937c4a3648f6c05c351d85a45/pymongo-4.17.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:12c4fded3a9f1d6a687e36ebd384ac6d00b9b00de1969aa74048e7051ec2a713", size = 2294806, upload-time = "2026-04-20T16:38:47.734Z" }, + { url = "https://files.pythonhosted.org/packages/ad/b9/aff42be75108b96c2469b1d9329b912c15108f3e7ef32fdc86da8423c330/pymongo-4.17.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2db66aa8dd253a0fc1fad3b0d23d5b3993f7ebde02fbbd7727128debf2853675", size = 2348231, upload-time = "2026-04-20T16:38:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/f2/30/44c115b8ba1479942c15fd9480eb29a7da0ba68acd56983423ba0deb4a94/pymongo-4.17.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3987e96e7c7be4083d42e8ac2cc6c0d5b78db9973c90fce42ae800b616ca6b20", size = 2467614, upload-time = "2026-04-20T16:38:52.665Z" }, + { url = "https://files.pythonhosted.org/packages/d2/84/21ee95c8bf0ca7acae7ec7eb365d740bf8fc0156c194baf2c3bdfcb85ec0/pymongo-4.17.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cee36b3c0d0354f880fa7a7fdcdaf2bb5e542c2281e25c1bfadf8cfe21eba7d2", size = 2445970, upload-time = "2026-04-20T16:38:55.175Z" }, + { url = "https://files.pythonhosted.org/packages/06/89/081d7f1809d5ca09d1e47e49f2111b245f5694de3a7af32cd3a353a6f43f/pymongo-4.17.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:320b34457b20bbcc79997801f95d25ce00472915ca5241167242b42c4359e027", size = 2348605, upload-time = "2026-04-20T16:38:57.557Z" }, + { url = "https://files.pythonhosted.org/packages/ea/c3/0d949f9d3f2a341c1f635c398c16615e96f89f51ff424ed81e914cf1a4de/pymongo-4.17.0-cp314-cp314-win32.whl", hash = "sha256:df4a644af9ae132d4bfdb2e9516ea51a615fd881caddfbfbd071cf1354844479", size = 1004119, upload-time = "2026-04-20T16:39:00.309Z" }, + { url = "https://files.pythonhosted.org/packages/f7/55/5c3a3db1048054c695c75c5964cc8bedc2247fdb5a75ef6fab4ec8bb013e/pymongo-4.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:c797f8a80957134f6dd9690367a0f8f5906d672119af2c6aa55f0c527b656bed", size = 1032314, upload-time = "2026-04-20T16:39:02.665Z" }, + { url = "https://files.pythonhosted.org/packages/e0/19/e235f39906134cb0ffd5574c5a59c355ef5380f0499644ab94994afbb109/pymongo-4.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:68fca71e05ee5da23a8d73cee8379dfb3d26e609a377cae731d742771ed96946", size = 1007627, upload-time = "2026-04-20T16:39:04.678Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e0/c4c1a86791415b14c684fa0908f9da96de91594a3fd1fa1b8dc689fbb800/pymongo-4.17.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b4384700cffc3f1dd98e088bc0072dedf6d7d68a230bb4b972665cf69c071c1e", size = 1099151, upload-time = "2026-04-20T16:39:06.969Z" }, + { url = "https://files.pythonhosted.org/packages/81/4b/69c67f3e23fd9b23b9bedc7ebd23754881cc9d5c5d5b2a9811e96b07f475/pymongo-4.17.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:93641192644fa1ee0f34030e774fd31022a27ad11ba22cb1716142231524f8bd", size = 1099346, upload-time = "2026-04-20T16:39:08.996Z" }, + { url = "https://files.pythonhosted.org/packages/a2/19/a5208f62f9508a26d73acc69bd3821b8c8adae253679a3c26d2f9652f0d5/pymongo-4.17.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:75bc3aa5b94fdb7138d357ec6ca61cd97e0c79f4f7f0bd3efe9639b15cc50942", size = 2619034, upload-time = "2026-04-20T16:39:11.049Z" }, + { url = "https://files.pythonhosted.org/packages/77/27/426cba1ec5973082a56d4150798529bfdf4151c31391ed1fbbecb23ef2ac/pymongo-4.17.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e8f8e23c6df7c6d6929f5e734980b227706e73ee847517c9ba5af90f7fc466", size = 2689939, upload-time = "2026-04-20T16:39:13.617Z" }, + { url = "https://files.pythonhosted.org/packages/ef/2e/f70993d1255e33f6ee59a4ec4371cc65bff7a7e3fda7d55c3386f25287e8/pymongo-4.17.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:15d3f3d732aecac1f8d481bde4029755615639bd3076f258a2147210aec8515a", size = 2824994, upload-time = "2026-04-20T16:39:16.057Z" }, + { url = "https://files.pythonhosted.org/packages/b3/eb/87b0e988ba889e1fcc3430c2cfc166b251872c813e92b43174298bee17ff/pymongo-4.17.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5f62862d0f87be481fa1fe8cb811994486773c94a2b61e509285e3f2890763", size = 2801745, upload-time = "2026-04-20T16:39:18.476Z" }, + { url = "https://files.pythonhosted.org/packages/67/4c/3f83412d086f682d4d468761d66ddc49cf161e786ea74073045eb4491c60/pymongo-4.17.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64837adbbd72073301af51bb0fc80e3d7707fe5527cea1033ba0320f0b2f881b", size = 2684636, upload-time = "2026-04-20T16:39:20.878Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d8/b75f6f4ab6c8beb50b0270a4f1e2530b5774f5e116563440e1677ca1820f/pymongo-4.17.0-cp314-cp314t-win32.whl", hash = "sha256:b93b22eedc62598cf5ee9d8c8007a8e9121c50fd88137012d8985500e9dc3151", size = 1056356, upload-time = "2026-04-20T16:39:22.996Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5e/648c8a238eef18a25ed8a169ea6542d4a860bbec3e95b3d9badac2935c71/pymongo-4.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:3689ea34f6b647c7d1e7bdc60fcfb214b2789ed1359a7fb96569c69f50e5f18f", size = 1090964, upload-time = "2026-04-20T16:39:24.989Z" }, + { url = "https://files.pythonhosted.org/packages/dc/cb/d9780b66939c4fc1f024bcc7be23a2abcfe06a9745ca8fa76dc73395482e/pymongo-4.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9543d8f84c2e5608565c08ac679774811e6730770d8a645439b073422a4276fb", size = 1058526, upload-time = "2026-04-20T16:39:27.924Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "pyperclip" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185, upload-time = "2025-09-26T14:40:37.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063, upload-time = "2025-09-26T14:40:36.069Z" }, +] + +[[package]] +name = "pyqasm" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "openqasm3", extra = ["parser"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/9b/e5d8ac2f5c3330d00f758aab5e43c7df4081ab5c44cf274391662cae3d09/pyqasm-1.0.3.tar.gz", hash = "sha256:2e2fe05e73cf2f6e8a3f88a047361bee8c117a9cfe49a413decb82868adbfe75", size = 109024, upload-time = "2026-04-09T15:59:20.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/f4/66a9616503ecf7df2a3f7c0c3131517b98bc232d4f8ff893c5ea5f0808c4/pyqasm-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12823211dc95eef11ef84a36d7acd9d454a84597b7dfe80d0bcca1e620967989", size = 221933, upload-time = "2026-04-09T15:58:55.794Z" }, + { url = "https://files.pythonhosted.org/packages/21/4d/01f3cf530616e71771b0cae28c5b1afba0036687e8db3fb56e457229bf9d/pyqasm-1.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d9694020372578078df23736d9e163b8c55339e694c95a12be92d55eb52fa285", size = 211818, upload-time = "2026-04-09T15:58:57.191Z" }, + { url = "https://files.pythonhosted.org/packages/89/5b/d6662450671cd866cd38e80385a1f3fc7b32031298eb087ab213886c7bb3/pyqasm-1.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ce16e437d8a5c87edd699448e3ef2798e92c6c5bd6b110f5836cf65caff7226", size = 671623, upload-time = "2026-04-09T15:58:58.598Z" }, + { url = "https://files.pythonhosted.org/packages/b8/8e/392ffc319828977cb534745275bcac0ace991645b629c02319f29916f6b0/pyqasm-1.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:29ffd09a20bb30fc894314110e27a034de4834f9c2e4ad853843e7e8078e8c6e", size = 208241, upload-time = "2026-04-09T15:58:59.752Z" }, + { url = "https://files.pythonhosted.org/packages/90/d5/8b1f53e2cdc24fdf6b45bb7afc4d80be47642637cc786ed7a54896ea7ec1/pyqasm-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6b0f154aa70a89b56b3e4845a2097b0d670c34b0ab7f5d42656f9a85a61aca3a", size = 221214, upload-time = "2026-04-09T15:59:01.145Z" }, + { url = "https://files.pythonhosted.org/packages/0b/65/53e57ab522a53f1e60aaff99e690ba42d3fd44a4b54cb5587298a4ecf012/pyqasm-1.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e26c488c3bc9db83c2226861dede67084d17a981b3b4195aae5d4bb4e756cb73", size = 211254, upload-time = "2026-04-09T15:59:02.597Z" }, + { url = "https://files.pythonhosted.org/packages/d2/62/6825ea2699a3de1c9bc459ad22b4bf2ea741ceead5122196c9de25426541/pyqasm-1.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9590fe665e326336a617aef591c3b7b108207aca76b6294ce85d98f0f0f26e1", size = 708385, upload-time = "2026-04-09T15:59:03.642Z" }, + { url = "https://files.pythonhosted.org/packages/b7/78/bf5f09d5e5559f5c6d3a688e471c436a87d10c85e461c7daa3e2b843dec8/pyqasm-1.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:c50e029678453f67ed4aa4948769029d8bc2e8cfd522d13e9967cdb5214d3286", size = 208367, upload-time = "2026-04-09T15:59:04.572Z" }, + { url = "https://files.pythonhosted.org/packages/d7/4f/16bcc0e7d212e8e11ae9549edd185f1df1501f2e3385c2905ecf168ea25a/pyqasm-1.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:96e99a47e9c761f02fc0c245f9ab6af3f928d768b7e04cfb3461080bb33d9e4e", size = 221497, upload-time = "2026-04-09T15:59:05.862Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b0/155540dd757e2a5dfbf355d938d9dde58b1e735c949bb954a3b9927b95a9/pyqasm-1.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:37d5a5599160326aa010f74c749f1ee1eb2387a7b5ea2fec34f7fe2ef175874f", size = 211327, upload-time = "2026-04-09T15:59:07.173Z" }, + { url = "https://files.pythonhosted.org/packages/4a/23/a334d1a16aeef39c5271f08431a58643b0307c6ec7663b4baab8ce61b116/pyqasm-1.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:49498b10b6a3bc9cd0e342d31e12ce24dee50b5fd31f8a6a227c2d5e5a67d426", size = 696043, upload-time = "2026-04-09T15:59:08.203Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4f/739192c1a8c92e1dfa46900f343ccb4b10b1cdaa930ddc2abd4e8f98192f/pyqasm-1.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:a30bac573461ff6b3cfe68eeb7aa895145445f8b03d540c0a2e492da22598b79", size = 208573, upload-time = "2026-04-09T15:59:09.606Z" }, + { url = "https://files.pythonhosted.org/packages/ee/c2/263338cdc793c6a5fa2822b16171edf4d2a2bdcc880a9f2a835970b0f30e/pyqasm-1.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d9a11c01b7aa6bea7fd36615cec950f821cb1e53815b744027def51c946cbff6", size = 220941, upload-time = "2026-04-09T15:59:10.821Z" }, + { url = "https://files.pythonhosted.org/packages/88/cd/25cee044e7129429e72d88d725ba953a2b34ac0e93e48c28feaa58694b48/pyqasm-1.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eee18c3fbd61c895bc78c8500ab5bc1c833f669a7a96e023794d6d4402bf1647", size = 210737, upload-time = "2026-04-09T15:59:11.838Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b7/9b02fbfa5812af13c65aad3814366b4790bf89bae455e7ce957cd810e28f/pyqasm-1.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:530a30c0e5b8f23306c13c74e7749b9031aaeb66fa367092b6e03e8472fafb33", size = 696683, upload-time = "2026-04-09T15:59:13.047Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e1/861ef6d10aa46605d136caa6e1e2c09affaa7ea0c574e7b18b918fdd612b/pyqasm-1.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:355cc32185925ef8416afdc21941fb28aacadf4072ae8a7fad2382af40b3d4d1", size = 208485, upload-time = "2026-04-09T15:59:14.217Z" }, + { url = "https://files.pythonhosted.org/packages/88/0d/13eb33f5e22ff657b06cbabcfd0e49b56d73f22bc2953a1996909ec6e949/pyqasm-1.0.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:03f6ba8193e4cd665068799a1032fa6558509e3e4468f6d01671be9b3816994e", size = 221412, upload-time = "2026-04-09T15:59:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/12/d7/6b43af6708e01ee8dcbb2cd702e4130efcac9ce652df10c7e657f93dc382/pyqasm-1.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ad531317b8efbbff6335979ac09976658c8f5051545dd4789532e73ed5b425a9", size = 210919, upload-time = "2026-04-09T15:59:17.082Z" }, + { url = "https://files.pythonhosted.org/packages/33/a7/67e3d9994314c90d45baa6dc4f1f88dce6b6245e68d1d0b72cc49723bfb8/pyqasm-1.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:559fa0b19f5dc8313d8bbebd8f68e04baa70872c48289cd6080d97485f04d261", size = 692223, upload-time = "2026-04-09T15:59:18.124Z" }, + { url = "https://files.pythonhosted.org/packages/f3/2f/a7be8417ee8e70180f18249d8d3bdba63b6dad79a44c2b1107041b1f5ad4/pyqasm-1.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:85430d000888d0b5a5568ac273780c503bc2877db90613d558b8c14da111a3b1", size = 210491, upload-time = "2026-04-09T15:59:19.217Z" }, +] + +[[package]] +name = "pyqrack-cpu" +version = "1.89.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/f4/2f327e1be091b44b346ae461987dea87ead1be4ddced94d2456336505990/pyqrack_cpu-1.89.0.tar.gz", hash = "sha256:f9483868405affc00e413ad9a654cfaf70f18445dd17066888cc379ba78c768e", size = 56254, upload-time = "2026-04-25T17:10:42.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/35/6a1610c95ffb81d6007350ca975eaed083e0e1dc513dd7e440029ffb85ae/pyqrack_cpu-1.89.0-py3-none-macosx_14_0_arm64.whl", hash = "sha256:2dd33531cc97f1e82a0da77a8724c41f11745100432591eaaea2d8bb59fbf4d4", size = 1902045, upload-time = "2026-04-25T17:10:10.083Z" }, + { url = "https://files.pythonhosted.org/packages/99/a9/900987ab5530c9b2d17dfbd40772125e468ed67eed604fac24e079c9444f/pyqrack_cpu-1.89.0-py3-none-macosx_15_0_arm64.whl", hash = "sha256:3b75ca238a8dd0c016ab31d3545d5bdb21c7459ef102942ae82b166fc80919fe", size = 1883866, upload-time = "2026-04-25T17:10:12.528Z" }, + { url = "https://files.pythonhosted.org/packages/84/4e/ac999a9a9aadee19d3c46d42a3a1cbe088e207b3537f0be8b34644b3cdae/pyqrack_cpu-1.89.0-py3-none-macosx_15_0_x86_64.whl", hash = "sha256:7c719e7fd3038a4e891faa1c865a8b23b9a6c3fb7375777b4de2e87678a2a275", size = 2071105, upload-time = "2026-04-25T17:10:14.855Z" }, + { url = "https://files.pythonhosted.org/packages/2e/52/2c4ebafcc1113f086dcabe54060e42c94cea5c04cd83b794ee1eae0860bb/pyqrack_cpu-1.89.0-py3-none-manylinux_2_35_x86_64.whl", hash = "sha256:ca92f8c3d34708c5625c928518ba5a5144dc463e6f9c9f786465d231c3ca4cba", size = 3078459, upload-time = "2026-04-25T17:10:17.528Z" }, + { url = "https://files.pythonhosted.org/packages/2f/77/2d62203d1e6589656f69a9e238daad018fbe7c3c61e10aa491b2e818dd1c/pyqrack_cpu-1.89.0-py3-none-manylinux_2_39_x86_64.whl", hash = "sha256:46bc2808c36f7ea1b45ec019890268f94cbce275a3a640ae0f96d135af2c594a", size = 3032387, upload-time = "2026-04-25T17:10:20.351Z" }, + { url = "https://files.pythonhosted.org/packages/e5/88/8ed6132343afeb0f31f22c58b246f029e46e6ef4abdc538aadd63bf0eba5/pyqrack_cpu-1.89.0-py3-none-win_amd64.whl", hash = "sha256:03a65d64131cbb4c2e31298de94c4372a7d90b61454839975a1d9c321a6091f7", size = 807305, upload-time = "2026-04-25T17:10:22.824Z" }, +] + +[[package]] +name = "pyqt5" +version = "5.15.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyqt5-qt5", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pyqt5-sip", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/07/c9ed0bd428df6f87183fca565a79fee19fa7c88c7f00a7f011ab4379e77a/PyQt5-5.15.11.tar.gz", hash = "sha256:fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52", size = 3216775, upload-time = "2024-07-19T08:39:57.756Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/64/42ec1b0bd72d87f87bde6ceb6869f444d91a2d601f2e67cd05febc0346a1/PyQt5-5.15.11-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c8b03dd9380bb13c804f0bdb0f4956067f281785b5e12303d529f0462f9afdc2", size = 6579776, upload-time = "2024-07-19T08:39:19.775Z" }, + { url = "https://files.pythonhosted.org/packages/49/f5/3fb696f4683ea45d68b7e77302eff173493ac81e43d63adb60fa760b9f91/PyQt5-5.15.11-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:6cd75628f6e732b1ffcfe709ab833a0716c0445d7aec8046a48d5843352becb6", size = 7016415, upload-time = "2024-07-19T08:39:32.977Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8c/4065950f9d013c4b2e588fe33cf04e564c2322842d84dbcbce5ba1dc28b0/PyQt5-5.15.11-cp38-abi3-manylinux_2_17_x86_64.whl", hash = "sha256:cd672a6738d1ae33ef7d9efa8e6cb0a1525ecf53ec86da80a9e1b6ec38c8d0f1", size = 8188103, upload-time = "2024-07-19T08:39:40.561Z" }, +] + +[[package]] +name = "pyqt5-qt5" +version = "5.15.19" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/af/c0e00d353cad261ee9ccd5f6039b7ef4e09a1cb9a22c6a4b233854f6fa30/pyqt5_qt5-5.15.19-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:cac6b78e4805848c25979a0622660251070781b6b4f810688a960cb44d1ae5a2", size = 39777655, upload-time = "2026-05-21T09:12:43.94Z" }, + { url = "https://files.pythonhosted.org/packages/1c/d0/fd4876b90bbadaa92444ff452ab78d9ba839014a6d303e77d29c0c591631/pyqt5_qt5-5.15.19-py3-none-macosx_11_0_arm64.whl", hash = "sha256:66fa299dcdea1f430edbd6f6ca3dcb20430f19c508d13e3aa851d19034b7be7e", size = 36838788, upload-time = "2026-05-21T09:12:59.334Z" }, + { url = "https://files.pythonhosted.org/packages/de/a0/dd9889ed9bf100d6d8b9d608b2689dc2a7f871f9489a0c563a8cf78c329f/pyqt5_qt5-5.15.19-py3-none-manylinux2014_x86_64.whl", hash = "sha256:31421d9c31fb29a8faee4b8b3c32658fb51a9e8c4c708075121162fa44faf80e", size = 60933242, upload-time = "2026-05-21T09:13:16.308Z" }, +] + +[[package]] +name = "pyqt5-sip" +version = "12.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/31/5ef342de9faee0f3801088946ae103db9b9eaeba3d6a64fefd5ce74df244/pyqt5_sip-12.18.0.tar.gz", hash = "sha256:71c37db75a0664325de149f43e2a712ec5fa1f90429a21dafbca005cb6767f94", size = 104143, upload-time = "2026-01-13T15:53:19.576Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/8e/9db5c0756134a6501ecf7d472a92f64d2d0b8033b4597e73f138a4cfb605/pyqt5_sip-12.18.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dc5c30bb9bd8cca6e13d2fedac6e2a75fe2168d798d66f76e74835546b025027", size = 122663, upload-time = "2026-01-13T15:52:40.965Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4a/c66dfd090d93ef6f3e30093b55bf786c24608258d157cb1951e28c5a2725/pyqt5_sip-12.18.0-cp310-cp310-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b4b743566f67cabfa7b0ba2da30b46d9d635d16cd5bc8cdcec83f620ed14dd93", size = 319778, upload-time = "2026-01-13T15:52:45.339Z" }, + { url = "https://files.pythonhosted.org/packages/1e/38/608e93888ce5e63978f1668c68e99bfd9e98ef59a7e619a82b14012c8ce5/pyqt5_sip-12.18.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:bbec4c14903bcd585b4e1ee50edccfe224c8c0ee8004a072143993b4eb954442", size = 271455, upload-time = "2026-01-13T15:52:43.453Z" }, + { url = "https://files.pythonhosted.org/packages/9a/59/3dd29bcfde479ac241f618235bf7d76e65e47afdcd91743554d490ae0d19/pyqt5_sip-12.18.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13c32e9025d0ab5fe960ef64dcb4c6f7ec26156ddce2cf2f195600aa26e8f9fe", size = 122724, upload-time = "2026-01-13T15:52:49.875Z" }, + { url = "https://files.pythonhosted.org/packages/87/c4/ac4deee3249d3ceb703103acbbf76d89f3782fa7ad2ca5a15fcb5bcf5c73/pyqt5_sip-12.18.0-cp311-cp311-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:dd855149c724634eb1f92d10e04e1be0751068a8521d5f9f06e5c2dbe32fd89f", size = 327560, upload-time = "2026-01-13T15:52:53.584Z" }, + { url = "https://files.pythonhosted.org/packages/79/53/64373ba9311288b0ea6b5ab375d9c9743a41ac93df7137655498c95a08e5/pyqt5_sip-12.18.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:521729e4ce44db555005f4e6987c4a5164d45ea03f5a7d08519813d4776acd15", size = 277067, upload-time = "2026-01-13T15:52:51.22Z" }, + { url = "https://files.pythonhosted.org/packages/2a/61/6d78d702016ac23d2b97634a3b6a831c3f7735f0552a1c8b058db96005d1/pyqt5_sip-12.18.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b29e4cda24748e59e5bd1bdad4812091a86b4b5b08c38b7f781eb55a5166f2b7", size = 124614, upload-time = "2026-01-13T15:52:57.59Z" }, + { url = "https://files.pythonhosted.org/packages/19/bf/8f3efa10ddd3e76c1253865340ab7c2960ef96681d732b1f666c77430612/pyqt5_sip-12.18.0-cp312-cp312-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:163c2bba5e637c2222ec17d82a2c5aa158184a191923eb7d137cf4cfa0399529", size = 339412, upload-time = "2026-01-13T15:53:00.563Z" }, + { url = "https://files.pythonhosted.org/packages/72/48/f1bcf6729d01bae6729cd790b22fd579dbe34014e8be031e6f10c5b9b2aa/pyqt5_sip-12.18.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ead5e0a64ad852ac60797989d8444a6a5bd834768536b04a07b40b2937d922f6", size = 282376, upload-time = "2026-01-13T15:52:59.172Z" }, + { url = "https://files.pythonhosted.org/packages/79/67/8d43d0fea10ff48ddecc8534aead8b855dc80df80653b8b1bf9e1f993063/pyqt5_sip-12.18.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9254e5dd7676b76503ba20edcc919e7ac4a97b6c70a6fb2f9dba9e13b4c60509", size = 124605, upload-time = "2026-01-13T15:53:04.991Z" }, + { url = "https://files.pythonhosted.org/packages/48/2a/b08bc8efeb49c50c6cdac11417dc2c8eaefcac2f0a6382eae7b26dc0f232/pyqt5_sip-12.18.0-cp313-cp313-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c969631ada7293a81e1012b2264a62d69a91995b517586489dfe24421b87b9af", size = 339918, upload-time = "2026-01-13T15:53:08.502Z" }, + { url = "https://files.pythonhosted.org/packages/b6/99/24f82437b2f073cf39296b7c731b6a8bc0f5207911fdd93841a0ea9abe42/pyqt5_sip-12.18.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d84ac384a63285132e67762c87681191c25e28a1df7560287ec3889d9eb223b5", size = 282088, upload-time = "2026-01-13T15:53:06.632Z" }, + { url = "https://files.pythonhosted.org/packages/37/3a/b46a0116b1aacbb6156b2957eb5cb928c94b49f4626eb2540ca8d16ee757/pyqt5_sip-12.18.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8372ec8704bfd5e09942d0d055a1657eb4f702f4b30847a5e59df0496f99d67f", size = 124594, upload-time = "2026-01-13T15:53:13.159Z" }, + { url = "https://files.pythonhosted.org/packages/58/63/df3037f11391c25c5b0ab233d22e58b8f056cb1ce16d7ecadb844421ce75/pyqt5_sip-12.18.0-cp314-cp314-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fdb45c7cd2af7eccd7370b994d432bfc7965079f845392760724f26771bb59dc", size = 339056, upload-time = "2026-01-13T15:53:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e7/4f96b84520b8f8b7502682fd43f68f63ca6572b5858f56e5f61c76a54fe2/pyqt5_sip-12.18.0-cp314-cp314-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:92abe984becbde768954d6d0951f56d80a9868d2fd9e738e61fc944f0ff83dd6", size = 282439, upload-time = "2026-01-13T15:53:14.856Z" }, +] + +[[package]] +name = "pytest" +version = "9.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2026.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861, upload-time = "2026-05-04T01:35:29.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload-time = "2026-05-04T01:35:27.408Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/b9/52aa9ec2867528b54f1e60846728d8b4d84726630874fee3a91e66c7df81/pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:508e23ec9bc44c0005c4946ea013d9317ae00ac67778bd47519fdf5a0e930ff4", size = 1329850, upload-time = "2025-09-08T23:07:26.274Z" }, + { url = "https://files.pythonhosted.org/packages/99/64/5653e7b7425b169f994835a2b2abf9486264401fdef18df91ddae47ce2cc/pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:507b6f430bdcf0ee48c0d30e734ea89ce5567fd7b8a0f0044a369c176aa44556", size = 906380, upload-time = "2025-09-08T23:07:29.78Z" }, + { url = "https://files.pythonhosted.org/packages/73/78/7d713284dbe022f6440e391bd1f3c48d9185673878034cfb3939cdf333b2/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf7b38f9fd7b81cb6d9391b2946382c8237fd814075c6aa9c3b746d53076023b", size = 666421, upload-time = "2025-09-08T23:07:31.263Z" }, + { url = "https://files.pythonhosted.org/packages/30/76/8f099f9d6482450428b17c4d6b241281af7ce6a9de8149ca8c1c649f6792/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03ff0b279b40d687691a6217c12242ee71f0fba28bf8626ff50e3ef0f4410e1e", size = 854149, upload-time = "2025-09-08T23:07:33.17Z" }, + { url = "https://files.pythonhosted.org/packages/59/f0/37fbfff06c68016019043897e4c969ceab18bde46cd2aca89821fcf4fb2e/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:677e744fee605753eac48198b15a2124016c009a11056f93807000ab11ce6526", size = 1655070, upload-time = "2025-09-08T23:07:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/47/14/7254be73f7a8edc3587609554fcaa7bfd30649bf89cd260e4487ca70fdaa/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd2fec2b13137416a1c5648b7009499bcc8fea78154cd888855fa32514f3dad1", size = 2033441, upload-time = "2025-09-08T23:07:37.432Z" }, + { url = "https://files.pythonhosted.org/packages/22/dc/49f2be26c6f86f347e796a4d99b19167fc94503f0af3fd010ad262158822/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08e90bb4b57603b84eab1d0ca05b3bbb10f60c1839dc471fc1c9e1507bef3386", size = 1891529, upload-time = "2025-09-08T23:07:39.047Z" }, + { url = "https://files.pythonhosted.org/packages/a3/3e/154fb963ae25be70c0064ce97776c937ecc7d8b0259f22858154a9999769/pyzmq-27.1.0-cp310-cp310-win32.whl", hash = "sha256:a5b42d7a0658b515319148875fcb782bbf118dd41c671b62dae33666c2213bda", size = 567276, upload-time = "2025-09-08T23:07:40.695Z" }, + { url = "https://files.pythonhosted.org/packages/62/b2/f4ab56c8c595abcb26b2be5fd9fa9e6899c1e5ad54964e93ae8bb35482be/pyzmq-27.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0bb87227430ee3aefcc0ade2088100e528d5d3298a0a715a64f3d04c60ba02f", size = 632208, upload-time = "2025-09-08T23:07:42.298Z" }, + { url = "https://files.pythonhosted.org/packages/3b/e3/be2cc7ab8332bdac0522fdb64c17b1b6241a795bee02e0196636ec5beb79/pyzmq-27.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:9a916f76c2ab8d045b19f2286851a38e9ac94ea91faf65bd64735924522a8b32", size = 559766, upload-time = "2025-09-08T23:07:43.869Z" }, + { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload-time = "2025-09-08T23:07:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload-time = "2025-09-08T23:07:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload-time = "2025-09-08T23:07:49.436Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload-time = "2025-09-08T23:07:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload-time = "2025-09-08T23:07:52.795Z" }, + { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload-time = "2025-09-08T23:07:55.047Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload-time = "2025-09-08T23:07:57.172Z" }, + { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload-time = "2025-09-08T23:07:59.05Z" }, + { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload-time = "2025-09-08T23:08:00.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload-time = "2025-09-08T23:08:02.15Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, + { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, + { url = "https://files.pythonhosted.org/packages/f3/81/a65e71c1552f74dec9dff91d95bafb6e0d33338a8dfefbc88aa562a20c92/pyzmq-27.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c17e03cbc9312bee223864f1a2b13a99522e0dc9f7c5df0177cd45210ac286e6", size = 836266, upload-time = "2025-09-08T23:09:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/58/ed/0202ca350f4f2b69faa95c6d931e3c05c3a397c184cacb84cb4f8f42f287/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f328d01128373cb6763823b2b4e7f73bdf767834268c565151eacb3b7a392f90", size = 800206, upload-time = "2025-09-08T23:09:41.902Z" }, + { url = "https://files.pythonhosted.org/packages/47/42/1ff831fa87fe8f0a840ddb399054ca0009605d820e2b44ea43114f5459f4/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c1790386614232e1b3a40a958454bdd42c6d1811837b15ddbb052a032a43f62", size = 567747, upload-time = "2025-09-08T23:09:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/d1/db/5c4d6807434751e3f21231bee98109aa57b9b9b55e058e450d0aef59b70f/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:448f9cb54eb0cee4732b46584f2710c8bc178b0e5371d9e4fc8125201e413a74", size = 747371, upload-time = "2025-09-08T23:09:45.575Z" }, + { url = "https://files.pythonhosted.org/packages/26/af/78ce193dbf03567eb8c0dc30e3df2b9e56f12a670bf7eb20f9fb532c7e8a/pyzmq-27.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05b12f2d32112bf8c95ef2e74ec4f1d4beb01f8b5e703b38537f8849f92cb9ba", size = 544862, upload-time = "2025-09-08T23:09:47.448Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload-time = "2025-09-08T23:09:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload-time = "2025-09-08T23:09:51.073Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload-time = "2025-09-08T23:09:52.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload-time = "2025-09-08T23:09:54.563Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" }, +] + +[[package]] +name = "pyzx-param" +version = "0.9.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lark" }, + { name = "numpy" }, + { name = "pyperclip" }, + { name = "sympy" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6c/53/66b2af6ce8a44a438995eb22ffab942a30927587fb5ea1d026c12f546e47/pyzx_param-0.9.3.tar.gz", hash = "sha256:13c729ad5d29f522f95ed45378835dc6270c7fd2ff949c57a15bf290d662f866", size = 358273, upload-time = "2026-04-01T11:56:48.449Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/28/e037d68e941213e26990535a239dcfaeb9d52a0b3d28db07c87ee1dd0bc2/pyzx_param-0.9.3-py3-none-any.whl", hash = "sha256:5c89e0f1f0f6a425f58b3d755eb78306554ae5ae15ea701b0dfd9eff86bcbfb7", size = 394572, upload-time = "2026-04-01T11:56:46.797Z" }, +] + +[[package]] +name = "qbraid" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "openqasm3", extra = ["parser"] }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pyqasm" }, + { name = "qbraid-core" }, + { name = "rustworkx" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/94/cf1d036345861bed1c3af175e6bfc9922b563b86694abe0594ced2961cc9/qbraid-0.12.1.tar.gz", hash = "sha256:af3e74ac0cb134a88235e4d47d464467f4644f33d70d4356d4ad19ea6bae66f1", size = 647480, upload-time = "2026-05-17T16:07:42.906Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/59/b283431c53b3846ec8c03ae360654ca8818597b3e822b9737da7d8b6dbe9/qbraid-0.12.1-py3-none-any.whl", hash = "sha256:2c51a70be7889d1cc27a805461272fa81d4c497754828713660cc7769c7770ca", size = 326708, upload-time = "2026-05-17T16:07:41.307Z" }, +] + +[[package]] +name = "qbraid-core" +version = "0.3.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/6e/3eaf46bc215bf357b2fd47adf91871c5334e5ed284938e57768c2939369a/qbraid_core-0.3.6.tar.gz", hash = "sha256:f9ba43b4c2acf59bfd38ade3aa590fdd77a2648f76cd1680a5121e00936da6dc", size = 375202, upload-time = "2026-07-09T13:31:09.241Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/45/020cc6d89a9498c60c5b9be09290125f6947ecb1f343c8c20a9a55d2c555/qbraid_core-0.3.6-py3-none-any.whl", hash = "sha256:041a0b4aee95438a45e189c80b57bd359a949df2e2acd7530d0fa134a6f6a78b", size = 252186, upload-time = "2026-07-09T13:31:07.614Z" }, +] + +[[package]] +name = "qlam-core" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "email-validator" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "requests-oauth2client" }, + { name = "segno" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/59/d61132a997ee5d62468977d45b4d0177a9047dd8453935dd92d900c3841e/qlam_core-0.4.0-py3-none-any.whl", hash = "sha256:f3f3e47d17b1c40056349762f363600dc8da49b25f6159aec8851e9693930128", size = 148627, upload-time = "2026-06-30T20:33:16.444Z" }, +] + +[[package]] +name = "qpsolvers" +version = "4.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/35/fc1f8b033b7ba6ecede5db093741df6a3adba6059346a586550f46254315/qpsolvers-4.12.0.tar.gz", hash = "sha256:2ec9c46294ae02bdac8969352726d2c2d5ed85f00c096881b27909e4f103ca7c", size = 235173, upload-time = "2026-05-08T09:18:06.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/68/c6e6f378f79dff83584ed18acae88c1de1ea56afc5ba9a2831ad3716083d/qpsolvers-4.12.0-py3-none-any.whl", hash = "sha256:30545f3eba98655a3c9410a071c70bb016e320a8d80a0c1a854aba00963b9b7f", size = 106752, upload-time = "2026-05-08T09:18:02.366Z" }, +] + +[package.optional-dependencies] +clarabel = [ + { name = "clarabel" }, +] + +[[package]] +name = "quimb" +version = "1.11.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "autoray", marker = "python_full_version < '3.11'" }, + { name = "cotengra", marker = "python_full_version < '3.11'" }, + { name = "cytoolz", marker = "python_full_version < '3.11'" }, + { name = "numba", marker = "python_full_version < '3.11'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "psutil", marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "tqdm", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/f6/71786ef5898856fffdbdb4d650d3f81bf3e1cfa92e61405c3858a59c696f/quimb-1.11.2.tar.gz", hash = "sha256:12546651f714e4ff3adb53dc7b620b4c4eb3fd8d8aafad0f92ac4cc04f03440c", size = 10142651, upload-time = "2025-07-31T00:25:26.477Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/be/cc32aaf468c5856e0c738ae7b2e494d12d50db3906c751834ca5f0e157fb/quimb-1.11.2-py3-none-any.whl", hash = "sha256:5c8a66311f54f3894e39f23d83cef4537cc6d41011779733ca303f3e5f09c7b8", size = 2077705, upload-time = "2025-07-31T00:25:24.383Z" }, +] + +[[package]] +name = "quimb" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "autoray", marker = "python_full_version >= '3.11'" }, + { name = "cotengra", marker = "python_full_version >= '3.11'" }, + { name = "cytoolz", marker = "python_full_version >= '3.11'" }, + { name = "numba", marker = "python_full_version >= '3.11'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "psutil", marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "tqdm", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/ca/0a80995d046b079f34bd78f281ceaaa286a15b06f7afeccc43d7cb2efe1d/quimb-1.14.0.tar.gz", hash = "sha256:8c3706088ba76e281334f719b341d4630e63c36bf4fe53bbfb46325e506dcad3", size = 13882683, upload-time = "2026-05-11T00:27:17.405Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/c5/2175e1a8cd38dea77353a82e130a73a97061fa13f1a9e74dd89c35488db6/quimb-1.14.0-py3-none-any.whl", hash = "sha256:aca4bef42536db220bedc845b0fd030a0ce1fe20ae288449d7a9d0e4915ae94b", size = 2025761, upload-time = "2026-05-11T00:27:15.169Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "rpds-py", version = "2026.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "requests" +version = "2.34.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, +] + +[[package]] +name = "requests-aws-sign" +version = "0.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "boto3" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/14/27d8eed7ef7870525ed9888eaa273d6c564562367a1678a85496d6b4ccf2/requests_aws_sign-0.1.6.tar.gz", hash = "sha256:17b2d21f7677df638cbe22d531bda59f7dbe36493f0fe0b8f5c19b36780b8111", size = 4042, upload-time = "2020-07-05T12:03:32.069Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/e7/6355fbd71106e2255a8cbf34114af88fc3a59b710f705a2ebd64c2d60701/requests_aws_sign-0.1.6-py3-none-any.whl", hash = "sha256:b4d082e098aeccbfbb40af13f9217bbc50841dac8da72297cfec8098fe0b1974", size = 3008, upload-time = "2020-07-05T12:03:30.395Z" }, +] + +[[package]] +name = "requests-oauth2client" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "binapy" }, + { name = "furl" }, + { name = "jwskate" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/13/7f/b3084153443ed7b568854b6a6b0d66971b8f25354ec73f2694a85823d8a2/requests_oauth2client-1.8.0.tar.gz", hash = "sha256:a550f18c41bae5082548257b8a4cd453da6315552f451fc81352c2aaa79b89b3", size = 131048, upload-time = "2025-12-22T20:22:03.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/6d/18a6d7354924d5b9b71cbb6c247784c9eccf0f9f76c83c4e44bc891157bc/requests_oauth2client-1.8.0-py3-none-any.whl", hash = "sha256:afff45c7dcabe3d7762bcc3e25c002b3645cee6f3ce99776dff54c1f6048b83d", size = 85061, upload-time = "2025-12-22T20:22:01.828Z" }, +] + +[[package]] +name = "requests-sigv4" +version = "0.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "boto3" }, + { name = "requests" }, + { name = "requests-aws-sign" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/1a/87638abd6ef571b0cca1a23e30bd412622f1e86d3de6f51f4ae989d711b3/requests-sigv4-0.1.6.tar.gz", hash = "sha256:92ef3cbebd7e20f33b2564ba0d18f5130d249860dd784840136aa5788c74c308", size = 4829, upload-time = "2022-06-24T20:37:44.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/e4/6886a4ae6d33b0eaec1d41673d80b1557089ee5c36dc6b254ff74c3beb91/requests_sigv4-0.1.6-py3-none-any.whl", hash = "sha256:b24b162f1cd38a557ce1b697d2ea2ddbc628d63f69a51987a69048e77dd70326", size = 4826, upload-time = "2022-06-24T20:37:42.034Z" }, +] + +[[package]] +name = "rich" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, +] + +[[package]] +name = "rpds-py" +version = "2026.6.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/2a/9618a122aeb2a169a28b03889a2995fe297588964333d4a7d67bdf46e147/rpds_py-2026.6.3.tar.gz", hash = "sha256:1cebd1337c242e4ec2293e541f712b2da849b29f48f0c293684b71c0632625d4", size = 64051, upload-time = "2026-06-30T07:17:53.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/1f/a2dca5ffdbf1d475ffc4e80e4d5d720ff3a00f691795910116960ee12511/rpds_py-2026.6.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7b689145a1485c335569bd056464f3243a29af7ed3871c7be31ad624ba239bc7", size = 342174, upload-time = "2026-06-30T07:14:54.821Z" }, + { url = "https://files.pythonhosted.org/packages/4d/dc/323d08583c0832911768663d1944f0107fcd4088704858d84b5e06d105a0/rpds_py-2026.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db08f45aecde626498fb3df07bcf6d2ec040af42e859a4f5040d79c200342911", size = 345513, upload-time = "2026-06-30T07:14:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2a/e31989834d18d2f26ec1d2774c5b1eb3331df4ea8ada525175294c94b48a/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acc992ab27b15f852c76755eb2ab7dce86585ddadba6fa5946e58556088845b4", size = 373783, upload-time = "2026-06-30T07:14:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/87/fe/e80107ee3639585c9941c17d6a42cd65325022f656c023191fce78c324c8/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f88d653e7b3b779d71ae7454e20dcc9b6bae903f33c269db9f2be41bda3f261", size = 378316, upload-time = "2026-06-30T07:14:59.077Z" }, + { url = "https://files.pythonhosted.org/packages/22/6f/81e3adf81acfb6fa694de2a6e4e7d8863121e3e0799e0a7725e6cf5679c4/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e52655eaf81e32593abedaa4bfe33170c8cfedf3365ed9be6e11e07f148f0278", size = 499423, upload-time = "2026-06-30T07:15:00.488Z" }, + { url = "https://files.pythonhosted.org/packages/2d/9a/41263969df0ce3d9af2a96d5005a288200af1989aed3354bfceb5fc0b21f/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dfcc8b909769d19db55c7cc9541eb64b9b774b1057ffffb4f1048070475bb9f9", size = 386077, upload-time = "2026-06-30T07:15:01.911Z" }, + { url = "https://files.pythonhosted.org/packages/5e/19/7e98f468bd50346faff5b10e5297374b443bfdddacc8e9fbc65984539597/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c1255b302953c86a486b81d330d5ee1d5bd937691ce271b6be0ef0e299eaab7", size = 371315, upload-time = "2026-06-30T07:15:03.317Z" }, + { url = "https://files.pythonhosted.org/packages/99/3c/2b973b4d371906a134b03decfea7f5d9835a2c6d263454392e15b64b5b18/rpds_py-2026.6.3-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:8d2294a31386bfa251d8c8a39472beee17db67d4f1a6eabea665d35c9a4461c3", size = 383502, upload-time = "2026-06-30T07:15:04.627Z" }, + { url = "https://files.pythonhosted.org/packages/98/2a/12e2799500af0a307bca76b63361c51f9fe479223561489c29eea1f2ee41/rpds_py-2026.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8f23ead891a3b762f35ab3b04623da7056545b48aa60d59957e6789914545da", size = 402673, upload-time = "2026-06-30T07:15:05.856Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e3/21e5872d165fe08be4f229e3d5ee9d90019c0bf0e5538de60dbd54009450/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:421aba32367055614287a4292b6a17f1939c9452299f7a0209c117e990b646d4", size = 549964, upload-time = "2026-06-30T07:15:07.159Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d0/5ee0fe36844297de8123bee27bc12078c1a7416ad9f1b8a8ca18d6b0c0ac/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1e5822dfc2f0d4ab7e745eaa6d85945069329beeccef965af3f3bb26058fcab6", size = 615446, upload-time = "2026-06-30T07:15:08.531Z" }, + { url = "https://files.pythonhosted.org/packages/b1/80/1ea5873cb683f2fbe5f21b23ea1f6d179ead19f3c5b249b7eb5dca568ef2/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:83e35b57523816c8613fd0776b40cd8bb9f596b37ddd2692eb4a6bb5ab2f8c93", size = 576975, upload-time = "2026-06-30T07:15:09.97Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e1/90ef639217a5ddb15b7f4f61b1c33911fd044ad03c311bafdd2bcab85582/rpds_py-2026.6.3-cp311-cp311-win32.whl", hash = "sha256:de3eceba0b683bcbb1ab93da016d0270df1f9ae7be716b40214c5dafac6ea45a", size = 204453, upload-time = "2026-06-30T07:15:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b7/b7a1695d7af36f521fb11e80d6d3adbd744f73b921859bd3c2a2c0dc706f/rpds_py-2026.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:2c54a076ca4d370980ab57bc0e31df57bbe8d41340436a90ef8b1219a3cbb127", size = 223219, upload-time = "2026-06-30T07:15:12.476Z" }, + { url = "https://files.pythonhosted.org/packages/d7/a2/145afacf796e4506062825941176ad9445c2dcf2b3b6a1f13d3030a15e19/rpds_py-2026.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:168c733a7112e071bb7a66460e667edfcff06c017a3c523f7a8a8e08d0140804", size = 219137, upload-time = "2026-06-30T07:15:13.631Z" }, + { url = "https://files.pythonhosted.org/packages/5c/be/2e8974163072e7bab7df1a5acd54c4498e75e35d6d18b864d3a9d5dadc92/rpds_py-2026.6.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a0811d33247c3d6128a3001d763f2aa056bb3425204335400ac54f89eec3a0d0", size = 343691, upload-time = "2026-06-30T07:15:14.96Z" }, + { url = "https://files.pythonhosted.org/packages/a4/73/319dfa745dd668efe89309141ded489126461fcecd2b8f3a3cda185129b6/rpds_py-2026.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:538949e262e46caa31ac01bdb3c1e8f642622922cacbabbae6a8445d9dc33eaf", size = 338542, upload-time = "2026-06-30T07:15:16.267Z" }, + { url = "https://files.pythonhosted.org/packages/21/63/4239893be1c4d09b709b1a8f6be4188f0870084ff547f46606b8a75f1b03/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55927d532399c2c646100ff7feb48eaa940ad70f42cd68e1328f3ded9f81ca24", size = 368180, upload-time = "2026-06-30T07:15:17.62Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ca/9c5de382225234ceb37b1844ebdb140db12b2a278bb9efe2fcd19f6c82ce/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f56f1695bc5c0871cbc33dc0130fcf503aab0c57dcc5a6700a4f49eba4f2652e", size = 375067, upload-time = "2026-06-30T07:15:18.952Z" }, + { url = "https://files.pythonhosted.org/packages/87/dc/863f69d1bf04ade34b7fe0d59b9fdf6f0135fe2d7cbca74f1d665589559d/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:270b293dae9058fc9fcedab50f13cebf46fb8ed1d1d54e0521a9da5d6b211975", size = 490509, upload-time = "2026-06-30T07:15:20.434Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ef/eac16a12048b45ec7c7fa94f2be3438a5f26bf9cc8580b18a1cfd609b7f6/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:127565fead0a10943b282957bd5447804ff3160ad79f2ad2635e6d249e380680", size = 382754, upload-time = "2026-06-30T07:15:21.831Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/d2f3f532616be4d06c316ef119683e832bd3d41e112bf3a88f4151c95b17/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecabd69db66de867690f9797f2f8fa27ba501bbc24540cbdbdc649cd15888ba6", size = 366189, upload-time = "2026-06-30T07:15:23.371Z" }, + { url = "https://files.pythonhosted.org/packages/e3/29/41a7b0e98a4b44cd676ab7598419623373eb43b20be68c084935c1a8cf88/rpds_py-2026.6.3-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:58eadac9cd119677b60e1cf8ac4052f35949d71b8a9e5556efccbe82533cf22a", size = 377750, upload-time = "2026-06-30T07:15:24.659Z" }, + { url = "https://files.pythonhosted.org/packages/2e/05/ecda0bec46f9a1565090bcdc941d023f6a25aff85fda28f89f8d19878152/rpds_py-2026.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7491ee23305ac3eb59e492b6945881f5cd77a6f731061a3f25b77fd40f9e99a4", size = 395576, upload-time = "2026-06-30T07:15:25.987Z" }, + { url = "https://files.pythonhosted.org/packages/68/a8/6ed52f03ee6cb854ce78785cc9a9a672eb880e83fd7224d471f667d151f1/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2c99f7e8ccb3dd6e3e4bfeac657a7b208c9bac8075f4b078c02d7404c34107fa", size = 543807, upload-time = "2026-06-30T07:15:27.356Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d6/156c0d3eea27ba09b92562ba2364ba124c0a061b199e17eac637cd25a5e2/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:62698275682bf121181861295c9181e789030a2d516071f5b8f3c23c170cd0fc", size = 611187, upload-time = "2026-06-30T07:15:28.931Z" }, + { url = "https://files.pythonhosted.org/packages/f1/31/774212ed989c62f7f310220089f9b0a3fb8f40f5443d1727abd5d9f52bc9/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a214c993455f99a89aaeadc9b21241900037adc9d97203e374d75513c5911822", size = 573030, upload-time = "2026-06-30T07:15:30.553Z" }, + { url = "https://files.pythonhosted.org/packages/c9/50/22f73127a41f1ce4f87fe39aadfb9a126345801c274aa93ae88456249327/rpds_py-2026.6.3-cp312-cp312-win32.whl", hash = "sha256:501f9f04a588d6a09179368c57071301445191767c64e4b52a6aa9871f1ef5ed", size = 202185, upload-time = "2026-06-30T07:15:32.027Z" }, + { url = "https://files.pythonhosted.org/packages/04/3a/f0ee4d4dde9d3b69dedf1b5f74e7a40017046d55052d173e418c6a94f960/rpds_py-2026.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:2c958bf94822e9290a40aaf2a822d4bc5c88099093e3948ad6c571eca9272e5f", size = 220394, upload-time = "2026-06-30T07:15:33.359Z" }, + { url = "https://files.pythonhosted.org/packages/f3/83/3382fe37f809b59f02aac04dbc4e765b480b46ee0227ed516e3bdc4d3dfc/rpds_py-2026.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:22bffe6042b9bcb0822bcd1955ec00e245daf17b4344e4ed8e9551b976b63e96", size = 215753, upload-time = "2026-06-30T07:15:34.778Z" }, + { url = "https://files.pythonhosted.org/packages/a4/9e/b818ee580026ec578138e961027a68820c40afeb1ec8f6819b54fb99e196/rpds_py-2026.6.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3cfe765c1da0072636ca06628261e0ea05688e160d5c8a03e0217c3854037223", size = 343012, upload-time = "2026-06-30T07:15:36.005Z" }, + { url = "https://files.pythonhosted.org/packages/f3/6b/686d9dc4359a8f163cfbbf89ee0b4e586431de22fe8248edb63a8cf50d49/rpds_py-2026.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f4d78253f6996be4901669ad25319f842f740eccf4d58e3c7f3dd39e6dde1d8f", size = 338203, upload-time = "2026-06-30T07:15:37.462Z" }, + { url = "https://files.pythonhosted.org/packages/9e/9b/069aa329940f8207615e091f5eedbbd40e1e15eac68a0790fd05ccdf796c/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54f45a148e28767bf343d33a684693c70e451c6f4c0e9904709a723fafbdfc1f", size = 367984, upload-time = "2026-06-30T07:15:39.008Z" }, + { url = "https://files.pythonhosted.org/packages/14/db/34c203e4becff3703e4d3bc121842c00b8689197f398161203a880052f4e/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:842e7b070435622248c7a2c44ae53fa1440e073cc3023bc919fed570884097a7", size = 374815, upload-time = "2026-06-30T07:15:40.253Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7d/8071067d2cc453d916ad836e828c943f575e8a44612537759002a1e07381/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8020133a74bd81b4572dd8e4be028a6b1ebcd70e6726edc3918008c08bee6ee6", size = 490545, upload-time = "2026-06-30T07:15:41.729Z" }, + { url = "https://files.pythonhosted.org/packages/a3/42/da06c5aa8f0484ff07f270787434204d9f4535e2f8c3b51ed402267e63c3/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdc7e35386f3847df728fbcb5e887e2d79c19e2fa1eba9e51b6621d23e3243af", size = 382828, upload-time = "2026-06-30T07:15:43.327Z" }, + { url = "https://files.pythonhosted.org/packages/57/d7/fe978efc2ae50abe48eb7464668ea99f53c010c60aeebb7b35ad27f23661/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acac386b453c2516111b50985d60ce46e7fadb5ea71ae7b25f4c946935bf27cf", size = 365678, upload-time = "2026-06-30T07:15:44.992Z" }, + { url = "https://files.pythonhosted.org/packages/69/9d/1d8922e1990b2a6eb532b6ff53d3e73d2b3bbffc84116c75826bee73dfc6/rpds_py-2026.6.3-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:425560c6fa0415f27261727bb20bd097568485e5eb0c121f1949417d1c516885", size = 377811, upload-time = "2026-06-30T07:15:46.523Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3d/198dceafb4fb034a6a47347e1b0735d34e0bd4a50be4e898d408ee66cb14/rpds_py-2026.6.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a550fb4950a06dde3beb4721f5ad4b25bf4513784665b0a8522c792e2bd822a4", size = 395382, upload-time = "2026-06-30T07:15:47.955Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f1/13968e49655d40b6b19d8b9140296bbc6f1d86b3f0f6c346cf9f1adddf4b/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f4bca01b63096f606e095734dd56e74e175f94cfbf24ff3d63281cec61f7bb7", size = 543832, upload-time = "2026-06-30T07:15:49.33Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ab/289bcb1b90bd3e40a2900c561fa0e2087345ecbb094f0b870f2345142b7c/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ccffae9a092a00deb7efd545fe5e2c33c33b88e7c054337e9a74c179347d0b7d", size = 611011, upload-time = "2026-06-30T07:15:50.847Z" }, + { url = "https://files.pythonhosted.org/packages/1e/16/5043105e679436ccfbc8e5e0dd2d663ed18a8b8113515fd06a5e5d77c83e/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1cf01971c4f2c5553b772a542e4aaf191789cd331bc2cd4ff0e6e65ba49e1e97", size = 572431, upload-time = "2026-06-30T07:15:52.394Z" }, + { url = "https://files.pythonhosted.org/packages/85/ed/adab103321c0a6565d5ae1c2998349bc3ee175b82ccc5ae8fc04cc413075/rpds_py-2026.6.3-cp313-cp313-win32.whl", hash = "sha256:8c3d1e9c15b9d51ca0391e13da1a25a0a4df3c58a37c9dc368e0736cf7f69df0", size = 201710, upload-time = "2026-06-30T07:15:53.894Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ed/a03b09668e74e5dabbf2e211f6468e1820c0552f7b0500082da31841bf7b/rpds_py-2026.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:9250a9a0a6fd4648b3f868da8d91a4c52b5811a62df58e753d50ae4454a36f80", size = 219454, upload-time = "2026-06-30T07:15:55.25Z" }, + { url = "https://files.pythonhosted.org/packages/27/17/b8642c12930b71bc2b25831f6708ccf0f75abcd11883932ec9ce54ba3a78/rpds_py-2026.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:900a67df3fd1660b035a4761c4ce73c382ea6b35f90f9863c36c6fd8bf8b09bb", size = 215063, upload-time = "2026-06-30T07:15:56.573Z" }, + { url = "https://files.pythonhosted.org/packages/b6/36/7fbe9dcdaf857fb3f63c2a2284b62492d95f5e8334e947e5fb6e7f68c9be/rpds_py-2026.6.3-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:931908d9fc855d8f74783377822be318edb6dcb19e47169dc038f9a1bf60b06e", size = 344510, upload-time = "2026-06-30T07:15:57.921Z" }, + { url = "https://files.pythonhosted.org/packages/ba/54/f785cc3d3f60839ca57a5af4927a9f347b07b2799c373fc20f7949f87c7e/rpds_py-2026.6.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d7469697dce35be237db177d42e2a2ee26e6dcc5fc052078a6fefabd288c6edd", size = 339495, upload-time = "2026-06-30T07:15:59.238Z" }, + { url = "https://files.pythonhosted.org/packages/63/ef/d4cdaf309e6b095b43597103cf8c0b951d6cca2acce68c474f75ec12e0c7/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcfbcf66006befb9fd2aeaa9e01feaf881b4dc330a02ba07d2322b1c11be7b5d", size = 369454, upload-time = "2026-06-30T07:16:01.021Z" }, + { url = "https://files.pythonhosted.org/packages/96/4a/9559a68b7ee15db09d7981212e8c2e219d2a1d6d4faa0391d813c3496a36/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847927daf4cffbd4e90e42bc890069897101edd015f956cb8721b3473372edda", size = 374583, upload-time = "2026-06-30T07:16:02.287Z" }, + { url = "https://files.pythonhosted.org/packages/ef/75/8964aa7d2c6e8ac43eba8eb6e6b0fdda1f46d39f2fc3e6aa9f2cb17f485d/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aca6c1ef08a82bfe327cc156da694660f599923e2e6665b6d81c9c2d0ac9ffc8", size = 492919, upload-time = "2026-06-30T07:16:03.723Z" }, + { url = "https://files.pythonhosted.org/packages/8f/97/6908094ac804115e65aedfd90f1b5fee4eebebd3f6c4cfc5419939267565/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae50181a047c871561212bb97f7932a2d45fb53e947bd9b57ebad85b529cbc53", size = 383725, upload-time = "2026-06-30T07:16:05.305Z" }, + { url = "https://files.pythonhosted.org/packages/d1/9c/0d1fdc2e7aba23e290d603bc494e97bd205bae262ce33c6b32a69768ed5e/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc319e5a1de4b6913aac94bf6a2f9e847371e0a140a43dd4991db1a09bc2d504", size = 367255, upload-time = "2026-06-30T07:16:07.086Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fe/f0209ca4a9ed074bc8acb44dfd0e81c3122e94c9689f5645b7973a866719/rpds_py-2026.6.3-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e4316bf32babbed84e691e352faf967ce2f0f024174a8643c37c94a1080374fc", size = 379060, upload-time = "2026-06-30T07:16:08.525Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8d/f1cc54c616b9d8897de8738aac148d20afca93f68187475fe194d09a71b9/rpds_py-2026.6.3-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8c6e5a2f750cc71c3e3b11d71661f21d6f9bc6cebc6564b1466417a1ec03ec77", size = 395960, upload-time = "2026-06-30T07:16:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/fb/04/aafff00f73aeca2945f734f1d483c64ab8f472d0864ab02377fd8e89c3b2/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4470ce197d4090875cf6affbf1f853338387428df97c4fb7b7106317b8214698", size = 545356, upload-time = "2026-06-30T07:16:11.816Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cc/e229663b9e4ddac5a4acbe9085dd80a71af2a5d356b8b39d6bff233f24b0/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ea964164cc9afa72d4d9b23cc28dafae93693c0a53e0b42acbff15b22c3f9ddd", size = 612319, upload-time = "2026-06-30T07:16:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7a/8a0e6d3e6cd066af108b71b43122c3fe158dd9eb86acac626593a2582eb1/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:639c8929aa0afe81be836b04de888460d6bed38b9c54cfc18da8f6bfabf5af5d", size = 573508, upload-time = "2026-06-30T07:16:15.23Z" }, + { url = "https://files.pythonhosted.org/packages/87/03/2a69ab618a789cf6cf85c86bb844c62d090e700ab1a2aa676b3741b6c516/rpds_py-2026.6.3-cp314-cp314-win32.whl", hash = "sha256:882076c00c0a608b131187055ddc5ae29f2e7eaf870d6168980420d58528a5c8", size = 202504, upload-time = "2026-06-30T07:16:16.893Z" }, + { url = "https://files.pythonhosted.org/packages/85/62/a3892ba945f4e24c78f352e5de3c7620d8479f73f211406a97263d13c7d2/rpds_py-2026.6.3-cp314-cp314-win_amd64.whl", hash = "sha256:0be972be84cfcaf46c8c6edf690ca0f154ac17babf1f6a955a51579b34ad2dc5", size = 220380, upload-time = "2026-06-30T07:16:18.108Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e7/c2bd44dc831931815ad11ebb5f430b5a0a4d3caa9de837107876c30c3432/rpds_py-2026.6.3-cp314-cp314-win_arm64.whl", hash = "sha256:2a9c6f195058cb45335e8cc3802745c603d716eb96bc9625950c1aac71c0c703", size = 215976, upload-time = "2026-06-30T07:16:19.654Z" }, + { url = "https://files.pythonhosted.org/packages/79/9c/fff7b74bce9a091ec9a012a03f9ff5f69364eaf9451060dfc4486da2ffdd/rpds_py-2026.6.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:f90938e92afda60266da758ee7d363447f7f0138c9559f9e1811629580582d90", size = 346840, upload-time = "2026-06-30T07:16:21.268Z" }, + { url = "https://files.pythonhosted.org/packages/e9/44/77bcb1168b33704908295533d27f10eb811e9e3e193e8993dc99572211d3/rpds_py-2026.6.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ec829541c45bca16e61c7ae50c20501f213605beb75d1aba91a6ee37fbbb56a4", size = 340282, upload-time = "2026-06-30T07:16:22.875Z" }, + { url = "https://files.pythonhosted.org/packages/87/3c/7a9081c7c9e645b39efe19e4ffbeccd80add246327cd9b888aecffd72317/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd70d95892096cdb26f15a00c45907b17817577aa8d1c76b2dcc2788391f9e9", size = 370403, upload-time = "2026-06-30T07:16:24.415Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/af47021eb7dad6ff3396cb001c08f0f3c4d06c20253f75be6421a59fe6b7/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:29dfa0533a5d4c94d4dfa1b694fcb56c9c63aad8330ffdd816fd225d0a7a162f", size = 376055, upload-time = "2026-06-30T07:16:26.111Z" }, + { url = "https://files.pythonhosted.org/packages/81/fc/a3bcf517084396a6dd258c592567a3c011ba4557f2fde23dceaf26e74f2e/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:af05d726809bff6b141be124d4c7ce998f9c9c7f30edb1f46c07aa103d540b41", size = 494419, upload-time = "2026-06-30T07:16:27.596Z" }, + { url = "https://files.pythonhosted.org/packages/c9/eb/13d529d1788135425c7bf207f8463458ca5d92e43f3f701365b83e9dffc1/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9826217f048f620d9a712672818bf231442c1b35d96b227a07eabd11b4bb6945", size = 384848, upload-time = "2026-06-30T07:16:29.183Z" }, + { url = "https://files.pythonhosted.org/packages/8e/f4/b7ac49f30013aba8f7b9566b1dd07e81de95e708c1374b7bacc5b9bc5c9c/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:536bceea4fa4acf7e1c61da2b5786304367c816c8895be71b8f537c480b0ea1f", size = 371369, upload-time = "2026-06-30T07:16:30.912Z" }, + { url = "https://files.pythonhosted.org/packages/31/86/6260bafa622f788b07ddec0e52d810305c8b9b0b8c27f58a2ab04bf62b4f/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:bc0011654b91cc4fb2ae701bec0a0ba1e552c0714247fa7af6c59e0ccfa3a4e1", size = 379673, upload-time = "2026-06-30T07:16:32.486Z" }, + { url = "https://files.pythonhosted.org/packages/19/c3/03f1ee79a047b48daeca157c89a18509cde22b6b951d642b9b0af1be660a/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:539d75de9e0d536c84ff18dfeb805398e58227001ce09231a26a08b9aed1ee0e", size = 397500, upload-time = "2026-06-30T07:16:34.471Z" }, + { url = "https://files.pythonhosted.org/packages/f0/95/8ed0cd8c377dca12aea498f119fe639fc474d1461545c39d2b5872eb1c0f/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:166cf54d9f44fc6ceb53c7860258dde44a81406646de79f8ed3234fca3b6e538", size = 545978, upload-time = "2026-06-30T07:16:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f2/0eb57f0eaa83f8fc152a7e03de968ab77e1f00732bebc892b190c6eebde7/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:d34c20167764fbcf927194d532dd7e0c56772f0a5f943fa5ef9e9afbba8fb9db", size = 613350, upload-time = "2026-06-30T07:16:38.213Z" }, + { url = "https://files.pythonhosted.org/packages/5b/de/e0674bdbc3ef7634989b3f854c3f34bc1f587d36e5bfdc5c378d57034619/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ea7bb13b7c9a29791f87a0387ba7d3ad3a6d783d827e4d3f27b40a0ff44495e2", size = 576486, upload-time = "2026-06-30T07:16:39.797Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f6/21101359743cd136ada781e8210a85769578422ba460672eea0e29739200/rpds_py-2026.6.3-cp314-cp314t-win32.whl", hash = "sha256:6de4744d05bd1aa1be4ed7ea1189e3979196808008113bbbf899a460966b925e", size = 201068, upload-time = "2026-06-30T07:16:41.316Z" }, + { url = "https://files.pythonhosted.org/packages/a6/b2/9574d4d44f7760c2aa32d92a0a4f41698e33f5b204a0bf5c9758f52c79d5/rpds_py-2026.6.3-cp314-cp314t-win_amd64.whl", hash = "sha256:c7b9a2f8f4d8e90af72571d3d495deebdd7e3c75451f5b41719aee166e940fc2", size = 220600, upload-time = "2026-06-30T07:16:43.091Z" }, + { url = "https://files.pythonhosted.org/packages/08/ae/f23a2697e6ee6340a578b0f136be6483657bef0c6f9497b752bb5c0964bb/rpds_py-2026.6.3-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:e059c5dde6452b44424bd1834557556c226b57781dee1227af23518459722b13", size = 344726, upload-time = "2026-06-30T07:16:44.5Z" }, + { url = "https://files.pythonhosted.org/packages/c3/63/e7b3a1a5358dd32c930a1062d8e15b67fd6e8922e81df9e91706d66ee5c8/rpds_py-2026.6.3-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2f7c26fbc5acd2522b95d4177fe4710ffd8e9b20529e703ffbf8db4d93903f05", size = 339587, upload-time = "2026-06-30T07:16:46.255Z" }, + { url = "https://files.pythonhosted.org/packages/ec/64/10a85681916ca55fffb91b0a211f84e34297c109243484dd6394660a8a7c/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3086b538543802f84c843911242db20447de00d8752dd0efc936dbcf02218ba", size = 369585, upload-time = "2026-06-30T07:16:48.101Z" }, + { url = "https://files.pythonhosted.org/packages/76/c2/baf95c7c38823e12ba34407c5f5767a89e5cf2233895e56f608167ae9493/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2e5c5ee828d42cb11760761c0af6507927bec42d0ad5458f97c9203b054617", size = 375479, upload-time = "2026-06-30T07:16:49.93Z" }, + { url = "https://files.pythonhosted.org/packages/6a/94/0aad06c72d65101e11d33528d438cda99a39ce0da99466e156158f2541d3/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0c1e5d10cdc7135537988c74a0188da68e2f3c30813ba3744ab1e42e0480f9", size = 492418, upload-time = "2026-06-30T07:16:51.641Z" }, + { url = "https://files.pythonhosted.org/packages/b5/17/de3f5a479a1f056535d7489819639d8cd591ea6281d700390b43b1abd745/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c2642a7603ec0b16ed77da4555db3b4b472341904873788327c0b0d7b95f1bb", size = 384123, upload-time = "2026-06-30T07:16:53.622Z" }, + { url = "https://files.pythonhosted.org/packages/46/7d/bf09bd1b145bb2671c03e1e6d1ab8651858d90d8c7dfeadd85a37a934fd8/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e4320744c1ffdd95a603def63344bfab2d33edeab301c5007e7de9f9f5b3885", size = 367351, upload-time = "2026-06-30T07:16:55.241Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ea/1bb734f314b8be319149ddee80b18bd41372bdcfbdf88d28131c0cd37719/rpds_py-2026.6.3-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:a9f4645593036b81bbdb36b9c8e0ea0d1c3fee968c4d59db0344c14087ef143a", size = 378827, upload-time = "2026-06-30T07:16:56.841Z" }, + { url = "https://files.pythonhosted.org/packages/4b/93/d9611e5b25e26df9a3649813ed66193ace9347a7c7fc4ab7cf70e94851c0/rpds_py-2026.6.3-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e55d236be29255554da47abe5c577637db7c24a02b8b46f0ca9524c855801868", size = 395966, upload-time = "2026-06-30T07:16:58.557Z" }, + { url = "https://files.pythonhosted.org/packages/c3/cb/99d77e16e5534ae1d90629bbe419ba6ee170833a6a85e3aa1cc41726fbbc/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:24e9c5386e16669b674a69c156c8eeefcb578f3b3397b713b08e6d60f3c7b187", size = 545680, upload-time = "2026-06-30T07:17:00.164Z" }, + { url = "https://files.pythonhosted.org/packages/59/15/11a29755f790cef7a2f755e8e14f4f0c33f39489e1893a632a2eee59672b/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:c60924535c75f1566b6eb75b5c31a48a43fef04fa2d0d201acbad8a9969c6107", size = 611853, upload-time = "2026-06-30T07:17:01.962Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/0c27547e21644da938fb530f7e1a8148dd24d02db07e7a5f2567a17ce710/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:38a2fea2787428f811719ceb9114cb78964a3138838320c29ac39526c79c16ba", size = 573715, upload-time = "2026-06-30T07:17:03.693Z" }, + { url = "https://files.pythonhosted.org/packages/29/71/4d8fcf700931815594bce892255bbd973b94efaf0fc1932b0590df18d886/rpds_py-2026.6.3-cp315-cp315-win32.whl", hash = "sha256:d483fe17f01ad64b7bf7cc38fcefff1ca9fb83f8c2b2542b68f97ffe0611b369", size = 202864, upload-time = "2026-06-30T07:17:05.746Z" }, + { url = "https://files.pythonhosted.org/packages/eb/62/b577562de0edbb55b2be85ce5fd09c33e386b9b13eee09833af4240fd5c4/rpds_py-2026.6.3-cp315-cp315-win_amd64.whl", hash = "sha256:67e3a721ffc5d8d2210d3671872298c4a84e4b8035cfe42ffd7cde35d772b146", size = 220430, upload-time = "2026-06-30T07:17:07.471Z" }, + { url = "https://files.pythonhosted.org/packages/c8/95/d6d0b2509825141eef60669a5739eec88dbc6a48053d6c92993a5704defe/rpds_py-2026.6.3-cp315-cp315-win_arm64.whl", hash = "sha256:6e84adbcf4bf841aed8116a8264b9f50b4cb3e7bd89b516122e616ac56ca269e", size = 215877, upload-time = "2026-06-30T07:17:09.008Z" }, + { url = "https://files.pythonhosted.org/packages/b7/bf/f3ea278f0afd615c1d0f19cb69043a41526e2bb600c2b536eb192218eb27/rpds_py-2026.6.3-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:ae6dd8f10bd17aad820876d24caec9efdafd80a318d16c0a48edb5e136902c6b", size = 346933, upload-time = "2026-06-30T07:17:10.762Z" }, + { url = "https://files.pythonhosted.org/packages/9d/29/9907bdf1c5346763cf10b7f6852aad86652168c259def904cbe0082c5864/rpds_py-2026.6.3-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:bdbd97738551fca3917c1bd7188bec1920bb520104f28e7e1007f9ceb17b7690", size = 340274, upload-time = "2026-06-30T07:17:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2c/8e03767b5778ef25cebf74a7a91a2c3806f8eced4c92cb7406bbe060756d/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b95977e7211527ab0ba576e286d023389fbeeb32a6b7b771665d333c60e5342", size = 370763, upload-time = "2026-06-30T07:17:14.107Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e1/df2a7e1ba2efd796af26194250b8d42c821b46592311595162af9ef0528d/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d15fde0e6fb0d88a60d221204873743e5d9f0b7d29165e62cd86d0413ad74ba6", size = 376467, upload-time = "2026-06-30T07:17:15.76Z" }, + { url = "https://files.pythonhosted.org/packages/6b/de/8a0814d1946af29cb068fb259aa8622f856df1d0bab58429448726b537f5/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a136d453475ac0fcbda502ef1e6504bd28d6d904700915d278deeab0d00fe140", size = 496689, upload-time = "2026-06-30T07:17:17.308Z" }, + { url = "https://files.pythonhosted.org/packages/df/f3/f19e0c852ba13694f5a79f3b719331051573cb5693feacf8a88ffffc3a71/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f826877d462181e5eb1c26a0026b8d0cab05d99844ecb6d8bf3627a2ca0c0442", size = 385340, upload-time = "2026-06-30T07:17:18.928Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ae/7ec3a9d2d4351f99e37bcb06b6b6f954512646bfdbf9742e1de727865daf/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79486287de1730dbaff3dbd124d0ca4d2ef7f9d29bf2544f1f93c09b5bcbbd12", size = 372179, upload-time = "2026-06-30T07:17:20.539Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ac/9cee911dff2aaa9a5a8354f6610bf2e6a616de9197c5fff4f54f82585f1e/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:808345f53cb952433ca2816f1604ff3515608a81784954f38d4452acfe8e61d5", size = 379993, upload-time = "2026-06-30T07:17:22.212Z" }, + { url = "https://files.pythonhosted.org/packages/83/6b/7c2a07ba88d1e9a936612f7a5d067467ed03d971d5a06f7d309dff044a7e/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1967debc37f64f2c4dc90a7f563aec558b471966e12adcac4e1c4240496b6ebf", size = 398909, upload-time = "2026-06-30T07:17:23.66Z" }, + { url = "https://files.pythonhosted.org/packages/97/0b/776ffcb66783637b0031f6d58d6fb55913c8b5abf00aeecd46bf933fb477/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:f0840b5b17057f7fd918b76183a4b5a0635f43e14eb2ce60dce1d4ee4707ea00", size = 546584, upload-time = "2026-06-30T07:17:25.264Z" }, + { url = "https://files.pythonhosted.org/packages/55/33/ba3bc04d7092bd553c9b2b195624992d2cc4f3de1f380b7b93cbee67bd79/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:faa679d19a6696fd54259ad321251ad77a13e70e03dd834daa762a44fb6196ef", size = 614357, upload-time = "2026-06-30T07:17:26.888Z" }, + { url = "https://files.pythonhosted.org/packages/8b/71/14edf065f04630b1a8472f7653cad03f6c478bcf95ea0e6aed55451e33ea/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:23a439f31ccbeff1574e24889128821d1f7917470e830cf6544dced1c662262a", size = 576533, upload-time = "2026-06-30T07:17:28.546Z" }, + { url = "https://files.pythonhosted.org/packages/ba/76/65002b08596c389105720a8c0d22298b8dc25a4baf89b2ce431343c8b1de/rpds_py-2026.6.3-cp315-cp315t-win32.whl", hash = "sha256:913ca42ccad3f8cc6e292b587ae8ae49c8c823e5dce51a736252fc7c7cdfa577", size = 201204, upload-time = "2026-06-30T07:17:30.193Z" }, + { url = "https://files.pythonhosted.org/packages/8c/97/d855d6b3c322d1f27e26f5241c42016b56cf01377ea8ed348285f54652f0/rpds_py-2026.6.3-cp315-cp315t-win_amd64.whl", hash = "sha256:ae3d4fe8c0b9213624fdce7279d70e3b148b682ca20719ebd193a23ebfa47324", size = 220719, upload-time = "2026-06-30T07:17:31.788Z" }, + { url = "https://files.pythonhosted.org/packages/b4/9c/f0d19ac587fd0e4ab6b72cda355e9c5a6166b01ef7e064e437aef8eb9fef/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4cf2d36a2357e4d07bb5a4f98801265327b48256867816cfd2ceb001e9754a8f", size = 349791, upload-time = "2026-06-30T07:17:33.315Z" }, + { url = "https://files.pythonhosted.org/packages/38/c7/1d49d204c9fd2ee6c537601dc4c1ba921e03363ca576bfab94a00254ac9a/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:30c6dc199b24a5e3e81d50da0f00858c5bbdb2617a750395687f4339c5818171", size = 352842, upload-time = "2026-06-30T07:17:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e5/c0b5dc93cd0d4c06ce1f438907649514e2ea077bcd911e3154a51e96c38e/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9891e594296ab9dada6551c8e7b387b2721f27a67eecd528412e8906247a7b90", size = 382094, upload-time = "2026-06-30T07:17:36.514Z" }, + { url = "https://files.pythonhosted.org/packages/0d/54/ec0e907b4ca8d541112db352409bd15f871c9b243e0c92c9b5a46ae96f01/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5c2dc92304aa48a4a60443b548bb12f12e119d4b72f314015e67b9e1be97fca", size = 388662, upload-time = "2026-06-30T07:17:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f4/921c22a4fd0f1c1ac13a3996ffbf0aa67951e2c8ad0d1d9574938a2932e8/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:127e08c0642d880cf32ca47ec2a4a77b901f7e2dd1ad9762adb13955d72ffcc9", size = 504896, upload-time = "2026-06-30T07:17:39.689Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1b/a114b972cefa1ab1cdb3c7bb177cd3844a12826c507c722d3a73516dbbaf/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bb68f03f395eb793220b45c097bd4d8c32944393da0fad8b999efac0868fc8c", size = 391545, upload-time = "2026-06-30T07:17:41.336Z" }, + { url = "https://files.pythonhosted.org/packages/4e/98/af9b3db77d47fcbe6c8c1f36e2c2147ec70292819e99c325f871584a1c11/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3450b693fde92133e9f51060568a4c31fcca76d5e53bbd611e689ca446517e9", size = 380059, upload-time = "2026-06-30T07:17:42.857Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ba/0efd8668b97c1d26a61566386c636a7a7a09829e474fdf807caa15a2c844/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:5e8d07bddee435a2ff6f1920e18feff28d0bc4533e42f4bf6927fbd073312c41", size = 393235, upload-time = "2026-06-30T07:17:44.637Z" }, + { url = "https://files.pythonhosted.org/packages/62/90/8c139ee9690f73b0829f32647de6f40d826f8f443af6fa72644f96351aac/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a83ae6c67b7676b9878378547ca8e93ed77a580037bcbcd1d32f739e1e6089c", size = 413008, upload-time = "2026-06-30T07:17:46.225Z" }, + { url = "https://files.pythonhosted.org/packages/9c/97/0043896fdd7828ce09a1d9a8b06433714d0960fc4ff3fc4aa72b666b764e/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2bfd04c19ddbd6640de0b51894d764bd2758854d5b75bd102d2ef10cb9c293a9", size = 558118, upload-time = "2026-06-30T07:17:47.759Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/02355f0e134f783a8f9814c4680a1bd311d37671577a5964ea838573ff37/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:ca6546b66be9dc4738b1b043d5ebd5488c66c578c5ff0fd0e8065313fe3afb76", size = 623138, upload-time = "2026-06-30T07:17:49.355Z" }, + { url = "https://files.pythonhosted.org/packages/10/85/48f0abdcef5cce4e034c7a5b0ceeceba0b01bf0d942824f4bb720afe2dec/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:8e65860d238379ed982fd9ba690579b5e95af2f4840f99c772816dbe573cb826", size = 586486, upload-time = "2026-06-30T07:17:51.141Z" }, +] + +[[package]] +name = "rustworkx" +version = "0.18.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/1a/545aa3a3e251e9da00e4acf0e5472b7fbbb15360f56d9d5342c1f93b8b93/rustworkx-0.18.0.tar.gz", hash = "sha256:5ca9cf8dbee50f8def012119ebb64771ae86916993417415aba9e845831cb436", size = 894567, upload-time = "2026-06-18T04:38:56.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/70/18b310752b0652d4a755b46853268c00c33401101a47f87697ad25966453/rustworkx-0.18.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7440ba70b87bd16811d92e57d76108840dbdd89aa2fc55e4d324fa2fb6b7f9c9", size = 2295936, upload-time = "2026-06-18T04:38:01.598Z" }, + { url = "https://files.pythonhosted.org/packages/02/4e/09152f4422204f020346a8a2b0e2f05f12d8cc60eeeee99b24f649985514/rustworkx-0.18.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:7fce5218ebfb8d8f5313def1f15aad8d3c3c2bbe03e33805dff8cf8bb70370a1", size = 2145057, upload-time = "2026-06-18T04:38:03.253Z" }, + { url = "https://files.pythonhosted.org/packages/22/68/69198f41f7f9c39fb5b2e561bf41d4cbd117fa5dfdf4631d8ba28e5ff69b/rustworkx-0.18.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7e0c626f76bc71d414a02502be7ec0ac2dd6eca369886bc66a2650607f2d9de6", size = 2391659, upload-time = "2026-06-18T04:38:04.942Z" }, + { url = "https://files.pythonhosted.org/packages/e1/81/8ac568efe0289b0ecd826cd697c3581b6a25e134145926cbfef762656167/rustworkx-0.18.0-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:91b37c5bb54e233e16c4f47383385f17be03e6a344821c2f6a39a0aebee54538", size = 2189469, upload-time = "2026-06-18T04:38:06.51Z" }, + { url = "https://files.pythonhosted.org/packages/f2/a4/96492d7af2ddcd15368f80329e3514060b122f306c4406fac98c08a97865/rustworkx-0.18.0-cp310-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:bcd15f7a637ca0654f329ed42a6db0cf7eac15ed89e0b32cb9d16b1b21937979", size = 2504116, upload-time = "2026-06-18T04:38:43.441Z" }, + { url = "https://files.pythonhosted.org/packages/4d/b0/005383bd7dc110b06ca731bd2115482f3a8c6389e0c8fe1f7f259380c4c8/rustworkx-0.18.0-cp310-abi3-manylinux_2_28_s390x.whl", hash = "sha256:567ace3b0d8ac709dc4ad4ce164472f5f59508739355221480170327a6736777", size = 3170967, upload-time = "2026-06-18T04:38:39.929Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2f/95ca9ef9285cc6793b3e041efca6c5a194ca6731b0af732631ee074a67b3/rustworkx-0.18.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b91cdcffeab5f498de44905a373e47e345da8f6c4f40fc969421548c4e7a5219", size = 2254008, upload-time = "2026-06-18T04:38:08.245Z" }, + { url = "https://files.pythonhosted.org/packages/19/7b/9df6a80162e6f90fd9945e3f8063c2aa41285c27aefce1d171f99c2b829f/rustworkx-0.18.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:03dd1ab42974bc0ff957eccc330c0c0d9887d88240c0cd050039e215af5a3c45", size = 2447140, upload-time = "2026-06-18T04:38:09.767Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b3/4d159b33bbc73dbebad050a0226dcfb0753d7f05fa55a8d5351e85c8c953/rustworkx-0.18.0-cp310-abi3-win32.whl", hash = "sha256:eb87a45864ffe36e4d86e826d12bb54dac9e4f76c214997dee624281d8711684", size = 2057237, upload-time = "2026-06-18T04:38:11.28Z" }, + { url = "https://files.pythonhosted.org/packages/99/1b/b0dc8d3751c0c58d16db72bff2954a9d3871c166147007590a3aaec4d42e/rustworkx-0.18.0-cp310-abi3-win_amd64.whl", hash = "sha256:602df896b4479b83c6456f702f8ba2ac1cbb972b30723d5fe2e84e6ff3de7d70", size = 2289224, upload-time = "2026-06-18T04:38:12.961Z" }, + { url = "https://files.pythonhosted.org/packages/f4/eb/147e86d56de0511ee7526e5cdf6144013d9c71ba4d6ed6dcd82b6b545861/rustworkx-0.18.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bba66b268e94efd9181d49241b2547d783770dcea9ee8c64609306a7b20ace74", size = 2339568, upload-time = "2026-06-18T04:38:14.292Z" }, + { url = "https://files.pythonhosted.org/packages/7d/1b/c665d30c132e73d69ca95cf552179608de6f94434ee5eb321297ef393920/rustworkx-0.18.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d51ff00fa72144813c2af33c673b7faf7182ca0ffc85cf35569b5ac4de84bc3e", size = 2118746, upload-time = "2026-06-18T04:38:15.759Z" }, + { url = "https://files.pythonhosted.org/packages/c5/78/04733471aa616dc0bc76f2c2e65ad89bb4ecbbfd2309231347c293906181/rustworkx-0.18.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f7099bf90fc1a7ad1789bc126e3e208d9944af2dd9f9b28f75ae148c68aa00cb", size = 2372040, upload-time = "2026-06-18T04:38:17.082Z" }, + { url = "https://files.pythonhosted.org/packages/bd/eb/58ed5f78ca608156ac2ce3166e41976c32345bbc36e71a3fc18390cc4de2/rustworkx-0.18.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:f562d5eeb2943024c85f631df713e7873ea8b572ada9044be82f29f923c1463a", size = 2178071, upload-time = "2026-06-18T04:38:18.571Z" }, + { url = "https://files.pythonhosted.org/packages/bf/96/888c7849d20b7e49d978cfe9bdd8873d709e220a09f8f6bdce226ef7c2be/rustworkx-0.18.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8437bca6adff8e91089bd5d176ef8a499085135031e2d2df4132821578e94dd6", size = 2244227, upload-time = "2026-06-18T04:38:19.923Z" }, + { url = "https://files.pythonhosted.org/packages/99/47/621b56c3f10138a02da9dfd636780ec9311c821fff1acf43be7292408625/rustworkx-0.18.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ba9e9f91d0d14d21666f0d7549f4d8ed70dc84bf75483c68eee5a005ed900f3e", size = 2426773, upload-time = "2026-06-18T04:38:21.233Z" }, +] + +[[package]] +name = "s3transfer" +version = "0.19.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/65/da/4bef7ce7bb989b222aa4785a413896dbec53306dfc59c6ce7d16a7ffbd6a/s3transfer-0.19.1.tar.gz", hash = "sha256:d3d6371dc3f1e5c5427b2b457bcf13bcf87bec334c95aed18642eae61f6926f3", size = 165354, upload-time = "2026-07-10T19:32:04.849Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/23/e84c64ad0e8bc59cd1b2ef98def848deff0ef3456c542afe74d51e9e8c85/s3transfer-0.19.1-py3-none-any.whl", hash = "sha256:d5fd7005ee39307455ad5f310b5ea67f4b1960d7fed5b3671ee50c249de675de", size = 90072, upload-time = "2026-07-10T19:32:03.673Z" }, +] + +[[package]] +name = "scipy" +version = "1.15.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'darwin'", + "python_full_version < '3.11' and sys_platform == 'linux'", + "python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "numpy", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, + { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, + { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, + { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, + { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, + { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, + { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload-time = "2025-05-08T16:06:58.696Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload-time = "2025-05-08T16:07:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload-time = "2025-05-08T16:07:08.998Z" }, + { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload-time = "2025-05-08T16:07:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload-time = "2025-05-08T16:07:19.427Z" }, + { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload-time = "2025-05-08T16:07:25.712Z" }, + { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload-time = "2025-05-08T16:07:31.468Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload-time = "2025-05-08T16:07:38.002Z" }, + { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload-time = "2025-05-08T16:08:33.671Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload-time = "2025-05-08T16:07:44.039Z" }, + { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload-time = "2025-05-08T16:07:49.891Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload-time = "2025-05-08T16:07:54.121Z" }, + { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload-time = "2025-05-08T16:07:58.506Z" }, + { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload-time = "2025-05-08T16:08:03.929Z" }, + { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload-time = "2025-05-08T16:08:09.558Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload-time = "2025-05-08T16:08:15.34Z" }, + { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload-time = "2025-05-08T16:08:21.513Z" }, + { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*' and sys_platform == 'darwin'", + "python_full_version == '3.11.*' and sys_platform == 'linux'", + "python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "numpy", marker = "python_full_version == '3.11.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/75/b4ce781849931fef6fd529afa6b63711d5a733065722d0c3e2724af9e40a/scipy-1.17.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1f95b894f13729334fb990162e911c9e5dc1ab390c58aa6cbecb389c5b5e28ec", size = 31613675, upload-time = "2026-02-23T00:16:00.13Z" }, + { url = "https://files.pythonhosted.org/packages/f7/58/bccc2861b305abdd1b8663d6130c0b3d7cc22e8d86663edbc8401bfd40d4/scipy-1.17.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:e18f12c6b0bc5a592ed23d3f7b891f68fd7f8241d69b7883769eb5d5dfb52696", size = 28162057, upload-time = "2026-02-23T00:16:09.456Z" }, + { url = "https://files.pythonhosted.org/packages/6d/ee/18146b7757ed4976276b9c9819108adbc73c5aad636e5353e20746b73069/scipy-1.17.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a3472cfbca0a54177d0faa68f697d8ba4c80bbdc19908c3465556d9f7efce9ee", size = 20334032, upload-time = "2026-02-23T00:16:17.358Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e6/cef1cf3557f0c54954198554a10016b6a03b2ec9e22a4e1df734936bd99c/scipy-1.17.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:766e0dc5a616d026a3a1cffa379af959671729083882f50307e18175797b3dfd", size = 22709533, upload-time = "2026-02-23T00:16:25.791Z" }, + { url = "https://files.pythonhosted.org/packages/4d/60/8804678875fc59362b0fb759ab3ecce1f09c10a735680318ac30da8cd76b/scipy-1.17.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:744b2bf3640d907b79f3fd7874efe432d1cf171ee721243e350f55234b4cec4c", size = 33062057, upload-time = "2026-02-23T00:16:36.931Z" }, + { url = "https://files.pythonhosted.org/packages/09/7d/af933f0f6e0767995b4e2d705a0665e454d1c19402aa7e895de3951ebb04/scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43af8d1f3bea642559019edfe64e9b11192a8978efbd1539d7bc2aaa23d92de4", size = 35349300, upload-time = "2026-02-23T00:16:49.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/3d/7ccbbdcbb54c8fdc20d3b6930137c782a163fa626f0aef920349873421ba/scipy-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd96a1898c0a47be4520327e01f874acfd61fb48a9420f8aa9f6483412ffa444", size = 35127333, upload-time = "2026-02-23T00:17:01.293Z" }, + { url = "https://files.pythonhosted.org/packages/e8/19/f926cb11c42b15ba08e3a71e376d816ac08614f769b4f47e06c3580c836a/scipy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4eb6c25dd62ee8d5edf68a8e1c171dd71c292fdae95d8aeb3dd7d7de4c364082", size = 37741314, upload-time = "2026-02-23T00:17:12.576Z" }, + { url = "https://files.pythonhosted.org/packages/95/da/0d1df507cf574b3f224ccc3d45244c9a1d732c81dcb26b1e8a766ae271a8/scipy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:d30e57c72013c2a4fe441c2fcb8e77b14e152ad48b5464858e07e2ad9fbfceff", size = 36607512, upload-time = "2026-02-23T00:17:23.424Z" }, + { url = "https://files.pythonhosted.org/packages/68/7f/bdd79ceaad24b671543ffe0ef61ed8e659440eb683b66f033454dcee90eb/scipy-1.17.1-cp311-cp311-win_arm64.whl", hash = "sha256:9ecb4efb1cd6e8c4afea0daa91a87fbddbce1b99d2895d151596716c0b2e859d", size = 24599248, upload-time = "2026-02-23T00:17:34.561Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, + { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" }, + { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" }, + { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, + { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, + { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, + { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, + { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" }, + { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, + { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, + { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, + { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, + { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, + { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, + { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, + { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" }, + { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" }, +] + +[[package]] +name = "scipy" +version = "1.18.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'darwin'", + "python_full_version == '3.13.*' and sys_platform == 'darwin'", + "python_full_version == '3.12.*' and sys_platform == 'darwin'", + "python_full_version >= '3.14' and sys_platform == 'linux'", + "python_full_version == '3.13.*' and sys_platform == 'linux'", + "python_full_version == '3.12.*' and sys_platform == 'linux'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux'", +] +dependencies = [ + { name = "numpy", marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/25/c2700dfaf6442b4effaa91af24ebce5dc9d31bb4a69706313aae70d72cd0/scipy-1.18.0.tar.gz", hash = "sha256:67b2ad2ad54c72ca6d04975a9b2df8c3638c34ddd5b28738e94fc2b57929d378", size = 30774447, upload-time = "2026-06-19T15:01:43.456Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/19/ca10ead60b0acc80b2b833c2c4a4f2ff753d0f58b811f70d911c7e94a25c/scipy-1.18.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:7bd21faaf5a1a3b2eff922d02db5f191b99a6518db9078a8fb23169f6d22259a", size = 31056519, upload-time = "2026-06-19T14:59:45.203Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1e6442a00cd2924d361aa1b642ab6373ec35c6fabf311a760be9f76e0f13/scipy-1.18.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:265915e79107de9f946b855e50d7470d5893ec3f54b342e1aa6201cbdcd8bb6b", size = 28681889, upload-time = "2026-06-19T14:59:48.103Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2d/11dd93d21e147a73ba22bd75c0b9208d3a2e0ec76d53170ce7d9029b1015/scipy-1.18.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9ab7b758be6940954a713ee466e2043e9f6e2ed965c1fce5c91039f4be3d90a9", size = 20423580, upload-time = "2026-06-19T14:59:50.665Z" }, + { url = "https://files.pythonhosted.org/packages/9c/01/93552f75e0d2a7dd115a45e59209c51e8d514daff02fc887d2623be06fe1/scipy-1.18.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:97b6cddaaee0a779ef6b5ca83c9604b27cc16b2b8fc22c142652df8793319fb8", size = 23054441, upload-time = "2026-06-19T14:59:53.564Z" }, + { url = "https://files.pythonhosted.org/packages/3c/23/21f5e703643d66f21faa6b4c73195bfcad70c55efcb4f1ab327cd7c4101a/scipy-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:52a96e21517c7292375c0e27dd796a811f03fcea5fd4d108fdfea8145dcf17ab", size = 33968720, upload-time = "2026-06-19T14:59:56.415Z" }, + { url = "https://files.pythonhosted.org/packages/dd/aa/1b939f6c67ed68635bb538e6752d3dacc02f66535182e939a89581a44e9c/scipy-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f55797419e16e7f30cf88ffb3113ce0467f00cfe3f70d5c281730b21769bfc2", size = 35287115, upload-time = "2026-06-19T14:59:59.411Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ff/eec46be7e9234208f801062b53e1983085eddebd693f6c9bfb03b459830d/scipy-1.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad033410e2e0672ffdc1042110cef20e1c46f8fd0616cee1d44d8d58fad8fc11", size = 35577989, upload-time = "2026-06-19T15:00:02.235Z" }, + { url = "https://files.pythonhosted.org/packages/84/ca/210d4759c7210bb7d269437421959b39a33434e2776b60c5cb8a763bb30a/scipy-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a55985d54c769c872e64b7f4c8a81cc30ef700cc04296abbbf3705439c126de", size = 37421717, upload-time = "2026-06-19T15:00:05.102Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/9a9edb45345bd6744da5ddfb6628e5d5185920494c6a67ec45b6381004cb/scipy-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:71ccc8faa2dd16ac310233203474a8b5cb67f10dedd54a3116d34943f4b19132", size = 36597428, upload-time = "2026-06-19T15:00:08.112Z" }, + { url = "https://files.pythonhosted.org/packages/99/0e/33f32a2a58987e26aec0f7df252cbbad1e90ae77bdbc76f40dd4ed0cf0ea/scipy-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:d88363fd9d8fbd3511bd273f1a49efb2a540773ddf92a91d57498ce7dd7f3e76", size = 24351481, upload-time = "2026-06-19T15:00:11.103Z" }, + { url = "https://files.pythonhosted.org/packages/05/52/9c0136c2de7ae0779b7b366447766cec6d9f0702c56bb8ffeb04c8fd3af4/scipy-1.18.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:09143f676d157d9f546d663504ef9c1becb819824f1afc018814176411942446", size = 31036107, upload-time = "2026-06-19T15:00:14.03Z" }, + { url = "https://files.pythonhosted.org/packages/02/73/0291a64843270f4efb86cdcf2ee0f2048631b65ec6b405398b2b4dbf11bf/scipy-1.18.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5efe260f69417b97ddae455bfb5a95e8359f7f66ad7fa9522a60feb66f169520", size = 28663303, upload-time = "2026-06-19T15:00:16.819Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0f/10ffa0b697a572f4e0d48b92a88895d366422f019f723e7e14a84c050dac/scipy-1.18.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:68363b7eaacd8b5dd426df56d782cc156468ac79a127a1b87ca597d6e2e82197", size = 20404960, upload-time = "2026-06-19T15:00:19.635Z" }, + { url = "https://files.pythonhosted.org/packages/7e/d2/e896cea21ba8edd6c81d4c55b1ffcc717e79698dcbebf9641b4cfb4c6622/scipy-1.18.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:c5557d8be5da8e41353fcd4d21491fdbab83b062fc579e94dc09a7c8ab4f669b", size = 23034074, upload-time = "2026-06-19T15:00:22.107Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b2/e83ea34279a52c03374477c74006256ec78df65fc877baa4617d6de1d202/scipy-1.18.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d13bca67c096d89fb95ced0d8921807300fce0275643aef9533cc63a0773468", size = 33942038, upload-time = "2026-06-19T15:00:24.964Z" }, + { url = "https://files.pythonhosted.org/packages/f6/af/e8fe5fb136f51e2b01678b92cb4106d10d8cd68ec147ead2e7cb0ac75398/scipy-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a46f9273dbd0eb1cefba61c9b8648b4dfe3cbc14a080176f9a73e44b8336dc7f", size = 35266390, upload-time = "2026-06-19T15:00:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/3a/49/2c5cbb907b56695fc67517811d1db234dfd83381a84814ec220aded2794d/scipy-1.18.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5aba46108853ddfc77906b6557aac839d2b52e900c1d72a1180adaaab58d265f", size = 35551324, upload-time = "2026-06-19T15:00:31.014Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/eda39f7a2d306ff0ffc574afd13c0bbb6d10a603d9a413998ee269487a80/scipy-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b6f758e35f12757b5d95c00bc6de2438e229c2664b7a92e96f205959d9f2dfa4", size = 37404785, upload-time = "2026-06-19T15:00:34.072Z" }, + { url = "https://files.pythonhosted.org/packages/b7/d2/ae881ee28d014f38e0ccbfd974a06a919ba9af34f1f74bf42b5301891d63/scipy-1.18.0-cp313-cp313-win_amd64.whl", hash = "sha256:1afac4a847207c7ff8efd321734a50b06d0280b3b2a2c0fc2f413101747ad7c7", size = 36554943, upload-time = "2026-06-19T15:00:36.903Z" }, + { url = "https://files.pythonhosted.org/packages/70/3a/21154e2d54eb3639c6bf4dbae2e531c68356bfe95990daa30df33b30d556/scipy-1.18.0-cp313-cp313-win_arm64.whl", hash = "sha256:c5dbddf60e58c2312316d097271a8e73d40eaf2eabfa4d95ed7d3695bbf2ce7b", size = 24350911, upload-time = "2026-06-19T15:00:40.062Z" }, + { url = "https://files.pythonhosted.org/packages/78/b5/915a19b3de2f7430062b509653563db1633ddbb6f021b06731521115d4e2/scipy-1.18.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4c256ee70c0d1a8a2ace807e199ccd4e3f57037433842abb3fb36bc17eaa9578", size = 31036253, upload-time = "2026-06-19T15:00:43.216Z" }, + { url = "https://files.pythonhosted.org/packages/d7/88/b72def7262e150d16be13fca37a96481138d624e700340bc3362a7588929/scipy-1.18.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:2ef3abc54a4ffc53765374b0d5728532dfdd2585ed23f6b11c206a1f0b1b9af8", size = 28673758, upload-time = "2026-06-19T15:00:46.663Z" }, + { url = "https://files.pythonhosted.org/packages/91/02/2e636a61a525632c373cf6a9c24442a3ffb79e364d38e98b32042964ac32/scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f2a6af57bd9e4a75d70e4117e78a1bbee84f79ae3fbb6d0111005d6ebcc4cb8d", size = 20415514, upload-time = "2026-06-19T15:00:49.399Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/2135974442f6aba159d9d39d774a1c8cb19947016725d69fecc685df45bf/scipy-1.18.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:3f1ac564d3bf6c03d861d2cd87a1bea0da2887136f7fb1bf519c05a8971452d6", size = 23034398, upload-time = "2026-06-19T15:00:51.941Z" }, + { url = "https://files.pythonhosted.org/packages/f6/e6/ba89ec5abf6ee9257c0d1ec985573f3ae32742c24bc03e016388a40b1b15/scipy-1.18.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40395a5fcd1abee49a5c7aaa98c29db393eedc835138560a588c47ec16156690", size = 33998032, upload-time = "2026-06-19T15:00:54.838Z" }, + { url = "https://files.pythonhosted.org/packages/7f/c4/bc41eb19b0fd0db868f4132920879019318d80cc522ad8f2bca4611af808/scipy-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ca01e8ae69f1b18e9a58d91afead31be3cef0dd905a10249dac559ee15460a0", size = 35283333, upload-time = "2026-06-19T15:00:58.152Z" }, + { url = "https://files.pythonhosted.org/packages/53/a4/cbdeef6eb3830a8462a9d4ada814de5fc984345cc9ecf17cbec51a036f1e/scipy-1.18.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7a7f3b01647384dbc3a711e8c6778e0aabbe93959249fef5c7393396bcac0867", size = 35610216, upload-time = "2026-06-19T15:01:01.155Z" }, + { url = "https://files.pythonhosted.org/packages/80/4d/b2b82502b65f661d1b789c1665dcdf315d5f12194e06fc0b37946294ebae/scipy-1.18.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6aa94e78ec192a30063a5e72e561c28af769dc311190b24fe91774eff1969709", size = 37418960, upload-time = "2026-06-19T15:01:04.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/902d836831474b0ab5a37d16404f7bc5fafd9efba632890e271ba952635f/scipy-1.18.0-cp314-cp314-win_amd64.whl", hash = "sha256:2d8bbdc6c817f5b4006a54d799d4f5bab6f910193cbb9a1ff310833d4d270f61", size = 37288845, upload-time = "2026-06-19T15:01:07.822Z" }, + { url = "https://files.pythonhosted.org/packages/b6/43/8d73b337a3bdb14daa0314f0434210747c02d79d729ce1777574a817dcf6/scipy-1.18.0-cp314-cp314-win_arm64.whl", hash = "sha256:18e9575f1569b2c54174e6159d32942e03731177f63dce7975f0a0c88d102f5b", size = 24988971, upload-time = "2026-06-19T15:01:11.076Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b4/f11918b0508a2787031a0499a03fbe3546f3bb5ca05d01038c45b278c09a/scipy-1.18.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f351e0dd702687d12a402b867a1b4146a256923e1c38317cbc472f6372b94707", size = 31399325, upload-time = "2026-06-19T15:01:13.723Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d1/1f287b57c0ff0ee5185dff3946d92c8017d39b0e431f0ae79a3ff1859512/scipy-1.18.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7c7a51b33ce387193c97f228320cf8e87361daa1bba750638677729598b3e677", size = 29092110, upload-time = "2026-06-19T15:01:16.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1a/7b74eb6c392fdcb27d414c0e7558a6d0231eb3b6d73571f479bb81ea8794/scipy-1.18.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:84031d7b052a54fae2f8632e0ec802073d385476eb9a63079bce6e23ef9283d4", size = 20833811, upload-time = "2026-06-19T15:01:20.488Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ad/f3941716320a7b9cb4d68734a903b45fe16eff5fb7da7e16f2e619304979/scipy-1.18.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:56abf29a7c067dde59be8b9a22d606a4ea1b2f2a4b756d9d903c62818f5dacce", size = 23396644, upload-time = "2026-06-19T15:01:23.364Z" }, + { url = "https://files.pythonhosted.org/packages/22/22/1446b62ffe07f9719b7d9b1b6a4e05a772833ae8f441fe4c22c34c9b250f/scipy-1.18.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ad44305cfa24b1ba5803cbbebf033590ccbac1aa5d612d727b785325ab408b0", size = 34079318, upload-time = "2026-06-19T15:01:26.002Z" }, + { url = "https://files.pythonhosted.org/packages/56/3b/b87da667098bb470fa30c7011b0ba351ee976dd395c78798c66e941665a3/scipy-1.18.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:945c1761b93f38d7f99ae81ae80c63e621471608c7eeead563f6df025585cd58", size = 35324320, upload-time = "2026-06-19T15:01:28.881Z" }, + { url = "https://files.pythonhosted.org/packages/f8/a1/c7932f91909759b0267f75fdea34e91309f96b895757534b76a90b6b4344/scipy-1.18.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1a4441f15d620578772a49e5ab48c0ee1f7a0220e387110283062729136b2553", size = 35699541, upload-time = "2026-06-19T15:01:31.968Z" }, + { url = "https://files.pythonhosted.org/packages/f7/86/5185061a1fcc41d18c5dc2463969b3a3964b31d9ac67b2fb05d4c7ff7670/scipy-1.18.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9aac6192fac56bf2ca534389d24623f07b39ff83317d58287285e7fbd622ff76", size = 37472480, upload-time = "2026-06-19T15:01:35.136Z" }, + { url = "https://files.pythonhosted.org/packages/31/8e/f04c68e39919a010d34f2ee1367fd705b0a25a02f609d755f0bfbc0a15fc/scipy-1.18.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e40baea28ae7f5475c779741e2d90b1247c78531207b49c7030e698ff81cee3f", size = 37365390, upload-time = "2026-06-19T15:01:38.091Z" }, + { url = "https://files.pythonhosted.org/packages/d5/19/969dc072906c84dd0a3b05dcf57ea750936087d7873549e408b35cfc3f97/scipy-1.18.0-cp314-cp314t-win_arm64.whl", hash = "sha256:368e0a705903c466aa5f08eefb39e6b1b6b2d659e7352a31fd9e2438365be0f8", size = 25279661, upload-time = "2026-06-19T15:01:40.817Z" }, +] + +[[package]] +name = "segno" +version = "1.6.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/2e/b396f750c53f570055bf5a9fc1ace09bed2dff013c73b7afec5702a581ba/segno-1.6.6.tar.gz", hash = "sha256:e60933afc4b52137d323a4434c8340e0ce1e58cec71439e46680d4db188f11b3", size = 1628586, upload-time = "2025-03-12T22:12:53.324Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/02/12c73fd423eb9577b97fc1924966b929eff7074ae6b2e15dd3d30cb9e4ae/segno-1.6.6-py3-none-any.whl", hash = "sha256:28c7d081ed0cf935e0411293a465efd4d500704072cdb039778a2ab8736190c7", size = 76503, upload-time = "2025-03-12T22:12:48.106Z" }, +] + +[[package]] +name = "semver" +version = "3.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/d1/d3159231aec234a59dd7d601e9dd9fe96f3afff15efd33c1070019b26132/semver-3.0.4.tar.gz", hash = "sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602", size = 269730, upload-time = "2025-01-24T13:19:27.617Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/24/4d91e05817e92e3a61c8a21e08fd0f390f5301f1c448b137c57c4bc6e543/semver-3.0.4-py3-none-any.whl", hash = "sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746", size = 17912, upload-time = "2025-01-24T13:19:24.949Z" }, +] + +[[package]] +name = "setuptools" +version = "81.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/1c/73e719955c59b8e424d015ab450f51c0af856ae46ea2da83eba51cc88de1/setuptools-81.0.0.tar.gz", hash = "sha256:487b53915f52501f0a79ccfd0c02c165ffe06631443a886740b91af4b7a5845a", size = 1198299, upload-time = "2026-02-06T21:10:39.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/e3/c164c88b2e5ce7b24d667b9bd83589cf4f3520d97cad01534cd3c4f55fdb/setuptools-81.0.0-py3-none-any.whl", hash = "sha256:fdd925d5c5d9f62e4b74b30d6dd7828ce236fd6ed998a08d81de62ce5a6310d6", size = 1062021, upload-time = "2026-02-06T21:10:37.175Z" }, +] + +[[package]] +name = "simplejson" +version = "4.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0e/2a/54837395a3487c725669428d513293612a48d82b95a0642c936932e5d898/simplejson-4.1.1.tar.gz", hash = "sha256:c08eb9f7a90f77ae470e19a07472e9a79ebc0d1c2315d86a72767665bd5ba79f", size = 118860, upload-time = "2026-04-24T19:24:59.819Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/da/3ba5e87e917094961e7b51b541c88f735f1ca37d580ac78a9302b468f64e/simplejson-4.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7f61eefab86235c800e7f4e37d977080ec424bb2bf0b74e95a2d17ecb48eac0a", size = 111675, upload-time = "2026-04-24T19:22:30.344Z" }, + { url = "https://files.pythonhosted.org/packages/fe/8a/d0c08f4b8934b64469a63d461a68a01d5cc32faf313400dda2bdc1075a29/simplejson-4.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4484960512db9c8124bfa91e0d8a9f9c302338f1c5454e74c21d7d022df10f46", size = 90544, upload-time = "2026-04-24T19:22:32.095Z" }, + { url = "https://files.pythonhosted.org/packages/c2/2d/7832ed91cf4900f86c783d589bfac53358abfccb278f1c8b55eec167b395/simplejson-4.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b75c7ef874dbb350f41827cdf3cee23f5257bdcb0df46d4c01b34badb62dcfe8", size = 90895, upload-time = "2026-04-24T19:22:34.412Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d6/a2a7a482fa43aaeaefc001491d381960f5e685ee4645343e0e037cebb57c/simplejson-4.1.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c7494c75b95171194f965ea609e97081837a26494d91dcc046ad27dd9c3503e2", size = 168660, upload-time = "2026-04-24T19:22:35.717Z" }, + { url = "https://files.pythonhosted.org/packages/aa/06/7a6482f336338dbdb6ca6d3099b2fdc1c74c47eea3c6511975751e9198df/simplejson-4.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1778e09a6e4bb4ef304627915dc4a838569d9e6b737c787925b4e98244bbbc16", size = 167264, upload-time = "2026-04-24T19:22:37.415Z" }, + { url = "https://files.pythonhosted.org/packages/c9/43/039982e956b06c6b019d48bdf9d4ec06f298adf6136552ad1979b94be0fd/simplejson-4.1.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:67e43e7c0555e10de6d83e1408035652fad28c983516e38c4e3a9a748c9af129", size = 176909, upload-time = "2026-04-24T19:22:38.872Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f5/e3ad592d089922abce2c2ea377548953ac55ffcbe061d600f01b9db2e6b6/simplejson-4.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93bf6653420258372444de90194dab8de8ff13d74b5d4263a5fefbbe8b8d2060", size = 165930, upload-time = "2026-04-24T19:22:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b9/f830b648ae04601e6813306535d8e0a4c178d6453cec539b85dafdac80ed/simplejson-4.1.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0662cfe0482c9796bd097213b27f006815bfdc9b671264c3c0b7fc0e72b71d00", size = 174710, upload-time = "2026-04-24T19:22:42.437Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3e/82c8997c4ef2ef6c832fbfc3bb2ed14a212616a284100af03b552ea7e072/simplejson-4.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a9ab55d2459f6d0fdf9984a7a0fb0280dae12979f4fcc3171f5096a4fcf5fafe", size = 167685, upload-time = "2026-04-24T19:22:44.023Z" }, + { url = "https://files.pythonhosted.org/packages/4d/03/80e67a6c63fe812094c681917a5c5d403e34904d200570416863fe2e8328/simplejson-4.1.1-cp310-cp310-win32.whl", hash = "sha256:dfb84ace97acbdf1916c5a675387493fc5a7f67c2e15d4a7687143f8c73024d4", size = 88317, upload-time = "2026-04-24T19:22:45.547Z" }, + { url = "https://files.pythonhosted.org/packages/f4/05/d4fa2c024d566bddff732a2aa437faa4cbee15ee277e2a855faf91a9d906/simplejson-4.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:8eb821ef27f688f59ed4a93b17a666a7ebacf8dd65fecaa2b3c531a3aea62eaf", size = 90461, upload-time = "2026-04-24T19:22:47.447Z" }, + { url = "https://files.pythonhosted.org/packages/1e/25/39013ffe279d90093ec1c848565b3683c586906c10fa55d9000ec29d046b/simplejson-4.1.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2867c64d92abd1992c15666fae198203093f593e43d6b81adf176bae530d493a", size = 111538, upload-time = "2026-04-24T19:22:49.051Z" }, + { url = "https://files.pythonhosted.org/packages/f2/ae/2c272971c8a87e2539c54a98eb6ff037bee1e2e93943c3986cf7500a4f3a/simplejson-4.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c47c46e16c8ea9e4850061e6ed5aa2b9cd2074cb2274bfd9c138cba15ce7453", size = 90594, upload-time = "2026-04-24T19:22:50.408Z" }, + { url = "https://files.pythonhosted.org/packages/4e/a2/6eebfb99dedc139f549200f61ade6d1890ac5707c5d427bdfa6fe39c9313/simplejson-4.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e294e33dbf316a9bbdd4030d46503c9b0f19470ae7ad6af5bae6c426bc2e869f", size = 90718, upload-time = "2026-04-24T19:22:51.694Z" }, + { url = "https://files.pythonhosted.org/packages/80/7e/c9e6c0c4ad8415e64dad0c47f619b556b02680a41631b4dbc281d55dc54d/simplejson-4.1.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7ce252b28fddbdd83db5bd7d93dad2a8a591d7ada098afec9c1b23d6b722a7a4", size = 180901, upload-time = "2026-04-24T19:22:53.025Z" }, + { url = "https://files.pythonhosted.org/packages/34/09/69e331e3994b1ed9be6ce9ace4ade704e7ed503edf869929ca7bb404eda8/simplejson-4.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c44ef6b02a4eb67ed17a72342341792149b3ff46f15426c26e970e49addf327", size = 178133, upload-time = "2026-04-24T19:22:54.574Z" }, + { url = "https://files.pythonhosted.org/packages/5d/40/ed806f24afef295c1032448f5ff6f6f2979392d5645ddb9f4fed7f38194d/simplejson-4.1.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82bfca2b85a34178c25829c703f0a9e9f113a5af7539285bd3efb583a0bf1ba3", size = 188155, upload-time = "2026-04-24T19:22:56.044Z" }, + { url = "https://files.pythonhosted.org/packages/38/94/8d6f515b827b0f7881a49c8c1ac6920b7ae9428939ef04238c973278b42a/simplejson-4.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e4b23f71dd781f8830f1663dc01a4944d3dbf87a1f93d78fba1cf64722d0ccf", size = 176225, upload-time = "2026-04-24T19:22:57.981Z" }, + { url = "https://files.pythonhosted.org/packages/c9/fd/6dffb4956563d48bbe46b91ff341adae34920e94008fd6b8d728072abfc7/simplejson-4.1.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:82fee635d7b73ad801030b05a75fbd34a098da0c2ecf600667a03636d09e1e42", size = 185535, upload-time = "2026-04-24T19:22:59.618Z" }, + { url = "https://files.pythonhosted.org/packages/de/d2/a509ee37763e79aec75d68f8521db1440306edeba3b8b4064ab4ee8bf1d9/simplejson-4.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:68e62eda21192c5ea9bb92d571ca46a4477fef48762f50d433de2b4253051551", size = 179302, upload-time = "2026-04-24T19:23:01.324Z" }, + { url = "https://files.pythonhosted.org/packages/d8/23/5b343bfd2a79d3b6818e4db3586c405a001a090d4c89d336e31273ce7177/simplejson-4.1.1-cp311-cp311-win32.whl", hash = "sha256:ffd3d82294b47f5ec64050021ace95fd62628a0c1cc8bbf4d06d2d1fb697e055", size = 88408, upload-time = "2026-04-24T19:23:02.808Z" }, + { url = "https://files.pythonhosted.org/packages/38/04/df9b37aedbd524dca20840d25ebe01d6ae486b89792aeff5d15b9c4114f7/simplejson-4.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:78a3fe0995be42bed62a26aa78e0e0b4d87c6545785346b9cc898f3389569a35", size = 90526, upload-time = "2026-04-24T19:23:04.408Z" }, + { url = "https://files.pythonhosted.org/packages/60/25/e90998fe8e480eb43b966c09e835379887d427567ebd496563d3b1e16b19/simplejson-4.1.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:19040a17154dc03d289bab68d73ce0a6a0be01de30c584bbdd93490bead14b22", size = 112414, upload-time = "2026-04-24T19:23:06.084Z" }, + { url = "https://files.pythonhosted.org/packages/9c/a0/abd4785f36c3400f1fbb21f517be39295a750a714f04b7ee175adf6ef580/simplejson-4.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a94ebaecdbaa80d9551a3ec6bf0c9302fc8b53ab6c1b2bfd498a1df4cb28158d", size = 91120, upload-time = "2026-04-24T19:23:07.877Z" }, + { url = "https://files.pythonhosted.org/packages/b8/78/fc060d2e3b13c6ec59288574b8efac64075e316b2afba4396a56b2422f78/simplejson-4.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:67341c95c0a168ab4a6d1e807e50463f1c8da932c3286d81e201266c427061fa", size = 91055, upload-time = "2026-04-24T19:23:09.264Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b6/156a8de1e1b47694f0e7de6675866936608d45dc68388fd017d36f8693be/simplejson-4.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:45ec18e337fec538b7e902d489505c450b2454653d1290f3f50385e6fd8aa607", size = 190297, upload-time = "2026-04-24T19:23:11.226Z" }, + { url = "https://files.pythonhosted.org/packages/86/1c/e4d0eab695be3eb21d0f46bce820752031f03e7113f9c80a9b3c73ee7157/simplejson-4.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:820c69a4710400e9b248d5670647d60be58824369282d3925e516b3ff1a7cd82", size = 187002, upload-time = "2026-04-24T19:23:12.982Z" }, + { url = "https://files.pythonhosted.org/packages/76/0e/7f5a59d29426b062d5928fb88b403c3f797129d53be7102f955dbe51aa44/simplejson-4.1.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e708d373a10e4378ef2d59f8361850c7150fd907ed49efe49bc5492160476d1", size = 195146, upload-time = "2026-04-24T19:23:14.517Z" }, + { url = "https://files.pythonhosted.org/packages/78/18/9943db224dd4d5fa3c090c3e56a94c37b254338c83995ec5680285111c40/simplejson-4.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:980fc33353f81fd12d8c49d44f8c2760d1dc8192285e627c5180d141035b228a", size = 183931, upload-time = "2026-04-24T19:23:16.742Z" }, + { url = "https://files.pythonhosted.org/packages/c2/08/9a690da9a766161c06c627d805362cf159f1abe480969372b2897649b955/simplejson-4.1.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:de2ed102fff88dacf543699f53ee3a533cc11539a39baa176b7e09dd783069d6", size = 192228, upload-time = "2026-04-24T19:23:18.33Z" }, + { url = "https://files.pythonhosted.org/packages/05/88/bd8aad36b451ffb0e0a3f721d695a88befa6d1ac7d1e02ae788ca7ff4029/simplejson-4.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2785ff8edc0e28bf773a32543a6bbed46351453c997b3f6709c744e3c2f7eabb", size = 187808, upload-time = "2026-04-24T19:23:21.165Z" }, + { url = "https://files.pythonhosted.org/packages/04/ee/14f91db0d1f481533b651dafbf8cd0da088d9817f7af30c68f7f19f9c847/simplejson-4.1.1-cp312-cp312-win32.whl", hash = "sha256:2e0d5ead6d14610467ec356ec1f6b5d8a56aa216abaad8d41c8b873b16cf313f", size = 88512, upload-time = "2026-04-24T19:23:22.764Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c4/90de06b2d8737c68c05ff9274113f854dbf6a5f28b7a955212111672cb57/simplejson-4.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:63a5451f557d6be48a231bae932458655c620902b868170b2f1c8afed496f6b4", size = 90748, upload-time = "2026-04-24T19:23:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/37/a9/47b445eeb559c9593453a0648e0fd6d08e8adff64dd5e5ced66726da8a09/simplejson-4.1.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dff52fc7af272e84fc21cc5a06c927c823ca6ae00af14f3b0d7707b42775ed98", size = 113160, upload-time = "2026-04-24T19:23:26.033Z" }, + { url = "https://files.pythonhosted.org/packages/4c/65/cb72db31523c164dea5dc55b02dad065a40c478856bc7534b279d2b51906/simplejson-4.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:971aed0647ad6e840a3943bec812fcda5f2d26a5497a4981d1fb49aa4f9a396c", size = 91521, upload-time = "2026-04-24T19:23:27.572Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e5/54cb7c50ad5fdc1e0a86b7df4b135c2cbd5c4623605aa94466659098e8da/simplejson-4.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:249e2e220aa6d9b9d936bde84eb7bf79d5b6c5a8273c6e411f8b1635a9073f2d", size = 91407, upload-time = "2026-04-24T19:23:28.991Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/21a3ede87f0bf82d6c7bcb90480d50a6490eb974c6ab20881188e440957c/simplejson-4.1.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8e5cdd6a5d52299f345c15ab5678cc4249e24f383f361d986afbc3c7072a6b6b", size = 192451, upload-time = "2026-04-24T19:23:30.56Z" }, + { url = "https://files.pythonhosted.org/packages/59/df/9903edd3102bf0b5984edfcb90c88612330996efa3b4fbf8a971d6e17839/simplejson-4.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:642cec364e0676e2d5a73fa4d31d0c7c55886997caa2fde24e8292ca44d32728", size = 189015, upload-time = "2026-04-24T19:23:32.647Z" }, + { url = "https://files.pythonhosted.org/packages/98/cd/33230927a780e1398b857e3944abb914556994d252b1d765ae40d112cb25/simplejson-4.1.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:76fe296ca1df23d290033f10aaacf534fd1b3e3007e7f9ff8aa68b21413aaa78", size = 196658, upload-time = "2026-04-24T19:23:34.563Z" }, + { url = "https://files.pythonhosted.org/packages/cd/84/2c5a7444eb53e9a86d3738299bffddd9f53aeed799ded2f45368221fdb19/simplejson-4.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f0ad25b7dc4e0fb23858355819f2e994f1a5badcdcde8737eac7921c2f1ed2a", size = 185967, upload-time = "2026-04-24T19:23:36.191Z" }, + { url = "https://files.pythonhosted.org/packages/d3/68/454378e06d059cd412a7ed5d87fb6d29fd5b60f13a4d89fc1f764ff434df/simplejson-4.1.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a59ebd0533f03fd06ff0c42ba0f02d93cbcdd7944922bf3b93911327a95b901f", size = 193940, upload-time = "2026-04-24T19:23:38.151Z" }, + { url = "https://files.pythonhosted.org/packages/d5/d5/a15bf915f623a2c5a079d6e3be8256fdb8ef06f110669493a09b9d6933e0/simplejson-4.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bccbf4419676b517939852e5aeff2af6aee4dc046881c67a1581fa6f1cb01abd", size = 189795, upload-time = "2026-04-24T19:23:40.139Z" }, + { url = "https://files.pythonhosted.org/packages/d2/c9/37212ae7dc4b607f0978c408e8633f05c810884e054c33113184c6c2c8a2/simplejson-4.1.1-cp313-cp313-win32.whl", hash = "sha256:6c845363eb5fd166fb7c72243da38f4fcfde666ede7fdf2cc6fd7762894626f7", size = 88773, upload-time = "2026-04-24T19:23:41.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/a5/c7a0a47883a9015b54c9d8a4b62f2aba17bd4335b1787b9b8a0fc2fa6d52/simplejson-4.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:104d8324c34f25b4b90800bc5fa363780cbc3d8496aef061cba7ce1af9162270", size = 90888, upload-time = "2026-04-24T19:23:43.11Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/4a118a6a92eb33bb08c8e2fe7ec85cb96f0673491bb2b829930831ee4fbe/simplejson-4.1.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ed7473602b6625de793b6acba49aa949f144a475f538792067e4cf2fda2071f5", size = 110492, upload-time = "2026-04-24T19:23:44.957Z" }, + { url = "https://files.pythonhosted.org/packages/07/f4/84d160e9fa8cada1e0a9381cae4fa81eecd573577a5b34366d8ced59bdf7/simplejson-4.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:225c9caa324c5b554d009fb9cac22aee7711e71bd96f487938c659af467e828e", size = 90152, upload-time = "2026-04-24T19:23:46.355Z" }, + { url = "https://files.pythonhosted.org/packages/68/31/9a5432c433a7671107182cdc9a20ea78a70f99c4e5334aa54b6d4d0d79ed/simplejson-4.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:95407269340c7f22f09776ea7b717a52cf56cfcf119b5e45f66faa4a26445bea", size = 90115, upload-time = "2026-04-24T19:23:47.743Z" }, + { url = "https://files.pythonhosted.org/packages/78/91/3635cdb13318cb0a328abaa69e2b91251caad39d6779aa308098f341f6cb/simplejson-4.1.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3851658d642c1184d2023f0e6c9ce44a21eb1629e74e7c84ef956b128841fe12", size = 184036, upload-time = "2026-04-24T19:23:49.472Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/149b6ec5393f6849d98c59cadba888b710a8ef4b805ab91e11a566960d40/simplejson-4.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:95a3bb0f78e85f4937f99092239f2011ce06f0f2d803df5c299cc05abbeae008", size = 180543, upload-time = "2026-04-24T19:23:51.023Z" }, + { url = "https://files.pythonhosted.org/packages/df/7c/a5d968d0b527a748b667e62bea94309ccbcb1e2b108e8f0cf8547efaa12b/simplejson-4.1.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bbfdaa7c0603f75b7b14b211b7f2be44696d4e26833ad2d91d5c87bf5fb9a920", size = 188725, upload-time = "2026-04-24T19:23:52.995Z" }, + { url = "https://files.pythonhosted.org/packages/db/e3/6a8d11181d587ef00e2db9112357e6832111e56dd56b01b5c11758a1965d/simplejson-4.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:39e3c584071dced8c21b4689f0254303521daeb9b5bc1f4289755d71fa3cb0d3", size = 177492, upload-time = "2026-04-24T19:23:54.581Z" }, + { url = "https://files.pythonhosted.org/packages/67/e3/8b0eb8b06e8198cfbd1270487da163d0093df05cc4f557350cd65e2f7e79/simplejson-4.1.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:036a27bd0469b9d79557cbddb392969f876cd7f278cfbd0fba81534927a06575", size = 185281, upload-time = "2026-04-24T19:23:56.13Z" }, + { url = "https://files.pythonhosted.org/packages/dc/5f/64990f07ec9e2cb1a814c674e2e21b5693207f74ac70eb72151b847ea4e6/simplejson-4.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b70bfd2f67f3351baba08aa3ae9233c83f21fd95ae5e6b3d0ecb8c647929112f", size = 181848, upload-time = "2026-04-24T19:23:57.92Z" }, + { url = "https://files.pythonhosted.org/packages/61/a5/bbc1bc0447f339f79f99ab8c37f7f037cb2f1f93af75d6a4d553096bb0c3/simplejson-4.1.1-cp314-cp314-win32.whl", hash = "sha256:37233c72ce88d06acb92747347742b3c07871eba6789f060c179c9302dde8efe", size = 88761, upload-time = "2026-04-24T19:23:59.397Z" }, + { url = "https://files.pythonhosted.org/packages/18/72/ec1b5cbdcb140c132e6c7bdf99bd73e4f675439e77126c88f472fcffa09c/simplejson-4.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:cc0442dea71cd9cbf30a0b8b9929ab5aa6c02c0443a3d977351e6ec5bada4388", size = 91018, upload-time = "2026-04-24T19:24:00.85Z" }, + { url = "https://files.pythonhosted.org/packages/3d/97/4fa437f68ff72219bac3bf3d050de9c6265691f3a170e16954bd69d7cddd/simplejson-4.1.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c996a4d38290c515af347740659ce095b425449c164a5c9fa3977caa6eff5dbe", size = 113919, upload-time = "2026-04-24T19:24:02.287Z" }, + { url = "https://files.pythonhosted.org/packages/c2/83/59de041d09eb4a9577f7015d7263c32095dfb7fde49717dff62145d89809/simplejson-4.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c65c763fb20d7ca113c1c14dce2fc04a0fc3a57aceff533d6fdac707c7bffb40", size = 91904, upload-time = "2026-04-24T19:24:03.812Z" }, + { url = "https://files.pythonhosted.org/packages/03/8e/46bb345d540f6eb31427d984a4e518cdb182d0621814fee4fee045e8815b/simplejson-4.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0da5c9f57206ee7ef280ff7f1d924937b0a64f9a271a5ef371a2ecdbebba7421", size = 91752, upload-time = "2026-04-24T19:24:05.622Z" }, + { url = "https://files.pythonhosted.org/packages/83/e2/1b2ce97f068835eb3d253c116a4df7a3f436b7bf2fb5ff1ba29287e8b0ec/simplejson-4.1.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ea3426e786425d10e9e82f8a6eda74a7d6eb10d99165ac3d0d3bbcb65c0ea343", size = 214021, upload-time = "2026-04-24T19:24:07.447Z" }, + { url = "https://files.pythonhosted.org/packages/48/70/d93e556df6a0786298644a7c08304fcbeddc248325f23f38acbebeb21165/simplejson-4.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d75cea7a1025edd7e439b2966b3d977c45b5b899e2adaf422811b3ac702ed9fb", size = 213530, upload-time = "2026-04-24T19:24:09.289Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a5/c93bf305b9f00d7259e09e713d60e75bd0f7f53da970f716ab90491770e7/simplejson-4.1.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:63c2ada8e58f266491f19eed2eeeb7c25c6141e52f8f9e820f6bb94156cf8dbc", size = 218282, upload-time = "2026-04-24T19:24:10.991Z" }, + { url = "https://files.pythonhosted.org/packages/0c/20/a9b5d2e27ec44b069ee251bd55544fc76929a067107b1050001566ba86f3/simplejson-4.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d1fffb56305c5b475ee746cf9e04f97423ba5aaacd292dc1255bd75b1d3b124b", size = 209249, upload-time = "2026-04-24T19:24:12.662Z" }, + { url = "https://files.pythonhosted.org/packages/97/e4/e06ee682ed5df67592181f5ecb062e35878967e27f5b6e087237d4548d95/simplejson-4.1.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a6525ec733f43d0541206cffa64fd2aad5a7ae3eb76566aff49cd4db6382209a", size = 213963, upload-time = "2026-04-24T19:24:14.302Z" }, + { url = "https://files.pythonhosted.org/packages/9c/9f/1e160e4cd8cdbf062bf6a454cdf814dc7a48eb47e566fdb8f80ccb202605/simplejson-4.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:861e393260508efa64d8805a8e49c416c3484907e3f146ce966c69552b49b9a3", size = 210474, upload-time = "2026-04-24T19:24:15.917Z" }, + { url = "https://files.pythonhosted.org/packages/7a/e6/cecd913df322df5bbe7ebb8ba39e0708e505a165553900da8a7761026d6f/simplejson-4.1.1-cp314-cp314t-win32.whl", hash = "sha256:d083b89d30948a751d3d97476c2ed91e4caaa24a1a1459bdbadb8876242c71fe", size = 91134, upload-time = "2026-04-24T19:24:17.635Z" }, + { url = "https://files.pythonhosted.org/packages/97/73/f540dde99cc1d393bd062ab3b5735b777561a5d8f8a5f2e241164444d77a/simplejson-4.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:4cbb299d0528ec0447fe366d8c9641860e28f997a62730690fef905f1f41046e", size = 94467, upload-time = "2026-04-24T19:24:19.109Z" }, + { url = "https://files.pythonhosted.org/packages/ce/6a/8b74c52ffd33dbbde00fe7251fee6a0acdc8cea33f7a43805aed258fb79b/simplejson-4.1.1-py3-none-any.whl", hash = "sha256:2ce92b3748f02423e26d2bfb636fb9d7a8f67c8f5854dcae69d350d123b2eee2", size = 69195, upload-time = "2026-04-24T19:24:57.962Z" }, +] + +[[package]] +name = "sinter" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib", version = "3.10.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "matplotlib", version = "3.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "stim" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/6b/b546cc9240fb1b64417c8ca00038ce1927ffd6e8a0d4e46ad237242dbcd8/sinter-1.16.0.tar.gz", hash = "sha256:fd0f7bff97cb951345893f53b347d76f99b53977590054abc3d057150f82037b", size = 177330, upload-time = "2026-05-22T05:41:49.762Z" } + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sortedcontainers" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "stim" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/bd/c0f5d6241cdb806400a63e0c7febe22982ddf1c8761142bb0ea6b51d3f50/stim-1.16.0.tar.gz", hash = "sha256:9092a996429dcf616d8d4ca01fec886b7b310caf9425a39fcfe499005636bd52", size = 882497, upload-time = "2026-05-22T05:41:56.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/c4/b2cb8ed667da891b4835826eba3cb582c577ccc6980f15fd0e84d5e6491e/stim-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d467b5599de7e171651a1ff7fac353dd64d78df75d9c63e7d870d576eb0fd64b", size = 2043460, upload-time = "2026-05-22T05:41:19.371Z" }, + { url = "https://files.pythonhosted.org/packages/71/cc/f7ebbe95361ce7b5c5da47ce024543846d6aca9fbbedd6833aeb33dccf15/stim-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84b777678cc12e808b3d6747d57e07eed951f8ec18047a936dfa25dbc950a2e2", size = 1889327, upload-time = "2026-05-22T05:41:21.869Z" }, + { url = "https://files.pythonhosted.org/packages/c5/30/90d9ed81b10c4850e108b81346c2c6e2784126945342d591272ed090e027/stim-1.16.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41c02d52af847e0ab886c35751e8f7e17e2e0d055e390ece93a50a12dcf87e56", size = 5235305, upload-time = "2026-05-22T05:41:23.6Z" }, + { url = "https://files.pythonhosted.org/packages/4c/43/4e5036fdc3c8bdfb4d774a4fff0cb8a0f44609ae18aa858ae37f61649cd1/stim-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:609666b77197d45705e1579a9840123a53cebe614e8bf1d496c0df24f797e653", size = 2753255, upload-time = "2026-05-22T05:41:25.49Z" }, + { url = "https://files.pythonhosted.org/packages/3f/1d/3619629c01407eef4042c22299afaf8d3f5fc3b0b26c98ffb4cd86f7cc1e/stim-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d44f858f3d5d1107e674886facbb011ed85438f0888278d6aa3c1f42d9e5a5f", size = 2046328, upload-time = "2026-05-22T05:41:27.345Z" }, + { url = "https://files.pythonhosted.org/packages/be/37/3742215d5fd4e090ce7ae964e43d978d1ac9865b5865530a6d5f1063a124/stim-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1890bda08adfd6daa875d1d5e41039c5ae8c58faabc7cd1813f8d8de9f1536a2", size = 1892693, upload-time = "2026-05-22T05:41:28.958Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d8/a84d59b49395e4f8e080991915929c69e1e6a40c411a9c0998904dbf8bef/stim-1.16.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd2d28093818f981f8dedb2be160b62d818279b81748d72dc4fca6cdd160291d", size = 5248218, upload-time = "2026-05-22T05:41:31.191Z" }, + { url = "https://files.pythonhosted.org/packages/b8/87/a845b9d17ab5e352eee30169a58bd8213e85ff47c6340daff2f8a25ed28e/stim-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:b367f90826e796417932ea46c0e53d80e3c5bebac0c6633c0aa07a8fcaa4298b", size = 2755461, upload-time = "2026-05-22T05:41:33.426Z" }, + { url = "https://files.pythonhosted.org/packages/20/d9/8b70c39860e67e233178a9ef595c15a7ec718f0b88bc424ae2c6ad8f97da/stim-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3e2883216fb4f57411531c99dfa1838c0d8201c619ccd01b197b9afd54d326cf", size = 2067905, upload-time = "2026-05-22T05:41:34.9Z" }, + { url = "https://files.pythonhosted.org/packages/51/e3/45a8c0889f4629027cbdd8ed8e9f5824b5bd8b12b0f5d24be27ec0c2a3dc/stim-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b8580dfbe5ff27594dd15a83b24262630b82cf089d1463d29dbee90ffbc6898b", size = 1902644, upload-time = "2026-05-22T05:41:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/e4/71/db565f5bd0f273414e90d85551eed1c75f7b689847bd605a7cf0c4c0386d/stim-1.16.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:883b24c3c95fa69818e931e8b60daf4fc8195d159d321e7548d8706dbac16558", size = 5307850, upload-time = "2026-05-22T05:41:37.69Z" }, + { url = "https://files.pythonhosted.org/packages/bb/65/0ddfa6f76c4a137aefeee4d51a65945e0ec77cc2221322f13a5768f4c488/stim-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:85b9c544c65377a42c6b5c9a57616a5ed5580e1cabb286a604800a045c7a12fb", size = 2760794, upload-time = "2026-05-22T05:41:39.731Z" }, + { url = "https://files.pythonhosted.org/packages/e4/cf/aeb85a75eca23907ba32c09c95340489a60ff608a9a18ebd26b9ae2e2323/stim-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1822adb4920f4616b253792fe1893ad07a9bea8cbc45b2f4cdf7c75a8083cd00", size = 2068071, upload-time = "2026-05-22T05:41:42.237Z" }, + { url = "https://files.pythonhosted.org/packages/21/40/9499fb076b819b479bffad35afd34e84a93c86f117fb5431dab211adff4f/stim-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:66dbc6532169df84d127ceede353b15445e845a94aa008c5d0a4062b51cc2b02", size = 1902498, upload-time = "2026-05-22T05:41:43.564Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/6a9bca80b6ffe0fc4a3b0375ac18ff9fb1e815d152691332e55d1a9e5fa2/stim-1.16.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f22a009bad1e7816aeb70bdeafb6789e4840710da070f69cde91e2ac6cf1e800", size = 5307953, upload-time = "2026-05-22T05:41:45.32Z" }, + { url = "https://files.pythonhosted.org/packages/d7/15/db7f4b80a0903e0962f5d824ca8cb5a962836399bd45fda59961782ebb20/stim-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:55231457b5897b0ef798059aae01d9e8247fc8b2089e8a27f9f4bb13b0342af2", size = 2760785, upload-time = "2026-05-22T05:41:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/5b/f8/4266593404f455c676bfe95785f865d77e98578fc4a35af9835653a65598/stim-1.16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1e78fe10ab4c28af9ceb57ac8ed895f3efcde9607d851ef931c53d1f6f80bc8e", size = 2062900, upload-time = "2026-05-22T05:41:48.975Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d1/a898d8e587a8718daabaf886f2d0c22c126a691886765096a0776b5b463c/stim-1.16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1fa60a13ef921d6e6aea420e2fe7551d71a4a07b513d86da89e39259dd3739f9", size = 1898162, upload-time = "2026-05-22T05:41:50.973Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b2/8535802f6eb5230678b067cde35b81fc612c612698f192b31164c6a19b9f/stim-1.16.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f94040cbeeff786e7fb8860249e54d9ba3f777b5b098d21f1eccd072d3a3c32a", size = 5311829, upload-time = "2026-05-22T05:41:53.291Z" }, + { url = "https://files.pythonhosted.org/packages/f5/85/be0fe295a5c5426aec0a2f8497360d9db8083d62c04de81bf744d29a131e/stim-1.16.0-cp314-cp314-win_amd64.whl", hash = "sha256:ed3aa70f82690946ba6f70abb9dad448d49ab9499fa5161de5f286da87c30ab1", size = 2825951, upload-time = "2026-05-22T05:41:55.018Z" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "tabulate" +version = "0.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/58/8c37dea7bbf769b20d58e7ace7e5edfe65b849442b00ffcdd56be88697c6/tabulate-0.10.0.tar.gz", hash = "sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d", size = 91754, upload-time = "2026-03-04T18:55:34.402Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl", hash = "sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3", size = 39814, upload-time = "2026-03-04T18:55:31.284Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543, upload-time = "2026-03-25T20:22:03.828Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30", size = 154704, upload-time = "2026-03-25T20:21:10.473Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a", size = 149454, upload-time = "2026-03-25T20:21:12.036Z" }, + { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076", size = 237561, upload-time = "2026-03-25T20:21:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9", size = 243824, upload-time = "2026-03-25T20:21:14.569Z" }, + { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c", size = 242227, upload-time = "2026-03-25T20:21:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc", size = 247859, upload-time = "2026-03-25T20:21:17.001Z" }, + { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size = 97204, upload-time = "2026-03-25T20:21:18.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", size = 108084, upload-time = "2026-03-25T20:21:18.978Z" }, + { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", size = 95285, upload-time = "2026-03-25T20:21:20.309Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a", size = 155924, upload-time = "2026-03-25T20:21:21.626Z" }, + { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085", size = 150018, upload-time = "2026-03-25T20:21:23.002Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9", size = 244948, upload-time = "2026-03-25T20:21:24.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5", size = 253341, upload-time = "2026-03-25T20:21:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585", size = 248159, upload-time = "2026-03-25T20:21:26.364Z" }, + { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1", size = 253290, upload-time = "2026-03-25T20:21:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size = 98141, upload-time = "2026-03-25T20:21:28.492Z" }, + { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", size = 108847, upload-time = "2026-03-25T20:21:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", size = 95088, upload-time = "2026-03-25T20:21:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/07/06/b823a7e818c756d9a7123ba2cda7d07bc2dd32835648d1a7b7b7a05d848d/tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54", size = 155866, upload-time = "2026-03-25T20:21:31.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/6f/12645cf7f08e1a20c7eb8c297c6f11d31c1b50f316a7e7e1e1de6e2e7b7e/tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a", size = 149887, upload-time = "2026-03-25T20:21:33.028Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e0/90637574e5e7212c09099c67ad349b04ec4d6020324539297b634a0192b0/tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897", size = 243704, upload-time = "2026-03-25T20:21:34.51Z" }, + { url = "https://files.pythonhosted.org/packages/10/8f/d3ddb16c5a4befdf31a23307f72828686ab2096f068eaf56631e136c1fdd/tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f", size = 251628, upload-time = "2026-03-25T20:21:36.012Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f1/dbeeb9116715abee2485bf0a12d07a8f31af94d71608c171c45f64c0469d/tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d", size = 247180, upload-time = "2026-03-25T20:21:37.136Z" }, + { url = "https://files.pythonhosted.org/packages/d3/74/16336ffd19ed4da28a70959f92f506233bd7cfc2332b20bdb01591e8b1d1/tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5", size = 251674, upload-time = "2026-03-25T20:21:38.298Z" }, + { url = "https://files.pythonhosted.org/packages/16/f9/229fa3434c590ddf6c0aa9af64d3af4b752540686cace29e6281e3458469/tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd", size = 97976, upload-time = "2026-03-25T20:21:39.316Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1e/71dfd96bcc1c775420cb8befe7a9d35f2e5b1309798f009dca17b7708c1e/tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36", size = 108755, upload-time = "2026-03-25T20:21:40.248Z" }, + { url = "https://files.pythonhosted.org/packages/83/7a/d34f422a021d62420b78f5c538e5b102f62bea616d1d75a13f0a88acb04a/tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd", size = 95265, upload-time = "2026-03-25T20:21:41.219Z" }, + { url = "https://files.pythonhosted.org/packages/3c/fb/9a5c8d27dbab540869f7c1f8eb0abb3244189ce780ba9cd73f3770662072/tomli-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf", size = 155726, upload-time = "2026-03-25T20:21:42.23Z" }, + { url = "https://files.pythonhosted.org/packages/62/05/d2f816630cc771ad836af54f5001f47a6f611d2d39535364f148b6a92d6b/tomli-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac", size = 149859, upload-time = "2026-03-25T20:21:43.386Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/66341bdb858ad9bd0ceab5a86f90eddab127cf8b046418009f2125630ecb/tomli-2.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662", size = 244713, upload-time = "2026-03-25T20:21:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/df/6d/c5fad00d82b3c7a3ab6189bd4b10e60466f22cfe8a08a9394185c8a8111c/tomli-2.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853", size = 252084, upload-time = "2026-03-25T20:21:45.62Z" }, + { url = "https://files.pythonhosted.org/packages/00/71/3a69e86f3eafe8c7a59d008d245888051005bd657760e96d5fbfb0b740c2/tomli-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15", size = 247973, upload-time = "2026-03-25T20:21:46.937Z" }, + { url = "https://files.pythonhosted.org/packages/67/50/361e986652847fec4bd5e4a0208752fbe64689c603c7ae5ea7cb16b1c0ca/tomli-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba", size = 256223, upload-time = "2026-03-25T20:21:48.467Z" }, + { url = "https://files.pythonhosted.org/packages/8c/9a/b4173689a9203472e5467217e0154b00e260621caa227b6fa01feab16998/tomli-2.4.1-cp314-cp314-win32.whl", hash = "sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6", size = 98973, upload-time = "2026-03-25T20:21:49.526Z" }, + { url = "https://files.pythonhosted.org/packages/14/58/640ac93bf230cd27d002462c9af0d837779f8773bc03dee06b5835208214/tomli-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7", size = 109082, upload-time = "2026-03-25T20:21:50.506Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2f/702d5e05b227401c1068f0d386d79a589bb12bf64c3d2c72ce0631e3bc49/tomli-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232", size = 96490, upload-time = "2026-03-25T20:21:51.474Z" }, + { url = "https://files.pythonhosted.org/packages/45/4b/b877b05c8ba62927d9865dd980e34a755de541eb65fffba52b4cc495d4d2/tomli-2.4.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4", size = 164263, upload-time = "2026-03-25T20:21:52.543Z" }, + { url = "https://files.pythonhosted.org/packages/24/79/6ab420d37a270b89f7195dec5448f79400d9e9c1826df982f3f8e97b24fd/tomli-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c", size = 160736, upload-time = "2026-03-25T20:21:53.674Z" }, + { url = "https://files.pythonhosted.org/packages/02/e0/3630057d8eb170310785723ed5adcdfb7d50cb7e6455f85ba8a3deed642b/tomli-2.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d", size = 270717, upload-time = "2026-03-25T20:21:55.129Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b4/1613716072e544d1a7891f548d8f9ec6ce2faf42ca65acae01d76ea06bb0/tomli-2.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41", size = 278461, upload-time = "2026-03-25T20:21:56.228Z" }, + { url = "https://files.pythonhosted.org/packages/05/38/30f541baf6a3f6df77b3df16b01ba319221389e2da59427e221ef417ac0c/tomli-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c", size = 274855, upload-time = "2026-03-25T20:21:57.653Z" }, + { url = "https://files.pythonhosted.org/packages/77/a3/ec9dd4fd2c38e98de34223b995a3b34813e6bdadf86c75314c928350ed14/tomli-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f", size = 283144, upload-time = "2026-03-25T20:21:59.089Z" }, + { url = "https://files.pythonhosted.org/packages/ef/be/605a6261cac79fba2ec0c9827e986e00323a1945700969b8ee0b30d85453/tomli-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8", size = 108683, upload-time = "2026-03-25T20:22:00.214Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/da524626d3b9cc40c168a13da8335fe1c51be12c0a63685cc6db7308daae/tomli-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26", size = 121196, upload-time = "2026-03-25T20:22:01.169Z" }, + { url = "https://files.pythonhosted.org/packages/5a/cd/e80b62269fc78fc36c9af5a6b89c835baa8af28ff5ad28c7028d60860320/tomli-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396", size = 100393, upload-time = "2026-03-25T20:22:02.137Z" }, + { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 14583, upload-time = "2026-03-25T20:22:03.012Z" }, +] + +[[package]] +name = "tomlkit" +version = "0.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/db/03eaf4331631ef6b27d6e3c9b68c54dc6f0d63d87201fed600cc409307fd/tomlkit-0.15.0.tar.gz", hash = "sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3", size = 161875, upload-time = "2026-05-10T07:38:22.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl", hash = "sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738", size = 41328, upload-time = "2026-05-10T07:38:23.517Z" }, +] + +[[package]] +name = "toolz" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/d6/114b492226588d6ff54579d95847662fc69196bdeec318eb45393b24c192/toolz-1.1.0.tar.gz", hash = "sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b", size = 52613, upload-time = "2025-10-17T04:03:21.661Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl", hash = "sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8", size = 58093, upload-time = "2025-10-17T04:03:20.435Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/64/24/95ec527ad67b76d59299e5465b3935d05e4294b7e0290a3924b7487df30b/tornado-6.5.7.tar.gz", hash = "sha256:66c513a76cda70d53907bc27cf1447557699c2e95aa48ba27a442ff61c3ddfc2", size = 519252, upload-time = "2026-06-08T17:34:51.232Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/dc/c7043cab6fed8ae159fc1923ce829ada35c4dbd797d408a43858ffaf9639/tornado-6.5.7-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:148b2eb15c2c765a50796172c1e499649b35f30d2e3c3d3e15913cfa56bfb163", size = 448543, upload-time = "2026-06-08T17:34:38.052Z" }, + { url = "https://files.pythonhosted.org/packages/92/4f/090b1431e5a43df696feceffc268c5383cc079ecb5f08ce58f917109aafe/tornado-6.5.7-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9da38de27f1da3b78a966f0dae12b5a1ea9afe72ca805d84ff06508272ddf100", size = 446707, upload-time = "2026-06-08T17:34:39.594Z" }, + { url = "https://files.pythonhosted.org/packages/37/d8/ef374952fd5da67d4463122c2b8e5a96536ec10b4b339254c6dcde81d01c/tornado-6.5.7-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8d759e71906ee783f8867b93bf26a265743da4c1e2f4a018464c1ba019862972", size = 449774, upload-time = "2026-06-08T17:34:41.204Z" }, + { url = "https://files.pythonhosted.org/packages/35/37/d434c73f4c6e014b745b9b37085f34f40c022f007efff3d7fe65991899f3/tornado-6.5.7-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a46347a18f23fb92b396beebe0fb78f61dda0cc302445202c16203d8a18848b", size = 450745, upload-time = "2026-06-08T17:34:42.531Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2b/56b9aff361d7f1ab728a805ec7d7ea835f8807afa9f5cc690ea0e630efb9/tornado-6.5.7-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7778b30bef919231265e91c69963ce0f49a1e9c07ac900bbe75b19ce2575ba92", size = 450578, upload-time = "2026-06-08T17:34:43.787Z" }, + { url = "https://files.pythonhosted.org/packages/02/30/a7444fb23aa76860a14198fab96ac79f1866b0a6e19e26c4381b0938e50f/tornado-6.5.7-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e726f0c75da7726eec023aa62751ff8878bd2737e34fbdd33b1ae5897d2200f5", size = 449985, upload-time = "2026-06-08T17:34:45.326Z" }, + { url = "https://files.pythonhosted.org/packages/5c/42/5f0e56c01e8d9d36f4e23f367b85ae6cae0c1ecddd5e6977d8388ad27488/tornado-6.5.7-cp39-abi3-win32.whl", hash = "sha256:f8de3bf12d3efdd0cbe7c8887868198f8a91415e3f29fcf258d9b8eb7b1d9ae4", size = 451047, upload-time = "2026-06-08T17:34:46.784Z" }, + { url = "https://files.pythonhosted.org/packages/c9/a4/b393076ffb21b469eec5b328a0534cf03a3b90bfc6b1f09507cdd075d938/tornado-6.5.7-cp39-abi3-win_amd64.whl", hash = "sha256:de942f843533a039ef9fa3d9c88c7cd8a7c94553fb5ad0154270989b3d99a2c4", size = 451485, upload-time = "2026-06-08T17:34:48.248Z" }, + { url = "https://files.pythonhosted.org/packages/71/2e/7b1c769803121b809112cf9a00681c472eae1d80e32d7ec0e0bd61d0d0e1/tornado-6.5.7-cp39-abi3-win_arm64.whl", hash = "sha256:ff934fce95643af5f11efdae618eaa73d469dc588641e5c8d19295a0c65c4796", size = 450506, upload-time = "2026-06-08T17:34:49.702Z" }, +] + +[[package]] +name = "tqdm" +version = "4.68.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/5f/57ff8b434839e70dab45601284ea413e947a63799891b7553e5960a793a8/tqdm-4.68.4.tar.gz", hash = "sha256:19829c9673638f2a0b8617da4cdcb927e831cd88bcfcb6e78d42a4d1af131520", size = 792418, upload-time = "2026-07-07T09:58:18.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/2a/5e5e750890ada51017d18d0d4c30da696e5b5bd3180947729927628fc3cb/tqdm-4.68.4-py3-none-any.whl", hash = "sha256:5168118b2368f48c561afda8020fd79195b1bdb0bdf8086b88442c267a315dc2", size = 676612, upload-time = "2026-07-07T09:58:16.256Z" }, +] + +[[package]] +name = "traitlets" +version = "5.15.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/a9/a2584b8313b89f94869ddb3c4074617a691de1812a614d2d50e32ca5a7a6/traitlets-5.15.1.tar.gz", hash = "sha256:7b1c07854fe25acb39e009bae49f11b79ff6cbb2f27999104e9110e7a6b53722", size = 163344, upload-time = "2026-06-03T12:26:06.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl", hash = "sha256:770a53705f84b81ac107e83a1b3328ff2dae16094d8fc3cfc004e4b22dfd8e92", size = 85858, upload-time = "2026-06-03T12:26:04.395Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/ff/5a28bdfd8c3ebec42564ac7d0e54ca3db65044a9314a97f9564fa7a1e926/tzdata-2026.3.tar.gz", hash = "sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415", size = 198674, upload-time = "2026-07-10T08:50:37.887Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/6d/b53b99a9f2766d095985947a5782f1702cabb129a34f7a802d7197af832f/tzdata-2026.3-py2.py3-none-any.whl", hash = "sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931", size = 348168, upload-time = "2026-07-10T08:50:36.46Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, +] + +[[package]] +name = "wadler-lindig" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/67/cbae4bf7683a64755c2c1778c418fea96d00e34395bb91743f08bd951571/wadler_lindig-0.1.7.tar.gz", hash = "sha256:81d14d3fe77d441acf3ebd7f4aefac20c74128bf460e84b512806dccf7b2cd55", size = 15842, upload-time = "2025-06-18T07:00:42.843Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl", hash = "sha256:e3ec83835570fd0a9509f969162aeb9c65618f998b1f42918cfc8d45122fe953", size = 20516, upload-time = "2025-06-18T07:00:41.684Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/74/c6428f875774288bec1396f5bfcbc2d925700a4dad61727fd5f2b12f249d/wcwidth-0.8.2.tar.gz", hash = "sha256:91fbef97204b96a3d4d421609b80340b760cf33e26da123ff243d76b1fda8dda", size = 1466253, upload-time = "2026-06-29T18:11:11.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/42/3e5985a0a7e57de470b320c6d6a1a67c844f6737a587f3d44dd13d1819e7/wcwidth-0.8.2-py3-none-any.whl", hash = "sha256:d63947694a0539a1d51e01eda7caf800c291020e6cdd7e28ad7b14dd33ad4f85", size = 323166, upload-time = "2026-06-29T18:11:09.888Z" }, +] + +[[package]] +name = "win32-setctime" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867, upload-time = "2024-12-07T15:28:28.314Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083, upload-time = "2024-12-07T15:28:26.465Z" }, +] + +[[package]] +name = "wrapt" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/a4/282c8e64300a59fc834518a54bf0afabb4ff9218b5fa76958b450459a844/wrapt-2.2.2.tar.gz", hash = "sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302", size = 129068, upload-time = "2026-06-20T23:49:44.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/8b/59781d0fe7b0adfbea37f600857de4be68921e454aeecf1a11bda35cdccc/wrapt-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:055e6fcfaa28e58c6a8c247d48b92be9d56f818b7068aa4f22b15b3343a09931", size = 80556, upload-time = "2026-06-20T23:47:28.473Z" }, + { url = "https://files.pythonhosted.org/packages/94/dc/66c61aca927230c9cf97a3cb005c803971a1076ff9f7d61085d035c20085/wrapt-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8374eb6b1a58809211e84ff835a182bb17ab2807a5bfef23204c8cff38178a00", size = 81648, upload-time = "2026-06-20T23:47:30.504Z" }, + { url = "https://files.pythonhosted.org/packages/23/1b/545eee1c18f3af4cf140bb5822b6ef81ebe569df0a63ac109973103a30a5/wrapt-2.2.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:656593bb3f5529f03d27af4136c4d7b11990e470bcbc6fefa5ef218695bece55", size = 152956, upload-time = "2026-06-20T23:47:31.867Z" }, + { url = "https://files.pythonhosted.org/packages/44/a7/6f42a3d03e44dc612a5dcff324e7366075a7857f0be2d49a8cb8a68279b8/wrapt-2.2.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfb00cb7bb22099e2f64b7340fb96113639aa7260c0972af3797ace2297b936c", size = 154771, upload-time = "2026-06-20T23:47:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/bf/55/4d76175aaa97523c38f1d28f79d18ab41a1b116814158a818bc0eba00571/wrapt-2.2.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e7f10ee0bd53673bfd52b67cbce83336fe6cad90d2377b03baf66491d2bbfb91", size = 149460, upload-time = "2026-06-20T23:47:34.712Z" }, + { url = "https://files.pythonhosted.org/packages/84/9b/12e23264d8f4735e8483262f95c5a6b03c3665fd2a84bdf99a45b6a2f4ec/wrapt-2.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4402f57c5f0d0579599858ffbdd9bf4e3f0972f51096f2bd6cc7dab6b76ee49e", size = 153648, upload-time = "2026-06-20T23:47:36.092Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a3/bcd5ec37289dcd85ecd4d15395a6a6063d60bc45ff94a9d77814e1e54d64/wrapt-2.2.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:3a4eb7964ff4643d333c84f880bcf554652b2a1050aebc54ae696327f61acfaf", size = 148502, upload-time = "2026-06-20T23:47:37.623Z" }, + { url = "https://files.pythonhosted.org/packages/f2/be/716d708f607fa70f8a6eb47dff8ee945d5278dfc89ffeeff33039d052e63/wrapt-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e542b7c5af91e2123a8aabf19894319d5ec4268d2a9ffd2f239386133fc47746", size = 152238, upload-time = "2026-06-20T23:47:39.118Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c0/1a48e7e54501274f5d906f18372221b13183b0afbb5b8bb4c7ca0392c0b4/wrapt-2.2.2-cp310-cp310-win32.whl", hash = "sha256:6e7e45b43d3c774d244fe7264378f5a3f0f383bc55a54a9866434e524540110f", size = 77278, upload-time = "2026-06-20T23:47:40.476Z" }, + { url = "https://files.pythonhosted.org/packages/b0/82/9cd69a1af288fbdedf01a10e3c8a0b6890b08c7f3f96d36a213699dbcd94/wrapt-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:955f1d6e72a352e478de8d8b503abe301c5e139a141b62eb0923bd694995025f", size = 80131, upload-time = "2026-06-20T23:47:41.785Z" }, + { url = "https://files.pythonhosted.org/packages/7f/73/8db7e27daef37ae70a53ea62bef7fe80cc51a8b5e9e9181a8be6eb9a999c/wrapt-2.2.2-cp310-cp310-win_arm64.whl", hash = "sha256:b89d8d73c82db2bb7e6090b3afd7973f980d24e905cc34394eab60b884b3bf67", size = 79615, upload-time = "2026-06-20T23:47:43.109Z" }, + { url = "https://files.pythonhosted.org/packages/27/15/0c2d55168707465abfc41f33c0b23d792a5fa9b65c26983606940900a120/wrapt-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73", size = 80782, upload-time = "2026-06-20T23:47:44.367Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b5/5c0b093eb48f8a062ef6267d3cb36e9bb1b88440181f6545a383c60efdf8/wrapt-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e", size = 81678, upload-time = "2026-06-20T23:47:45.857Z" }, + { url = "https://files.pythonhosted.org/packages/34/f3/de70937472dd3e8a4e6811192f9c6075efdffd4a2cd9b4596bf160f89668/wrapt-2.2.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d", size = 159671, upload-time = "2026-06-20T23:47:47.345Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ec/40aed2330e7f02ecf74386ffcfef9ccb7108c6a430f15b6a252b663b1bed/wrapt-2.2.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328", size = 160785, upload-time = "2026-06-20T23:47:48.759Z" }, + { url = "https://files.pythonhosted.org/packages/45/04/aa5309beed5344b00220ae6b3b24055852192656194c27947bee1736306a/wrapt-2.2.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5", size = 153699, upload-time = "2026-06-20T23:47:50.177Z" }, + { url = "https://files.pythonhosted.org/packages/01/df/2def7e99d1fe87eea413f95f671924cdddcb08823b1ffd212748dfa6d062/wrapt-2.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0", size = 159695, upload-time = "2026-06-20T23:47:51.602Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f6/a906d01a2ce12157bad2404957b3e2140da354b8a70b2fa48bbf282871c0/wrapt-2.2.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae", size = 152813, upload-time = "2026-06-20T23:47:53.03Z" }, + { url = "https://files.pythonhosted.org/packages/02/49/bc0086292d239575b4c08f4cf8a4079fa58abbad58ec23abf84833a283ed/wrapt-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099", size = 158809, upload-time = "2026-06-20T23:47:54.391Z" }, + { url = "https://files.pythonhosted.org/packages/55/83/8fbd034de1f3e907edaa18786d5dd8f6932874edee0826c7cecb5cab03a1/wrapt-2.2.2-cp311-cp311-win32.whl", hash = "sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c", size = 77414, upload-time = "2026-06-20T23:47:55.882Z" }, + { url = "https://files.pythonhosted.org/packages/7e/9c/23695baa331c6de4e874c3d78b8e0bed92e1d2a274e665b29858f6841672/wrapt-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971", size = 80368, upload-time = "2026-06-20T23:47:57.237Z" }, + { url = "https://files.pythonhosted.org/packages/08/49/40cefc342bf89b234a4490d741290fce781774b831aefb39c25471da96c9/wrapt-2.2.2-cp311-cp311-win_arm64.whl", hash = "sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30", size = 79489, upload-time = "2026-06-20T23:47:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/2a/85/180b40628b23772692a0c76e8030114e1c0ae068470ed531919f0a5f2a4a/wrapt-2.2.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b", size = 81484, upload-time = "2026-06-20T23:47:59.924Z" }, + { url = "https://files.pythonhosted.org/packages/94/f2/21c90f2a16689702e2aaff45795b11018dff2c9b1242bac10d225483f676/wrapt-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb", size = 82151, upload-time = "2026-06-20T23:48:01.303Z" }, + { url = "https://files.pythonhosted.org/packages/5f/b3/7e6e9fcf4fe7e1b69a49fe6cc5a44e8224bab6283c5233c97e132f14908e/wrapt-2.2.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a", size = 169828, upload-time = "2026-06-20T23:48:02.719Z" }, + { url = "https://files.pythonhosted.org/packages/0b/43/894f132d857ed5a9904d937baf368badcbe5ea9e436e2f1930fe21c9f1f0/wrapt-2.2.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900", size = 171544, upload-time = "2026-06-20T23:48:04.266Z" }, + { url = "https://files.pythonhosted.org/packages/29/de/3c833e03725b477e9ea34028224dd21a48781830101e4e036f77e8b6b102/wrapt-2.2.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79", size = 160663, upload-time = "2026-06-20T23:48:05.708Z" }, + { url = "https://files.pythonhosted.org/packages/33/be/27edce350b24e3054d9d047f65f16d4c4d4c1f3f31c4278a1f8a95c723c8/wrapt-2.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a", size = 169387, upload-time = "2026-06-20T23:48:07.243Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c4/9fd9679af8bf38e146652c7f47b6b352c3e5795b4ad1c0b7f94e15ac2aa7/wrapt-2.2.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf", size = 158849, upload-time = "2026-06-20T23:48:08.91Z" }, + { url = "https://files.pythonhosted.org/packages/bc/c2/aa6c0c2206803068c6859dabe01f8c84c43744da93d4c67b8946d21655ee/wrapt-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab", size = 168147, upload-time = "2026-06-20T23:48:10.374Z" }, + { url = "https://files.pythonhosted.org/packages/42/63/3eb25da41049d20ae18fcab2dd8b056e02387c4bfa626cbdfb7c3b872e4f/wrapt-2.2.2-cp312-cp312-win32.whl", hash = "sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da", size = 77734, upload-time = "2026-06-20T23:48:11.769Z" }, + { url = "https://files.pythonhosted.org/packages/da/09/0390e008a305360948fa9ce69507d041ac12cb2ee5d28e34467e2ee79391/wrapt-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f", size = 80585, upload-time = "2026-06-20T23:48:13.117Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b3/84c445c66969f2d3457276b183a48c91097d59bbef9af6c075366b0f8c36/wrapt-2.2.2-cp312-cp312-win_arm64.whl", hash = "sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8", size = 79553, upload-time = "2026-06-20T23:48:14.5Z" }, + { url = "https://files.pythonhosted.org/packages/43/fc/f32f4b22c6511173c11d9e541ab4e7d8467a0f1b3455acaf784115d31ff8/wrapt-2.2.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69", size = 81296, upload-time = "2026-06-20T23:48:15.881Z" }, + { url = "https://files.pythonhosted.org/packages/72/06/4d117d5d77a9344776c0248b24dae3d3dd2f58e5f765fa08cf887072e719/wrapt-2.2.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617", size = 81841, upload-time = "2026-06-20T23:48:17.262Z" }, + { url = "https://files.pythonhosted.org/packages/15/ff/63ad96f98eb58a742b1a20d80f21da88924405910149950b912368150468/wrapt-2.2.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e", size = 167882, upload-time = "2026-06-20T23:48:18.764Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/8bb62d8933df7acf3247194e6e9fc68edf9d2fa203252c89c94b319dd472/wrapt-2.2.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d", size = 167411, upload-time = "2026-06-20T23:48:20.315Z" }, + { url = "https://files.pythonhosted.org/packages/17/09/8789dcb09ee1de715727db7521aabbb68ffa68dfade3a49468440cfced49/wrapt-2.2.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b", size = 158607, upload-time = "2026-06-20T23:48:21.728Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/66e02562d53ee67d841f175e38e3c993c2d78a3e104c576cad61c028b43c/wrapt-2.2.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c", size = 166367, upload-time = "2026-06-20T23:48:23.177Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a3/832ac4e41222fb263b3042d42c2f08d305db7d0f0c9b1d3a271a9eede8f6/wrapt-2.2.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f", size = 157176, upload-time = "2026-06-20T23:48:24.711Z" }, + { url = "https://files.pythonhosted.org/packages/b7/01/1bd5e4d2df9c0178989ac8da9186543465388588ee2ef153e2591accebef/wrapt-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94", size = 167025, upload-time = "2026-06-20T23:48:26.118Z" }, + { url = "https://files.pythonhosted.org/packages/1c/69/583ed25291ab53e1ec117135fb1c33425e2f46d2bc8f29c17f7a94cf4274/wrapt-2.2.2-cp313-cp313-win32.whl", hash = "sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d", size = 77605, upload-time = "2026-06-20T23:48:27.643Z" }, + { url = "https://files.pythonhosted.org/packages/29/68/e69fc6d06e1523c68e0d00f95c9aed1158ce9908ee41603f7f2eae3d5db6/wrapt-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4", size = 80508, upload-time = "2026-06-20T23:48:29.013Z" }, + { url = "https://files.pythonhosted.org/packages/55/21/fe7a393d9e5dc0923bed8f5d857e9dcff210f1fa0888c02cc8f3ffaa55aa/wrapt-2.2.2-cp313-cp313-win_arm64.whl", hash = "sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac", size = 79565, upload-time = "2026-06-20T23:48:30.429Z" }, + { url = "https://files.pythonhosted.org/packages/b6/e5/c120d13bf5091164f68c3c1657e84f16f57e71d978421b626393ac5bd7eb/wrapt-2.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5", size = 83264, upload-time = "2026-06-20T23:48:31.807Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b0/d4a1eb97e0e286625bdf21bc7f702637f9607787ffbbdb5ec14d50c79dbf/wrapt-2.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec", size = 83791, upload-time = "2026-06-20T23:48:33.482Z" }, + { url = "https://files.pythonhosted.org/packages/18/1e/f060df47755e87b57684cee7bfc1362b204df55fac96ffebc0631b697b79/wrapt-2.2.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9", size = 203399, upload-time = "2026-06-20T23:48:34.97Z" }, + { url = "https://files.pythonhosted.org/packages/c4/de/2316a757a1abb6453700b79d83e532146dcef2611348282d4d8889792161/wrapt-2.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c", size = 210461, upload-time = "2026-06-20T23:48:36.569Z" }, + { url = "https://files.pythonhosted.org/packages/ed/29/d1160785ae18ca2495a6d82a21154103d74f656c9fd457fb35f6b11b965a/wrapt-2.2.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194", size = 195313, upload-time = "2026-06-20T23:48:38.175Z" }, + { url = "https://files.pythonhosted.org/packages/f5/2d/7caa9598ae61a9cf0989cc501739cbeeb7d650ab3193cca1407b9af0c6ab/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066", size = 206116, upload-time = "2026-06-20T23:48:39.804Z" }, + { url = "https://files.pythonhosted.org/packages/ac/02/281ea1088b8650d865f311b35cf86fd21df89128e2909714f1161e01c9d0/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20", size = 192668, upload-time = "2026-06-20T23:48:41.346Z" }, + { url = "https://files.pythonhosted.org/packages/be/7d/976e2d5b4b5c5babda40974edd54d0a5585cb60132ed86b46f4b80239b16/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af", size = 198891, upload-time = "2026-06-20T23:48:43.056Z" }, + { url = "https://files.pythonhosted.org/packages/59/b7/e47651797c097f75a37e2ce86dcf04048ff576f3a674f7c558df7b5e9622/wrapt-2.2.2-cp313-cp313t-win32.whl", hash = "sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9", size = 78537, upload-time = "2026-06-20T23:48:44.509Z" }, + { url = "https://files.pythonhosted.org/packages/d1/6f/9fa5d59fb06d890defb5a8f727ce6a14d2932c8760153f96956628559fee/wrapt-2.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28", size = 82005, upload-time = "2026-06-20T23:48:46.391Z" }, + { url = "https://files.pythonhosted.org/packages/15/80/4c7bd9873d1f9f7d138d93556b500469dbe24f42710b877519c2b9eb380d/wrapt-2.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0", size = 80762, upload-time = "2026-06-20T23:48:47.964Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/7fd9c3f83b2c74cbfc572a0b88aa37431e04bd8aed70d2c0efd3464206de/wrapt-2.2.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745", size = 81341, upload-time = "2026-06-20T23:48:49.39Z" }, + { url = "https://files.pythonhosted.org/packages/4b/68/1bfa43100dd90d4ef74a05897b86275cf57e1313ca14aae2545bc9f872c9/wrapt-2.2.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00", size = 81921, upload-time = "2026-06-20T23:48:50.986Z" }, + { url = "https://files.pythonhosted.org/packages/74/eb/df7b7f0b631dbbc750f39be27d8b55f65777d8ac86da80e12be41a644c4b/wrapt-2.2.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc", size = 167713, upload-time = "2026-06-20T23:48:52.598Z" }, + { url = "https://files.pythonhosted.org/packages/4d/9a/d1bd36f6d088c8e652a9383cabbd49af30b8c576302a7eccddbab6963e3f/wrapt-2.2.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95", size = 166779, upload-time = "2026-06-20T23:48:54.33Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ae/24ffacd4187fac2740a1972093929e836dea092d42c87d728cd98fee11a6/wrapt-2.2.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33", size = 158407, upload-time = "2026-06-20T23:48:55.944Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ed/974427668249a356051e8d67d47fa54ef6c777f0fcf3bae9d292c047d4b6/wrapt-2.2.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab", size = 166594, upload-time = "2026-06-20T23:48:57.617Z" }, + { url = "https://files.pythonhosted.org/packages/fb/5f/e1d7c6e4523f78db2fbd7826babd0348da1d5e0834c4f918b9ab5757dfae/wrapt-2.2.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663", size = 157068, upload-time = "2026-06-20T23:48:59.171Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c1/7ebd1027f00700c0b0233b20aceef2b4784294ed64971424c4a78e069e34/wrapt-2.2.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d", size = 166470, upload-time = "2026-06-20T23:49:00.737Z" }, + { url = "https://files.pythonhosted.org/packages/99/eb/974e471a6a978b8180186b8a9dc5ae3361ce269a967190b709b8ce17abfb/wrapt-2.2.2-cp314-cp314-win32.whl", hash = "sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56", size = 78062, upload-time = "2026-06-20T23:49:02.327Z" }, + { url = "https://files.pythonhosted.org/packages/49/ec/e1281156cdc7a66693838ad7a0865ad641c74abd337a957d668b575aaffb/wrapt-2.2.2-cp314-cp314-win_amd64.whl", hash = "sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406", size = 80832, upload-time = "2026-06-20T23:49:03.837Z" }, + { url = "https://files.pythonhosted.org/packages/45/7d/1b6b5ddd94005a2dac97a4490c9838f3154977850d633abcb65b30089437/wrapt-2.2.2-cp314-cp314-win_arm64.whl", hash = "sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c", size = 80029, upload-time = "2026-06-20T23:49:05.237Z" }, + { url = "https://files.pythonhosted.org/packages/b0/33/9ebcf8aafe91c601127cbd93708c16aa8f688f34a10bf004046803ecdc4f/wrapt-2.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a", size = 83357, upload-time = "2026-06-20T23:49:06.632Z" }, + { url = "https://files.pythonhosted.org/packages/39/38/ec45b635153327b52e52732a0ea980e5f00b7efba65f9e018828f1e69daa/wrapt-2.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063", size = 83794, upload-time = "2026-06-20T23:49:08.098Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ea/1a89e6d3b7a83c3affe5c09cde77792c947e63e4bc85ad84cd5bb9abb0d8/wrapt-2.2.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f", size = 203362, upload-time = "2026-06-20T23:49:09.811Z" }, + { url = "https://files.pythonhosted.org/packages/19/d8/3b58763d9863b5a73771c0d97110f9595d248db454009e07e1535ee905a4/wrapt-2.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81", size = 210449, upload-time = "2026-06-20T23:49:11.521Z" }, + { url = "https://files.pythonhosted.org/packages/2d/6f/17fd9e053103d8be148d20d5d7505facc72d5fe1f9127973904ceaed79cf/wrapt-2.2.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c", size = 195349, upload-time = "2026-06-20T23:49:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/d0d1ccaaa12cb7dccf28a23f0279a608ba498f71e81d949d5ed54bcfd5c1/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff", size = 206099, upload-time = "2026-06-20T23:49:15.051Z" }, + { url = "https://files.pythonhosted.org/packages/44/b3/e8aa07b619890a2aa6cde1931b1887abb08820721b564a5f80b7ca3f3aa0/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5", size = 192728, upload-time = "2026-06-20T23:49:16.854Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f0/1819fb50f0d3c9bd758d8a83b56f1b470dee8b5b8eac8702b7c137cea9d4/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c", size = 198842, upload-time = "2026-06-20T23:49:18.504Z" }, + { url = "https://files.pythonhosted.org/packages/67/7c/e88313f16a99930b899ef970d91c281544a470749a359decad994483bbda/wrapt-2.2.2-cp314-cp314t-win32.whl", hash = "sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca", size = 79059, upload-time = "2026-06-20T23:49:20.107Z" }, + { url = "https://files.pythonhosted.org/packages/a0/4f/ac12fda57a55068a094ec42851fb0a40e8489d8941863d517452de62e507/wrapt-2.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77", size = 82462, upload-time = "2026-06-20T23:49:21.631Z" }, + { url = "https://files.pythonhosted.org/packages/48/a7/df732dac86d9b2027c56bd163dbc883e037b16c3469614752e148d219c61/wrapt-2.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347", size = 81182, upload-time = "2026-06-20T23:49:23.199Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d2/6317eb6d4554855bbf12d61857774af34747bf88a42c19bf306de67e2fa3/wrapt-2.2.2-py3-none-any.whl", hash = "sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048", size = 61460, upload-time = "2026-06-20T23:49:42.966Z" }, +] + +[[package]] +name = "xyzservices" +version = "2026.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/08/3cb9f67a8d48021aca2a02292cc26eecd71d949ae70ad66420a8730cc302/xyzservices-2026.3.0.tar.gz", hash = "sha256:d226866a5d8e9fef337034d8da37a8298f0a1d9d1489b4018e69579eb321fea4", size = 1135736, upload-time = "2026-03-30T14:42:25.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/a9/d23012099dc88ec69a29c6407b41d89681cb674c2043cd5b467c7e299c08/xyzservices-2026.3.0-py3-none-any.whl", hash = "sha256:503183d4b322bfebc3c50cdd21192aa3e81e36c5efbf9133d54ae82143e0576b", size = 94101, upload-time = "2026-03-30T14:42:24.608Z" }, +] diff --git a/website/emitters/python/.gitignore b/website/emitters/python/.gitignore new file mode 100644 index 000000000..d06c4712d --- /dev/null +++ b/website/emitters/python/.gitignore @@ -0,0 +1,9 @@ +# uv virtual environment +.venv/ + +# scratch output (default --out); real runs point --out elsewhere +_out/ + +# python caches +__pycache__/ +*.pyc diff --git a/website/emitters/python/README.md b/website/emitters/python/README.md new file mode 100644 index 000000000..e34815bb2 --- /dev/null +++ b/website/emitters/python/README.md @@ -0,0 +1,192 @@ +# bloqade-docs-emit-python + +Emits the Bloqade **Python** API reference as Starlight-compatible **MDX**, +driven by [`griffe`](https://mkdocstrings.github.io/griffe/). One MDX page is +produced per module, using the frozen API-component contract (see +`website/src/components/api/`). Generated pages carry **no import lines** — the +components are auto-imported globally (`astro-auto-import`, see +`website/astro.config.mjs`). + +This is Phase B2 of the docs-site build. It writes only into its own output +directory; it never edits `astro.config.mjs`, `src/components/**`, or any other +site file. + +## Install / run (uv project) + +```bash +cd website/emitters/python +uv sync + +uv run python -m bloqade_docs_emit_python \ + --package bloqade \ + --src /path/to/bloqade-circuit/src/bloqade \ + --repo QuEraComputing/bloqade-circuit \ + --ref v0.14.1 \ + --version dev \ + --mount api/python \ + --out ./_out \ + --docstring-style google +``` + +### Flags + +| Flag | Required | Default | Meaning | +| --- | --- | --- | --- | +| `--package` | yes | — | Top-level import package (e.g. `bloqade`). | +| `--src` | yes | — | Path to the package root dir (the folder named like `--package`, e.g. `.../src/bloqade`). | +| `--repo` | yes | — | Source repo slug for GitHub source links (`owner/name`). | +| `--ref` | yes | — | Git ref (tag/branch/sha) used in `blob/` source URLs. | +| `--version` | yes | — | API doc version; written to frontmatter `apiVersion`. | +| `--mount` | no | `api/python` | Site mount path used to build inventory URLs (independent of `--out`). | +| `--out` | no | `emitters/python/_out` | Output dir for MDX + `inventory.python.json`. Point a later phase at `src/content/docs/api/python/vX`. | +| `--repo-root` | no | git top-level of `--src` | Root used to compute file relpaths in source URLs. | +| `--docstring-style` | no | `google` | `google` \| `numpy` \| `sphinx` — how griffe parses docstrings. | +| `-v/--verbose` | no | off | Show griffe + emitter warnings (silenced by default). | + +griffe search paths are set to the **parent** of `--src` so submodules resolve +(`search_paths=[dirname(src)]`, `loader.load("")`). + +## Output layout + +``` +/ + bloqade/ + index.mdx # bloqade (package __init__ -> index) + task.mdx # bloqade.task + squin/ + index.mdx # bloqade.squin + kernel.mdx # bloqade.squin.kernel + ... + inventory.python.json +``` + +* `__init__.py` (package) -> `index.mdx`; a plain module `foo.py` -> `foo.mdx`. +* Private modules (`_name`) and anything matching the ported `skip_keywords` + (below) are skipped. Private members (`_name`, incl. dunders) are omitted; + `__init__` is used only to build the class constructor signature. + +## What each page contains + +* Frontmatter: `title`, `description` (module summary, if any), `language`, + `fqName`, `apiVersion`, `sourceRepo`, `sourceRef`, `sourceUrl`. +* `` wrapper (summary = first docstring paragraph). +* `` per class: `bases`, `sourceUrl`, `` (constructor), + constructor ``, an `` table, then nested + `` / ``. +* `` per module-level function. +* ``, ``, ``, + ``, and a `` link, mapped from the parsed docstring. +* A module-level `` table for public module + attributes / type aliases / TypeVars. + +Docstring section mapping (griffe -> component): + +| griffe section | rendered as | +| --- | --- | +| text (summary / long description) | prose (summary also -> `summary=` / frontmatter `description`) | +| parameters | `` (merged with the real signature: name/type/default from the signature, description from the docstring) | +| other parameters | `` | +| attributes | `` | +| returns | `` (also falls back to the signature return annotation) | +| raises | `` | +| yields / receives / admonitions / examples / deprecated | prose blocks in the body | + +## Docstring-style assumption + +Defaults to **Google-style** docstrings (`--docstring-style google`), which is +what the Bloqade packages use. `numpy` and `sphinx` are accepted but untested +against the Bloqade corpus. griffe's own parser warnings (missing annotations, +params not in signature, etc.) are silenced unless `-v` is passed; they never +affect output. + +## MDX-safety strategy + +Docstrings can contain `{ } < >`, backticks, and JSX-hostile text. A docstring +must **never** break the Astro build, so every string is escaped for its exact +output context (see `escape.py`): + +* **Prose** (summaries, long descriptions, examples): `<`, `{`, `}` are replaced + with character references (`<`, `{`, `}`) — MDX renders these as + literal characters and does not treat them as element/expression delimiters. + `>` and `&` are left alone (harmless in MDX flow). Inline code spans and + fenced code blocks are detected and passed through verbatim so entities do + not leak into code. An **unterminated code fence is force-closed** at the end + of a prose block so it can never swallow the components that follow it. +* **JSX attribute values** (`name="..."`, `summary="..."`, `sourceUrl="..."`): + `&`, `"`, `<`, `>` -> HTML entities; whitespace collapsed to one line. +* **JS string literals** in `items={[{ name: '...' }]}`: `\` and `'` escaped. +* **`description` fields** (injected by the components via `set:html`): + HTML-escaped first (so any markup shows literally), then JS-escaped. +* **Signature template literals** (`code={`...`}`): `\`, `` ` `` and `${` + escaped. +* **YAML frontmatter**: double-quoted scalars with `\`/`"` escaped. + +Every per-object render is additionally wrapped in try/except: a single bad +docstring degrades to raw prose or a minimal block instead of failing the run. + +Verified: all 240 pages generated from `bloqade-circuit` compile with +`astro build` (including a real docstring with an unterminated code fence). + +## inventory.python.json + +A JSON array of `{ fqName, kind, url }` for every emitted symbol +(`kind` in `module | class | function | method | property | attribute`), +consumed by the Phase C cross-reference resolver. + +```json +[ + { "fqName": "bloqade.task", "kind": "module", + "url": "/api/python/bloqade/task/#bloqade.task" }, + { "fqName": "bloqade.task.BatchFuture.result", "kind": "method", + "url": "/api/python/bloqade/task/#bloqade.task.BatchFuture.result" } +] +``` + +**URL derivation rule.** Let `mount` = `--mount` with surrounding slashes +stripped. Each module `M` is served at `/{mount}/{M.fqName.replace('.', '/')}/` +(packages emit `index.mdx`, plain modules `.mdx`; both resolve to that +trailing-slash directory URL). Every symbol `S` documented on module `M` gets: + +``` +url = /{mount}/{M.fqName.replace('.', '/')}/#{S.fqName} +``` + +The module's own entry uses `S = M`. The `#{fqName}` anchor is exactly the +`id={fqName}` the ApiModule/ApiClass/ApiFn headings render, so an `` resolves to this URL. + +## Ported skip rules + +`SKIP_KEYWORDS` in `emitter.py` is copied **verbatim** from +`docs/scripts/gen_ref_nav.py` (the mkdocstrings nav generator): a module is +skipped if its repo-relative path contains any keyword. The `__init__ -> index` +mapping and the `skip private _* modules/members` behavior are ported too. + +## Known parity gaps vs mkdocstrings + +* **Namespace-package subtrees**: modules living under an *implicit* namespace + package (a directory with **no** `__init__.py`) that is nested inside a + regular package are not discovered — griffe's loader does not descend into + them, and even an explicit `load("a.b.c")` raises `KeyError`. In + `bloqade-circuit` this affects exactly the 6 files under + `.../analysis/validation/nocloning/` (the `validation/` dir has no + `__init__.py`). mkdocstrings hits the same class of problem — see the + `squin/cirq/emit` "missing `__init__.py`" note in `gen_ref_nav.py`. Fix + upstream by adding `__init__.py`. +* **Overloads**: only the implementation signature is rendered; + `@typing.overload` variants are not listed. +* **Inherited members**: not shown (matches mkdocstrings' default + `inherited_members: false`); only members defined directly on a class appear. +* **Re-exports / aliases**: imported names (griffe `Alias`) are intentionally + skipped, so a re-exporting `__init__.py` documents only what it defines, not + what it re-imports. This also avoids `AliasResolutionError` on unresolved + imports. +* **Rich param/return/attribute descriptions**: `description` cells are rendered + as single-line, HTML-escaped plain text (they flow through the components' + `set:html`), so embedded markdown/reST in a description is shown literally + rather than formatted. Body prose keeps full markdown. +* **Cross-reference linking**: docstring cross-refs are not yet rewritten to + `` — that is Phase C's job (this emitter only produces the inventory + that phase consumes). +* **Type aliases / TypeVars**: surfaced as module/class "Attributes" rows + (name + value), not as dedicated typedef entries. diff --git a/website/emitters/python/pyproject.toml b/website/emitters/python/pyproject.toml new file mode 100644 index 000000000..321faff9f --- /dev/null +++ b/website/emitters/python/pyproject.toml @@ -0,0 +1,19 @@ +[project] +name = "bloqade-docs-emit-python" +version = "0.1.0" +description = "Emit Bloqade Python API reference as Starlight-compatible MDX using griffe." +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "griffe>=1.5,<2", +] + +[project.scripts] +bloqade-docs-emit-python = "bloqade_docs_emit_python.__main__:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/bloqade_docs_emit_python"] diff --git a/website/emitters/python/src/bloqade_docs_emit_python/__init__.py b/website/emitters/python/src/bloqade_docs_emit_python/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/website/emitters/python/src/bloqade_docs_emit_python/__main__.py b/website/emitters/python/src/bloqade_docs_emit_python/__main__.py new file mode 100644 index 000000000..ae7be7b13 --- /dev/null +++ b/website/emitters/python/src/bloqade_docs_emit_python/__main__.py @@ -0,0 +1,110 @@ +"""CLI for the Bloqade Python API MDX emitter. + +Example: + + uv run python -m bloqade_docs_emit_python \ + --package bloqade \ + --src /path/to/bloqade-circuit/src/bloqade \ + --repo QuEraComputing/bloqade-circuit \ + --ref v0.14.1 \ + --version dev \ + --mount api/python \ + --out ./_out \ + --docstring-style google +""" + +from __future__ import annotations + +import argparse +import logging +import sys +from pathlib import Path + +from .emitter import Config, Emitter, detect_repo_root + + +def build_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser( + prog="bloqade-docs-emit-python", + description="Emit Bloqade Python API reference as Starlight-compatible MDX.", + ) + parser.add_argument("--package", required=True, help="Top-level import package, e.g. 'bloqade'.") + parser.add_argument( + "--src", + required=True, + help="Path to the package root (the dir named like --package), e.g. .../src/bloqade.", + ) + parser.add_argument( + "--repo", required=True, help="Source repo slug, e.g. 'QuEraComputing/bloqade-circuit'." + ) + parser.add_argument("--ref", required=True, help="Git ref (tag/branch/sha) for source links.") + parser.add_argument("--version", required=True, help="API doc version, e.g. 'dev' or '0.14'.") + parser.add_argument( + "--mount", + default="api/python", + help="Site mount path used to build inventory URLs (default: api/python).", + ) + parser.add_argument( + "--out", + default=str(Path(__file__).resolve().parents[2] / "_out"), + help="Output directory for generated MDX + inventory (default: emitters/python/_out).", + ) + parser.add_argument( + "--repo-root", + default=None, + help="Repo root for computing source-file relpaths (default: git top-level of --src).", + ) + parser.add_argument( + "--docstring-style", + default="google", + choices=["google", "numpy", "sphinx"], + help="Docstring style griffe should parse (default: google).", + ) + parser.add_argument( + "-v", "--verbose", action="store_true", help="Show griffe + emitter warnings." + ) + return parser + + +def main(argv: list[str] | None = None) -> int: + args = build_parser().parse_args(argv) + + logging.basicConfig( + level=logging.DEBUG if args.verbose else logging.ERROR, + format="%(levelname)s %(name)s: %(message)s", + ) + if not args.verbose: + # griffe is chatty about missing annotations; silence it unless -v. + logging.getLogger("griffe").setLevel(logging.CRITICAL) + + repo_root = args.repo_root or detect_repo_root(args.src) + + cfg = Config( + package=args.package, + src=args.src, + repo=args.repo, + ref=args.ref, + version=args.version, + mount=args.mount, + out=args.out, + repo_root=repo_root, + docstring_style=args.docstring_style, + ) + + emitter = Emitter(cfg) + stats = emitter.run() + + print(f"[bloqade-docs-emit-python] package : {cfg.package}", file=sys.stderr) + print(f"[bloqade-docs-emit-python] src : {cfg.src}", file=sys.stderr) + print(f"[bloqade-docs-emit-python] repoRoot: {repo_root}", file=sys.stderr) + print(f"[bloqade-docs-emit-python] out : {cfg.out}", file=sys.stderr) + print( + f"[bloqade-docs-emit-python] modules emitted={stats.modules_emitted} " + f"skipped={stats.modules_skipped} symbols={stats.symbols}", + file=sys.stderr, + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/website/emitters/python/src/bloqade_docs_emit_python/emitter.py b/website/emitters/python/src/bloqade_docs_emit_python/emitter.py new file mode 100644 index 000000000..2195fc6a7 --- /dev/null +++ b/website/emitters/python/src/bloqade_docs_emit_python/emitter.py @@ -0,0 +1,454 @@ +"""Walk a griffe module tree and emit one MDX page per module + an inventory.""" + +from __future__ import annotations + +import json +import logging +import os +import subprocess +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Iterator + +from griffe import GriffeLoader, Kind, Parser + +from . import escape, render + +logger = logging.getLogger("bloqade_docs_emit_python") + + +# Ported verbatim from docs/scripts/gen_ref_nav.py (mkdocstrings navigation +# generator). These substrings hide internal / deprecated / non-doc paths. +SKIP_KEYWORDS = [ + ".venv", ## skip virtual environment + "julia", ## [KHW] skip for now since we didn't have julia codegen rdy + "builder/base", ## hiding from user + "builder/terminate", ## hiding from user + "ir/tree_print", ## hiding from user + "ir/visitor", ## hiding from user + "codegen/", ## hiding from user + "builder/factory", ## hiding from user + "builder_old", ## deprecated from user + "task_old", ## deprecated from user + "visualization", ## hiding from user + "submission/capabilities", ## hiding from user + "submission/quera_api_client", + "test/", + "tests/", + "test_utils", + "docs/", + "debug/", + "squin/cirq/emit/", # missing __init__.py upstream; no docs anyway + "demo/", + "scripts/", + "examples/", + "crates/", + "benchmarks/", +] + + +@dataclass +class Config: + package: str + src: str + repo: str + ref: str + version: str + mount: str + out: str + repo_root: str + docstring_style: str + + +@dataclass +class Stats: + modules_emitted: int = 0 + modules_skipped: int = 0 + skipped_paths: list[str] = field(default_factory=list) + symbols: int = 0 + + +class Emitter: + def __init__(self, config: Config) -> None: + self.cfg = config + self.mount = config.mount.strip("/") + self.repo_root = Path(config.repo_root).resolve() + self.inventory: list[dict] = [] + self.stats = Stats() + + # ------------------------------------------------------------------ # + # URL / path helpers + # ------------------------------------------------------------------ # + + def _relpath(self, filepath: Any) -> str | None: + if filepath is None: + return None + if isinstance(filepath, (list, tuple)): + filepath = filepath[0] if filepath else None + if filepath is None: + return None + try: + rel = os.path.relpath(Path(filepath).resolve(), self.repo_root) + except Exception: # pragma: no cover - defensive + return None + return rel.replace(os.sep, "/") + + def source_url(self, obj: Any, with_line: bool = True) -> str | None: + rel = self._relpath(getattr(obj, "filepath", None)) + if rel is None: + return None + url = f"https://github.com/{self.cfg.repo}/blob/{self.cfg.ref}/{rel}" + lineno = getattr(obj, "lineno", None) + if with_line and lineno: + url += f"#L{lineno}" + return url + + def page_url(self, module_fq: str) -> str: + slug = module_fq.replace(".", "/") + return f"/{self.mount}/{slug}/" + + def symbol_url(self, module_fq: str, fq_name: str) -> str: + return f"{self.page_url(module_fq)}#{fq_name}" + + def page_path(self, module: Any) -> Path: + parts = module.path.split(".") + if self._is_package(module): + return Path(*parts, "index.mdx") + return Path(*parts[:-1], parts[-1] + ".mdx") + + @staticmethod + def _is_package(module: Any) -> bool: + fp = getattr(module, "filepath", None) + if isinstance(fp, (list, tuple)): + return True + if fp is not None and Path(fp).name == "__init__.py": + return True + return False + + # ------------------------------------------------------------------ # + # Skip rules (ported from gen_ref_nav.py) + # ------------------------------------------------------------------ # + + def should_skip_module(self, module: Any) -> tuple[bool, str]: + name = module.name + # Private module (matches gen_ref_nav's parts[-1].startswith("_")). + if name.startswith("_") and name != "__init__": + return True, f"{module.path} (private module)" + rel = self._relpath(getattr(module, "filepath", None)) or module.path + for kw in SKIP_KEYWORDS: + if kw in rel: + return True, f"{rel} (matches '{kw}')" + return False, "" + + @staticmethod + def is_private(name: str) -> bool: + return name.startswith("_") + + # ------------------------------------------------------------------ # + # Loading + walking + # ------------------------------------------------------------------ # + + def load(self) -> Any: + search_path = str(Path(self.cfg.src).resolve().parent) + parser = Parser(self.cfg.docstring_style) + loader = GriffeLoader(search_paths=[search_path], docstring_parser=parser) + return loader.load(self.cfg.package) + + def iter_modules(self, module: Any) -> Iterator[Any]: + """Yield emittable modules depth-first, honoring skip rules.""" + skip, reason = self.should_skip_module(module) + if skip: + self.stats.modules_skipped += 1 + self.stats.skipped_paths.append(reason) + return + yield module + for member in module.members.values(): + if getattr(member, "is_alias", False): + continue + try: + is_mod = member.kind == Kind.MODULE + except Exception: + continue + if is_mod: + yield from self.iter_modules(member) + + # ------------------------------------------------------------------ # + # Emission + # ------------------------------------------------------------------ # + + def run(self) -> Stats: + root = self.load() + out_dir = Path(self.cfg.out) + out_dir.mkdir(parents=True, exist_ok=True) + for module in self.iter_modules(root): + try: + self.emit_module(module, out_dir) + except Exception as exc: # pragma: no cover - defensive + logger.error("failed to emit %s: %s", module.path, exc) + self._write_inventory(out_dir) + return self.stats + + def _write_inventory(self, out_dir: Path) -> None: + path = out_dir / "inventory.python.json" + with path.open("w", encoding="utf-8") as fh: + json.dump(self.inventory, fh, indent=2) + fh.write("\n") + + def _record(self, fq_name: str, kind: str, module_fq: str) -> None: + self.inventory.append( + {"fqName": fq_name, "kind": kind, "url": self.symbol_url(module_fq, fq_name)} + ) + self.stats.symbols += 1 + + def emit_module(self, module: Any, out_dir: Path) -> None: + module_fq = module.path + doc = render.analyze_docstring(module) + lines: list[str] = [] + lines.extend(self._frontmatter(module, doc)) + lines.append( + "{/* AUTO-GENERATED by bloqade-docs-emit-python. Do not edit by hand. */}" + ) + lines.append("") + + lines.append("") + lines.append("") + self.inventory.append( + {"fqName": module_fq, "kind": "module", "url": self.symbol_url(module_fq, module_fq)} + ) + + lines.extend(render.prose_block(doc.body)) + + attr_members: list[Any] = [] + for member in module.members.values(): + if getattr(member, "is_alias", False): + continue + try: + kind = member.kind + except Exception: + continue + if self.is_private(member.name): + continue + if kind == Kind.CLASS: + lines.extend(self.emit_class(member, module_fq)) + elif kind == Kind.FUNCTION: + lines.extend(self.emit_callable(member, module_fq, "function")) + elif kind == Kind.ATTRIBUTE: + attr_members.append(member) + + if attr_members: + empty_doc = render.ParsedDoc() + table = render.attributes_table(empty_doc, attr_members) + if table: + for member in attr_members: + self._record(member.path, "attribute", module_fq) + lines.extend(table) + + lines.append("") + lines.append("") + + page = out_dir / self.page_path(module) + page.parent.mkdir(parents=True, exist_ok=True) + page.write_text("\n".join(lines), encoding="utf-8") + self.stats.modules_emitted += 1 + + def _frontmatter(self, module: Any, doc: render.ParsedDoc) -> list[str]: + cfg = self.cfg + lines = ["---", f"title: {escape.yaml_dq(module.path)}"] + if doc.summary: + lines.append(f"description: {escape.yaml_dq(doc.summary)}") + lines.append("language: python") + lines.append(f"fqName: {escape.yaml_dq(module.path)}") + lines.append(f"apiVersion: {escape.yaml_dq(cfg.version)}") + lines.append(f"sourceRepo: {escape.yaml_dq(cfg.repo)}") + lines.append(f"sourceRef: {escape.yaml_dq(cfg.ref)}") + src = self.source_url(module, with_line=False) + if src: + lines.append(f"sourceUrl: {escape.yaml_dq(src)}") + lines.append("---") + lines.append("") + return lines + + def emit_class(self, cls: Any, module_fq: str) -> list[str]: + fq = cls.path + doc = render.analyze_docstring(cls) + source_url = self.source_url(cls) + self._record(fq, "class", module_fq) + + bases = [] + for base in getattr(cls, "bases", []) or []: + b = render._annotation_str(base) + if b: + bases.append(b) + + lines: list[str] = ["") + lines.append("") + + lines.extend(render.signature_block(render.class_signature(cls))) + lines.extend(render.prose_block(doc.body)) + + # Constructor parameters (merge __init__ signature + class/__init__ docs). + init = cls.members.get("__init__") + if init is not None and not getattr(init, "is_alias", False): + init_doc = render.analyze_docstring(init) + param_doc = init_doc if init_doc.params else doc + rows = render._params_from_signature(init, param_doc, drop_self=True) + lines.extend(render.params_table(rows)) + + # Attributes (docstring section preferred, else attribute members). + attr_members = [ + m + for m in cls.members.values() + if not getattr(m, "is_alias", False) + and getattr(m, "kind", None) == Kind.ATTRIBUTE + and not self.is_private(m.name) + and "property" not in getattr(m, "labels", set()) + ] + table = render.attributes_table(doc, attr_members) + if table: + for member in attr_members: + self._record(member.path, "attribute", module_fq) + lines.extend(table) + + # Methods and properties. + for member in cls.members.values(): + if getattr(member, "is_alias", False): + continue + try: + kind = member.kind + except Exception: + continue + name = member.name + if self.is_private(name): + continue + labels = getattr(member, "labels", set()) + if kind == Kind.FUNCTION: + lines.extend(self.emit_callable(member, module_fq, "method")) + elif kind == Kind.ATTRIBUTE and "property" in labels: + lines.extend(self.emit_property(member, module_fq)) + + lines.append("") + lines.append("") + return lines + + def emit_callable(self, func: Any, module_fq: str, kind: str) -> list[str]: + fq = func.path + doc = render.analyze_docstring(func) + source_url = self.source_url(func) + self._record(fq, kind, module_fq) + + lines: list[str] = ["") + lines.append("") + + is_method = kind in ("method", "property") + try: + sig = render.function_signature(func, is_method=is_method) + except Exception as exc: # pragma: no cover - defensive + logger.debug("signature failed for %s: %s", fq, exc) + sig = f"def {func.name}(...)" + lines.extend(render.signature_block(sig)) + + if doc.summary or doc.body: + combined = (doc.summary + ("\n\n" + doc.body if doc.body else "")).strip() + lines.extend(render.prose_block(combined)) + + rows = render._params_from_signature(func, doc, drop_self=is_method) + lines.extend(render.params_table(rows)) + if doc.other_params: + other_rows = [ + { + "name": getattr(i, "name", ""), + "type": render._annotation_str(getattr(i, "annotation", None)), + "default": None, + "description": (getattr(i, "description", "") or "").strip(), + } + for i in doc.other_params + ] + lines.extend(render.params_table(other_rows, title="Other Parameters")) + + lines.extend(render.returns_block(doc, func)) + lines.extend(render.raises_block(doc)) + + for chunk in doc.extra_prose: + lines.append(chunk) + if doc.extra_prose: + lines.append("") + + if source_url: + lines.append(f'') + lines.append("") + + lines.append("") + lines.append("") + return lines + + def emit_property(self, prop: Any, module_fq: str) -> list[str]: + fq = prop.path + doc = render.analyze_docstring(prop) + source_url = self.source_url(prop) + self._record(fq, "property", module_fq) + + lines: list[str] = ["") + lines.append("") + + annotation = render._annotation_str(getattr(prop, "annotation", None)) + sig = f"{prop.name}: {annotation}" if annotation else prop.name + lines.extend(render.signature_block(sig)) + + if doc.summary or doc.body: + combined = (doc.summary + ("\n\n" + doc.body if doc.body else "")).strip() + lines.extend(render.prose_block(combined)) + + lines.extend(render.returns_block(doc, prop)) + + if source_url: + lines.append(f'') + lines.append("") + + lines.append("") + lines.append("") + return lines + + +def detect_repo_root(src: str) -> str: + src_path = Path(src).resolve() + try: + out = subprocess.run( + ["git", "-C", str(src_path), "rev-parse", "--show-toplevel"], + capture_output=True, + text=True, + check=True, + ) + top = out.stdout.strip() + if top: + return top + except Exception: + pass + # Fallback: assume a src-layout package at //. + return str(src_path.parent.parent) diff --git a/website/emitters/python/src/bloqade_docs_emit_python/escape.py b/website/emitters/python/src/bloqade_docs_emit_python/escape.py new file mode 100644 index 000000000..414fe9c51 --- /dev/null +++ b/website/emitters/python/src/bloqade_docs_emit_python/escape.py @@ -0,0 +1,227 @@ +"""MDX-safety escaping helpers. + +Generated docstrings can contain characters that are hostile to the MDX +parser (``{`` opens a JS expression, ``<`` opens a JSX element, backticks open +code spans, etc.). The MDX build MUST NEVER break on a docstring, so every +string that reaches the ``.mdx`` output flows through one of the helpers here. + +There are four distinct escaping *contexts*, each with different rules: + +1. ``yaml_dq`` - a YAML double-quoted scalar (frontmatter values). +2. ``attr`` - a JSX/HTML double-quoted attribute value + (``name="..."``, ``summary="..."``, ...). +3. ``js_str`` - the *content* of a single-quoted JS string literal + (the ``items={[{ name: '...' }]}`` arrays). +4. ``template`` - the *content* of a backtick template literal + (````). +5. ``prose`` - free-form MDX flow content (summaries, long descriptions). + +Plus ``html_text`` which renders arbitrary text as *literal* HTML text, used +for the ``description`` fields that the components inject via ``set:html``. +""" + +from __future__ import annotations + +import re + +# --------------------------------------------------------------------------- # +# Attribute / string-literal contexts +# --------------------------------------------------------------------------- # + +_WS_RE = re.compile(r"\s+") + + +def _collapse_ws(text: str) -> str: + """Collapse all runs of whitespace (incl. newlines) to a single space.""" + return _WS_RE.sub(" ", text).strip() + + +def yaml_dq(value: str) -> str: + """Return ``value`` as a YAML double-quoted scalar (including the quotes). + + Only backslash and double-quote need escaping inside a YAML double-quoted + scalar; newlines are collapsed so the scalar stays on one line. + """ + value = _collapse_ws(value) + value = value.replace("\\", "\\\\").replace('"', '\\"') + return f'"{value}"' + + +def attr(value: str) -> str: + """Escape ``value`` for use inside a JSX double-quoted attribute value. + + Returns the escaped *content* (no surrounding quotes). Braces are literal + inside a quoted JSX attribute, so only the HTML-significant characters and + the closing quote need escaping. + """ + value = _collapse_ws(value) + return ( + value.replace("&", "&") + .replace('"', """) + .replace("<", "<") + .replace(">", ">") + ) + + +def js_str(value: str) -> str: + """Escape ``value`` for the content of a single-quoted JS string literal. + + Returns the escaped *content* (no surrounding quotes). + """ + value = _collapse_ws(value) + return value.replace("\\", "\\\\").replace("'", "\\'") + + +def html_text(value: str) -> str: + """Escape ``value`` so it renders as *literal* text through ``set:html``. + + The ``description`` fields on Params/Returns/Raises are injected by the + Astro components with ``set:html={...}`` (i.e. treated as raw HTML). We + HTML-escape here so any ``<``/``&`` in a docstring shows verbatim instead + of being interpreted as markup. The result is later wrapped by ``js_str``. + """ + value = _collapse_ws(value) + return ( + value.replace("&", "&") + .replace("<", "<") + .replace(">", ">") + ) + + +def desc_literal(value: str) -> str: + """Full pipeline for a `description` field: HTML-escape then JS-escape. + + Produces the escaped *content* of a single-quoted JS string whose value, + when handed to ``set:html``, renders as the literal source text. + """ + return js_str(html_text(value)) + + +def template(value: str) -> str: + """Escape ``value`` for the content of a backtick template literal. + + Returns the escaped *content* (no surrounding backticks). Order matters: + escape backslashes first, then backticks, then the ``${`` interpolation + opener. + """ + value = value.replace("\\", "\\\\") + value = value.replace("`", "\\`") + value = value.replace("${", "\\${") + return value + + +# --------------------------------------------------------------------------- # +# Prose (MDX flow content) +# --------------------------------------------------------------------------- # +# +# Strategy: escape the MDX-hostile characters `<`, `{`, `}` using HTML/numeric +# character references, which MDX passes through as literal characters and does +# NOT treat as expression/element delimiters. To keep intentional code spans +# and fenced code blocks rendering as code (where entity references would show +# up verbatim), we tokenize the text and only escape the NON-code segments. +# +# `>` and `&` are deliberately left alone in prose: neither breaks an MDX build, +# and leaving them preserves markdown blockquotes, entities and comparisons. + +_FENCE_OPEN_RE = re.compile(r"^(\s*)(`{3,}|~{3,})") + + +def _escape_specials(segment: str) -> str: + """Escape `<`, `{`, `}` in a non-code prose segment.""" + return ( + segment.replace("<", "<") + .replace("{", "{") + .replace("}", "}") + ) + + +def _escape_inline(line: str) -> str: + """Escape a single prose line, leaving inline code spans verbatim.""" + out: list[str] = [] + i = 0 + n = len(line) + while i < n: + ch = line[i] + if ch == "`": + # Measure the opening backtick run. + j = i + while j < n and line[j] == "`": + j += 1 + run = j - i + # Find a closing run of exactly the same length. + k = j + close = -1 + while k < n: + if line[k] == "`": + m = k + while m < n and line[m] == "`": + m += 1 + if (m - k) == run: + close = k + break + k = m + continue + k += 1 + if close != -1: + # Verbatim code span (backticks protect it from MDX + markdown). + out.append(line[i : close + run]) + i = close + run + continue + # Unterminated run: emit the backticks literally, keep scanning. + out.append(line[i:j]) + i = j + continue + # Ordinary text up to the next backtick. + j = i + while j < n and line[j] != "`": + j += 1 + out.append(_escape_specials(line[i:j])) + i = j + return "".join(out) + + +def prose(text: str) -> str: + """Escape free-form docstring text so it is safe as MDX flow content. + + Fenced code blocks and inline code spans are preserved verbatim; only the + surrounding prose has `<`, `{`, `}` neutralized. + """ + if not text: + return "" + lines = text.split("\n") + out: list[str] = [] + in_fence = False + fence_char = "" + fence_len = 0 + for line in lines: + if in_fence: + out.append(line) + stripped = line.strip() + if stripped and stripped[0] == fence_char: + run = len(stripped) - len(stripped.lstrip(fence_char)) + if run >= fence_len: + in_fence = False + continue + m = _FENCE_OPEN_RE.match(line) + if m: + marker = m.group(2) + in_fence = True + fence_char = marker[0] + fence_len = len(marker) + out.append(line) # the opening fence line itself is safe verbatim + continue + out.append(_escape_inline(line)) + if in_fence: + # A docstring with an unterminated code fence must never swallow the + # MDX that follows it: close the dangling fence so the block is + # self-contained. + out.append(fence_char * fence_len) + return "\n".join(out) + + +def truncate(value: str, limit: int = 120) -> str: + """Collapse whitespace and truncate a value for a table cell.""" + value = _collapse_ws(value) + if len(value) > limit: + return value[: limit - 1].rstrip() + "…" + return value diff --git a/website/emitters/python/src/bloqade_docs_emit_python/render.py b/website/emitters/python/src/bloqade_docs_emit_python/render.py new file mode 100644 index 000000000..3119c1ee9 --- /dev/null +++ b/website/emitters/python/src/bloqade_docs_emit_python/render.py @@ -0,0 +1,468 @@ +"""Render griffe objects into MDX using the frozen component contract. + +Every function here returns a list of MDX line-strings. The functions never +raise on bad docstrings: docstring analysis is wrapped in try/except and falls +back to the raw docstring text so a malformed docstring can never break the +Astro build. +""" + +from __future__ import annotations + +import logging +from dataclasses import dataclass, field +from typing import Any + +from griffe import ( + DocstringSectionKind, + Kind, + ParameterKind, +) + +from . import escape + +logger = logging.getLogger("bloqade_docs_emit_python") + + +# --------------------------------------------------------------------------- # +# Signature rendering +# --------------------------------------------------------------------------- # + +_VAR_POSITIONAL = ParameterKind.var_positional +_VAR_KEYWORD = ParameterKind.var_keyword +_KEYWORD_ONLY = ParameterKind.keyword_only +_POSITIONAL_ONLY = ParameterKind.positional_only + + +def _annotation_str(annotation: Any) -> str | None: + if annotation is None: + return None + try: + text = str(annotation) + except Exception: # pragma: no cover - defensive + return None + text = text.strip() + return text or None + + +def _default_str(default: Any) -> str | None: + if default is None: + return None + try: + text = str(default) + except Exception: # pragma: no cover - defensive + return None + text = text.strip() + return text or None + + +def _format_one(param: Any, prefix: str = "") -> str: + piece = prefix + param.name + annotation = _annotation_str(param.annotation) + default = _default_str(param.default) + if annotation: + piece += f": {annotation}" + if default is not None: + piece += f" = {default}" if annotation else f"={default}" + return piece + + +def format_parameters(parameters: Any, drop_first_self: bool = False) -> str: + """Render a griffe ``Parameters`` collection to a signature string.""" + params = list(parameters) + if ( + drop_first_self + and params + and params[0].name in ("self", "cls") + and params[0].annotation is None + ): + params = params[1:] + + last_pos_only = -1 + for idx, param in enumerate(params): + if param.kind == _POSITIONAL_ONLY: + last_pos_only = idx + + rendered: list[str] = [] + kw_only_sep_pending = True + for idx, param in enumerate(params): + kind = param.kind + if kind == _VAR_POSITIONAL: + rendered.append(_format_one(param, prefix="*")) + kw_only_sep_pending = False + elif kind == _VAR_KEYWORD: + rendered.append(_format_one(param, prefix="**")) + elif kind == _KEYWORD_ONLY: + if kw_only_sep_pending: + rendered.append("*") + kw_only_sep_pending = False + rendered.append(_format_one(param)) + else: + rendered.append(_format_one(param)) + if idx == last_pos_only and last_pos_only != -1: + rendered.append("/") + return ", ".join(rendered) + + +def function_signature(func: Any, is_method: bool) -> str: + prefix = "async def " if "async" in getattr(func, "labels", set()) else "def " + params = format_parameters(func.parameters, drop_first_self=is_method) + sig = f"{prefix}{func.name}({params})" + returns = _annotation_str(getattr(func, "returns", None)) + if returns: + sig += f" -> {returns}" + return sig + + +def class_signature(cls: Any) -> str: + init = cls.members.get("__init__") + params_str = "" + if init is not None and not getattr(init, "is_alias", False): + try: + params_str = format_parameters(init.parameters, drop_first_self=True) + except Exception: # pragma: no cover - defensive + params_str = "" + if params_str: + return f"class {cls.name}({params_str})" + return f"class {cls.name}" + + +def signature_block(code: str) -> list[str]: + return [f"", ""] + + +# --------------------------------------------------------------------------- # +# Docstring analysis +# --------------------------------------------------------------------------- # + + +@dataclass +class ParsedDoc: + summary: str = "" + body: str = "" + params: list[Any] = field(default_factory=list) + other_params: list[Any] = field(default_factory=list) + returns: list[Any] = field(default_factory=list) + raises: list[Any] = field(default_factory=list) + attributes: list[Any] = field(default_factory=list) + extra_prose: list[str] = field(default_factory=list) + + +def _split_summary(text: str) -> tuple[str, str]: + """Split a text block into (first-paragraph summary, remaining body).""" + text = text.strip("\n") + if not text: + return "", "" + parts = text.split("\n\n", 1) + summary = parts[0].strip() + body = parts[1].strip() if len(parts) > 1 else "" + return summary, body + + +def analyze_docstring(obj: Any) -> ParsedDoc: + """Parse a griffe object's docstring into a structured ``ParsedDoc``. + + Robust by construction: any failure falls back to the raw docstring value + rendered as prose. + """ + doc = ParsedDoc() + docstring = getattr(obj, "docstring", None) + if docstring is None: + return doc + + try: + sections = docstring.parsed + except Exception as exc: # pragma: no cover - defensive + logger.debug("docstring parse failed for %s: %s", obj.path, exc) + summary, body = _split_summary(docstring.value or "") + doc.summary, doc.body = summary, body + return doc + + text_chunks: list[str] = [] + for section in sections: + try: + kind = section.kind + if kind == DocstringSectionKind.text: + text_chunks.append(section.value or "") + elif kind == DocstringSectionKind.parameters: + doc.params = list(section.value) + elif kind == DocstringSectionKind.other_parameters: + doc.other_params = list(section.value) + elif kind == DocstringSectionKind.returns: + doc.returns = list(section.value) + elif kind == DocstringSectionKind.raises: + doc.raises = list(section.value) + elif kind == DocstringSectionKind.attributes: + doc.attributes = list(section.value) + elif kind == DocstringSectionKind.yields: + doc.extra_prose.extend(_render_yields(section)) + elif kind == DocstringSectionKind.receives: + doc.extra_prose.extend(_render_named("Receives", section)) + elif kind == DocstringSectionKind.admonition: + doc.extra_prose.extend(_render_admonition(section)) + elif kind == DocstringSectionKind.examples: + doc.extra_prose.extend(_render_examples(section)) + elif kind == DocstringSectionKind.deprecated: + doc.extra_prose.extend(_render_admonition(section, "Deprecated")) + else: + # Unknown/less-common section: best-effort prose fallback. + doc.extra_prose.extend(_render_generic(section)) + except Exception as exc: # pragma: no cover - defensive + logger.debug("section render failed for %s: %s", getattr(obj, "path", "?"), exc) + continue + + combined = "\n\n".join(chunk for chunk in text_chunks if chunk.strip()) + doc.summary, doc.body = _split_summary(combined) + return doc + + +def _section_title(section: Any, default: str) -> str: + title = getattr(section, "title", None) + return title if isinstance(title, str) and title else default + + +def _render_admonition(section: Any, default_title: str = "Note") -> list[str]: + value = section.value + title = _section_title(section, default_title) + contents = getattr(value, "contents", None) + if contents is None: + contents = str(value) + lines = [f"**{escape.prose(title)}**", ""] + for para in str(contents).split("\n\n"): + para = para.strip() + if para: + lines.append(escape.prose(para)) + lines.append("") + return lines + + +def _render_examples(section: Any) -> list[str]: + lines = ["**Examples**", ""] + value = section.value + # Google examples: list of (kind, text) tuples where kind == "examples" is code. + try: + for item in value: + if isinstance(item, (tuple, list)) and len(item) == 2: + kind, text = item + kind_str = str(getattr(kind, "value", kind)) + if kind_str == "examples": + lines.append("```python") + lines.extend(str(text).rstrip("\n").split("\n")) + lines.append("```") + lines.append("") + else: + lines.append(escape.prose(str(text))) + lines.append("") + else: + lines.append(escape.prose(str(item))) + lines.append("") + except TypeError: + lines.append(escape.prose(str(value))) + lines.append("") + return lines + + +def _render_yields(section: Any) -> list[str]: + lines = ["**Yields**", ""] + for item in section.value: + annotation = _annotation_str(getattr(item, "annotation", None)) + desc = (getattr(item, "description", "") or "").strip() + bits = [] + if annotation: + bits.append(f"`{annotation}`") + if desc: + bits.append(escape.prose(desc)) + if bits: + lines.append(" — ".join(bits) if annotation else bits[-1]) + lines.append("") + return lines + + +def _render_named(title: str, section: Any) -> list[str]: + lines = [f"**{title}**", ""] + for item in section.value: + annotation = _annotation_str(getattr(item, "annotation", None)) + desc = (getattr(item, "description", "") or "").strip() + bits = [] + if annotation: + bits.append(f"`{annotation}`") + if desc: + bits.append(escape.prose(desc)) + if bits: + lines.append(" — ".join(bits)) + lines.append("") + return lines + + +def _render_generic(section: Any) -> list[str]: + value = getattr(section, "value", None) + title = _section_title(section, "") + lines: list[str] = [] + if title: + lines.extend([f"**{escape.prose(title)}**", ""]) + if isinstance(value, str): + lines.append(escape.prose(value)) + lines.append("") + return lines + + +# --------------------------------------------------------------------------- # +# Prose + table blocks +# --------------------------------------------------------------------------- # + + +def prose_block(text: str) -> list[str]: + text = (text or "").strip() + if not text: + return [] + return [escape.prose(text), ""] + + +def _clean_return_desc(desc: str, annotation: str | None) -> str: + desc = (desc or "").strip() + if annotation and desc.startswith(annotation): + rest = desc[len(annotation):].lstrip() + if rest.startswith(":"): + rest = rest[1:].lstrip() + desc = rest + return desc + + +def _params_from_signature(callable_obj: Any, doc: ParsedDoc, drop_self: bool) -> list[dict]: + """Merge signature parameters with docstring parameter descriptions.""" + doc_by_name = {} + for item in doc.params: + name = getattr(item, "name", None) + if name: + doc_by_name[name] = item + + params = list(callable_obj.parameters) + if drop_self and params and params[0].name in ("self", "cls") and params[0].annotation is None: + params = params[1:] + + rows: list[dict] = [] + for param in params: + name = param.name + if param.kind == _VAR_POSITIONAL: + display = f"*{name}" + elif param.kind == _VAR_KEYWORD: + display = f"**{name}" + else: + display = name + annotation = _annotation_str(param.annotation) + default = _default_str(param.default) + desc = "" + doc_item = doc_by_name.get(name) + if doc_item is not None: + if annotation is None: + annotation = _annotation_str(getattr(doc_item, "annotation", None)) + desc = (getattr(doc_item, "description", "") or "").strip() + rows.append( + {"name": display, "type": annotation, "default": default, "description": desc} + ) + return rows + + +def params_table(rows: list[dict], title: str | None = None) -> list[str]: + if not rows: + return [] + lines = ["") + lines.append("") + return lines + + +def returns_block(doc: ParsedDoc, callable_obj: Any) -> list[str]: + type_str: str | None = None + desc_str = "" + if doc.returns: + anns = [_annotation_str(getattr(i, "annotation", None)) for i in doc.returns] + anns = [a for a in anns if a] + descs = [] + for item in doc.returns: + ann = _annotation_str(getattr(item, "annotation", None)) + d = _clean_return_desc(getattr(item, "description", "") or "", ann) + name = getattr(item, "name", "") or "" + if d: + descs.append(f"{name}: {d}" if name else d) + if len(anns) == 1: + type_str = anns[0] + elif len(anns) > 1: + type_str = "(" + ", ".join(anns) + ")" + desc_str = " ".join(descs).strip() + if type_str is None: + ann = _annotation_str(getattr(callable_obj, "returns", None)) + if ann and ann not in ("None", "NoneType"): + type_str = ann + if not type_str and not desc_str: + return [] + attrs = [] + if type_str: + attrs.append(f'type="{escape.attr(type_str)}"') + if desc_str: + attrs.append(f"description={{'{escape.desc_literal(desc_str)}'}}") + return [f"", ""] + + +def raises_block(doc: ParsedDoc) -> list[str]: + if not doc.raises: + return [] + lines = ["") + lines.append("") + return lines + + +def attributes_table(doc: ParsedDoc, attr_members: list[Any]) -> list[str]: + """Build an "Attributes" table, preferring the docstring section.""" + rows: list[dict] = [] + if doc.attributes: + for item in doc.attributes: + name = getattr(item, "name", None) + if not name: + continue + rows.append( + { + "name": name, + "type": _annotation_str(getattr(item, "annotation", None)), + "default": None, + "description": (getattr(item, "description", "") or "").strip(), + } + ) + else: + for member in attr_members: + name = member.name + annotation = _annotation_str(getattr(member, "annotation", None)) + value = _default_str(getattr(member, "value", None)) + desc = "" + if getattr(member, "docstring", None): + d = analyze_docstring(member) + desc = (d.summary + (" " + d.body if d.body else "")).strip() + rows.append( + {"name": name, "type": annotation, "default": value, "description": desc} + ) + return params_table(rows, title="Attributes") diff --git a/website/emitters/python/uv.lock b/website/emitters/python/uv.lock new file mode 100644 index 000000000..68a4b76b3 --- /dev/null +++ b/website/emitters/python/uv.lock @@ -0,0 +1,35 @@ +version = 1 +revision = 3 +requires-python = ">=3.10" + +[[package]] +name = "bloqade-docs-emit-python" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "griffe" }, +] + +[package.metadata] +requires-dist = [{ name = "griffe", specifier = ">=1.5,<2" }] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "griffe" +version = "1.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/0c/3a471b6e31951dce2360477420d0a8d1e00dea6cf33b70f3e8c3ab6e28e1/griffe-1.15.0.tar.gz", hash = "sha256:7726e3afd6f298fbc3696e67958803e7ac843c1cfe59734b6251a40cdbfb5eea", size = 424112, upload-time = "2025-11-10T15:03:15.52Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/83/3b1d03d36f224edded98e9affd0467630fc09d766c0e56fb1498cbb04a9b/griffe-1.15.0-py3-none-any.whl", hash = "sha256:6f6762661949411031f5fcda9593f586e6ce8340f0ba88921a0f2ef7a81eb9a3", size = 150705, upload-time = "2025-11-10T15:03:13.549Z" }, +] diff --git a/website/emitters/rust/.gitignore b/website/emitters/rust/.gitignore new file mode 100644 index 000000000..0fb1879d7 --- /dev/null +++ b/website/emitters/rust/.gitignore @@ -0,0 +1,9 @@ +# scratch output (default --out); real runs point --out elsewhere +_out/ + +# python caches (emit_rust.py is run via python/uv) +__pycache__/ +*.pyc + +# rustdoc JSON is generated in the target crate's workspace, not here, but guard anyway +target/ diff --git a/website/emitters/rust/emit_rust.py b/website/emitters/rust/emit_rust.py new file mode 100644 index 000000000..1907a5d0f --- /dev/null +++ b/website/emitters/rust/emit_rust.py @@ -0,0 +1,934 @@ +#!/usr/bin/env python3 +# /// script +# requires-python = ">=3.11" +# dependencies = [] +# /// +r"""Bloqade docs — Rust API emitter (Phase B3). + +Turns **rustdoc JSON** into **MDX** pages that use the frozen Bloqade API +component contract (ApiModule / ApiClass / ApiFn / Signature / Params / Returns +/ Raises / Source / ApiXref). One MDX page is emitted per Rust *module*; every +item defined in that module is documented on the module's page. An inventory of +every documented symbol is written to ``/inventory.rust.json``. + +This is a standalone, dependency-free script (stdlib only). Run it with ``uv`` +(``uv run website/emitters/rust/emit_rust.py ...``) or any Python >= 3.11. + +=========================================================================== +TOOLCHAIN + COMMAND (how the input JSON is produced) +=========================================================================== +rustdoc JSON is an unstable nightly-only format. Generate it with a PINNED +nightly from the crate's workspace root, e.g. for ``bloqade-lanes``:: + + cd /path/to/bloqade-lanes + cargo +nightly rustdoc -p bloqade-lanes-search -- \ + -Z unstable-options --output-format json + +The JSON lands at ``target/doc/.json`` (``lib_name`` is the crate's +library name with hyphens turned into underscores, e.g. +``target/doc/bloqade_lanes_search.json``). + +Toolchains observed on this machine (2026-07): + * ``+nightly`` -> cargo 1.97.0-nightly (2026-04-09), rustc + 1.97.0-nightly (2026-04-17) -> format_version 57 + * ``+nightly-2025-03-13`` -> cargo 1.87.0-nightly (fallback if the primary + nightly disappears / changes format_version) + +This emitter PINS ``format_version`` and refuses to run against a different +one unless ``--allow-format-version`` is passed, so a toolchain bump can never +silently emit garbage. + +You may also let this script run cargo for you (convenience wrapper) with +``--run-cargo --workspace --crate [--toolchain nightly]``; it then +locates the freshest ``target/doc/*.json`` and parses it. + +=========================================================================== +RUST ITEM -> COMPONENT MAPPING (stays within the frozen vocabulary) +=========================================================================== + crate / module ................ (one page each) + struct / enum / trait / + type alias ................... (see kind note) + free function ................. + method / trait method ......... + struct fields ................. + enum variants ................. + trait assoc types/consts ...... + signatures .................... + doc comments (///, //!) ....... escaped MDX prose (see MDX-SAFETY) + implemented (non-blanket, + non-auto) traits ............ ApiClass `bases={[...]}` + cross references .............. (submodule links) + source file/line .............. + sourceUrl frontmatter + +KIND-BADGE NOTE: the frozen always renders the literal word +"class" in its heading (we may not edit components). To convey the true Rust +item kind (struct/enum/trait/type alias) we prefix the ApiClass `summary` with +"Rust ." — e.g. summary="Rust enum. Outcome status of a solve attempt." +This keeps us inside the frozen prop set while still surfacing the kind. + +=========================================================================== +fqName + URL derivation +=========================================================================== +fqName is the canonical Rust path using ``::`` separators and the crate's Rust +identifier (underscored), e.g. ``bloqade_lanes_search::frontier::Frontier``. +Method/field/variant fqNames extend the parent's path +(``...::Config::new``, ``...::ConfigError::duplicate_qubit_id``). + +Page files mirror the module tree under ``/``: + * crate root module -> ``/index.mdx`` + * submodule a::b -> ``/a/b.mdx`` + +A page's URL is ``///`` (mount defaults to ``api/rust``), +with the trailing ``index`` dropped: + * ``/index.mdx`` -> ``/api/rust//`` + * ``/frontier.mdx`` -> ``/api/rust//frontier/`` + +Every documented symbol's inventory URL is ``#`` — the anchor +equals the fqName because the components set ``id={fqName}`` on their headings +(ApiModule/ApiClass/ApiFn), and links to ``#fqName``. +Fields / variants / associated items render inside a table (no heading +of their own), so their inventory URL anchors to their PARENT item's fqName. + +inventory.rust.json shape: a JSON list of ``{fqName, kind, url}`` objects, e.g. + {"fqName": "bloqade_lanes_search::frontier::Frontier", + "kind": "trait", + "url": "/api/rust/bloqade_lanes_search/frontier/#bloqade_lanes_search::frontier::Frontier"} + +=========================================================================== +MDX-SAFETY (a doc comment must never break the Astro build) +=========================================================================== +Different sinks need different escaping: + * PROSE (doc comments rendered as MDX body text): backslash-escape every + MDX/JSX-significant punctuation char — ``\ { } < > `` and the backtick — + so a comment can never open a JS expression (`{`), a JSX tag (`<`), or an + unterminated code span. Doc comments are therefore rendered as literal + plain text (markdown / intra-doc links are intentionally NOT interpreted; + build safety beats rich rendering — richer rendering can come later). + * template literal: escape ``\``, backtick and + ``${`` so the JS template literal parses verbatim. + * // descriptions (rendered via `set:html`): + HTML-escape ``& < >`` then JS-string-escape for a single-quoted literal. + * plain double-quoted JSX attributes (name/fqName/kind/summary/sourceUrl): + HTML-escape ``& < > "``. + * YAML frontmatter scalars: double-quote and escape ``\`` and ``"``. + +=========================================================================== +FALLBACK PLAN (documented; NOT implemented here) +=========================================================================== +rustdoc JSON is nightly-only and its ``format_version`` bumps often. If it ever +becomes too unstable for CI, mount plain ``cargo doc`` HTML under the SAME +``/api/rust/**`` URLs instead of this JSON->MDX path: + + 1. ``cargo doc --no-deps -p `` (stable toolchain) -> ``target/doc/``. + 2. Copy ``target/doc//`` into ``website/public/api/rust//``. + Files in ``public/`` are served verbatim by Astro at the same base path, + so ``/api/rust//index.html`` resolves to rustdoc's own HTML — no + Starlight shell, but stable and zero-maintenance. + 3. Keep the same mount + directory names so cross-links/inventory URLs still + resolve; emit ``inventory.rust.json`` from ``target/doc/*/all.html`` (or + the search index ``search-index.js``) so search/xref keep working. + 4. A single Starlight redirect (``/api/rust`` -> the crate index) preserves + the sidebar entry. +This is a strictly-worse presentation (loses the shared components/theme) but +is a safe escape hatch; the PRIMARY, preferred path is this JSON->MDX emitter. +""" + +from __future__ import annotations + +import argparse +import glob +import html +import json +import subprocess +import sys +from pathlib import Path + +# The rustdoc JSON format this emitter understands. Bump deliberately after +# reviewing schema changes; see --allow-format-version to override at runtime. +EXPECTED_FORMAT_VERSION = 57 + +# Auto/marker traits and common blanket-impl traits we never surface as `bases`. +# (Synthetic + blanket impls are already filtered structurally; this is a belt.) +_NOISE_TRAITS = { + "Send", "Sync", "Unpin", "Freeze", "UnsafeUnpin", + "UnwindSafe", "RefUnwindSafe", "Sized", +} + + +# --------------------------------------------------------------------------- # +# Escaping helpers (see MDX-SAFETY docstring above). +# --------------------------------------------------------------------------- # +def esc_prose(s: str | None) -> str: + """Backslash-escape MDX/JSX-significant punctuation for body prose.""" + if not s: + return "" + out: list[str] = [] + for ch in s: + if ch == "\\": + out.append("\\\\") + elif ch in "`<>{}": + out.append("\\" + ch) + else: + out.append(ch) + return "".join(out) + + +def esc_template(s: str | None) -> str: + """Escape a string for use inside a JS template literal (`...`).""" + if not s: + return "" + return s.replace("\\", "\\\\").replace("`", "\\`").replace("${", "\\${") + + +def esc_attr(s: str | None) -> str: + """HTML-escape a value for a double-quoted JSX string attribute.""" + if not s: + return "" + return ( + s.replace("&", "&") + .replace("<", "<") + .replace(">", ">") + .replace('"', """) + .replace("\n", " ") + .replace("\r", " ") + ) + + +def esc_desc_js(s: str | None) -> str: + """HTML-escape then JS-single-quote-escape a `set:html` description.""" + if not s: + return "" + s = html.escape(s, quote=False) # & < > -> entities + s = s.replace("\\", "\\\\").replace("'", "\\'") + return s.replace("\n", " ").replace("\r", " ") + + +def yaml_str(s: str | None) -> str: + """Double-quote + escape a YAML scalar.""" + if s is None: + s = "" + s = s.replace("\\", "\\\\").replace('"', '\\"').replace("\n", " ").replace("\r", " ") + return '"' + s + '"' + + +def first_paragraph(docs: str | None) -> str: + """First paragraph of a doc comment, collapsed to a single line.""" + if not docs: + return "" + para = docs.strip().split("\n\n", 1)[0] + return " ".join(line.strip() for line in para.splitlines() if line.strip()) + + +def rest_paragraphs(docs: str | None) -> str: + """Everything after the first paragraph of a doc comment (trimmed).""" + if not docs: + return "" + parts = docs.strip().split("\n\n", 1) + return parts[1].strip() if len(parts) == 2 else "" + + +# --------------------------------------------------------------------------- # +# Type / signature rendering (rustdoc `Type` + `GenericArgs` -> Rust source). +# Every branch degrades gracefully to "_" so a novel node can never crash. +# --------------------------------------------------------------------------- # +def render_const(c: object) -> str: + if isinstance(c, dict): + return str(c.get("expr") or c.get("value") or "_") + return "_" + + +def render_bounds(bounds: list | None) -> str: + parts: list[str] = [] + for b in bounds or []: + if not isinstance(b, dict): + continue + if "trait_bound" in b: + parts.append(render_path(b["trait_bound"].get("trait", {}))) + elif "outlives" in b: + parts.append(str(b["outlives"])) + return " + ".join(p for p in parts if p) + + +def render_args(args: object) -> str: + if not args or not isinstance(args, dict): + return "" + if "angle_bracketed" in args: + ab = args["angle_bracketed"] + parts: list[str] = [] + for a in ab.get("args", []): + if isinstance(a, str): + parts.append("_") + elif isinstance(a, dict): + if "lifetime" in a: + parts.append(str(a["lifetime"])) + elif "type" in a: + parts.append(render_type(a["type"])) + elif "const" in a: + parts.append(render_const(a["const"])) + return "<" + ", ".join(parts) + ">" if parts else "" + if "parenthesized" in args: + pz = args["parenthesized"] + ins = ", ".join(render_type(t) for t in pz.get("inputs", [])) + out = pz.get("output") + s = "(" + ins + ")" + if out is not None: + s += " -> " + render_type(out) + return s + return "" + + +def render_path(p: object) -> str: + if not isinstance(p, dict): + return "_" + name = str(p.get("path", "_")).split("::")[-1] + return name + render_args(p.get("args")) + + +def render_type(t: object) -> str: + if t is None: + return "()" + if isinstance(t, str): + return t + if not isinstance(t, dict): + return "_" + key = next(iter(t), None) + if key is None: + return "_" + v = t[key] + if key == "resolved_path": + name = str(v.get("path", "_")).split("::")[-1] + return name + render_args(v.get("args")) + if key == "generic": + return v if isinstance(v, str) else "_" + if key == "primitive": + return v if isinstance(v, str) else "_" + if key == "borrowed_ref": + s = "&" + if v.get("lifetime"): + s += str(v["lifetime"]) + " " + if v.get("is_mutable"): + s += "mut " + return s + render_type(v.get("type")) + if key == "slice": + return "[" + render_type(v) + "]" + if key == "array": + return "[" + render_type(v.get("type")) + "; " + str(v.get("len", "")) + "]" + if key == "tuple": + return "(" + ", ".join(render_type(x) for x in v) + ")" + if key == "impl_trait": + return "impl " + render_bounds(v) + if key == "dyn_trait": + parts = [render_path(pt["trait"]) for pt in v.get("traits", []) if isinstance(pt, dict) and "trait" in pt] + if v.get("lifetime"): + parts.append(str(v["lifetime"])) + return "dyn " + " + ".join(parts) + if key == "raw_pointer": + return ("*mut " if v.get("is_mutable") else "*const ") + render_type(v.get("type")) + if key == "qualified_path": + self_t = render_type(v.get("self_type")) + nm = str(v.get("name", "")) + tr = v.get("trait") + if tr: + return "<" + self_t + " as " + render_path(tr) + ">::" + nm + return self_t + "::" + nm + if key == "function_pointer": + sig = v.get("sig", {}) if isinstance(v, dict) else {} + ins = ", ".join(render_type(t2) for _n, t2 in sig.get("inputs", [])) + out = sig.get("output") + s = "fn(" + ins + ")" + if out is not None: + s += " -> " + render_type(out) + return s + return "_" + + +def render_generics(generics: object) -> str: + if not isinstance(generics, dict): + return "" + out: list[str] = [] + for p in generics.get("params", []): + if not isinstance(p, dict): + continue + k = p.get("kind", {}) + name = p.get("name", "") + if "lifetime" in k: + out.append(name) + elif "type" in k: + tp = k["type"] + if tp.get("is_synthetic"): + continue # `impl Trait` in argument position; shown inline + bounds = render_bounds(tp.get("bounds")) + out.append(name + (": " + bounds if bounds else "")) + elif "const" in k: + out.append("const " + name + ": " + render_type(k["const"].get("type"))) + return "<" + ", ".join(out) + ">" if out else "" + + +def _vis_prefix(item: dict) -> str: + return "pub " if item.get("visibility") == "public" else "" + + +def render_self(pt: object) -> str: + if isinstance(pt, dict) and "borrowed_ref" in pt: + b = pt["borrowed_ref"] + s = "&" + if b.get("lifetime"): + s += str(b["lifetime"]) + " " + if b.get("is_mutable"): + s += "mut " + return s + "self" + return "self" + + +def render_fn_sig(item: dict, name: str) -> str: + f = item["inner"]["function"] + header = f.get("header", {}) or {} + prefix = _vis_prefix(item) + if header.get("is_const"): + prefix += "const " + if header.get("is_async"): + prefix += "async " + if header.get("is_unsafe"): + prefix += "unsafe " + abi = header.get("abi") + if abi and abi != "Rust": + prefix += 'extern "%s" ' % (abi if isinstance(abi, str) else "C") + gen = render_generics(f.get("generics", {})) + sig = f.get("sig", {}) + inputs: list[str] = [] + for pname, pt in sig.get("inputs", []): + inputs.append(render_self(pt) if pname == "self" else pname + ": " + render_type(pt)) + out = sig.get("output") + ret = "" if out is None else " -> " + render_type(out) + return "%sfn %s%s(%s)%s" % (prefix, name, gen, ", ".join(inputs), ret) + + +def render_struct_sig(item: dict, name: str) -> str: + s = item["inner"]["struct"] + return "%sstruct %s%s" % (_vis_prefix(item), name, render_generics(s.get("generics", {}))) + + +def render_enum_sig(item: dict, name: str) -> str: + e = item["inner"]["enum"] + return "%senum %s%s" % (_vis_prefix(item), name, render_generics(e.get("generics", {}))) + + +def render_trait_sig(item: dict, name: str) -> str: + tr = item["inner"]["trait"] + pre = _vis_prefix(item) + if tr.get("is_unsafe"): + pre += "unsafe " + gen = render_generics(tr.get("generics", {})) + bounds = render_bounds(tr.get("bounds")) + b = ": " + bounds if bounds else "" + return "%strait %s%s%s" % (pre, name, gen, b) + + +def render_type_alias_sig(item: dict, name: str) -> str: + ta = item["inner"]["type_alias"] + return "%stype %s%s = %s" % ( + _vis_prefix(item), + name, + render_generics(ta.get("generics", {})), + render_type(ta.get("type")), + ) + + +def render_constant_sig(item: dict, name: str) -> str: + c = item["inner"].get("constant", {}) + ty = render_type(c.get("type")) + return "%sconst %s: %s" % (_vis_prefix(item), name, ty) + + +# --------------------------------------------------------------------------- # +# Emitter +# --------------------------------------------------------------------------- # +class RustEmitter: + def __init__(self, doc: dict, *, mount: str, repo: str | None, ref: str | None): + self.index: dict[str, dict] = doc["index"] + self.paths: dict[str, dict] = doc["paths"] + self.root_id = str(doc["root"]) + self.crate_version = doc.get("crate_version") + self.mount = mount.strip("/") + self.repo = repo + self.ref = ref + self.crate = self.index[self.root_id]["name"] + self.inventory: list[dict] = [] + + # -- lookups ----------------------------------------------------------- + def get(self, item_id) -> dict | None: + return self.index.get(str(item_id)) + + @staticmethod + def kind_of(item: dict) -> str: + inner = item.get("inner") + if isinstance(inner, dict) and inner: + return next(iter(inner)) + return "unknown" + + def fq_from_paths(self, item_id) -> str | None: + p = self.paths.get(str(item_id)) + if p and p.get("path"): + return "::".join(p["path"]) + return None + + # -- source URL -------------------------------------------------------- + def source_url(self, item: dict) -> str | None: + if not self.repo or not self.ref: + return None + span = item.get("span") + if not span or not span.get("filename"): + return None + line = span.get("begin", [None])[0] + anchor = "#L%d" % line if line else "" + return "https://github.com/%s/blob/%s/%s%s" % ( + self.repo, self.ref, span["filename"], anchor, + ) + + # -- module discovery -------------------------------------------------- + def modules(self) -> list[str]: + """All module ids reachable from the crate root (root first).""" + found: list[str] = [] + seen: set[str] = set() + + def walk(mid: str): + if mid in seen: + return + seen.add(mid) + found.append(mid) + item = self.get(mid) + if not item: + return + for cid in item["inner"]["module"].get("items", []): + child = self.get(cid) + if child and self.kind_of(child) == "module": + walk(str(cid)) + + walk(self.root_id) + return found + + # -- page path / url --------------------------------------------------- + def module_relpath(self, module_fq: str) -> str: + """`crate/index.mdx`, `crate/a/b.mdx` from an fqName.""" + segs = module_fq.split("::") + if len(segs) == 1: + return "%s/index.mdx" % segs[0] + return "%s.mdx" % "/".join(segs) + + def page_url(self, module_fq: str) -> str: + rel = self.module_relpath(module_fq)[:-4] # drop .mdx + if rel.endswith("/index"): + rel = rel[: -len("index")] + rel = rel.rstrip("/") + return "/%s/%s/" % (self.mount, rel) if rel else "/%s/" % self.mount + + def add_inventory(self, fq: str, kind: str, page_url: str, anchor_fq: str): + self.inventory.append( + {"fqName": fq, "kind": kind, "url": "%s#%s" % (page_url, anchor_fq)} + ) + + # -- impl analysis (methods + implemented traits) ---------------------- + def analyze_impls(self, impl_ids: list) -> tuple[list[dict], list[str]]: + """Return (inherent+trait methods, implemented-trait display names).""" + methods: list[dict] = [] + traits: list[str] = [] + seen_methods: set[str] = set() + for iid in impl_ids or []: + imp = self.get(iid) + if not imp or self.kind_of(imp) != "impl": + continue + inner = imp["inner"]["impl"] + if inner.get("is_synthetic") or inner.get("blanket_impl") is not None: + continue # auto trait (Send/Sync/...) or foreign blanket impl + if inner.get("is_negative"): + continue + tr = inner.get("trait") + if tr: + name = render_path(tr) + bare = str(tr.get("path", "")).split("::")[-1] + if bare not in _NOISE_TRAITS and name not in traits: + traits.append(name) + # We list the trait but do not re-document its methods on the + # type page (they belong to the trait's own entry); only + # inherent-impl methods are documented as the type's methods. + continue + for mid in inner.get("items", []): + m = self.get(mid) + if m and self.kind_of(m) == "function" and m.get("name") not in seen_methods: + seen_methods.add(m["name"]) + methods.append(m) + methods.sort(key=lambda m: m.get("name") or "") + return methods, traits + + # -- MDX rendering of a single callable -------------------------------- + def render_callable(self, item: dict, fq: str, kind: str, page_url: str) -> str: + name = item.get("name") or fq.split("::")[-1] + sig = render_fn_sig(item, name) + src = self.source_url(item) + self.add_inventory(fq, "method" if kind == "method" else "function", page_url, fq) + lines = [ + '' % ( + esc_attr(name), esc_attr(fq), kind, + ' sourceUrl="%s"' % esc_attr(src) if src else "", + ), + "", + "" % esc_template(sig), + "", + ] + # Parameters table (skip a bare `self` receiver). + params = self.render_params_table(item) + if params: + lines += [params, ""] + ret = item["inner"]["function"].get("sig", {}).get("output") + if ret is not None: + lines += ['' % esc_attr(render_type(ret)), ""] + docs = item.get("docs") + if docs: + lines += [esc_prose(docs), ""] + if src: + lines += ['' % esc_attr(src), ""] + lines.append("") + return "\n".join(lines) + + def render_params_table(self, fn_item: dict) -> str: + sig = fn_item["inner"]["function"].get("sig", {}) + rows: list[str] = [] + for pname, pt in sig.get("inputs", []): + if pname == "self": + continue + rows.append( + " { name: '%s', type: '%s' }," % (esc_desc_js(pname), esc_desc_js(render_type(pt))) + ) + if not rows: + return "" + return "" % "\n".join(rows) + + # -- MDX rendering of a type (struct/enum/trait/type alias) ------------ + def render_type_item(self, item: dict, fq: str, page_url: str) -> str: + kind = self.kind_of(item) + name = item.get("name") or fq.split("::")[-1] + docs = item.get("docs") + src = self.source_url(item) + + if kind == "struct": + sig = render_struct_sig(item, name) + inner = item["inner"]["struct"] + field_ids = self._struct_field_ids(inner) + methods, traits = self.analyze_impls(inner.get("impls", [])) + member_title, members = "Fields", self._fields_rows(field_ids, fq, page_url) + elif kind == "enum": + sig = render_enum_sig(item, name) + inner = item["inner"]["enum"] + methods, traits = self.analyze_impls(inner.get("impls", [])) + member_title, members = "Variants", self._variants_rows(inner.get("variants", []), fq, page_url) + elif kind == "trait": + sig = render_trait_sig(item, name) + inner = item["inner"]["trait"] + traits = [] + methods = [m for m in (self.get(i) for i in inner.get("items", [])) + if m and self.kind_of(m) == "function"] + methods.sort(key=lambda m: m.get("name") or "") + member_title, members = "Associated items", self._assoc_rows(inner.get("items", []), fq, page_url) + elif kind == "type_alias": + sig = render_type_alias_sig(item, name) + methods, traits, member_title, members = [], [], "", [] + else: + return "" # unsupported type-like kind + + self.add_inventory(fq, kind, page_url, fq) + summary = ("Rust %s." % kind.replace("_", " ")) + ( + " " + first_paragraph(docs) if first_paragraph(docs) else "" + ) + attrs = 'name="%s" fqName="%s" summary="%s"' % ( + esc_attr(name), esc_attr(fq), esc_attr(summary), + ) + if traits: + attrs += " bases={[%s]}" % ", ".join("'%s'" % esc_desc_js(t) for t in traits) + if src: + attrs += ' sourceUrl="%s"' % esc_attr(src) + + lines = ["" % attrs, ""] + lines += ["" % esc_template(sig), ""] + if members: + lines += [ + "" % (member_title, "\n".join(members)), + "", + ] + body = rest_paragraphs(docs) + if body: + lines += [esc_prose(body), ""] + if src: + lines += ['' % esc_attr(src), ""] + # Methods (inherent impl or trait-required) as nested ApiFn entries. + for m in methods: + mname = m.get("name") + if not mname: + continue + mfq = "%s::%s" % (fq, mname) + lines += [self.render_callable(m, mfq, "method", page_url), ""] + lines.append("") + return "\n".join(lines) + + def _struct_field_ids(self, struct_inner: dict) -> list: + kind = struct_inner.get("kind", {}) + if isinstance(kind, dict) and "plain" in kind: + return kind["plain"].get("fields", []) + if isinstance(kind, dict) and "tuple" in kind: + return [f for f in kind["tuple"] if f is not None] + return [] + + def _fields_rows(self, field_ids: list, parent_fq: str, page_url: str) -> list[str]: + rows: list[str] = [] + for fid in field_ids: + f = self.get(fid) + if not f or self.kind_of(f) != "struct_field": + continue + fname = f.get("name") or "_" + ftype = render_type(f["inner"]["struct_field"]) + desc = first_paragraph(f.get("docs")) + self.add_inventory("%s::%s" % (parent_fq, fname), "field", page_url, parent_fq) + rows.append( + " { name: '%s', type: '%s', description: '%s' }," % ( + esc_desc_js(fname), esc_desc_js(ftype), esc_desc_js(desc), + ) + ) + return rows + + def _variants_rows(self, variant_ids: list, parent_fq: str, page_url: str) -> list[str]: + rows: list[str] = [] + for vid in variant_ids: + v = self.get(vid) + if not v or self.kind_of(v) != "variant": + continue + vname = v.get("name") or "_" + vk = v["inner"]["variant"].get("kind") + payload = "" + if isinstance(vk, dict): + if "tuple" in vk: + parts = [render_type(self.get(i)["inner"]["struct_field"]) + for i in vk["tuple"] if i is not None and self.get(i)] + payload = "(" + ", ".join(parts) + ")" + elif "struct" in vk: + payload = "{ ... }" + desc = first_paragraph(v.get("docs")) + self.add_inventory("%s::%s" % (parent_fq, vname), "variant", page_url, parent_fq) + rows.append( + " { name: '%s', type: '%s', description: '%s' }," % ( + esc_desc_js(vname), esc_desc_js(payload), esc_desc_js(desc), + ) + ) + return rows + + def _assoc_rows(self, item_ids: list, parent_fq: str, page_url: str) -> list[str]: + rows: list[str] = [] + for iid in item_ids: + it = self.get(iid) + if not it: + continue + k = self.kind_of(it) + if k == "assoc_type": + ty = "type " + (it.get("name") or "_") + bounds = render_bounds(it["inner"]["assoc_type"].get("bounds")) + ty += (": " + bounds) if bounds else "" + label = "associated type" + elif k == "assoc_const": + ty = render_type(it["inner"]["assoc_const"].get("type")) + label = "associated const" + else: + continue + name = it.get("name") or "_" + desc = "%s. %s" % (label, first_paragraph(it.get("docs"))) if it.get("docs") else label + self.add_inventory("%s::%s" % (parent_fq, name), k, page_url, parent_fq) + rows.append( + " { name: '%s', type: '%s', description: '%s' }," % ( + esc_desc_js(name), esc_desc_js(ty), esc_desc_js(desc), + ) + ) + return rows + + # -- page assembly ----------------------------------------------------- + def render_module_page(self, module_id: str) -> tuple[str, str]: + item = self.get(module_id) + module_fq = self.fq_from_paths(module_id) or item["name"] + page_url = self.page_url(module_fq) + self.add_inventory(module_fq, "module", page_url, module_fq) + + child_ids = item["inner"]["module"].get("items", []) + buckets: dict[str, list[tuple[str, dict]]] = { + "struct": [], "enum": [], "trait": [], "type_alias": [], + "constant": [], "function": [], + } + submodules: list[tuple[str, str]] = [] + for cid in child_ids: + child = self.get(cid) + if not child: + continue + k = self.kind_of(child) + if k == "module": + cfq = self.fq_from_paths(cid) or ("%s::%s" % (module_fq, child["name"])) + submodules.append((child["name"], cfq)) + elif k in buckets: + cfq = self.fq_from_paths(cid) or ("%s::%s" % (module_fq, child["name"])) + buckets[k].append((cfq, child)) + + for b in buckets.values(): + b.sort(key=lambda t: t[0]) + submodules.sort() + + # frontmatter + docs = item.get("docs") + title = module_fq if len(module_fq.split("::")) > 1 else "%s (crate)" % module_fq + fm = [ + "---", + "title: %s" % yaml_str(title), + "description: %s" % yaml_str(first_paragraph(docs) or ("Rust API for %s" % module_fq)), + "language: rust", + "fqName: %s" % yaml_str(module_fq), + ] + if self.crate_version: + fm.append("apiVersion: %s" % yaml_str(self.crate_version)) + if self.repo: + fm.append("sourceRepo: %s" % yaml_str(self.repo)) + if self.ref: + fm.append("sourceRef: %s" % yaml_str(self.ref)) + src = self.source_url(item) + if src: + fm.append("sourceUrl: %s" % yaml_str(src)) + fm.append("---") + + body = [ + "{/* GENERATED by website/emitters/rust/emit_rust.py — do not edit by hand. */}", + "", + '' % ( + esc_attr(module_fq.split("::")[-1]), + esc_attr(module_fq), + ' summary="%s"' % esc_attr(first_paragraph(docs)) if first_paragraph(docs) else "", + ), + "", + ] + rest = rest_paragraphs(docs) + if rest: + body += [esc_prose(rest), ""] + if submodules: + body += ["**Modules**", ""] + for sname, sfq in submodules: + body += ['- ' % (esc_attr(sfq), esc_attr(sname))] + body += [""] + + for k in ("struct", "enum", "trait", "type_alias", "constant"): + for cfq, child in buckets[k]: + rendered = self.render_type_item(child, cfq, page_url) if k != "constant" else None + if k == "constant": + rendered = self._render_constant(child, cfq, page_url) + if rendered: + body += [rendered, ""] + for cfq, child in buckets["function"]: + body += [self.render_callable(child, cfq, "function", page_url), ""] + + body.append("") + return self.module_relpath(module_fq), "\n".join(fm) + "\n\n" + "\n".join(body) + "\n" + + def _render_constant(self, item: dict, fq: str, page_url: str) -> str: + name = item.get("name") or fq.split("::")[-1] + self.add_inventory(fq, "constant", page_url, fq) + sig = render_constant_sig(item, name) + docs = item.get("docs") + lines = [ + '' % (esc_attr(name), esc_attr(fq)), + "", + "" % esc_template(sig), + "", + ] + if docs: + lines += [esc_prose(docs), ""] + lines.append("") + return "\n".join(lines) + + # -- top level --------------------------------------------------------- + def emit(self, out_dir: Path) -> dict: + pages = 0 + for mid in self.modules(): + rel, content = self.render_module_page(mid) + dest = out_dir / rel + dest.parent.mkdir(parents=True, exist_ok=True) + dest.write_text(content, encoding="utf-8") + pages += 1 + inv_path = out_dir / "inventory.rust.json" + inv_path.write_text(json.dumps(self.inventory, indent=2) + "\n", encoding="utf-8") + return {"pages": pages, "symbols": len(self.inventory), "inventory": str(inv_path)} + + +# --------------------------------------------------------------------------- # +# cargo runner + CLI +# --------------------------------------------------------------------------- # +def run_cargo(workspace: Path, crate: str, toolchain: str) -> Path: + cmd = [ + "cargo", "+%s" % toolchain, "rustdoc", "-p", crate, + "--", "-Z", "unstable-options", "--output-format", "json", + ] + print("[rust-emitter] $ %s (cwd=%s)" % (" ".join(cmd), workspace), file=sys.stderr) + proc = subprocess.run(cmd, cwd=workspace) + if proc.returncode != 0: + raise SystemExit("[rust-emitter] cargo rustdoc failed (exit %d)" % proc.returncode) + doc_dir = workspace / "target" / "doc" + candidates = sorted(doc_dir.glob("*.json"), key=lambda p: p.stat().st_mtime, reverse=True) + if not candidates: + raise SystemExit("[rust-emitter] no JSON found in %s" % doc_dir) + print("[rust-emitter] using %s" % candidates[0], file=sys.stderr) + return candidates[0] + + +def main(argv: list[str] | None = None) -> int: + here = Path(__file__).resolve().parent + ap = argparse.ArgumentParser(description="rustdoc JSON -> MDX (Bloqade API contract).") + ap.add_argument("--json", type=Path, help="Path to rustdoc JSON (target/doc/.json).") + ap.add_argument("--out", type=Path, default=here / "_out", help="Output directory (default: ./_out).") + ap.add_argument("--mount", default="api/rust", help="Docs mount for URLs (default: api/rust).") + ap.add_argument("--repo", default="QuEraComputing/bloqade-lanes", help="owner/name for source links.") + ap.add_argument("--ref", dest="ref", default="main", help="git ref for source links (default: main).") + ap.add_argument("--no-source", action="store_true", help="Do not emit sourceUrl/Source links.") + ap.add_argument("--allow-format-version", action="store_true", + help="Proceed even if format_version != %d." % EXPECTED_FORMAT_VERSION) + # cargo runner + ap.add_argument("--run-cargo", action="store_true", help="Run cargo rustdoc to produce the JSON.") + ap.add_argument("--workspace", type=Path, help="Cargo workspace dir (with --run-cargo).") + ap.add_argument("--crate", help="Crate name to document (with --run-cargo).") + ap.add_argument("--toolchain", default="nightly", help="Nightly toolchain (default: nightly).") + args = ap.parse_args(argv) + + if args.run_cargo: + if not args.workspace or not args.crate: + ap.error("--run-cargo requires --workspace and --crate") + json_path = run_cargo(args.workspace, args.crate, args.toolchain) + elif args.json: + json_path = args.json + else: + ap.error("provide --json PATH or --run-cargo --workspace DIR --crate NAME") + + if not json_path.is_file(): + raise SystemExit("[rust-emitter] JSON not found: %s" % json_path) + doc = json.loads(json_path.read_text(encoding="utf-8")) + + fv = doc.get("format_version") + if fv != EXPECTED_FORMAT_VERSION: + msg = ("[rust-emitter] rustdoc format_version=%s but this emitter targets %d. " + "Regenerate with the pinned nightly, or pass --allow-format-version " + "after reviewing schema changes." % (fv, EXPECTED_FORMAT_VERSION)) + if not args.allow_format_version: + raise SystemExit(msg) + print("[rust-emitter][warn] " + msg, file=sys.stderr) + + repo = None if args.no_source else args.repo + ref = None if args.no_source else args.ref + emitter = RustEmitter(doc, mount=args.mount, repo=repo, ref=ref) + args.out.mkdir(parents=True, exist_ok=True) + stats = emitter.emit(args.out) + print("[rust-emitter] crate=%s format_version=%s -> %d pages, %d symbols" + % (emitter.crate, fv, stats["pages"], stats["symbols"]), file=sys.stderr) + print("[rust-emitter] output: %s" % args.out, file=sys.stderr) + print("[rust-emitter] inventory: %s" % stats["inventory"], file=sys.stderr) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/website/package.json b/website/package.json new file mode 100644 index 000000000..9b4dc58ff --- /dev/null +++ b/website/package.json @@ -0,0 +1,25 @@ +{ + "name": "bloqade-website", + "type": "module", + "version": "0.0.1", + "private": true, + "description": "Bloqade documentation website (Astro + Starlight). Phase A foundation.", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/mdx": "4.3.14", + "@astrojs/starlight": "0.37.0", + "@fontsource/lato": "^5.2.7", + "astro": "^5.18.2", + "astro-auto-import": "0.5.1", + "katex": "^0.17.0", + "mermaid": "^11.16.0", + "rehype-katex": "^7.0.1", + "remark-math": "^6.0.0" + } +} diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml new file mode 100644 index 000000000..5143b1863 --- /dev/null +++ b/website/pnpm-lock.yaml @@ -0,0 +1,5330 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@astrojs/mdx': + specifier: 4.3.14 + version: 4.3.14(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)) + '@astrojs/starlight': + specifier: 0.37.0 + version: 0.37.0(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)) + '@fontsource/lato': + specifier: ^5.2.7 + version: 5.2.7 + astro: + specifier: ^5.18.2 + version: 5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3) + astro-auto-import: + specifier: 0.5.1 + version: 0.5.1(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)) + katex: + specifier: ^0.17.0 + version: 0.17.0 + mermaid: + specifier: ^11.16.0 + version: 11.16.0 + rehype-katex: + specifier: ^7.0.1 + version: 7.0.1 + remark-math: + specifier: ^6.0.0 + version: 6.0.0 + +packages: + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@astrojs/compiler@2.13.1': + resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} + + '@astrojs/internal-helpers@0.7.6': + resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==} + + '@astrojs/markdown-remark@6.3.11': + resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==} + + '@astrojs/mdx@4.3.14': + resolution: {integrity: sha512-FBrqJQORVm+rkRa2TS5CjU9PBA6hkhrwLVBSS9A77gN2+iehvjq1w6yya/d0YKC7osiVorKkr3Qd9wNbl0ZkGA==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + peerDependencies: + astro: ^5.0.0 + + '@astrojs/prism@3.3.0': + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/sitemap@3.7.3': + resolution: {integrity: sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA==} + + '@astrojs/starlight@0.37.0': + resolution: {integrity: sha512-1AlaEjYYRO+5o6P5maPUBQZr6Q3wtuhMQTmsDQExI07wJVwe7EC2wGhXnFo+jpCjwHv/Bdg33PQheY4UhMj01g==} + peerDependencies: + astro: ^5.5.0 + + '@astrojs/telemetry@3.3.0': + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + + '@braintree/sanitize-url@7.1.2': + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + + '@capsizecss/unpack@4.0.1': + resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==} + engines: {node: '>=18'} + + '@chevrotain/types@11.1.2': + resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} + + '@ctrl/tinycolor@4.2.0': + resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==} + engines: {node: '>=14'} + + '@emnapi/runtime@1.11.2': + resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} + + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@expressive-code/core@0.41.7': + resolution: {integrity: sha512-ck92uZYZ9Wba2zxkiZLsZGi9N54pMSAVdrI9uW3Oo9AtLglD5RmrdTwbYPCT2S/jC36JGB2i+pnQtBm/Ib2+dg==} + + '@expressive-code/plugin-frames@0.41.7': + resolution: {integrity: sha512-diKtxjQw/979cTglRFaMCY/sR6hWF0kSMg8jsKLXaZBSfGS0I/Hoe7Qds3vVEgeoW+GHHQzMcwvgx/MOIXhrTA==} + + '@expressive-code/plugin-shiki@0.41.7': + resolution: {integrity: sha512-DL605bLrUOgqTdZ0Ot5MlTaWzppRkzzqzeGEu7ODnHF39IkEBbFdsC7pbl3LbUQ1DFtnfx6rD54k/cdofbW6KQ==} + + '@expressive-code/plugin-text-markers@0.41.7': + resolution: {integrity: sha512-Ewpwuc5t6eFdZmWlFyeuy3e1PTQC0jFvw2Q+2bpcWXbOZhPLsT7+h8lsSIJxb5mS7wZko7cKyQ2RLYDyK6Fpmw==} + + '@fontsource/lato@5.2.7': + resolution: {integrity: sha512-k5mum1ADbDW5cTw1Ett1eQVWeoZ6gq0ct6SFBibEhB4LRxhniChJZTBgd6ph5yBxLkN1fcnsnmicBNA4S/3nbw==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.1.4': + resolution: {integrity: sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==} + + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + + '@mermaid-js/parser@1.2.0': + resolution: {integrity: sha512-oYPyv8A4As1yH5Bx+04iQEQxXuIQDe0GKCNSRgao6z8AM9jixXIfP0vsppRLvGf+nKIOb9/LdpWA4YuJiVvESA==} + + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@pagefind/darwin-arm64@1.5.2': + resolution: {integrity: sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.5.2': + resolution: {integrity: sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==} + cpu: [x64] + os: [darwin] + + '@pagefind/default-ui@1.5.2': + resolution: {integrity: sha512-pm1LMnQg8N2B3n2TnjKlhaFihpz6zTiA4HiGQ6/slKO/+8K9CAU5kcjdSSPgpuk1PMuuN4hxLipUIifnrkl3Sg==} + + '@pagefind/freebsd-x64@1.5.2': + resolution: {integrity: sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==} + cpu: [x64] + os: [freebsd] + + '@pagefind/linux-arm64@1.5.2': + resolution: {integrity: sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.5.2': + resolution: {integrity: sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-arm64@1.5.2': + resolution: {integrity: sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==} + cpu: [arm64] + os: [win32] + + '@pagefind/windows-x64@1.5.2': + resolution: {integrity: sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==} + cpu: [x64] + os: [win32] + + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + cpu: [x64] + os: [win32] + + '@shikijs/core@3.23.0': + resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} + + '@shikijs/engine-javascript@3.23.0': + resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} + + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.4': + resolution: {integrity: sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.1.8': + resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/katex@0.16.8': + resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.14': + resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@ungap/structured-clone@1.3.2': + resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} + + '@upsetjs/venn.js@2.0.0': + resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + astro-auto-import@0.5.1: + resolution: {integrity: sha512-7YZKVA7LE5nLkopOM+KIHqnh6g2CfHrysj2JUXNBrC3FppHH42RSNBM7mgsEgaq2lgHVDt7hsDQIA0JKTwIN8A==} + engines: {node: '>=20.0.0'} + peerDependencies: + astro: ^5.0.0-beta || ^6.0.0-alpha + + astro-expressive-code@0.41.7: + resolution: {integrity: sha512-hUpogGc6DdAd+I7pPXsctyYPRBJDK7Q7d06s4cyP0Vz3OcbziP3FNzN0jZci1BpCvLn9675DvS7B9ctKKX64JQ==} + peerDependencies: + astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta + + astro@5.18.2: + resolution: {integrity: sha512-TnFwLnAXty5MXKPDGuKXqK4AMBXG+FH6RUdK7Oyc3gyfNoFIthT+4eRbzOK43bdRlLaZuxgciDSjgtggZ3OtGQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + + bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + + bcp-47@2.1.1: + resolution: {integrity: sha512-KLw+H/gd2p4zly1X7Yh/qziuyae5/w/QFnvTng9eZL5fvszL7Whl3MBoWF8yxL7ksUjBfOD+OxkytiqbBpG+Fw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + cookie-es@1.2.3: + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} + + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-selector-parser@3.3.0: + resolution: {integrity: sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.34.0: + resolution: {integrity: sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg==} + engines: {node: '>=0.10'} + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.14: + resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} + + dayjs@1.11.21: + resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + + delaunator@5.1.0: + resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.8.1: + resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} + engines: {node: '>=0.3.1'} + + direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + dompurify@3.4.11: + resolution: {integrity: sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-toolkit@1.49.0: + resolution: {integrity: sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g==} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + + expressive-code@0.41.7: + resolution: {integrity: sha512-2wZjC8OQ3TaVEMcBtYY4Va3lo6J+Ai9jf3d4dbhURMJcU4Pbqe6EcHe424MIZI0VHUA1bR6xdpoHYi3yxokWqA==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + + fontace@0.4.1: + resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==} + + fontkitten@1.0.3: + resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==} + engines: {node: '>=20'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} + engines: {node: '>=18'} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + h3@1.15.11: + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + + hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + + hast-util-format@1.1.0: + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} + + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + + hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + + hast-util-is-body-ok-link@3.0.1: + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-minify-whitespace@1.0.1: + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-select@6.0.4: + resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-whitespace-sensitive-tag-names@3.0.1: + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + i18next@23.16.8: + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + js-yaml@4.3.0: + resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} + hasBin: true + + katex@0.16.47: + resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} + hasBin: true + + katex@0.17.0: + resolution: {integrity: sha512-Vdw0ATsQ9V+LuegM/BTwQqV/6cTl5lbGcIrU+BCgLxyf6bo38ybOr372tuSIxir3CN720flu1meYR6XzNMwQnw==} + hasBin: true + + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} + engines: {node: 20 || >=22} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + magicast@0.5.3: + resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-directive@3.1.0: + resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-math@3.0.0: + resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + + mermaid@11.16.0: + resolution: {integrity: sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-directive@3.0.2: + resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-math@3.1.0: + resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} + engines: {node: '>=18'} + + p-queue@8.1.1: + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} + engines: {node: '>=18'} + + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} + + package-manager-detector@1.7.0: + resolution: {integrity: sha512-xg1eHpwYL/D/HEdWw2goFZP6vV0FH7W+PZ5rFkGjdIDLtxq7EkzBUeT3m+lndYCt8wKbmofUu1MUdMCXkCk9ZQ==} + + pagefind@1.5.2: + resolution: {integrity: sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==} + hasBin: true + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + + piccolore@0.1.3: + resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} + engines: {node: '>=4'} + + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + engines: {node: ^10 || ^12 || >=14} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + rehype-expressive-code@0.41.7: + resolution: {integrity: sha512-25f8ZMSF1d9CMscX7Cft0TSQIqdwjce2gDOvQ+d/w0FovsMwrSt3ODP4P3Z7wO1jsIJ4eYyaDRnIR/27bd/EMQ==} + + rehype-format@5.0.1: + resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} + + rehype-katex@7.0.1: + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-directive@3.0.1: + resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-math@6.0.0: + resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + + robust-predicates@3.0.3: + resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + engines: {node: '>=11.0.0'} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shiki@3.23.0: + resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@9.0.1: + resolution: {integrity: sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==} + engines: {node: '>=20.19.5', npm: '>=10.8.2'} + hasBin: true + + smol-toml@1.7.0: + resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==} + engines: {node: '>= 18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + + stylis@4.4.0: + resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} + engines: {node: '>=16'} + hasBin: true + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + engines: {node: '>=18'} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-dedent@2.3.0: + resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} + engines: {node: '>=6.10'} + + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} + deprecated: unmaintained + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + ultrahtml@1.7.0: + resolution: {integrity: sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unifont@0.7.4: + resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6 || ^7 || ^8 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1 || ^2 || ^3 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@14.0.1: + resolution: {integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==} + hasBin: true + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@6.4.3: + resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} + + yocto-spinner@0.2.3: + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.7.0 + tinyexec: 1.2.4 + + '@astrojs/compiler@2.13.1': {} + + '@astrojs/internal-helpers@0.7.6': {} + + '@astrojs/markdown-remark@6.3.11': + dependencies: + '@astrojs/internal-helpers': 0.7.6 + '@astrojs/prism': 3.3.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.2.0 + js-yaml: 4.3.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-smartypants: 3.0.2 + shiki: 3.23.0 + smol-toml: 1.7.0 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.1.0 + unist-util-visit-parents: 6.0.2 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@4.3.14(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3))': + dependencies: + '@astrojs/markdown-remark': 6.3.11 + '@mdx-js/mdx': 3.1.1 + acorn: 8.17.0 + astro: 5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3) + es-module-lexer: 1.7.0 + estree-util-visit: 2.0.0 + hast-util-to-html: 9.0.5 + piccolore: 0.1.3 + rehype-raw: 7.0.0 + remark-gfm: 4.0.1 + remark-smartypants: 3.0.2 + source-map: 0.7.6 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@3.3.0': + dependencies: + prismjs: 1.30.0 + + '@astrojs/sitemap@3.7.3': + dependencies: + sitemap: 9.0.1 + stream-replace-string: 2.0.0 + zod: 4.4.3 + + '@astrojs/starlight@0.37.0(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3))': + dependencies: + '@astrojs/markdown-remark': 6.3.11 + '@astrojs/mdx': 4.3.14(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)) + '@astrojs/sitemap': 3.7.3 + '@pagefind/default-ui': 1.5.2 + '@types/hast': 3.0.5 + '@types/js-yaml': 4.0.9 + '@types/mdast': 4.0.4 + astro: 5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3) + astro-expressive-code: 0.41.7(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)) + bcp-47: 2.1.1 + hast-util-from-html: 2.0.3 + hast-util-select: 6.0.4 + hast-util-to-string: 3.0.1 + hastscript: 9.0.1 + i18next: 23.16.8 + js-yaml: 4.3.0 + klona: 2.0.6 + magic-string: 0.30.21 + mdast-util-directive: 3.1.0 + mdast-util-to-markdown: 2.1.2 + mdast-util-to-string: 4.0.0 + pagefind: 1.5.2 + rehype: 13.0.2 + rehype-format: 5.0.1 + remark-directive: 3.0.1 + ultrahtml: 1.7.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/telemetry@3.3.0': + dependencies: + ci-info: 4.4.0 + debug: 4.4.3 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.1 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/runtime@7.29.7': {} + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@braintree/sanitize-url@7.1.2': {} + + '@capsizecss/unpack@4.0.1': + dependencies: + fontkitten: 1.0.3 + + '@chevrotain/types@11.1.2': {} + + '@ctrl/tinycolor@4.2.0': {} + + '@emnapi/runtime@1.11.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@esbuild/win32-x64@0.27.7': + optional: true + + '@expressive-code/core@0.41.7': + dependencies: + '@ctrl/tinycolor': 4.2.0 + hast-util-select: 6.0.4 + hast-util-to-html: 9.0.5 + hast-util-to-text: 4.0.2 + hastscript: 9.0.1 + postcss: 8.5.16 + postcss-nested: 6.2.0(postcss@8.5.16) + unist-util-visit: 5.1.0 + unist-util-visit-parents: 6.0.2 + + '@expressive-code/plugin-frames@0.41.7': + dependencies: + '@expressive-code/core': 0.41.7 + + '@expressive-code/plugin-shiki@0.41.7': + dependencies: + '@expressive-code/core': 0.41.7 + shiki: 3.23.0 + + '@expressive-code/plugin-text-markers@0.41.7': + dependencies: + '@expressive-code/core': 0.41.7 + + '@fontsource/lato@5.2.7': {} + + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.1.4': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/types': 2.0.0 + import-meta-resolve: 4.2.0 + + '@img/colour@1.1.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.4 + optional: true + + '@img/sharp-darwin-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.2.4': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.2.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + optional: true + + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 + optional: true + + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 + optional: true + + '@img/sharp-linux-ppc64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.4 + optional: true + + '@img/sharp-linux-riscv64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.2.4 + optional: true + + '@img/sharp-linux-s390x@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.4 + optional: true + + '@img/sharp-linux-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + optional: true + + '@img/sharp-wasm32@0.34.5': + dependencies: + '@emnapi/runtime': 1.11.2 + optional: true + + '@img/sharp-win32-arm64@0.34.5': + optional: true + + '@img/sharp-win32-ia32@0.34.5': + optional: true + + '@img/sharp-win32-x64@0.34.5': + optional: true + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.9 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdx': 2.0.14 + acorn: 8.17.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.17.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@mermaid-js/parser@1.2.0': + dependencies: + '@chevrotain/types': 11.1.2 + + '@oslojs/encoding@1.1.0': {} + + '@pagefind/darwin-arm64@1.5.2': + optional: true + + '@pagefind/darwin-x64@1.5.2': + optional: true + + '@pagefind/default-ui@1.5.2': {} + + '@pagefind/freebsd-x64@1.5.2': + optional: true + + '@pagefind/linux-arm64@1.5.2': + optional: true + + '@pagefind/linux-x64@1.5.2': + optional: true + + '@pagefind/windows-arm64@1.5.2': + optional: true + + '@pagefind/windows-x64@1.5.2': + optional: true + + '@rollup/pluginutils@5.4.0(rollup@4.62.2)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.5 + optionalDependencies: + rollup: 4.62.2 + + '@rollup/rollup-android-arm-eabi@4.62.2': + optional: true + + '@rollup/rollup-android-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-x64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.62.2': + optional: true + + '@rollup/rollup-openbsd-x64@4.62.2': + optional: true + + '@rollup/rollup-openharmony-arm64@4.62.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.62.2': + optional: true + + '@shikijs/core@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/themes@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/types@3.23.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@types/d3-array@3.2.2': {} + + '@types/d3-axis@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-brush@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-chord@3.0.6': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-contour@3.0.6': + dependencies: + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 + + '@types/d3-delaunay@6.0.4': {} + + '@types/d3-dispatch@3.0.7': {} + + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-dsv@3.0.7': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-fetch@3.0.7': + dependencies: + '@types/d3-dsv': 3.0.7 + + '@types/d3-force@3.0.10': {} + + '@types/d3-format@3.0.4': {} + + '@types/d3-geo@3.1.0': + dependencies: + '@types/geojson': 7946.0.16 + + '@types/d3-hierarchy@3.1.7': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-polygon@3.0.2': {} + + '@types/d3-quadtree@3.0.6': {} + + '@types/d3-random@3.0.4': {} + + '@types/d3-scale-chromatic@3.1.0': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-selection@3.0.11': {} + + '@types/d3-shape@3.1.8': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time-format@4.0.3': {} + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/d3-transition@3.0.9': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-zoom@3.0.8': + dependencies: + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 + + '@types/d3@7.4.3': + dependencies: + '@types/d3-array': 3.2.2 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.7 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.10 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.1 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.4 + '@types/d3-scale': 4.0.9 + '@types/d3-scale-chromatic': 3.1.0 + '@types/d3-selection': 3.0.11 + '@types/d3-shape': 3.1.8 + '@types/d3-time': 3.0.4 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 + + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.9 + + '@types/estree@1.0.9': {} + + '@types/geojson@7946.0.16': {} + + '@types/hast@3.0.5': + dependencies: + '@types/unist': 3.0.3 + + '@types/js-yaml@4.0.9': {} + + '@types/katex@0.16.8': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.14': {} + + '@types/ms@2.1.0': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/node@24.13.3': + dependencies: + undici-types: 7.18.2 + + '@types/sax@1.2.7': + dependencies: + '@types/node': 24.13.3 + + '@types/trusted-types@2.0.7': + optional: true + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@ungap/structured-clone@1.3.2': {} + + '@upsetjs/venn.js@2.0.0': + optionalDependencies: + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + + acorn@8.17.0: {} + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-iterate@2.0.1: {} + + astring@1.9.0: {} + + astro-auto-import@0.5.1(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)): + dependencies: + acorn: 8.17.0 + astro: 5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3) + + astro-expressive-code@0.41.7(astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3)): + dependencies: + astro: 5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3) + rehype-expressive-code: 0.41.7 + + astro@5.18.2(@types/node@24.13.3)(rollup@4.62.2)(typescript@5.9.3): + dependencies: + '@astrojs/compiler': 2.13.1 + '@astrojs/internal-helpers': 0.7.6 + '@astrojs/markdown-remark': 6.3.11 + '@astrojs/telemetry': 3.3.0 + '@capsizecss/unpack': 4.0.1 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + acorn: 8.17.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.4.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 1.1.1 + cssesc: 3.0.0 + debug: 4.4.3 + deterministic-object-hash: 2.0.2 + devalue: 5.8.1 + diff: 8.0.4 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.7.0 + esbuild: 0.27.7 + estree-walker: 3.0.3 + flattie: 1.1.1 + fontace: 0.4.1 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.2.0 + import-meta-resolve: 4.2.0 + js-yaml: 4.3.0 + magic-string: 0.30.21 + magicast: 0.5.3 + mrmime: 2.0.1 + neotraverse: 0.6.18 + p-limit: 6.2.0 + p-queue: 8.1.1 + package-manager-detector: 1.7.0 + piccolore: 0.1.3 + picomatch: 4.0.5 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.8.5 + shiki: 3.23.0 + smol-toml: 1.7.0 + svgo: 4.0.1 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tsconfck: 3.1.6(typescript@5.9.3) + ultrahtml: 1.7.0 + unifont: 0.7.4 + unist-util-visit: 5.1.0 + unstorage: 1.17.5 + vfile: 6.0.3 + vite: 6.4.3(@types/node@24.13.3) + vitefu: 1.1.3(vite@6.4.3(@types/node@24.13.3)) + xxhash-wasm: 1.1.0 + yargs-parser: 21.1.1 + yocto-spinner: 0.2.3 + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) + optionalDependencies: + sharp: 0.34.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - yaml + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + base-64@1.0.0: {} + + bcp-47-match@2.0.3: {} + + bcp-47@2.1.1: + dependencies: + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + + boolbase@1.0.0: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.6.2 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.2 + + camelcase@8.0.0: {} + + ccount@2.0.1: {} + + chalk@5.6.2: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + ci-info@4.4.0: {} + + cli-boxes@3.0.0: {} + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + + comma-separated-tokens@2.0.3: {} + + commander@11.1.0: {} + + commander@7.2.0: {} + + commander@8.3.0: {} + + common-ancestor-path@1.0.1: {} + + cookie-es@1.2.3: {} + + cookie@1.1.1: {} + + cose-base@1.0.3: + dependencies: + layout-base: 1.0.2 + + cose-base@2.2.0: + dependencies: + layout-base: 2.0.1 + + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-selector-parser@3.3.0: {} + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + + cssesc@3.0.0: {} + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.0): + dependencies: + cose-base: 1.0.3 + cytoscape: 3.34.0 + + cytoscape-fcose@2.2.0(cytoscape@3.34.0): + dependencies: + cose-base: 2.2.0 + cytoscape: 3.34.0 + + cytoscape@3.34.0: {} + + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-axis@3.0.0: {} + + d3-brush@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.1.0 + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-ease@3.0.1: {} + + d3-fetch@3.0.1: + dependencies: + d3-dsv: 3.0.1 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.2: {} + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-polygon@3.0.1: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.2 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-selection@3.0.0: {} + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3@7.9.0: + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.2 + d3-geo: 3.1.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + + dagre-d3-es@7.0.14: + dependencies: + d3: 7.9.0 + lodash-es: 4.18.1 + + dayjs@1.11.21: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + defu@6.1.7: {} + + delaunator@5.1.0: + dependencies: + robust-predicates: 3.0.3 + + dequal@2.0.3: {} + + destr@2.0.5: {} + + detect-libc@2.1.2: + optional: true + + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.8.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diff@8.0.4: {} + + direction@2.0.1: {} + + dlv@1.1.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + dompurify@3.4.11: + optionalDependencies: + '@types/trusted-types': 2.0.7 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dset@3.1.4: {} + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + + entities@6.0.1: {} + + es-module-lexer@1.7.0: {} + + es-toolkit@1.49.0: {} + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.17.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + escape-string-regexp@5.0.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.9 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + eventemitter3@5.0.4: {} + + expressive-code@0.41.7: + dependencies: + '@expressive-code/core': 0.41.7 + '@expressive-code/plugin-frames': 0.41.7 + '@expressive-code/plugin-shiki': 0.41.7 + '@expressive-code/plugin-text-markers': 0.41.7 + + extend@3.0.2: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + flattie@1.1.1: {} + + fontace@0.4.1: + dependencies: + fontkitten: 1.0.3 + + fontkitten@1.0.3: + dependencies: + tiny-inflate: 1.0.3 + + fsevents@2.3.3: + optional: true + + get-east-asian-width@1.6.0: {} + + github-slugger@2.0.0: {} + + h3@1.15.11: + dependencies: + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.4 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 + + hachure-fill@0.5.2: {} + + hast-util-embedded@3.0.0: + dependencies: + '@types/hast': 3.0.5 + hast-util-is-element: 3.0.0 + + hast-util-format@1.1.0: + dependencies: + '@types/hast': 3.0.5 + hast-util-embedded: 3.0.0 + hast-util-minify-whitespace: 1.0.1 + hast-util-phrasing: 3.0.1 + hast-util-whitespace: 3.0.0 + html-whitespace-sensitive-tag-names: 3.0.1 + unist-util-visit-parents: 6.0.2 + + hast-util-from-dom@5.0.1: + dependencies: + '@types/hast': 3.0.5 + hastscript: 9.0.1 + web-namespaces: 2.0.1 + + hast-util-from-html-isomorphic@2.0.0: + dependencies: + '@types/hast': 3.0.5 + hast-util-from-dom: 5.0.1 + hast-util-from-html: 2.0.3 + unist-util-remove-position: 5.0.0 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.5 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.2.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.5 + + hast-util-is-body-ok-link@3.0.1: + dependencies: + '@types/hast': 3.0.5 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.5 + + hast-util-minify-whitespace@1.0.1: + dependencies: + '@types/hast': 3.0.5 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.1 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.5 + + hast-util-phrasing@3.0.1: + dependencies: + '@types/hast': 3.0.5 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.1 + hast-util-is-element: 3.0.0 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.2 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-select@6.0.4: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 3.3.0 + devlop: 1.1.0 + direction: 2.0.1 + hast-util-has-property: 3.0.0 + hast-util-to-string: 3.0.1 + hast-util-whitespace: 3.0.0 + nth-check: 2.1.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.9 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.9 + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.5 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.5 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.5 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.5 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + html-whitespace-sensitive-tag-names@3.0.1: {} + + http-cache-semantics@4.2.0: {} + + i18next@23.16.8: + dependencies: + '@babel/runtime': 7.29.7 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + import-meta-resolve@4.2.0: {} + + inline-style-parser@0.2.7: {} + + internmap@1.0.1: {} + + internmap@2.0.3: {} + + iron-webcrypto@1.2.1: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-decimal@2.0.1: {} + + is-docker@3.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-hexadecimal@2.0.1: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-plain-obj@4.1.0: {} + + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + + js-yaml@4.3.0: + dependencies: + argparse: 2.0.1 + + katex@0.16.47: + dependencies: + commander: 8.3.0 + + katex@0.17.0: + dependencies: + commander: 8.3.0 + + khroma@2.1.0: {} + + kleur@3.0.3: {} + + klona@2.0.6: {} + + layout-base@1.0.2: {} + + layout-base@2.0.1: {} + + lodash-es@4.18.1: {} + + longest-streak@3.1.0: {} + + lru-cache@11.5.2: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + magicast@0.5.3: + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + source-map-js: 1.2.1 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.4: {} + + marked@16.4.2: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + mdast-util-directive@3.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-visit-parents: 6.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-math@3.0.0: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + longest-streak: 3.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + unist-util-remove-position: 5.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.2 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.28: {} + + mdn-data@2.27.1: {} + + mermaid@11.16.0: + dependencies: + '@braintree/sanitize-url': 7.1.2 + '@iconify/utils': 3.1.4 + '@mermaid-js/parser': 1.2.0 + '@types/d3': 7.4.3 + '@upsetjs/venn.js': 2.0.0 + cytoscape: 3.34.0 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.0) + cytoscape-fcose: 2.2.0(cytoscape@3.34.0) + d3: 7.9.0 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.14 + dayjs: 1.11.21 + dompurify: 3.4.11 + es-toolkit: 1.49.0 + katex: 0.16.47 + khroma: 2.1.0 + marked: 16.4.2 + roughjs: 4.6.6 + stylis: 4.4.0 + ts-dedent: 2.3.0 + uuid: 14.0.1 + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-directive@3.0.2: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + parse-entities: 4.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-math@3.1.0: + dependencies: + '@types/katex': 0.16.8 + devlop: 1.1.0 + katex: 0.16.47 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.9 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + nanoid@3.3.15: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-fetch-native@1.6.7: {} + + node-mock-http@1.0.4: {} + + normalize-path@3.0.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + ohash@2.0.11: {} + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + + p-limit@6.2.0: + dependencies: + yocto-queue: 1.2.2 + + p-queue@8.1.1: + dependencies: + eventemitter3: 5.0.4 + p-timeout: 6.1.4 + + p-timeout@6.1.4: {} + + package-manager-detector@1.7.0: {} + + pagefind@1.5.2: + optionalDependencies: + '@pagefind/darwin-arm64': 1.5.2 + '@pagefind/darwin-x64': 1.5.2 + '@pagefind/freebsd-x64': 1.5.2 + '@pagefind/linux-arm64': 1.5.2 + '@pagefind/linux-x64': 1.5.2 + '@pagefind/windows-arm64': 1.5.2 + '@pagefind/windows-x64': 1.5.2 + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.3.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + path-data-parser@0.1.0: {} + + piccolore@0.1.3: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.5: {} + + points-on-curve@0.2.0: {} + + points-on-path@0.2.1: + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + + postcss-nested@6.2.0(postcss@8.5.16): + dependencies: + postcss: 8.5.16 + postcss-selector-parser: 6.1.4 + + postcss-selector-parser@6.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.16: + dependencies: + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prismjs@1.30.0: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@7.2.0: {} + + radix3@1.1.2: {} + + readdirp@5.0.0: {} + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.9 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.9 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.9 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + rehype-expressive-code@0.41.7: + dependencies: + expressive-code: 0.41.7 + + rehype-format@5.0.1: + dependencies: + '@types/hast': 3.0.5 + hast-util-format: 1.1.0 + + rehype-katex@7.0.1: + dependencies: + '@types/hast': 3.0.5 + '@types/katex': 0.16.8 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.2 + katex: 0.16.47 + unist-util-visit-parents: 6.0.2 + vfile: 6.0.3 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.5 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.5 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.9 + '@types/hast': 3.0.5 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.5 + hast-util-to-html: 9.0.5 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.5 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-directive@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-directive: 3.1.0 + micromark-extension-directive: 3.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-math@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-math: 3.0.0 + micromark-extension-math: 3.1.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.1.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + robust-predicates@3.0.3: {} + + rollup@4.62.2: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 + fsevents: 2.3.3 + + roughjs@4.6.6: + dependencies: + hachure-fill: 0.5.2 + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + points-on-path: 0.2.1 + + rw@1.3.3: {} + + safer-buffer@2.1.2: {} + + sax@1.6.0: {} + + semver@7.8.5: {} + + sharp@0.34.5: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@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 + optional: true + + shiki@3.23.0: + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/engine-javascript': 3.23.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + + sisteransi@1.0.5: {} + + sitemap@9.0.1: + dependencies: + '@types/node': 24.13.3 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.6.0 + + smol-toml@1.7.0: {} + + source-map-js@1.2.1: {} + + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + stream-replace-string@2.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.2.2 + + style-to-js@1.1.21: + dependencies: + style-to-object: 1.0.14 + + style-to-object@1.0.14: + dependencies: + inline-style-parser: 0.2.7 + + stylis@4.4.0: {} + + svgo@4.0.1: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.2.1 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.6.0 + + tiny-inflate@1.0.3: {} + + tinyexec@1.2.4: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-dedent@2.3.0: {} + + tsconfck@3.1.6(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + + tslib@2.8.1: + optional: true + + type-fest@4.41.0: {} + + typescript@5.9.3: {} + + ufo@1.6.4: {} + + ultrahtml@1.7.0: {} + + uncrypto@0.1.3: {} + + undici-types@7.18.2: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unifont@0.7.4: + dependencies: + css-tree: 3.2.1 + ofetch: 1.5.1 + ohash: 2.0.11 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unstorage@1.17.5: + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.11 + lru-cache: 11.5.2 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.4 + + util-deprecate@1.0.2: {} + + uuid@14.0.1: {} + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vite@6.4.3(@types/node@24.13.3): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + postcss: 8.5.16 + rollup: 4.62.2 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 24.13.3 + fsevents: 2.3.3 + + vitefu@1.1.3(vite@6.4.3(@types/node@24.13.3)): + optionalDependencies: + vite: 6.4.3(@types/node@24.13.3) + + web-namespaces@2.0.1: {} + + which-pm-runs@1.1.0: {} + + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.2.0 + + xxhash-wasm@1.1.0: {} + + yargs-parser@21.1.1: {} + + yocto-queue@1.2.2: {} + + yocto-spinner@0.2.3: + dependencies: + yoctocolors: 2.1.2 + + yoctocolors@2.1.2: {} + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): + dependencies: + typescript: 5.9.3 + zod: 3.25.76 + + zod@3.25.76: {} + + zod@4.4.3: {} + + zwitch@2.0.4: {} diff --git a/website/pnpm-workspace.yaml b/website/pnpm-workspace.yaml new file mode 100644 index 000000000..6c1840dd3 --- /dev/null +++ b/website/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +allowBuilds: + esbuild: set this to true or false + sharp: set this to true or false +onlyBuiltDependencies: + - esbuild + - sharp diff --git a/website/public/blog/example_annotation.svg b/website/public/blog/example_annotation.svg new file mode 100644 index 000000000..1dfc3ab7c --- /dev/null +++ b/website/public/blog/example_annotation.svg @@ -0,0 +1 @@ +1324Previous layerMove errorSitter errorSing. qubloc. errorEntangling errorCZ gateSing. qubit gateUnpaired CZ errorLegends4123123412341234a)b)c) \ No newline at end of file diff --git a/website/public/blog/flowchart.png b/website/public/blog/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf47f1e90ca05d64117ae7cdd15fea8cc7e6134 GIT binary patch literal 156668 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

-+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

J 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 S@_hZl2IWX{wkxsqiv9-(Mkcoa literal 0 HcmV?d00001 diff --git a/website/public/blog/noisy_ghz_fidelity.svg b/website/public/blog/noisy_ghz_fidelity.svg new file mode 100644 index 000000000..b8d7daa8e --- /dev/null +++ b/website/public/blog/noisy_ghz_fidelity.svg @@ -0,0 +1,1097 @@ + + + + + + + + 2025-08-14T10:45:05.916387 + image/svg+xml + + + Matplotlib v3.9.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/public/favicon.ico b/website/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..db751222d3690ac0887921cf7e369553aa56295e GIT binary patch literal 4286 zcmc&%X(*;$7=9Sb491wT%S5R8YDy6$VZ?7EWf@tDAM=CBk3mV<qnBwLa{ zL?%R$Em5{?Wo*fA%#7v!-s?=~^gb^i-k0e+Z_j(qbMA9r_kGT}&wZ{(lC%^*dwU80 zQiF*kSxA!fkK$2uNxq5){j4Ztj?RCcKOK@p8kFtrZHkVLrpJ#TlZAx^m6n#$`T4m9 zNH?pTo}SXw)D%rlPSTGbKg8ht{Cv{Z)+WUq*kfsFNyEd#LjL{xck1csVS2xR{}%n~ zG!709=);E(WM*bYFJ8Q$*w|Rw+1a7X%S#Fi3lp}v4|R2Q3?6>Cxw(FVkVJD6`}WhIkkW@d_h*f%jTq5l4U=397pxJ-uq86O{4+kQ?? zjtmEO5)%^{&ieW~MMXuCm6a7aI5<#2K>=Z%Pfkwg&6_teJ;X?NcemR1J3Bkc*w|QL zJ$dqknwy&i4&q^MZjM%0S7ot>wb9bj5_+z#uC%tcCiMQR0lePcUTSJ;qJ@P8`t|D< zRaaM&hldBbySr0KNeLkyZ!5dIyOfocMc&@t^zPj|8X6j6D$C2u)Y8(z;_~?TSO)X+ z=TAybP9{S`Ll)PsUcF+zU=ZSPe}A9ttxV~L7sM#`g2z5$(%IRWVPhTRWM^IsRz|lRP~=#Tdv73k!w(zKyD?DwYrU{9IgISllY(BG1Le#W7ziDk|vc z=tx<7uQp=4rly91f`aJ%`}Z_DI(h{U`-F0FadAcVP#qkb+XC*^))syG^ofFlgDE2; zgOI!bRslBh18l)2Y)3{$(xXR@#NJ0lL_A2`sm=kp1Gab!z$R?rJn}x&$f+|kGpg$M zexIG4W!TELkegvoxzEwjkych#?rl#M0D0QU$w_7l_jY-CIiZFR&z?PF=T133RB<$Y z2WC-G5wihXuvu1C#&R6a!kYJT*OkY-8Q$IFHd2 zuNwTp%gak<-`?Jy78e%r2JO#WK#q^;BzcC9ECp zSRWrB#^-RRrl+S_8+?rOB2``GcihKVCmt7A8}LD1fPppST#@&KCo1oyjg1YBjg4{f zo$Jq^KMUL32XK4r1NdV~N($N9+7j>+5)uSQyzbisSn3w6y@7#&%m;8(l!k@|7AxE@ z%(u3-mdR36Q)N0&pFU-|g$dR81AoQ2#kURaNPmBS5tG^3*)kjO19=4ncNcgL^sKF| z85ak?)}-LhMxO5L>to-390R$@$jC_efP1vQzMhNe@bHk3)9`(Amsk^ucWl6~w6ruf VN31Wt%lKKlBZL^HSiAqV{0kL<6m9?j literal 0 HcmV?d00001 diff --git a/website/public/guides/analog/analog-logo-dark.svg b/website/public/guides/analog/analog-logo-dark.svg new file mode 100644 index 000000000..4ee3f81ae --- /dev/null +++ b/website/public/guides/analog/analog-logo-dark.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/public/guides/analog/analog-logo.svg b/website/public/guides/analog/analog-logo.svg new file mode 100644 index 000000000..20b18d0f4 --- /dev/null +++ b/website/public/guides/analog/analog-logo.svg @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/public/guides/analog/geometry-visualization.png b/website/public/guides/analog/geometry-visualization.png new file mode 100644 index 0000000000000000000000000000000000000000..f3b0ec2341a55b270ecb0b9cc4b5ba0edda25df7 GIT binary patch literal 61247 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 literal 0 HcmV?d00001 diff --git a/website/public/guides/analog/index/geometry-visualization.png b/website/public/guides/analog/index/geometry-visualization.png new file mode 100644 index 0000000000000000000000000000000000000000..be85f0c4358f173c1753b208acaf22730bf5931d GIT binary patch literal 181339 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 {$QZqYC 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

Xg#JRGnpfumI3I|&91u*wRQ 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