diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 4212a1e59ccd..162321eac5e2 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -33,12 +33,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -46,7 +52,7 @@ jobs: - run: ./run changelog-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/engine-benchmark.yml b/.github/workflows/engine-benchmark.yml index 752147aa1ada..8061d0c3369f 100644 --- a/.github/workflows/engine-benchmark.yml +++ b/.github/workflows/engine-benchmark.yml @@ -7,6 +7,10 @@ on: - cron: 0 0 * * * workflow_dispatch: inputs: + bench-name: + description: Name (regex) of the benchmark to run. + required: false + type: string just-check: description: If set, benchmarks will be only checked to run correctly, not to measure actual performance. required: true @@ -35,7 +39,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -48,6 +58,11 @@ jobs: - run: ./run backend benchmark runtime env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload benchmark results + uses: actions/upload-artifact@v4 + with: + name: benchmark-results.xml + path: engine/runtime-benchmarks/bench-report.xml - if: (always()) name: Clean after run: ./run git-clean @@ -57,5 +72,6 @@ jobs: GRAAL_EDITION: GraalVM CE timeout-minutes: 240 env: + ENSO_BUILD_BENCH_NAME: ${{ inputs.bench-name }} ENSO_BUILD_MINIMAL_RUN: ${{ true == inputs.just-check }} ENSO_BUILD_SKIP_VERSION_CHECK: "true" diff --git a/.github/workflows/engine-checks-nightly.yml b/.github/workflows/engine-checks-nightly.yml index 78bd75d9a4a9..d939fe0200f1 100644 --- a/.github/workflows/engine-checks-nightly.yml +++ b/.github/workflows/engine-checks-nightly.yml @@ -36,12 +36,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -49,7 +55,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -80,12 +86,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -93,7 +105,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -122,12 +134,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -135,7 +153,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -165,12 +183,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -178,7 +202,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -208,12 +232,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -221,7 +251,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -251,12 +281,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -273,7 +309,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -306,12 +342,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -328,7 +370,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -359,12 +401,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -381,7 +429,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -413,12 +461,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -435,7 +489,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -467,12 +521,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -489,7 +549,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -521,12 +581,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -546,7 +612,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -579,12 +645,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -604,7 +676,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -635,12 +707,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -660,7 +738,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -692,12 +770,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -717,7 +801,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -749,12 +833,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -774,7 +864,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/engine-checks-optional.yml b/.github/workflows/engine-checks-optional.yml index 591ac9f7e71d..ff81177ea09b 100644 --- a/.github/workflows/engine-checks-optional.yml +++ b/.github/workflows/engine-checks-optional.yml @@ -38,12 +38,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -51,7 +57,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -81,12 +87,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -103,7 +115,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -135,12 +147,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -160,7 +178,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/engine-checks.yml b/.github/workflows/engine-checks.yml index 49505413ac61..de7614cd9960 100644 --- a/.github/workflows/engine-checks.yml +++ b/.github/workflows/engine-checks.yml @@ -38,12 +38,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -51,7 +57,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -81,12 +87,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -94,7 +106,7 @@ jobs: - run: ./run backend ci-check env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -124,12 +136,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -146,7 +164,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -178,12 +196,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -200,7 +224,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -209,6 +233,53 @@ jobs: GRAAL_EDITION: GraalVM CE permissions: checks: write + enso-build-ci-gen-job-standard-library-api-check-linux-amd64: + name: Standard Library API check (linux, amd64) + runs-on: + - self-hosted + - Linux + steps: + - if: runner.os == 'Windows' + name: Setup required bazel environment + run: "\n\"BAZEL_SH=C:\\Program Files\\Git\\bin\\bash.exe\" >> $env:GITHUB_ENV\n\"BAZEL_VC=C:\\BuildTools\\VC\" >> $env:GITHUB_ENV\n " + shell: pwsh + - name: Setup bazel environment + uses: bazel-contrib/setup-bazel@0.13.0 + with: + bazelrc: build --remote_cache=grpcs://${{ vars.ENSO_BAZEL_CACHE_URI }} --remote_cache_header="authorization=Basic ${{ secrets.ENSO_BAZEL_CACHE_TOKEN }}" + output-base: ${{ runner.os == 'Windows' && 'c:/_bazel' || '' }} + - name: Expose Artifact API and context information. + uses: actions/github-script@v7 + with: + script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n " + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version + - name: Build Script Setup + run: ./run --help || (git clean -ffdx && ./run --help) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" + name: Clean before + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: ./run backend stdlib-api-check + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" + name: Clean after + run: ./run git-clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} enso-build-ci-gen-job-standard-library-tests-graal-vm-ce-linux-amd64: name: Standard Library Tests (GraalVM CE) (linux, amd64) runs-on: @@ -232,12 +303,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -257,7 +334,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -289,12 +366,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -314,7 +397,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -346,12 +429,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -359,7 +448,7 @@ jobs: - run: ./run backend sbt '--' verifyLicensePackages env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/engine-pull-request.yml b/.github/workflows/engine-pull-request.yml index 7231da64327d..2f71fe94439c 100644 --- a/.github/workflows/engine-pull-request.yml +++ b/.github/workflows/engine-pull-request.yml @@ -14,6 +14,7 @@ concurrency: permissions: checks: write + pull-requests: write jobs: engine-changed-files: @@ -35,10 +36,15 @@ jobs: if: needs.engine-changed-files.outputs.any_changed == 'true' || github.ref == 'refs/heads/develop' secrets: inherit + stdlib-api-changes-label: + name: 🏷 Append labels to PR + uses: ./.github/workflows/std-libs-labels.yml + secrets: inherit + required-checks: name: Engine Required Checks runs-on: ubuntu-latest - needs: [engine-checks] + needs: [engine-checks, stdlib-api-changes-label] if: always() steps: - name: Checks Summary diff --git a/.github/workflows/extra-nightly-tests.yml b/.github/workflows/extra-nightly-tests.yml index f9dc26e96537..6cf9c8772461 100644 --- a/.github/workflows/extra-nightly-tests.yml +++ b/.github/workflows/extra-nightly-tests.yml @@ -35,12 +35,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -68,7 +74,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -100,12 +106,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -130,7 +142,7 @@ jobs: path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml path-replace-backslashes: true reporter: java-junit - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/gui-checks.yml b/.github/workflows/gui-checks.yml index 1a114b3f4f7b..a15c975e3c7b 100644 --- a/.github/workflows/gui-checks.yml +++ b/.github/workflows/gui-checks.yml @@ -15,6 +15,11 @@ permissions: statuses: write # Write access to commit statuses checks: write +env: + # Workaround for https://github.com/nodejs/corepack/issues/612 + # See: https://github.com/nodejs/corepack/blob/main/README.md#environment-variables + COREPACK_DEFAULT_TO_LATEST: 0 + jobs: lint: name: 👮 Lint GUI @@ -117,8 +122,8 @@ jobs: fail-fast: false max-parallel: 24 matrix: - shardIndex: [1, 2, 3, 4, 5, 6] - shardTotal: [6] + shardIndex: [1, 2, 3, 4] + shardTotal: [4] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ide-packaging-optional.yml b/.github/workflows/ide-packaging-optional.yml index 485bc4c0995d..57ca82d29661 100644 --- a/.github/workflows/ide-packaging-optional.yml +++ b/.github/workflows/ide-packaging-optional.yml @@ -38,12 +38,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -51,7 +57,16 @@ jobs: - run: ./run backend get env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - name: Archive project-manager + run: tar -cvf project-manager.tar -C dist/backend . + - name: Upload project-manager + uses: actions/upload-artifact@v4 + with: + name: project-manager-macos + path: project-manager.tar + - name: Cleanup + run: rm project-manager.tar + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -79,12 +94,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -105,7 +126,7 @@ jobs: ENSO_IDE_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} ENSO_IDE_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -135,17 +156,31 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run ide build --backend-source current-ci-run --gui-upload-artifact false + - name: Download project-manager + uses: actions/download-artifact@v4 + with: + name: project-manager-macos + path: dist/backend + - run: |- + tar -xvf dist/backend/project-manager.tar -C dist/backend + rm dist/backend/project-manager.tar + - run: ./run ide build --backend-source local --gui-upload-artifact false env: APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }} APPLEIDPASS: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} @@ -181,10 +216,15 @@ jobs: compression-level: 0 name: test-traces-macos-amd64 path: app/ide-desktop/client/test-traces + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-macos + path: dist/ide/enso-*.dmg - run: rm $HOME/.enso/credentials env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/ide-packaging.yml b/.github/workflows/ide-packaging.yml index 2f1b00dae956..0d7b62642349 100644 --- a/.github/workflows/ide-packaging.yml +++ b/.github/workflows/ide-packaging.yml @@ -38,12 +38,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -51,7 +57,26 @@ jobs: - run: ./run backend get env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - name: Upload Edition File + uses: actions/upload-artifact@v4 + with: + name: Edition File + path: distribution/editions/*.yaml + - name: Upload fbs-schema + uses: actions/upload-artifact@v4 + with: + name: fbs-schema + path: engine/language-server/src/main/schema/ + - name: Archive project-manager + run: tar -cvf project-manager.tar -C dist/backend . + - name: Upload project-manager + uses: actions/upload-artifact@v4 + with: + name: project-manager-linux + path: project-manager.tar + - name: Cleanup + run: rm project-manager.tar + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -79,12 +104,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -92,7 +123,16 @@ jobs: - run: ./run backend get env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - name: Archive project-manager + run: tar -cvf project-manager.tar -C dist/backend . + - name: Upload project-manager + uses: actions/upload-artifact@v4 + with: + name: project-manager-windows + path: project-manager.tar + - name: Cleanup + run: rm project-manager.tar + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -120,12 +160,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -146,7 +192,12 @@ jobs: ENSO_IDE_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} ENSO_IDE_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - name: Upload gui + uses: actions/upload-artifact@v4 + with: + name: gui + path: dist/gui/ + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -174,12 +225,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -200,7 +257,7 @@ jobs: ENSO_IDE_SENTRY_DSN: ${{ vars.ENSO_CLOUD_SENTRY_DSN }} ENSO_IDE_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -230,17 +287,31 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run ide build --backend-source current-ci-run --gui-upload-artifact false + - name: Download project-manager + uses: actions/download-artifact@v4 + with: + name: project-manager-linux + path: dist/backend + - run: |- + tar -xvf dist/backend/project-manager.tar -C dist/backend + rm dist/backend/project-manager.tar + - run: ./run ide build --backend-source local --gui-upload-artifact false env: ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} ENSO_IDE_API_URL: ${{ vars.ENSO_CLOUD_API_URL }} @@ -270,10 +341,15 @@ jobs: compression-level: 0 name: test-traces-linux-amd64 path: app/ide-desktop/client/test-traces + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-linux + path: dist/ide/enso-*.AppImage - run: rm $HOME/.enso/credentials env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -303,17 +379,31 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: ./run ide build --backend-source current-ci-run --gui-upload-artifact false + - name: Download project-manager + uses: actions/download-artifact@v4 + with: + name: project-manager-windows + path: dist/backend + - run: |- + tar -xvf dist/backend/project-manager.tar -C dist/backend + rm dist/backend/project-manager.tar + - run: ./run ide build --backend-source local --gui-upload-artifact false env: ENSO_IDE_AG_GRID_LICENSE_KEY: ${{ vars.ENSO_AG_GRID_LICENSE_KEY }} ENSO_IDE_API_URL: ${{ vars.ENSO_CLOUD_API_URL }} @@ -344,10 +434,15 @@ jobs: compression-level: 0 name: test-traces-windows-amd64 path: app/ide-desktop/client/test-traces + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-windows + path: dist/ide/enso-*.exe - run: rm $HOME/.enso/credentials env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/promote.yml b/.github/workflows/promote.yml index 437880b1710d..30a6ce4dfca3 100644 --- a/.github/workflows/promote.yml +++ b/.github/workflows/promote.yml @@ -57,12 +57,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -71,7 +77,7 @@ jobs: run: ./run release promote ${{ inputs.designator }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 378fcd66e84b..ab8a99dd4485 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -91,12 +97,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -108,7 +120,7 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.ECR_PUSH_RUNTIME_SECRET_ACCESS_KEY }} ENSO_BUILD_ECR_REPOSITORY: runtime GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -142,7 +154,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -193,12 +211,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -206,7 +230,7 @@ jobs: - run: ./run release dispatch-build-image env: GITHUB_TOKEN: ${{ secrets.CI_PRIVATE_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -236,7 +260,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -283,7 +313,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -328,7 +364,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -374,7 +416,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -425,12 +473,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -438,7 +492,7 @@ jobs: - run: ./run release publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -475,7 +529,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -504,6 +564,11 @@ jobs: ENSO_IDE_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-linux-amd64 + path: dist/ide/enso-*.AppImage - if: (always()) name: Clean after run: ./run git-clean @@ -539,7 +604,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -575,6 +646,11 @@ jobs: ENSO_IDE_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-macos-aarch64 + path: dist/ide/enso-*.dmg - if: (always()) name: Clean after run: ./run git-clean @@ -608,7 +684,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -644,6 +726,11 @@ jobs: ENSO_IDE_STRIPE_KEY: ${{ vars.ENSO_CLOUD_STRIPE_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-macos-amd64 + path: dist/ide/enso-*.dmg - if: (always()) name: Clean after run: ./run git-clean @@ -678,7 +765,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -709,6 +802,11 @@ jobs: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} WIN_CSC_KEY_PASSWORD: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT_PASSWORD }} WIN_CSC_LINK: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT }} + - name: Upload ide + uses: actions/upload-artifact@v4 + with: + name: ide-windows-amd64 + path: dist/ide/enso-*.exe - if: (always()) name: Clean after run: ./run git-clean diff --git a/.github/workflows/std-libs-benchmark.yml b/.github/workflows/std-libs-benchmark.yml index 2fecaab29ed0..0cdd963cc7fb 100644 --- a/.github/workflows/std-libs-benchmark.yml +++ b/.github/workflows/std-libs-benchmark.yml @@ -7,6 +7,10 @@ on: - cron: 0 0 * * * workflow_dispatch: inputs: + bench-name: + description: Name (regex) of the benchmark to run. + required: false + type: string just-check: description: If set, benchmarks will be only checked to run correctly, not to measure actual performance. required: true @@ -35,7 +39,13 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -48,6 +58,11 @@ jobs: - run: ./run backend benchmark enso-jmh env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload benchmark results + uses: actions/upload-artifact@v4 + with: + name: benchmark-results.xml + path: std-bits/benchmarks/bench-report.xml - if: (always()) name: Clean after run: ./run git-clean @@ -57,5 +72,6 @@ jobs: GRAAL_EDITION: GraalVM CE timeout-minutes: 240 env: + ENSO_BUILD_BENCH_NAME: ${{ inputs.bench-name }} ENSO_BUILD_MINIMAL_RUN: ${{ true == inputs.just-check }} ENSO_BUILD_SKIP_VERSION_CHECK: "true" diff --git a/.github/workflows/std-libs-labels.yml b/.github/workflows/std-libs-labels.yml new file mode 100644 index 000000000000..ab877c268a01 --- /dev/null +++ b/.github/workflows/std-libs-labels.yml @@ -0,0 +1,293 @@ +# This file is auto-generated. Do not edit it manually! +# Edit the enso_build::ci_gen module instead and run `cargo run --package enso-build-ci-gen`. + +name: 🏷 Standard Library Labels +description: Check if the API signature files in any of the standard libraries changed and if so, append a corresponding label to the PR. +on: + push: + branches: + - develop + pull_request: {} + workflow_dispatch: {} + workflow_call: {} +permissions: + checks: write + pull-requests: write +jobs: + stdlib-api-check-AWS-linux-amd64: + name: AWS-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: AWS-changed-files + name: AWS-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/AWS/**/docs/api/**.md + - name: List all changed files in AWS + run: "\n if [[ \"${{ steps.AWS-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.AWS-changed-files.outputs.all_changed_files }} + - if: steps.AWS-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-AWS label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-AWS + stdlib-api-check-Base-linux-amd64: + name: Base-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Base-changed-files + name: Base-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Base/**/docs/api/**.md + - name: List all changed files in Base + run: "\n if [[ \"${{ steps.Base-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Base-changed-files.outputs.all_changed_files }} + - if: steps.Base-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Base label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Base + stdlib-api-check-Database-linux-amd64: + name: Database-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Database-changed-files + name: Database-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Database/**/docs/api/**.md + - name: List all changed files in Database + run: "\n if [[ \"${{ steps.Database-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Database-changed-files.outputs.all_changed_files }} + - if: steps.Database-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Database label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Database + stdlib-api-check-Google_Api-linux-amd64: + name: Google_Api-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Google_Api-changed-files + name: Google_Api-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Google_Api/**/docs/api/**.md + - name: List all changed files in Google_Api + run: "\n if [[ \"${{ steps.Google_Api-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Google_Api-changed-files.outputs.all_changed_files }} + - if: steps.Google_Api-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Google_Api label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Google_Api + stdlib-api-check-Image-linux-amd64: + name: Image-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Image-changed-files + name: Image-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Image/**/docs/api/**.md + - name: List all changed files in Image + run: "\n if [[ \"${{ steps.Image-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Image-changed-files.outputs.all_changed_files }} + - if: steps.Image-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Image label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Image + stdlib-api-check-Microsoft-linux-amd64: + name: Microsoft-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Microsoft-changed-files + name: Microsoft-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Microsoft/**/docs/api/**.md + - name: List all changed files in Microsoft + run: "\n if [[ \"${{ steps.Microsoft-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Microsoft-changed-files.outputs.all_changed_files }} + - if: steps.Microsoft-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Microsoft label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Microsoft + stdlib-api-check-Snowflake-linux-amd64: + name: Snowflake-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Snowflake-changed-files + name: Snowflake-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Snowflake/**/docs/api/**.md + - name: List all changed files in Snowflake + run: "\n if [[ \"${{ steps.Snowflake-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Snowflake-changed-files.outputs.all_changed_files }} + - if: steps.Snowflake-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Snowflake label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Snowflake + stdlib-api-check-Table-linux-amd64: + name: Table-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Table-changed-files + name: Table-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Table/**/docs/api/**.md + - name: List all changed files in Table + run: "\n if [[ \"${{ steps.Table-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Table-changed-files.outputs.all_changed_files }} + - if: steps.Table-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Table label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Table + stdlib-api-check-Tableau-linux-amd64: + name: Tableau-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Tableau-changed-files + name: Tableau-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Tableau/**/docs/api/**.md + - name: List all changed files in Tableau + run: "\n if [[ \"${{ steps.Tableau-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Tableau-changed-files.outputs.all_changed_files }} + - if: steps.Tableau-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Tableau label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Tableau + stdlib-api-check-Test-linux-amd64: + name: Test-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Test-changed-files + name: Test-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Test/**/docs/api/**.md + - name: List all changed files in Test + run: "\n if [[ \"${{ steps.Test-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Test-changed-files.outputs.all_changed_files }} + - if: steps.Test-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Test label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Test + stdlib-api-check-Visualization-linux-amd64: + name: Visualization-change-labels + runs-on: + - ubuntu-latest + steps: + - name: Checking out the repository + uses: actions/checkout@v4 + with: + clean: false + fetch-depth: 2 + - id: Visualization-changed-files + name: Visualization-changed-files + uses: tj-actions/changed-files@v45 + with: + files: distribution/lib/Standard/Visualization/**/docs/api/**.md + - name: List all changed files in Visualization + run: "\n if [[ \"${{ steps.Visualization-changed-files.outputs.any_changed }}\" == \"true\" ]]; then\n echo \"Files changed:\"\n fi\n for file in ${ALL_CHANGED_FILES}; do\n echo \"$file\"\n done\n " + env: + ALL_CHANGED_FILES: ${{ steps.Visualization-changed-files.outputs.all_changed_files }} + - if: steps.Visualization-changed-files.outputs.any_changed == 'true' + name: Append -libs-API-change-Visualization label + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: -libs-API-change-Visualization +env: + ENSO_BUILD_SKIP_VERSION_CHECK: "true" diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml index 1a7dec273de7..bb9bfa61ba51 100644 --- a/.github/workflows/storybook.yml +++ b/.github/workflows/storybook.yml @@ -16,6 +16,9 @@ permissions: statuses: write # Write access to commit statuses env: + # Workaround for https://github.com/nodejs/corepack/issues/612 + # See: https://github.com/nodejs/corepack/blob/main/README.md#environment-variables + COREPACK_DEFAULT_TO_LATEST: 0 ENSO_BUILD_SKIP_VERSION_CHECK: "true" PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 diff --git a/.github/workflows/wasm-changed-files.yml b/.github/workflows/wasm-changed-files.yml index fdbf1aa2b345..6998435d8222 100644 --- a/.github/workflows/wasm-changed-files.yml +++ b/.github/workflows/wasm-changed-files.yml @@ -30,7 +30,7 @@ jobs: files: | .cargo/** app/rust-ffi/** - build/** + build_tools/** lib/rust/** tools/language-server/logstat/** tools/language-server/wstest/** diff --git a/.github/workflows/wasm-checks.yml b/.github/workflows/wasm-checks.yml index c4046a2b0153..bc896d31cdbc 100644 --- a/.github/workflows/wasm-checks.yml +++ b/.github/workflows/wasm-checks.yml @@ -38,12 +38,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -51,7 +57,7 @@ jobs: - run: ./run lint env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -79,12 +85,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -92,7 +104,7 @@ jobs: - run: ./run wasm test --no-wasm env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: @@ -120,12 +132,18 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive + - if: runner.os == 'macOS' + name: Setup nodejs version + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + - if: runner.os != 'Linux' + run: npm install -g corepack@0.31.0 && corepack --version - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean before run: ./run git-clean env: @@ -138,7 +156,7 @@ jobs: - run: ./run wasm test --no-native env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || inputs.clean_build_required)" + - if: "(always()) && (contains(github.event.pull_request.labels.*.name, 'CI: Clean build required') || (github.ref == 'refs/heads/develop') || inputs.clean_build_required)" name: Clean after run: ./run git-clean env: diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000000..71ffcda720d4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "app/gui/.dev-env"] + path = app/gui/.dev-env + url = ../dev-env.git diff --git a/.prettierignore b/.prettierignore index 718fb277b466..ffdd718160fd 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,6 +14,7 @@ distribution/project-manager/THIRD-PARTY tools distribution/lib/Standard/*/*/manifest.yaml distribution/lib/Standard/*/*/polyglot +distribution/lib/Standard/*/*/docs/api distribution/lib/Standard/*/*/THIRD-PARTY distribution/docs-js diff --git a/CHANGELOG.md b/CHANGELOG.md index 676c44728666..f12148ad94f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,22 +9,43 @@ - [Quick Fix Import Button][12051]. - [Fixed nodes being selected after deleting other nodes or connections.][11902] - [Redo stack is no longer lost when interacting with text literals][11908]. +- [Copy button on error message is fixed][12133]. - [Tooltips are hidden when clicking on a button][12067]. - [Fixed bug when clicking header in Table Editor Widget didn't start editing it][12064] - [When editing cells or header names in Table Editor Widget, `tab` and `enter` keys jumps to next cell/ next row respectively.][12129] - [Fixed bugs occurring after renaming project from within graph editor][12106]. +- [Users having "Team" plan or above may now access shared directories in Cloud + File Browser][12208] +- [Added support for rendering numbered and nested lists][12190]. +- [Added buttons for editing top-level markdown elements in the documentation + panel][12217]. +- [Removed `#` from default colum name][12222] +- [Cloud File Browser will display input for file name in components writing to + (new) files.][12228] +- [Cloud File Browser allows adding new directory in "writing" + components][12275] +- [Cloud File Browser allows renaming existing directories in "writing" + components][12323] [11889]: https://github.com/enso-org/enso/pull/11889 [11836]: https://github.com/enso-org/enso/pull/11836 [12051]: https://github.com/enso-org/enso/pull/12051 [11902]: https://github.com/enso-org/enso/pull/11902 [11908]: https://github.com/enso-org/enso/pull/11908 +[12133]: https://github.com/enso-org/enso/pull/12133 [12067]: https://github.com/enso-org/enso/pull/12067 [12064]: https://github.com/enso-org/enso/pull/12064 [12129]: https://github.com/enso-org/enso/pull/12129 [12106]: https://github.com/enso-org/enso/pull/12106 +[12208]: https://github.com/enso-org/enso/pull/12208 +[12190]: https://github.com/enso-org/enso/pull/12190 +[12222]: https://github.com/enso-org/enso/pull/12222 +[12228]: https://github.com/enso-org/enso/pull/12228 +[12217]: https://github.com/enso-org/enso/pull/12217 +[12275]: https://github.com/enso-org/enso/pull/12275 +[12323]: https://github.com/enso-org/enso/pull/12323 #### Enso Standard Library @@ -32,12 +53,30 @@ link.][11926] - [Reducing helper methods in `Standard.Base.Meta`.][12031] - [Added Table.Offset][12071] +- [Implemented Generic JDBC connections.][12073] - [Added Column.Offset][12092] +- [When reading a Delimited file, if a row with more columns than expected is + encountered, extra columns can be added to the result.][12231] + - In `Delimited` format, the `keep_invalid_rows` setting has been renamed to + `on_invalid_rows`. The default behaviour was also changed to add any extra + columns instead of discarding them. +- [Added DB_Table.Offset for SQLServer][12206] +- [Added DB_Table.Offset for Snowflake, Postgres, SQLite][12251] +- [Support for key-pair authentication in Snowflake connector.][12247] +- [Support for basic arithmetic operations as numbers in Expressions.][12297] +- [Support for Regular Expressions in Enso Expressions.][12320] [11926]: https://github.com/enso-org/enso/pull/11926 [12031]: https://github.com/enso-org/enso/pull/12031 [12071]: https://github.com/enso-org/enso/pull/12071 +[12073]: https://github.com/enso-org/enso/pull/12073 [12092]: https://github.com/enso-org/enso/pull/12092 +[12231]: https://github.com/enso-org/enso/pull/12231 +[12206]: https://github.com/enso-org/enso/pull/12206 +[12251]: https://github.com/enso-org/enso/pull/12251 +[12247]: https://github.com/enso-org/enso/pull/12247 +[12297]: https://github.com/enso-org/enso/pull/12297 +[12320]: https://github.com/enso-org/enso/pull/12320 #### Enso Language & Runtime @@ -52,7 +91,8 @@ - [Types without constructors can be public][12052] - Symetric, transitive and reflexive [equality for intersection types][11897] - [IR definitions are generated by an annotation processor][11770] -- [Use fn... to reference any module function](12128) +- [Use fn... to reference any module function][12128] +- [Improve error message for mismatched named argument application][12238] [11777]: https://github.com/enso-org/enso/pull/11777 [11600]: https://github.com/enso-org/enso/pull/11600 @@ -64,6 +104,7 @@ [11897]: https://github.com/enso-org/enso/pull/11897 [11770]: https://github.com/enso-org/enso/pull/11770 [12128]: https://github.com/enso-org/enso/pull/12128 +[12238]: https://github.com/enso-org/enso/pull/12238 # Enso 2024.5 diff --git a/Cargo.lock b/Cargo.lock index 2c8145d19324..17caad48cc4d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2808,9 +2808,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -2840,9 +2840,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" dependencies = [ "cc", "libc", diff --git a/MODULE.bazel b/MODULE.bazel index 9a0e009e7b16..ae2d2f08fa1d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -11,7 +11,7 @@ bazel_dep(name = "aspect_bazel_lib", version = "2.10.0") ## Node.js node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") -node.toolchain(node_version = "20.11.1") +node.toolchain(node_version = "22.11.0") tar_toolchain = use_extension("//toolchains:tar/extensions.bzl", "tar_toolchain") use_repo(tar_toolchain, "tar_toolchain") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 95bbbb2b60cd..8475a0064e2f 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -348,7 +348,7 @@ "@@rules_nodejs+//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "rphcryfYrOY/P3emfTskC/GY5YuHcwMl2B2ncjaM8lY=", - "usagesDigest": "btwAfGIbU0lGpYjZ3/Xl5oMnyR2AhPBYQYYvn9Y06uQ=", + "usagesDigest": "KII+s0/7Ylo56zOFj+fYf/2BKwnuYRqsdS7vGIE/n5o=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -362,7 +362,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "linux_amd64" } @@ -376,7 +376,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "linux_arm64" } @@ -390,7 +390,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "linux_s390x" } @@ -404,7 +404,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "linux_ppc64le" } @@ -418,7 +418,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "darwin_amd64" } @@ -432,7 +432,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "darwin_arm64" } @@ -446,7 +446,7 @@ "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], - "node_version": "20.11.1", + "node_version": "22.11.0", "include_headers": false, "platform": "windows_amd64" } @@ -625,7 +625,7 @@ "@@//lib/rust/parser/debug/fuzz/Cargo.toml": "d93cea0a1b3a5e96ea99d0f57c7a07361b6e3b46afb95dab362e7562d86655d0", "@@//build_tools/macros/lib/Cargo.toml": "9cd827c2abf32278530d4312e45a9ecd15c122cc180289ed1a58a632f46d1911", "@@//lib/rust/parser/doc-parser/Cargo.toml": "5416f179aa138f97123f02b999ab71338f489f6b912f31a17735375c1e2e704a", - "@@//MODULE.bazel": "dd7abb54b8f85858bd0ccb5c8443e67e211eeef6facc59b313acbb98c8787b11", + "@@//MODULE.bazel": "db1bab27ac7b5124180f2a3b55fba526b152c13f71f07b0eea760ddcaeb19e91", "@@//build_tools/install/installer/Cargo.toml": "285f8e82a63acb798f9b19307e2f9a16ae7f1cc73bbec40804249cab86ea879e", "@@//lib/rust/parser/debug/Cargo.toml": "c7af0403667534b52690811421790515f98b22d95932cadcd9cc8a3ac79bb06d", "@@//lib/rust/parser/generate-java/Cargo.toml": "c74133c954f6c6ef3b8af72a466a313ca583f7130e7c4c5779c8c352d8d96a65", @@ -645,7 +645,7 @@ "@@//build_tools/install/Cargo.toml": "196d37f4307e343dd81517dec28336a8e23e0498195484c56e30b9cd40e027e1", "@@//lib/rust/parser/schema/Cargo.toml": "3b46eb4d9790376071ee9662d7db0a57b6f3b68363ae01a0619adc4fcf4c3427", "@@//tools/language-server/wstest/Cargo.toml": "6a871b143010cad32e670e8ff7b0512a5204a66498bf461165874c28ea1b764e", - "@@//Cargo.lock": "9c6a982467a5311ddd7ba945be8e547413215350d6df3d85d65d0dc648a764e2", + "@@//Cargo.lock": "ea083c64c5e9749194b1d7a0f56a86211f956cbf7b876678d70e9db7b90b30b5", "@@//build_tools/cli/Cargo.toml": "5d5fc210aef6954d5cad88f5d29a2433e57dee606209c1b02fa3202b6dc125db", "@@//lib/rust/prelude/Cargo.toml": "d247be5470788ea62ada9fcc9aeb65be876c77fc7a0689a660c43b266bd6c504", "@@+_repo_rules+wasm_bindgen_cli_crate//Cargo.toml": "40b1c540eed2e2031f1622391be27ec7f28ddea710447f078c5f2fd245ef2750", @@ -670,7 +670,7 @@ "contents": { "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n [\n \"cargo-bazel.json\",\n \"crates.bzl\",\n \"defs.bzl\",\n ] + glob(\n allow_empty = True,\n include = [\"*.bazel\"],\n ),\n)\n\nfilegroup(\n name = \"srcs\",\n srcs = glob(\n allow_empty = True,\n include = [\n \"*.bazel\",\n \"*.bzl\",\n ],\n ),\n)\n\n# Workspace Member Dependencies\nalias(\n name = \"afl-0.15.10\",\n actual = \"@crates__afl-0.15.10//:afl\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"afl\",\n actual = \"@crates__afl-0.15.10//:afl\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow-1.0.86\",\n actual = \"@crates__anyhow-1.0.86//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow\",\n actual = \"@crates__anyhow-1.0.86//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-compression-0.3.15\",\n actual = \"@crates__async-compression-0.3.15//:async_compression\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-compression\",\n actual = \"@crates__async-compression-0.3.15//:async_compression\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-trait-0.1.82\",\n actual = \"@crates__async-trait-0.1.82//:async_trait\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-trait\",\n actual = \"@crates__async-trait-0.1.82//:async_trait\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aws-config-0.51.0\",\n actual = \"@crates__aws-config-0.51.0//:aws_config\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aws-config\",\n actual = \"@crates__aws-config-0.51.0//:aws_config\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aws-sdk-ecr-0.21.0\",\n actual = \"@crates__aws-sdk-ecr-0.21.0//:aws_sdk_ecr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aws-sdk-ecr\",\n actual = \"@crates__aws-sdk-ecr-0.21.0//:aws_sdk_ecr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aws-sdk-s3-0.21.0\",\n actual = \"@crates__aws-sdk-s3-0.21.0//:aws_sdk_s3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aws-sdk-s3\",\n actual = \"@crates__aws-sdk-s3-0.21.0//:aws_sdk_s3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64-0.13.1\",\n actual = \"@crates__base64-0.13.1//:base64\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64-0.21.7\",\n actual = \"@crates__base64-0.21.7//:base64\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bincode-1.3.3\",\n actual = \"@crates__bincode-1.3.3//:bincode\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bincode\",\n actual = \"@crates__bincode-1.3.3//:bincode\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"boolinator-2.4.0\",\n actual = \"@crates__boolinator-2.4.0//:boolinator\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"boolinator\",\n actual = \"@crates__boolinator-2.4.0//:boolinator\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytes-1.1.0\",\n actual = \"@crates__bytes-1.1.0//:bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytes\",\n actual = \"@crates__bytes-1.1.0//:bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytesize-1.3.0\",\n actual = \"@crates__bytesize-1.3.0//:bytesize\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytesize\",\n actual = \"@crates__bytesize-1.3.0//:bytesize\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"chrono-0.4.38\",\n actual = \"@crates__chrono-0.4.38//:chrono\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"chrono\",\n actual = \"@crates__chrono-0.4.38//:chrono\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap-4.5.16\",\n actual = \"@crates__clap-4.5.16//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap\",\n actual = \"@crates__clap-4.5.16//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"console_error_panic_hook-0.1.7\",\n actual = \"@crates__console_error_panic_hook-0.1.7//:console_error_panic_hook\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"console_error_panic_hook\",\n actual = \"@crates__console_error_panic_hook-0.1.7//:console_error_panic_hook\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"convert_case-0.6.0\",\n actual = \"@crates__convert_case-0.6.0//:convert_case\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"convert_case\",\n actual = \"@crates__convert_case-0.6.0//:convert_case\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"data-encoding-2.6.0\",\n actual = \"@crates__data-encoding-2.6.0//:data_encoding\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"data-encoding\",\n actual = \"@crates__data-encoding-2.6.0//:data_encoding\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"dependency_runner-1.2.4\",\n actual = \"@crates__dependency_runner-1.2.4//:dependency_runner\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"dependency_runner\",\n actual = \"@crates__dependency_runner-1.2.4//:dependency_runner\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"derive-where-1.2.7\",\n actual = \"@crates__derive-where-1.2.7//:derive_where\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"derive-where\",\n actual = \"@crates__derive-where-1.2.7//:derive_where\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"derive_more-1.0.0\",\n actual = \"@crates__derive_more-1.0.0//:derive_more\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"derive_more\",\n actual = \"@crates__derive_more-1.0.0//:derive_more\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"dirs-5.0.1\",\n actual = \"@crates__dirs-5.0.1//:dirs\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"dirs\",\n actual = \"@crates__dirs-5.0.1//:dirs\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"either-1.13.0\",\n actual = \"@crates__either-1.13.0//:either\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"either\",\n actual = \"@crates__either-1.13.0//:either\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"embed-resource-2.4.3\",\n actual = \"@crates__embed-resource-2.4.3//:embed_resource\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"embed-resource\",\n actual = \"@crates__embed-resource-2.4.3//:embed_resource\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"enso-build-0.1.0\",\n actual = \"@crates__enso-build-0.1.0//:enso_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"enso-build\",\n actual = \"@crates__enso-build-0.1.0//:enso_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"enso-install-0.1.0\",\n actual = \"@crates__enso-install-0.1.0//:enso_install\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"enso-install\",\n actual = \"@crates__enso-install-0.1.0//:enso_install\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"enso-installer-0.1.0\",\n actual = \"@crates__enso-installer-0.1.0//:enso_installer\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"enso-installer\",\n actual = \"@crates__enso-installer-0.1.0//:enso_installer\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"flate2-1.0.33\",\n actual = \"@crates__flate2-1.0.33//:flate2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"flate2\",\n actual = \"@crates__flate2-1.0.33//:flate2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"flume-0.10.14\",\n actual = \"@crates__flume-0.10.14//:flume\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"flume\",\n actual = \"@crates__flume-0.10.14//:flume\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"fn-error-context-0.2.1\",\n actual = \"@crates__fn-error-context-0.2.1//:fn_error_context\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"fn-error-context\",\n actual = \"@crates__fn-error-context-0.2.1//:fn_error_context\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"fs_extra-1.3.0\",\n actual = \"@crates__fs_extra-1.3.0//:fs_extra\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"fs_extra\",\n actual = \"@crates__fs_extra-1.3.0//:fs_extra\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures-0.3.30\",\n actual = \"@crates__futures-0.3.30//:futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures\",\n actual = \"@crates__futures-0.3.30//:futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures-util-0.3.30\",\n actual = \"@crates__futures-util-0.3.30//:futures_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures-util\",\n actual = \"@crates__futures-util-0.3.30//:futures_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"glob-0.3.1\",\n actual = \"@crates__glob-0.3.1//:glob\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"glob\",\n actual = \"@crates__glob-0.3.1//:glob\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"handlebars-4.5.0\",\n actual = \"@crates__handlebars-4.5.0//:handlebars\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"handlebars\",\n actual = \"@crates__handlebars-4.5.0//:handlebars\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"headers-0.3.9\",\n actual = \"@crates__headers-0.3.9//:headers\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"headers\",\n actual = \"@crates__headers-0.3.9//:headers\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"http-serde-1.1.3\",\n actual = \"@crates__http-serde-1.1.3//:http_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"http-serde\",\n actual = \"@crates__http-serde-1.1.3//:http_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif-0.17.8\",\n actual = \"@crates__indicatif-0.17.8//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif\",\n actual = \"@crates__indicatif-0.17.8//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"itertools-0.12.1\",\n actual = \"@crates__itertools-0.12.1//:itertools\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"itertools\",\n actual = \"@crates__itertools-0.12.1//:itertools\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"jni-0.21.1\",\n actual = \"@crates__jni-0.21.1//:jni\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"jni\",\n actual = \"@crates__jni-0.21.1//:jni\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"lazy_static-1.5.0\",\n actual = \"@crates__lazy_static-1.5.0//:lazy_static\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"lazy_static\",\n actual = \"@crates__lazy_static-1.5.0//:lazy_static\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"lexpr-0.2.7\",\n actual = \"@crates__lexpr-0.2.7//:lexpr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"lexpr\",\n actual = \"@crates__lexpr-0.2.7//:lexpr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mime-0.3.17\",\n actual = \"@crates__mime-0.3.17//:mime\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mime\",\n actual = \"@crates__mime-0.3.17//:mime\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mslnk-0.1.8\",\n actual = \"@crates__mslnk-0.1.8//:mslnk\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mslnk\",\n actual = \"@crates__mslnk-0.1.8//:mslnk\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"multimap-0.9.1\",\n actual = \"@crates__multimap-0.9.1//:multimap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"multimap\",\n actual = \"@crates__multimap-0.9.1//:multimap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"named-lock-0.4.1\",\n actual = \"@crates__named-lock-0.4.1//:named_lock\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"named-lock\",\n actual = \"@crates__named-lock-0.4.1//:named_lock\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"native-windows-gui-1.0.13\",\n actual = \"@crates__native-windows-gui-1.0.13//:native_windows_gui\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"native-windows-gui\",\n actual = \"@crates__native-windows-gui-1.0.13//:native_windows_gui\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"new_mime_guess-4.0.4\",\n actual = \"@crates__new_mime_guess-4.0.4//:new_mime_guess\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"new_mime_guess\",\n actual = \"@crates__new_mime_guess-4.0.4//:new_mime_guess\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"octocrab-0.17.0\",\n actual = \"@crates__octocrab-0.17.0//:octocrab\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"octocrab\",\n actual = \"@crates__octocrab-0.17.0//:octocrab\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste-1.0.15\",\n actual = \"@crates__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste\",\n actual = \"@crates__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"path-absolutize-3.1.1\",\n actual = \"@crates__path-absolutize-3.1.1//:path_absolutize\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"path-absolutize\",\n actual = \"@crates__path-absolutize-3.1.1//:path_absolutize\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"path-slash-0.2.1\",\n actual = \"@crates__path-slash-0.2.1//:path_slash\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"path-slash\",\n actual = \"@crates__path-slash-0.2.1//:path_slash\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pathdiff-0.2.1\",\n actual = \"@crates__pathdiff-0.2.1//:pathdiff\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pathdiff\",\n actual = \"@crates__pathdiff-0.2.1//:pathdiff\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"port_check-0.1.5\",\n actual = \"@crates__port_check-0.1.5//:port_check\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"port_check\",\n actual = \"@crates__port_check-0.1.5//:port_check\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"portpicker-0.1.1\",\n actual = \"@crates__portpicker-0.1.1//:portpicker\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"portpicker\",\n actual = \"@crates__portpicker-0.1.1//:portpicker\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2-1.0.86\",\n actual = \"@crates__proc-macro2-1.0.86//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2\",\n actual = \"@crates__proc-macro2-1.0.86//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pulldown-cmark-0.9.6\",\n actual = \"@crates__pulldown-cmark-0.9.6//:pulldown_cmark\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pulldown-cmark\",\n actual = \"@crates__pulldown-cmark-0.9.6//:pulldown_cmark\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote-1.0.37\",\n actual = \"@crates__quote-1.0.37//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote\",\n actual = \"@crates__quote-1.0.37//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand-0.8.5\",\n actual = \"@crates__rand-0.8.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand\",\n actual = \"@crates__rand-0.8.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_chacha-0.3.1\",\n actual = \"@crates__rand_chacha-0.3.1//:rand_chacha\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_chacha\",\n actual = \"@crates__rand_chacha-0.3.1//:rand_chacha\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_distr-0.4.3\",\n actual = \"@crates__rand_distr-0.4.3//:rand_distr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_distr\",\n actual = \"@crates__rand_distr-0.4.3//:rand_distr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"regex-1.10.6\",\n actual = \"@crates__regex-1.10.6//:regex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"regex\",\n actual = \"@crates__regex-1.10.6//:regex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest-0.11.27\",\n actual = \"@crates__reqwest-0.11.27//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest\",\n actual = \"@crates__reqwest-0.11.27//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scopeguard-1.2.0\",\n actual = \"@crates__scopeguard-1.2.0//:scopeguard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scopeguard\",\n actual = \"@crates__scopeguard-1.2.0//:scopeguard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"self-replace-1.5.0\",\n actual = \"@crates__self-replace-1.5.0//:self_replace\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"self-replace\",\n actual = \"@crates__self-replace-1.5.0//:self_replace\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"semver-1.0.23\",\n actual = \"@crates__semver-1.0.23//:semver\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"semver\",\n actual = \"@crates__semver-1.0.23//:semver\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde-1.0.209\",\n actual = \"@crates__serde-1.0.209//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde\",\n actual = \"@crates__serde-1.0.209//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.127\",\n actual = \"@crates__serde_json-1.0.127//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@crates__serde_json-1.0.127//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_yaml-0.9.34+deprecated\",\n actual = \"@crates__serde_yaml-0.9.34-deprecated//:serde_yaml\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_yaml\",\n actual = \"@crates__serde_yaml-0.9.34-deprecated//:serde_yaml\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha2-0.10.8\",\n actual = \"@crates__sha2-0.10.8//:sha2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha2\",\n actual = \"@crates__sha2-0.10.8//:sha2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"strum-0.26.3\",\n actual = \"@crates__strum-0.26.3//:strum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"strum\",\n actual = \"@crates__strum-0.26.3//:strum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"symlink-0.1.0\",\n actual = \"@crates__symlink-0.1.0//:symlink\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"symlink\",\n actual = \"@crates__symlink-0.1.0//:symlink\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn-2.0.77\",\n actual = \"@crates__syn-2.0.77//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn\",\n actual = \"@crates__syn-2.0.77//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sysinfo-0.30.13\",\n actual = \"@crates__sysinfo-0.30.13//:sysinfo\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sysinfo\",\n actual = \"@crates__sysinfo-0.30.13//:sysinfo\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tar-0.4.41\",\n actual = \"@crates__tar-0.4.41//:tar\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tar\",\n actual = \"@crates__tar-0.4.41//:tar\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile-3.12.0\",\n actual = \"@crates__tempfile-3.12.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile\",\n actual = \"@crates__tempfile-3.12.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"time-0.3.36\",\n actual = \"@crates__time-0.3.36//:time\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"time\",\n actual = \"@crates__time-0.3.36//:time\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-1.40.0\",\n actual = \"@crates__tokio-1.40.0//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio\",\n actual = \"@crates__tokio-1.40.0//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-stream-0.1.15\",\n actual = \"@crates__tokio-stream-0.1.15//:tokio_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-stream\",\n actual = \"@crates__tokio-stream-0.1.15//:tokio_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-util-0.7.11\",\n actual = \"@crates__tokio-util-0.7.11//:tokio_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-util\",\n actual = \"@crates__tokio-util-0.7.11//:tokio_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"toml-0.5.11\",\n actual = \"@crates__toml-0.5.11//:toml\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"toml\",\n actual = \"@crates__toml-0.5.11//:toml\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-0.1.40\",\n actual = \"@crates__tracing-0.1.40//:tracing\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing\",\n actual = \"@crates__tracing-0.1.40//:tracing\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-subscriber-0.3.18\",\n actual = \"@crates__tracing-subscriber-0.3.18//:tracing_subscriber\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-subscriber\",\n actual = \"@crates__tracing-subscriber-0.3.18//:tracing_subscriber\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"unicase-2.6.0\",\n actual = \"@crates__unicase-2.6.0//:unicase\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"unicase\",\n actual = \"@crates__unicase-2.6.0//:unicase\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"url-2.3.0\",\n actual = \"@crates__url-2.3.0//:url\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"url\",\n actual = \"@crates__url-2.3.0//:url\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"uuid-1.10.0\",\n actual = \"@crates__uuid-1.10.0//:uuid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"uuid\",\n actual = \"@crates__uuid-1.10.0//:uuid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"walkdir-2.5.0\",\n actual = \"@crates__walkdir-2.5.0//:walkdir\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"walkdir\",\n actual = \"@crates__walkdir-2.5.0//:walkdir\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen-0.2.99\",\n actual = \"@crates__wasm-bindgen-0.2.99//:wasm_bindgen\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen\",\n actual = \"@crates__wasm-bindgen-0.2.99//:wasm_bindgen\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen-test-0.3.49\",\n actual = \"@crates__wasm-bindgen-test-0.3.49//:wasm_bindgen_test\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen-test\",\n actual = \"@crates__wasm-bindgen-test-0.3.49//:wasm_bindgen_test\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"websocket-lite-0.5.2\",\n actual = \"@crates__websocket-lite-0.5.2//:websocket_lite\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"websocket-lite\",\n actual = \"@crates__websocket-lite-0.5.2//:websocket_lite\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"which-5.0.0\",\n actual = \"@crates__which-5.0.0//:which\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"which\",\n actual = \"@crates__which-5.0.0//:which\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"windows-0.52.0\",\n actual = \"@crates__windows-0.52.0//:windows\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"windows\",\n actual = \"@crates__windows-0.52.0//:windows\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"winreg-0.52.0\",\n actual = \"@crates__winreg-0.52.0//:winreg\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"winreg\",\n actual = \"@crates__winreg-0.52.0//:winreg\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wiremock-0.5.22\",\n actual = \"@crates__wiremock-0.5.22//:wiremock\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wiremock\",\n actual = \"@crates__wiremock-0.5.22//:wiremock\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zip-0.6.6\",\n actual = \"@crates__zip-0.6.6//:zip\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zip\",\n actual = \"@crates__zip-0.6.6//:zip\",\n tags = [\"manual\"],\n)\n", "alias_rules.bzl": "\"\"\"Alias that transitions its target to `compilation_mode=opt`. Use `transition_alias=\"opt\"` to enable.\"\"\"\n\nload(\"@rules_cc//cc:defs.bzl\", \"CcInfo\")\nload(\"@rules_rust//rust:rust_common.bzl\", \"COMMON_PROVIDERS\")\n\ndef _transition_alias_impl(ctx):\n # `ctx.attr.actual` is a list of 1 item due to the transition\n providers = [ctx.attr.actual[0][provider] for provider in COMMON_PROVIDERS]\n if CcInfo in ctx.attr.actual[0]:\n providers.append(ctx.attr.actual[0][CcInfo])\n return providers\n\ndef _change_compilation_mode(compilation_mode):\n def _change_compilation_mode_impl(_settings, _attr):\n return {\n \"//command_line_option:compilation_mode\": compilation_mode,\n }\n\n return transition(\n implementation = _change_compilation_mode_impl,\n inputs = [],\n outputs = [\n \"//command_line_option:compilation_mode\",\n ],\n )\n\ndef _transition_alias_rule(compilation_mode):\n return rule(\n implementation = _transition_alias_impl,\n provides = COMMON_PROVIDERS,\n attrs = {\n \"actual\": attr.label(\n mandatory = True,\n doc = \"`rust_library()` target to transition to `compilation_mode=opt`.\",\n providers = COMMON_PROVIDERS,\n cfg = _change_compilation_mode(compilation_mode),\n ),\n \"_allowlist_function_transition\": attr.label(\n default = \"@bazel_tools//tools/allowlists/function_transition_allowlist\",\n ),\n },\n doc = \"Transitions a Rust library crate to the `compilation_mode=opt`.\",\n )\n\ntransition_alias_dbg = _transition_alias_rule(\"dbg\")\ntransition_alias_fastbuild = _transition_alias_rule(\"fastbuild\")\ntransition_alias_opt = _transition_alias_rule(\"opt\")\n", - "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"aws-config\": Label(\"@crates//:aws-config-0.51.0\"),\n \"aws-sdk-ecr\": Label(\"@crates//:aws-sdk-ecr-0.21.0\"),\n \"aws-sdk-s3\": Label(\"@crates//:aws-sdk-s3-0.21.0\"),\n \"base64\": Label(\"@crates//:base64-0.13.1\"),\n \"bytes\": Label(\"@crates//:bytes-1.1.0\"),\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"dirs\": Label(\"@crates//:dirs-5.0.1\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"glob\": Label(\"@crates//:glob-0.3.1\"),\n \"handlebars\": Label(\"@crates//:handlebars-4.5.0\"),\n \"mime\": Label(\"@crates//:mime-0.3.17\"),\n \"new_mime_guess\": Label(\"@crates//:new_mime_guess-4.0.4\"),\n \"octocrab\": Label(\"@crates//:octocrab-0.17.0\"),\n \"path-slash\": Label(\"@crates//:path-slash-0.2.1\"),\n \"port_check\": Label(\"@crates//:port_check-0.1.5\"),\n \"pulldown-cmark\": Label(\"@crates//:pulldown-cmark-0.9.6\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"reqwest\": Label(\"@crates//:reqwest-0.11.27\"),\n \"scopeguard\": Label(\"@crates//:scopeguard-1.2.0\"),\n \"semver\": Label(\"@crates//:semver-1.0.23\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"sha2\": Label(\"@crates//:sha2-0.10.8\"),\n \"strum\": Label(\"@crates//:strum-0.26.3\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tempfile\": Label(\"@crates//:tempfile-3.12.0\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"toml\": Label(\"@crates//:toml-0.5.11\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n \"url\": Label(\"@crates//:url-2.3.0\"),\n \"uuid\": Label(\"@crates//:uuid-1.10.0\"),\n \"walkdir\": Label(\"@crates//:walkdir-2.5.0\"),\n \"zip\": Label(\"@crates//:zip-0.6.6\"),\n },\n },\n \"build_tools/base\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"futures-util\": Label(\"@crates//:futures-util-0.3.30\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n },\n },\n \"build_tools/ci-gen\": {\n _COMMON_CONDITION: {\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n },\n },\n \"build_tools/cli\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"futures-util\": Label(\"@crates//:futures-util-0.3.30\"),\n \"octocrab\": Label(\"@crates//:octocrab-0.17.0\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n },\n },\n \"build_tools/macros/lib\": {\n _COMMON_CONDITION: {\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"itertools\": Label(\"@crates//:itertools-0.12.1\"),\n \"lazy_static\": Label(\"@crates//:lazy_static-1.5.0\"),\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"build_tools/enso-formatter\": {\n _COMMON_CONDITION: {\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n },\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"dirs\": Label(\"@crates//:dirs-5.0.1\"),\n \"named-lock\": Label(\"@crates//:named-lock-0.4.1\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"strum\": Label(\"@crates//:strum-0.26.3\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n \"tracing-subscriber\": Label(\"@crates//:tracing-subscriber-0.3.18\"),\n \"windows\": Label(\"@crates//:windows-0.52.0\"),\n },\n \"cfg(windows)\": {\n \"mslnk\": Label(\"@crates//:mslnk-0.1.8\"),\n \"native-windows-gui\": Label(\"@crates//:native-windows-gui-1.0.13\"),\n \"winreg\": Label(\"@crates//:winreg-0.52.0\"),\n },\n },\n \"build_tools/install/config\": {\n _COMMON_CONDITION: {\n \"embed-resource\": Label(\"@crates//:embed-resource-2.4.3\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"tempfile\": Label(\"@crates//:tempfile-3.12.0\"),\n \"walkdir\": Label(\"@crates//:walkdir-2.5.0\"),\n },\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"bytesize\": Label(\"@crates//:bytesize-1.3.0\"),\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"flate2\": Label(\"@crates//:flate2-1.0.33\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tar\": Label(\"@crates//:tar-0.4.41\"),\n },\n \"cfg(windows)\": {\n \"native-windows-gui\": Label(\"@crates//:native-windows-gui-1.0.13\"),\n },\n },\n \"lib/rust/macro-utils\": {\n _COMMON_CONDITION: {\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/prelude/macros\": {\n _COMMON_CONDITION: {\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n _COMMON_CONDITION: {\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n \"lexpr\": Label(\"@crates//:lexpr-0.2.7\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"lib/rust/parser\": {\n _COMMON_CONDITION: {\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"uuid\": Label(\"@crates//:uuid-1.10.0\"),\n },\n },\n \"lib/rust/parser/debug\": {\n _COMMON_CONDITION: {\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"lexpr\": Label(\"@crates//:lexpr-0.2.7\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n },\n },\n \"lib/rust/parser/debug/fuzz\": {\n _COMMON_CONDITION: {\n \"afl\": Label(\"@crates//:afl-0.15.10\"),\n },\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n _COMMON_CONDITION: {\n \"jni\": Label(\"@crates//:jni-0.21.1\"),\n },\n },\n \"lib/rust/parser/schema\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n },\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n _COMMON_CONDITION: {\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/prelude\": {\n _COMMON_CONDITION: {\n \"boolinator\": Label(\"@crates//:boolinator-2.4.0\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n _COMMON_CONDITION: {\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"build_tools/install/uninstaller\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"self-replace\": Label(\"@crates//:self-replace-1.5.0\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n },\n \"cfg(windows)\": {\n \"native-windows-gui\": Label(\"@crates//:native-windows-gui-1.0.13\"),\n },\n },\n \"lib/rust/zst\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"async-compression\": Label(\"@crates//:async-compression-0.3.15\"),\n \"base64\": Label(\"@crates//:base64-0.21.7\"),\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n \"bytes\": Label(\"@crates//:bytes-1.1.0\"),\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"data-encoding\": Label(\"@crates//:data-encoding-2.6.0\"),\n \"dependency_runner\": Label(\"@crates//:dependency_runner-1.2.4\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"dirs\": Label(\"@crates//:dirs-5.0.1\"),\n \"flate2\": Label(\"@crates//:flate2-1.0.33\"),\n \"flume\": Label(\"@crates//:flume-0.10.14\"),\n \"fs_extra\": Label(\"@crates//:fs_extra-1.3.0\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"futures-util\": Label(\"@crates//:futures-util-0.3.30\"),\n \"glob\": Label(\"@crates//:glob-0.3.1\"),\n \"headers\": Label(\"@crates//:headers-0.3.9\"),\n \"http-serde\": Label(\"@crates//:http-serde-1.1.3\"),\n \"indicatif\": Label(\"@crates//:indicatif-0.17.8\"),\n \"itertools\": Label(\"@crates//:itertools-0.12.1\"),\n \"lazy_static\": Label(\"@crates//:lazy_static-1.5.0\"),\n \"mime\": Label(\"@crates//:mime-0.3.17\"),\n \"multimap\": Label(\"@crates//:multimap-0.9.1\"),\n \"new_mime_guess\": Label(\"@crates//:new_mime_guess-4.0.4\"),\n \"octocrab\": Label(\"@crates//:octocrab-0.17.0\"),\n \"path-absolutize\": Label(\"@crates//:path-absolutize-3.1.1\"),\n \"path-slash\": Label(\"@crates//:path-slash-0.2.1\"),\n \"pathdiff\": Label(\"@crates//:pathdiff-0.2.1\"),\n \"portpicker\": Label(\"@crates//:portpicker-0.1.1\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"reqwest\": Label(\"@crates//:reqwest-0.11.27\"),\n \"semver\": Label(\"@crates//:semver-1.0.23\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"sha2\": Label(\"@crates//:sha2-0.10.8\"),\n \"strum\": Label(\"@crates//:strum-0.26.3\"),\n \"symlink\": Label(\"@crates//:symlink-0.1.0\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tar\": Label(\"@crates//:tar-0.4.41\"),\n \"tempfile\": Label(\"@crates//:tempfile-3.12.0\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tokio-stream\": Label(\"@crates//:tokio-stream-0.1.15\"),\n \"tokio-util\": Label(\"@crates//:tokio-util-0.7.11\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n \"tracing-subscriber\": Label(\"@crates//:tracing-subscriber-0.3.18\"),\n \"unicase\": Label(\"@crates//:unicase-2.6.0\"),\n \"url\": Label(\"@crates//:url-2.3.0\"),\n \"uuid\": Label(\"@crates//:uuid-1.10.0\"),\n \"walkdir\": Label(\"@crates//:walkdir-2.5.0\"),\n \"which\": Label(\"@crates//:which-5.0.0\"),\n \"zip\": Label(\"@crates//:zip-0.6.6\"),\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n _COMMON_CONDITION: {\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"lazy_static\": Label(\"@crates//:lazy_static-1.5.0\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"time\": Label(\"@crates//:time-0.3.36\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tokio-stream\": Label(\"@crates//:tokio-stream-0.1.15\"),\n },\n },\n \"app/rust-ffi\": {\n _COMMON_CONDITION: {\n \"console_error_panic_hook\": Label(\"@crates//:console_error_panic_hook-0.1.7\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"wasm-bindgen\": Label(\"@crates//:wasm-bindgen-0.2.99\"),\n },\n },\n \"tools/language-server/wstest\": {\n _COMMON_CONDITION: {\n \"base64\": Label(\"@crates//:base64-0.13.1\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"either\": Label(\"@crates//:either-1.13.0\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"time\": Label(\"@crates//:time-0.3.36\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tokio-stream\": Label(\"@crates//:tokio-stream-0.1.15\"),\n \"url\": Label(\"@crates//:url-2.3.0\"),\n \"websocket-lite\": Label(\"@crates//:websocket-lite-0.5.2\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/base\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/ci-gen\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/cli\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/macros/lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/enso-formatter\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n },\n \"cfg(windows)\": {\n },\n },\n \"build_tools/install/config\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n },\n \"cfg(windows)\": {\n },\n },\n \"lib/rust/macro-utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/prelude/macros\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/debug\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/debug/fuzz\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/schema\": {\n _COMMON_CONDITION: {\n },\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n },\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/prelude\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install/uninstaller\": {\n _COMMON_CONDITION: {\n },\n \"cfg(windows)\": {\n },\n },\n \"lib/rust/zst\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n _COMMON_CONDITION: {\n },\n },\n \"app/rust-ffi\": {\n _COMMON_CONDITION: {\n },\n },\n \"tools/language-server/wstest\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n \"lexpr\": Label(\"@crates//:lexpr-0.2.7\"),\n },\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n \"rand\": Label(\"@crates//:rand-0.8.5\"),\n \"rand_chacha\": Label(\"@crates//:rand_chacha-0.3.1\"),\n \"rand_distr\": Label(\"@crates//:rand_distr-0.4.3\"),\n },\n \"cfg(target_arch = \\\"wasm32\\\")\": {\n \"wasm-bindgen-test\": Label(\"@crates//:wasm-bindgen-test-0.3.49\"),\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n \"wiremock\": Label(\"@crates//:wiremock-0.5.22\"),\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n },\n \"cfg(target_arch = \\\"wasm32\\\")\": {\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"build_tools/base\": {\n _COMMON_CONDITION: {\n \"fn-error-context\": Label(\"@crates//:fn-error-context-0.2.1\"),\n },\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/parser\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n \"paste\": Label(\"@crates//:paste-1.0.15\"),\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n \"async-trait\": Label(\"@crates//:async-trait-0.1.82\"),\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n },\n \"cfg(target_arch = \\\"wasm32\\\")\": {\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n },\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n \"embed-resource\": Label(\"@crates//:embed-resource-2.4.3\"),\n },\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n \"embed-resource\": Label(\"@crates//:embed-resource-2.4.3\"),\n \"flate2\": Label(\"@crates//:flate2-1.0.33\"),\n \"tar\": Label(\"@crates//:tar-0.4.41\"),\n },\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-apple-ios\": [\"@rules_rust//rust/platform:aarch64-apple-ios\"],\n \"aarch64-apple-ios-sim\": [\"@rules_rust//rust/platform:aarch64-apple-ios-sim\"],\n \"aarch64-linux-android\": [\"@rules_rust//rust/platform:aarch64-linux-android\"],\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-pc-windows-msvc\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\"],\n \"aarch64-unknown-fuchsia\": [\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\"],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\"],\n \"aarch64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\"],\n \"aarch64-unknown-nto-qnx710\": [\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\"],\n \"aarch64-unknown-uefi\": [\"@rules_rust//rust/platform:aarch64-unknown-uefi\"],\n \"aarch64-uwp-windows-msvc\": [],\n \"arm-unknown-linux-gnueabi\": [\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\"],\n \"armv7-linux-androideabi\": [\"@rules_rust//rust/platform:armv7-linux-androideabi\"],\n \"armv7-unknown-linux-gnueabi\": [\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", target_endian = \\\"little\\\", any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-linux-android\"],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(target_arch = \\\"aarch64\\\", target_arch = \\\"arm\\\")))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", target_endian = \\\"little\\\", any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", target_endian = \\\"little\\\", any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"windows\\\"))\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\"],\n \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", not(target_os = \\\"wasi\\\")))\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_vendor = \\\"unknown\\\", target_os = \\\"unknown\\\", target_env = \\\"\\\"))\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"cfg(all(target_arch = \\\"wasm32\\\", wasm_bindgen_unstable_test_coverage))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:i686-unknown-linux-gnu\"],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:i686-unknown-linux-gnu\"],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:i686-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(target_os = \\\"windows\\\", target_env = \\\"msvc\\\"))\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(unix, not(target_os = \\\"macos\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(all(target_arch = \\\"arm\\\", target_pointer_width = \\\"32\\\"), target_arch = \\\"mips\\\", target_arch = \\\"powerpc\\\"))\": [\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"arm\\\", target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\", all(any(target_arch = \\\"aarch64\\\", target_arch = \\\"arm\\\"), any(target_os = \\\"android\\\", target_os = \\\"fuchsia\\\", target_os = \\\"linux\\\"))))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"illumos\\\", target_os = \\\"netbsd\\\", target_os = \\\"openbsd\\\", target_os = \\\"solaris\\\"))\": [\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\"],\n \"cfg(any(target_os = \\\"freebsd\\\", target_os = \\\"netbsd\\\"))\": [\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\"],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"ios\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\"],\n \"cfg(any(unix, target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(windows, target_os = \\\"linux\\\", target_os = \\\"android\\\"))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(windows, unix, target_os = \\\"redox\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(not(all(target_arch = \\\"arm\\\", target_os = \\\"none\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(all(windows, target_env = \\\"msvc\\\", not(target_vendor = \\\"uwp\\\"))))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(any(target_os = \\\"unknown\\\", target_arch = \\\"wasm32\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(any(target_os = \\\"windows\\\", target_vendor = \\\"apple\\\")))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(target_os = \\\"emscripten\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(target_os = \\\"windows\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(windows))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(windows_raw_dylib))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(target_arch = \\\"wasm32\\\")\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(target_feature = \\\"atomics\\\")\": [],\n \"cfg(target_os = \\\"android\\\")\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:x86_64-linux-android\"],\n \"cfg(target_os = \\\"emscripten\\\")\": [],\n \"cfg(target_os = \\\"haiku\\\")\": [],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"linux\\\")\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(target_os = \\\"macos\\\")\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(target_os = \\\"redox\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(target_os = \\\"windows\\\")\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(target_vendor = \\\"apple\\\")\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\"],\n \"cfg(tokio_taskdump)\": [],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(windows)\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"i686-apple-darwin\": [\"@rules_rust//rust/platform:i686-apple-darwin\"],\n \"i686-linux-android\": [\"@rules_rust//rust/platform:i686-linux-android\"],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"i686-pc-windows-msvc\": [\"@rules_rust//rust/platform:i686-pc-windows-msvc\"],\n \"i686-unknown-freebsd\": [\"@rules_rust//rust/platform:i686-unknown-freebsd\"],\n \"i686-unknown-linux-gnu\": [\"@rules_rust//rust/platform:i686-unknown-linux-gnu\"],\n \"i686-uwp-windows-gnu\": [],\n \"i686-uwp-windows-msvc\": [],\n \"powerpc-unknown-linux-gnu\": [\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\"],\n \"riscv32imc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\"],\n \"riscv64gc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\"],\n \"s390x-unknown-linux-gnu\": [\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\"],\n \"thumbv7em-none-eabi\": [\"@rules_rust//rust/platform:thumbv7em-none-eabi\"],\n \"thumbv8m.main-none-eabi\": [\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\"],\n \"wasm32-unknown-unknown\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"wasm32-wasip1\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"x86_64-apple-ios\": [\"@rules_rust//rust/platform:x86_64-apple-ios\"],\n \"x86_64-linux-android\": [\"@rules_rust//rust/platform:x86_64-linux-android\"],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-msvc\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"x86_64-unknown-freebsd\": [\"@rules_rust//rust/platform:x86_64-unknown-freebsd\"],\n \"x86_64-unknown-fuchsia\": [\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\"],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"x86_64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"x86_64-unknown-none\": [\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"x86_64-unknown-uefi\": [\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"x86_64-uwp-windows-gnu\": [],\n \"x86_64-uwp-windows-msvc\": [],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crates__addr2line-0.22.0\",\n sha256 = \"6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/addr2line/0.22.0/download\"],\n strip_prefix = \"addr2line-0.22.0\",\n build_file = Label(\"@crates//crates:BUILD.addr2line-0.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__adler-1.0.2\",\n sha256 = \"f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler/1.0.2/download\"],\n strip_prefix = \"adler-1.0.2\",\n build_file = Label(\"@crates//crates:BUILD.adler-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__adler2-2.0.0\",\n sha256 = \"512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler2/2.0.0/download\"],\n strip_prefix = \"adler2-2.0.0\",\n build_file = Label(\"@crates//crates:BUILD.adler2-2.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__afl-0.15.10\",\n sha256 = \"c21e10b6947189c5ff61343b5354e9ad1c1722bd47b69cd0a6b49e5fa7f7ecf6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/afl/0.15.10/download\"],\n strip_prefix = \"afl-0.15.10\",\n build_file = Label(\"@crates//crates:BUILD.afl-0.15.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ahash-0.8.11\",\n sha256 = \"e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ahash/0.8.11/download\"],\n strip_prefix = \"ahash-0.8.11\",\n build_file = Label(\"@crates//crates:BUILD.ahash-0.8.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aho-corasick-1.1.3\",\n sha256 = \"8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.3/download\"],\n strip_prefix = \"aho-corasick-1.1.3\",\n build_file = Label(\"@crates//crates:BUILD.aho-corasick-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__allocator-api2-0.2.18\",\n sha256 = \"5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/allocator-api2/0.2.18/download\"],\n strip_prefix = \"allocator-api2-0.2.18\",\n build_file = Label(\"@crates//crates:BUILD.allocator-api2-0.2.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__android-tzdata-0.1.1\",\n sha256 = \"e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android-tzdata/0.1.1/download\"],\n strip_prefix = \"android-tzdata-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.android-tzdata-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__android_system_properties-0.1.5\",\n sha256 = \"819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android_system_properties/0.1.5/download\"],\n strip_prefix = \"android_system_properties-0.1.5\",\n build_file = Label(\"@crates//crates:BUILD.android_system_properties-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstream-0.6.15\",\n sha256 = \"64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/0.6.15/download\"],\n strip_prefix = \"anstream-0.6.15\",\n build_file = Label(\"@crates//crates:BUILD.anstream-0.6.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-1.0.8\",\n sha256 = \"1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle/1.0.8/download\"],\n strip_prefix = \"anstyle-1.0.8\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-1.0.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-parse-0.2.5\",\n sha256 = \"eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/0.2.5/download\"],\n strip_prefix = \"anstyle-parse-0.2.5\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-parse-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-query-1.1.1\",\n sha256 = \"6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-query/1.1.1/download\"],\n strip_prefix = \"anstyle-query-1.1.1\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-query-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-wincon-3.0.4\",\n sha256 = \"5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.4/download\"],\n strip_prefix = \"anstyle-wincon-3.0.4\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-wincon-3.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anyhow-1.0.86\",\n sha256 = \"b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.86/download\"],\n strip_prefix = \"anyhow-1.0.86\",\n build_file = Label(\"@crates//crates:BUILD.anyhow-1.0.86.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__arc-swap-1.7.1\",\n sha256 = \"69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arc-swap/1.7.1/download\"],\n strip_prefix = \"arc-swap-1.7.1\",\n build_file = Label(\"@crates//crates:BUILD.arc-swap-1.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__arrayvec-0.7.6\",\n sha256 = \"7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arrayvec/0.7.6/download\"],\n strip_prefix = \"arrayvec-0.7.6\",\n build_file = Label(\"@crates//crates:BUILD.arrayvec-0.7.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__assert-json-diff-2.0.2\",\n sha256 = \"47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/assert-json-diff/2.0.2/download\"],\n strip_prefix = \"assert-json-diff-2.0.2\",\n build_file = Label(\"@crates//crates:BUILD.assert-json-diff-2.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__async-channel-1.9.0\",\n sha256 = \"81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-channel/1.9.0/download\"],\n strip_prefix = \"async-channel-1.9.0\",\n build_file = Label(\"@crates//crates:BUILD.async-channel-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__async-compression-0.3.15\",\n sha256 = \"942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-compression/0.3.15/download\"],\n strip_prefix = \"async-compression-0.3.15\",\n build_file = Label(\"@crates//crates:BUILD.async-compression-0.3.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__async-trait-0.1.82\",\n sha256 = \"a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-trait/0.1.82/download\"],\n strip_prefix = \"async-trait-0.1.82\",\n build_file = Label(\"@crates//crates:BUILD.async-trait-0.1.82.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__atty-0.2.14\",\n sha256 = \"d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atty/0.2.14/download\"],\n strip_prefix = \"atty-0.2.14\",\n build_file = Label(\"@crates//crates:BUILD.atty-0.2.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__autocfg-1.3.0\",\n sha256 = \"0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.3.0/download\"],\n strip_prefix = \"autocfg-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.autocfg-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-config-0.51.0\",\n sha256 = \"56a636c44c77fa18bdba56126a34d30cfe5538fe88f7d34988fa731fee143ddd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-config/0.51.0/download\"],\n strip_prefix = \"aws-config-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-config-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-endpoint-0.51.0\",\n sha256 = \"6ca8f374874f6459aaa88dc861d7f5d834ca1ff97668eae190e97266b5f6c3fb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-endpoint/0.51.0/download\"],\n strip_prefix = \"aws-endpoint-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-endpoint-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-http-0.51.0\",\n sha256 = \"78d41e19e779b73463f5f0c21b3aacc995f4ba783ab13a7ae9f5dfb159a551b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-http/0.51.0/download\"],\n strip_prefix = \"aws-http-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-http-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-ecr-0.21.0\",\n sha256 = \"40adb537ecb04ca12accba5c44308699c1bfc4c175dbe9b9562787b87736e010\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-ecr/0.21.0/download\"],\n strip_prefix = \"aws-sdk-ecr-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-ecr-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-s3-0.21.0\",\n sha256 = \"a9f08665c8e03aca8cb092ef01e617436ebfa977fddc1240e1b062488ab5d48a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-s3/0.21.0/download\"],\n strip_prefix = \"aws-sdk-s3-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-s3-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-sso-0.21.0\",\n sha256 = \"86dcb1cb71aa8763b327542ead410424515cff0cde5b753eedd2917e09c63734\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-sso/0.21.0/download\"],\n strip_prefix = \"aws-sdk-sso-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-sso-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-sts-0.21.0\",\n sha256 = \"fdfcf584297c666f6b472d5368a78de3bc714b6e0a53d7fbf76c3e347c292ab1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-sts/0.21.0/download\"],\n strip_prefix = \"aws-sdk-sts-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-sts-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sig-auth-0.51.0\",\n sha256 = \"12cbe7b2be9e185c1fbce27fc9c41c66b195b32d89aa099f98768d9544221308\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sig-auth/0.51.0/download\"],\n strip_prefix = \"aws-sig-auth-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sig-auth-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sigv4-0.51.1\",\n sha256 = \"5c0b2658d2cb66dbf02f0e8dee80810ef1e0ca3530ede463e0ef994c301087d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sigv4/0.51.1/download\"],\n strip_prefix = \"aws-sigv4-0.51.1\",\n build_file = Label(\"@crates//crates:BUILD.aws-sigv4-0.51.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-async-0.51.0\",\n sha256 = \"7b3442b4c5d3fc39891a2e5e625735fba6b24694887d49c6518460fde98247a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-async/0.51.0/download\"],\n strip_prefix = \"aws-smithy-async-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-async-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-checksums-0.51.0\",\n sha256 = \"cc227e36e346f45298288359f37123e1a92628d1cec6b11b5eb335553278bd9e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-checksums/0.51.0/download\"],\n strip_prefix = \"aws-smithy-checksums-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-checksums-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-client-0.51.0\",\n sha256 = \"ff28d553714f8f54cd921227934fc13a536a1c03f106e56b362fd57e16d450ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-client/0.51.0/download\"],\n strip_prefix = \"aws-smithy-client-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-client-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-eventstream-0.51.0\",\n sha256 = \"d7ea0df7161ce65b5c8ca6eb709a1a907376fa18226976e41c748ce02ccccf24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-eventstream/0.51.0/download\"],\n strip_prefix = \"aws-smithy-eventstream-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-eventstream-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-http-0.51.0\",\n sha256 = \"bf58ed4fefa61dbf038e5421a521cbc2c448ef69deff0ab1d915d8a10eda5664\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-http/0.51.0/download\"],\n strip_prefix = \"aws-smithy-http-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-http-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-http-tower-0.51.0\",\n sha256 = \"20c96d7bd35e7cf96aca1134b2f81b1b59ffe493f7c6539c051791cbbf7a42d3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-http-tower/0.51.0/download\"],\n strip_prefix = \"aws-smithy-http-tower-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-http-tower-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-json-0.51.0\",\n sha256 = \"d8324ba98c8a94187723cc16c37aefa09504646ee65c3d2c3af495bab5ea701b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-json/0.51.0/download\"],\n strip_prefix = \"aws-smithy-json-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-json-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-query-0.51.0\",\n sha256 = \"83834ed2ff69ea6f6657baf205267dc2c0abe940703503a3e5d60ce23be3d306\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-query/0.51.0/download\"],\n strip_prefix = \"aws-smithy-query-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-query-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-types-0.51.0\",\n sha256 = \"8b02e06ea63498c43bc0217ea4d16605d4e58d85c12fc23f6572ff6d0a840c61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-types/0.51.0/download\"],\n strip_prefix = \"aws-smithy-types-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-types-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-xml-0.51.0\",\n sha256 = \"246e9f83dd1fdf5d347fa30ae4ad30a9d1d42ce4cd74a93d94afa874646f94cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-xml/0.51.0/download\"],\n strip_prefix = \"aws-smithy-xml-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-xml-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-types-0.51.0\",\n sha256 = \"05701d32da168b44f7ee63147781aed8723e792cc131cb9b18363b5393f17f70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-types/0.51.0/download\"],\n strip_prefix = \"aws-types-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-types-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__backtrace-0.3.73\",\n sha256 = \"5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/backtrace/0.3.73/download\"],\n strip_prefix = \"backtrace-0.3.73\",\n build_file = Label(\"@crates//crates:BUILD.backtrace-0.3.73.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__base64-0.13.1\",\n sha256 = \"9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.13.1/download\"],\n strip_prefix = \"base64-0.13.1\",\n build_file = Label(\"@crates//crates:BUILD.base64-0.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__base64-0.21.7\",\n sha256 = \"9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.21.7/download\"],\n strip_prefix = \"base64-0.21.7\",\n build_file = Label(\"@crates//crates:BUILD.base64-0.21.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__beef-0.5.2\",\n sha256 = \"3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/beef/0.5.2/download\"],\n strip_prefix = \"beef-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.beef-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bincode-1.3.3\",\n sha256 = \"b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bincode/1.3.3/download\"],\n strip_prefix = \"bincode-1.3.3\",\n build_file = Label(\"@crates//crates:BUILD.bincode-1.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bitflags-1.3.2\",\n sha256 = \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/1.3.2/download\"],\n strip_prefix = \"bitflags-1.3.2\",\n build_file = Label(\"@crates//crates:BUILD.bitflags-1.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bitflags-2.6.0\",\n sha256 = \"b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.6.0/download\"],\n strip_prefix = \"bitflags-2.6.0\",\n build_file = Label(\"@crates//crates:BUILD.bitflags-2.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__block-buffer-0.10.4\",\n sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n strip_prefix = \"block-buffer-0.10.4\",\n build_file = Label(\"@crates//crates:BUILD.block-buffer-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__boolinator-2.4.0\",\n sha256 = \"cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/boolinator/2.4.0/download\"],\n strip_prefix = \"boolinator-2.4.0\",\n build_file = Label(\"@crates//crates:BUILD.boolinator-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bumpalo-3.16.0\",\n sha256 = \"79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.16.0/download\"],\n strip_prefix = \"bumpalo-3.16.0\",\n build_file = Label(\"@crates//crates:BUILD.bumpalo-3.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__byteorder-1.5.0\",\n sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n strip_prefix = \"byteorder-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.byteorder-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytes-1.1.0\",\n sha256 = \"c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.1.0/download\"],\n strip_prefix = \"bytes-1.1.0\",\n build_file = Label(\"@crates//crates:BUILD.bytes-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytes-utils-0.1.4\",\n sha256 = \"7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes-utils/0.1.4/download\"],\n strip_prefix = \"bytes-utils-0.1.4\",\n build_file = Label(\"@crates//crates:BUILD.bytes-utils-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytesize-1.3.0\",\n sha256 = \"a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytesize/1.3.0/download\"],\n strip_prefix = \"bytesize-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.bytesize-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cc-1.1.15\",\n sha256 = \"57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.1.15/download\"],\n strip_prefix = \"cc-1.1.15\",\n build_file = Label(\"@crates//crates:BUILD.cc-1.1.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cesu8-1.1.0\",\n sha256 = \"6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cesu8/1.1.0/download\"],\n strip_prefix = \"cesu8-1.1.0\",\n build_file = Label(\"@crates//crates:BUILD.cesu8-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cfg-if-1.0.0\",\n sha256 = \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.0/download\"],\n strip_prefix = \"cfg-if-1.0.0\",\n build_file = Label(\"@crates//crates:BUILD.cfg-if-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__chrono-0.4.38\",\n sha256 = \"a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/chrono/0.4.38/download\"],\n strip_prefix = \"chrono-0.4.38\",\n build_file = Label(\"@crates//crates:BUILD.chrono-0.4.38.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap-3.2.25\",\n sha256 = \"4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/3.2.25/download\"],\n strip_prefix = \"clap-3.2.25\",\n build_file = Label(\"@crates//crates:BUILD.clap-3.2.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap-4.5.16\",\n sha256 = \"ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.5.16/download\"],\n strip_prefix = \"clap-4.5.16\",\n build_file = Label(\"@crates//crates:BUILD.clap-4.5.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_builder-4.5.15\",\n sha256 = \"216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.5.15/download\"],\n strip_prefix = \"clap_builder-4.5.15\",\n build_file = Label(\"@crates//crates:BUILD.clap_builder-4.5.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_derive-4.5.13\",\n sha256 = \"501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.5.13/download\"],\n strip_prefix = \"clap_derive-4.5.13\",\n build_file = Label(\"@crates//crates:BUILD.clap_derive-4.5.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_lex-0.2.4\",\n sha256 = \"2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/0.2.4/download\"],\n strip_prefix = \"clap_lex-0.2.4\",\n build_file = Label(\"@crates//crates:BUILD.clap_lex-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_lex-0.7.2\",\n sha256 = \"1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/0.7.2/download\"],\n strip_prefix = \"clap_lex-0.7.2\",\n build_file = Label(\"@crates//crates:BUILD.clap_lex-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__colorchoice-1.0.2\",\n sha256 = \"d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/colorchoice/1.0.2/download\"],\n strip_prefix = \"colorchoice-1.0.2\",\n build_file = Label(\"@crates//crates:BUILD.colorchoice-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__combine-4.6.7\",\n sha256 = \"ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/combine/4.6.7/download\"],\n strip_prefix = \"combine-4.6.7\",\n build_file = Label(\"@crates//crates:BUILD.combine-4.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__concurrent-queue-2.5.0\",\n sha256 = \"4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/concurrent-queue/2.5.0/download\"],\n strip_prefix = \"concurrent-queue-2.5.0\",\n build_file = Label(\"@crates//crates:BUILD.concurrent-queue-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__console-0.15.8\",\n sha256 = \"0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.15.8/download\"],\n strip_prefix = \"console-0.15.8\",\n build_file = Label(\"@crates//crates:BUILD.console-0.15.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__console_error_panic_hook-0.1.7\",\n sha256 = \"a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console_error_panic_hook/0.1.7/download\"],\n strip_prefix = \"console_error_panic_hook-0.1.7\",\n build_file = Label(\"@crates//crates:BUILD.console_error_panic_hook-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__convert_case-0.6.0\",\n sha256 = \"ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/convert_case/0.6.0/download\"],\n strip_prefix = \"convert_case-0.6.0\",\n build_file = Label(\"@crates//crates:BUILD.convert_case-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__core-foundation-0.9.4\",\n sha256 = \"91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.9.4/download\"],\n strip_prefix = \"core-foundation-0.9.4\",\n build_file = Label(\"@crates//crates:BUILD.core-foundation-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__core-foundation-sys-0.8.7\",\n sha256 = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation-sys/0.8.7/download\"],\n strip_prefix = \"core-foundation-sys-0.8.7\",\n build_file = Label(\"@crates//crates:BUILD.core-foundation-sys-0.8.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cpufeatures-0.2.13\",\n sha256 = \"51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cpufeatures/0.2.13/download\"],\n strip_prefix = \"cpufeatures-0.2.13\",\n build_file = Label(\"@crates//crates:BUILD.cpufeatures-0.2.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crc32c-0.6.8\",\n sha256 = \"3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32c/0.6.8/download\"],\n strip_prefix = \"crc32c-0.6.8\",\n build_file = Label(\"@crates//crates:BUILD.crc32c-0.6.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crc32fast-1.4.2\",\n sha256 = \"a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32fast/1.4.2/download\"],\n strip_prefix = \"crc32fast-1.4.2\",\n build_file = Label(\"@crates//crates:BUILD.crc32fast-1.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-0.8.4\",\n sha256 = \"1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam/0.8.4/download\"],\n strip_prefix = \"crossbeam-0.8.4\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-channel-0.5.13\",\n sha256 = \"33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-channel/0.5.13/download\"],\n strip_prefix = \"crossbeam-channel-0.5.13\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-channel-0.5.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-deque-0.8.5\",\n sha256 = \"613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-deque/0.8.5/download\"],\n strip_prefix = \"crossbeam-deque-0.8.5\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-deque-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-epoch-0.9.18\",\n sha256 = \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-epoch/0.9.18/download\"],\n strip_prefix = \"crossbeam-epoch-0.9.18\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-epoch-0.9.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-queue-0.3.11\",\n sha256 = \"df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-queue/0.3.11/download\"],\n strip_prefix = \"crossbeam-queue-0.3.11\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-queue-0.3.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-utils-0.8.20\",\n sha256 = \"22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-utils/0.8.20/download\"],\n strip_prefix = \"crossbeam-utils-0.8.20\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-utils-0.8.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crypto-common-0.1.6\",\n sha256 = \"1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crypto-common/0.1.6/download\"],\n strip_prefix = \"crypto-common-0.1.6\",\n build_file = Label(\"@crates//crates:BUILD.crypto-common-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__darling-0.14.4\",\n sha256 = \"7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling/0.14.4/download\"],\n strip_prefix = \"darling-0.14.4\",\n build_file = Label(\"@crates//crates:BUILD.darling-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__darling_core-0.14.4\",\n sha256 = \"109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_core/0.14.4/download\"],\n strip_prefix = \"darling_core-0.14.4\",\n build_file = Label(\"@crates//crates:BUILD.darling_core-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__darling_macro-0.14.4\",\n sha256 = \"a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_macro/0.14.4/download\"],\n strip_prefix = \"darling_macro-0.14.4\",\n build_file = Label(\"@crates//crates:BUILD.darling_macro-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__data-encoding-2.6.0\",\n sha256 = \"e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/data-encoding/2.6.0/download\"],\n strip_prefix = \"data-encoding-2.6.0\",\n build_file = Label(\"@crates//crates:BUILD.data-encoding-2.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dataview-1.0.1\",\n sha256 = \"50eb3a329e19d78c3a3dfa4ec5a51ecb84fa3a20c06edad04be25356018218f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dataview/1.0.1/download\"],\n strip_prefix = \"dataview-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.dataview-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__deadpool-0.9.5\",\n sha256 = \"421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deadpool/0.9.5/download\"],\n strip_prefix = \"deadpool-0.9.5\",\n build_file = Label(\"@crates//crates:BUILD.deadpool-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__deadpool-runtime-0.1.4\",\n sha256 = \"092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deadpool-runtime/0.1.4/download\"],\n strip_prefix = \"deadpool-runtime-0.1.4\",\n build_file = Label(\"@crates//crates:BUILD.deadpool-runtime-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__defer-drop-1.3.0\",\n sha256 = \"f613ec9fa66a6b28cdb1842b27f9adf24f39f9afc4dcdd9fdecee4aca7945c57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defer-drop/1.3.0/download\"],\n strip_prefix = \"defer-drop-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.defer-drop-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dependency_runner-1.2.4\",\n sha256 = \"9a183e141d0e543fe8abc96e0f06da25e3294284239260e50f63847f549d807a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dependency_runner/1.2.4/download\"],\n strip_prefix = \"dependency_runner-1.2.4\",\n build_file = Label(\"@crates//crates:BUILD.dependency_runner-1.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__deranged-0.3.11\",\n sha256 = \"b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.3.11/download\"],\n strip_prefix = \"deranged-0.3.11\",\n build_file = Label(\"@crates//crates:BUILD.deranged-0.3.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive-where-1.2.7\",\n sha256 = \"62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive-where/1.2.7/download\"],\n strip_prefix = \"derive-where-1.2.7\",\n build_file = Label(\"@crates//crates:BUILD.derive-where-1.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_builder-0.11.2\",\n sha256 = \"d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_builder/0.11.2/download\"],\n strip_prefix = \"derive_builder-0.11.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_builder-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_builder_core-0.11.2\",\n sha256 = \"1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_builder_core/0.11.2/download\"],\n strip_prefix = \"derive_builder_core-0.11.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_builder_core-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_builder_macro-0.11.2\",\n sha256 = \"8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_builder_macro/0.11.2/download\"],\n strip_prefix = \"derive_builder_macro-0.11.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_builder_macro-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_more-1.0.0\",\n sha256 = \"4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more/1.0.0/download\"],\n strip_prefix = \"derive_more-1.0.0\",\n build_file = Label(\"@crates//crates:BUILD.derive_more-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_more-impl-1.0.0\",\n sha256 = \"cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more-impl/1.0.0/download\"],\n strip_prefix = \"derive_more-impl-1.0.0\",\n build_file = Label(\"@crates//crates:BUILD.derive_more-impl-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_pod-0.1.2\",\n sha256 = \"c2ea6706d74fca54e15f1d40b5cf7fe7f764aaec61352a9fcec58fe27e042fc8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_pod/0.1.2/download\"],\n strip_prefix = \"derive_pod-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_pod-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__digest-0.10.7\",\n sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n strip_prefix = \"digest-0.10.7\",\n build_file = Label(\"@crates//crates:BUILD.digest-0.10.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-5.0.1\",\n sha256 = \"44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs/5.0.1/download\"],\n strip_prefix = \"dirs-5.0.1\",\n build_file = Label(\"@crates//crates:BUILD.dirs-5.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-next-2.0.0\",\n sha256 = \"b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-next/2.0.0/download\"],\n strip_prefix = \"dirs-next-2.0.0\",\n build_file = Label(\"@crates//crates:BUILD.dirs-next-2.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-sys-0.4.1\",\n sha256 = \"520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-sys/0.4.1/download\"],\n strip_prefix = \"dirs-sys-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.dirs-sys-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-sys-next-0.1.2\",\n sha256 = \"4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-sys-next/0.1.2/download\"],\n strip_prefix = \"dirs-sys-next-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.dirs-sys-next-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__doc-comment-0.3.3\",\n sha256 = \"fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/doc-comment/0.3.3/download\"],\n strip_prefix = \"doc-comment-0.3.3\",\n build_file = Label(\"@crates//crates:BUILD.doc-comment-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__either-1.13.0\",\n sha256 = \"60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.13.0/download\"],\n strip_prefix = \"either-1.13.0\",\n build_file = Label(\"@crates//crates:BUILD.either-1.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__embed-resource-2.4.3\",\n sha256 = \"4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embed-resource/2.4.3/download\"],\n strip_prefix = \"embed-resource-2.4.3\",\n build_file = Label(\"@crates//crates:BUILD.embed-resource-2.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__encode_unicode-0.3.6\",\n sha256 = \"a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encode_unicode/0.3.6/download\"],\n strip_prefix = \"encode_unicode-0.3.6\",\n build_file = Label(\"@crates//crates:BUILD.encode_unicode-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__encoding_rs-0.8.34\",\n sha256 = \"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encoding_rs/0.8.34/download\"],\n strip_prefix = \"encoding_rs-0.8.34\",\n build_file = Label(\"@crates//crates:BUILD.encoding_rs-0.8.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__env_logger-0.9.3\",\n sha256 = \"a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_logger/0.9.3/download\"],\n strip_prefix = \"env_logger-0.9.3\",\n build_file = Label(\"@crates//crates:BUILD.env_logger-0.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__equivalent-1.0.1\",\n sha256 = \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/equivalent/1.0.1/download\"],\n strip_prefix = \"equivalent-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.equivalent-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__errno-0.3.9\",\n sha256 = \"534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.9/download\"],\n strip_prefix = \"errno-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.errno-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__event-listener-2.5.3\",\n sha256 = \"0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/event-listener/2.5.3/download\"],\n strip_prefix = \"event-listener-2.5.3\",\n build_file = Label(\"@crates//crates:BUILD.event-listener-2.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fastrand-1.9.0\",\n sha256 = \"e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/1.9.0/download\"],\n strip_prefix = \"fastrand-1.9.0\",\n build_file = Label(\"@crates//crates:BUILD.fastrand-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fastrand-2.1.1\",\n sha256 = \"e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.1.1/download\"],\n strip_prefix = \"fastrand-2.1.1\",\n build_file = Label(\"@crates//crates:BUILD.fastrand-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__filetime-0.2.25\",\n sha256 = \"35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/filetime/0.2.25/download\"],\n strip_prefix = \"filetime-0.2.25\",\n build_file = Label(\"@crates//crates:BUILD.filetime-0.2.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__flate2-1.0.33\",\n sha256 = \"324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flate2/1.0.33/download\"],\n strip_prefix = \"flate2-1.0.33\",\n build_file = Label(\"@crates//crates:BUILD.flate2-1.0.33.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__flume-0.10.14\",\n sha256 = \"1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flume/0.10.14/download\"],\n strip_prefix = \"flume-0.10.14\",\n build_file = Label(\"@crates//crates:BUILD.flume-0.10.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fn-error-context-0.2.1\",\n sha256 = \"2cd66269887534af4b0c3e3337404591daa8dc8b9b2b3db71f9523beb4bafb41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fn-error-context/0.2.1/download\"],\n strip_prefix = \"fn-error-context-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.fn-error-context-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fnv-1.0.7\",\n sha256 = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fnv/1.0.7/download\"],\n strip_prefix = \"fnv-1.0.7\",\n build_file = Label(\"@crates//crates:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__foreign-types-0.3.2\",\n sha256 = \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types/0.3.2/download\"],\n strip_prefix = \"foreign-types-0.3.2\",\n build_file = Label(\"@crates//crates:BUILD.foreign-types-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__foreign-types-shared-0.1.1\",\n sha256 = \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types-shared/0.1.1/download\"],\n strip_prefix = \"foreign-types-shared-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.foreign-types-shared-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__form_urlencoded-1.0.1\",\n sha256 = \"5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/form_urlencoded/1.0.1/download\"],\n strip_prefix = \"form_urlencoded-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.form_urlencoded-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fs-err-2.11.0\",\n sha256 = \"88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fs-err/2.11.0/download\"],\n strip_prefix = \"fs-err-2.11.0\",\n build_file = Label(\"@crates//crates:BUILD.fs-err-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fs_extra-1.3.0\",\n sha256 = \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fs_extra/1.3.0/download\"],\n strip_prefix = \"fs_extra-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.fs_extra-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-0.3.30\",\n sha256 = \"645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures/0.3.30/download\"],\n strip_prefix = \"futures-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-channel-0.3.30\",\n sha256 = \"eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.30/download\"],\n strip_prefix = \"futures-channel-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-channel-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-core-0.3.30\",\n sha256 = \"dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.30/download\"],\n strip_prefix = \"futures-core-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-core-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-executor-0.3.30\",\n sha256 = \"a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-executor/0.3.30/download\"],\n strip_prefix = \"futures-executor-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-executor-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-io-0.3.30\",\n sha256 = \"a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.30/download\"],\n strip_prefix = \"futures-io-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-io-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-lite-1.13.0\",\n sha256 = \"49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-lite/1.13.0/download\"],\n strip_prefix = \"futures-lite-1.13.0\",\n build_file = Label(\"@crates//crates:BUILD.futures-lite-1.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-macro-0.3.30\",\n sha256 = \"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-macro/0.3.30/download\"],\n strip_prefix = \"futures-macro-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-macro-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-sink-0.3.30\",\n sha256 = \"9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.30/download\"],\n strip_prefix = \"futures-sink-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-sink-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-task-0.3.30\",\n sha256 = \"38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.30/download\"],\n strip_prefix = \"futures-task-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-task-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-timer-3.0.3\",\n sha256 = \"f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-timer/3.0.3/download\"],\n strip_prefix = \"futures-timer-3.0.3\",\n build_file = Label(\"@crates//crates:BUILD.futures-timer-3.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-util-0.3.30\",\n sha256 = \"3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.30/download\"],\n strip_prefix = \"futures-util-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-util-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fuzzy-matcher-0.3.7\",\n sha256 = \"54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fuzzy-matcher/0.3.7/download\"],\n strip_prefix = \"fuzzy-matcher-0.3.7\",\n build_file = Label(\"@crates//crates:BUILD.fuzzy-matcher-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__generic-array-0.14.7\",\n sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n strip_prefix = \"generic-array-0.14.7\",\n build_file = Label(\"@crates//crates:BUILD.generic-array-0.14.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getopts-0.2.21\",\n sha256 = \"14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getopts/0.2.21/download\"],\n strip_prefix = \"getopts-0.2.21\",\n build_file = Label(\"@crates//crates:BUILD.getopts-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getrandom-0.1.16\",\n sha256 = \"8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.1.16/download\"],\n strip_prefix = \"getrandom-0.1.16\",\n build_file = Label(\"@crates//crates:BUILD.getrandom-0.1.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getrandom-0.2.15\",\n sha256 = \"c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.15/download\"],\n strip_prefix = \"getrandom-0.2.15\",\n build_file = Label(\"@crates//crates:BUILD.getrandom-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__gimli-0.29.0\",\n sha256 = \"40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/gimli/0.29.0/download\"],\n strip_prefix = \"gimli-0.29.0\",\n build_file = Label(\"@crates//crates:BUILD.gimli-0.29.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__glob-0.3.1\",\n sha256 = \"d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/glob/0.3.1/download\"],\n strip_prefix = \"glob-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.glob-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__goblin-0.6.1\",\n sha256 = \"0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/goblin/0.6.1/download\"],\n strip_prefix = \"goblin-0.6.1\",\n build_file = Label(\"@crates//crates:BUILD.goblin-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__h2-0.3.26\",\n sha256 = \"81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.3.26/download\"],\n strip_prefix = \"h2-0.3.26\",\n build_file = Label(\"@crates//crates:BUILD.h2-0.3.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__handlebars-4.5.0\",\n sha256 = \"faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/handlebars/4.5.0/download\"],\n strip_prefix = \"handlebars-4.5.0\",\n build_file = Label(\"@crates//crates:BUILD.handlebars-4.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hashbrown-0.12.3\",\n sha256 = \"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.12.3/download\"],\n strip_prefix = \"hashbrown-0.12.3\",\n build_file = Label(\"@crates//crates:BUILD.hashbrown-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hashbrown-0.14.5\",\n sha256 = \"e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.14.5/download\"],\n strip_prefix = \"hashbrown-0.14.5\",\n build_file = Label(\"@crates//crates:BUILD.hashbrown-0.14.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__headers-0.3.9\",\n sha256 = \"06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/headers/0.3.9/download\"],\n strip_prefix = \"headers-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.headers-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__headers-core-0.2.0\",\n sha256 = \"e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/headers-core/0.2.0/download\"],\n strip_prefix = \"headers-core-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.headers-core-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__heck-0.4.1\",\n sha256 = \"95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.4.1/download\"],\n strip_prefix = \"heck-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.heck-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__heck-0.5.0\",\n sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n strip_prefix = \"heck-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hermit-abi-0.1.19\",\n sha256 = \"62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hermit-abi/0.1.19/download\"],\n strip_prefix = \"hermit-abi-0.1.19\",\n build_file = Label(\"@crates//crates:BUILD.hermit-abi-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hermit-abi-0.3.9\",\n sha256 = \"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hermit-abi/0.3.9/download\"],\n strip_prefix = \"hermit-abi-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.hermit-abi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hex-0.4.3\",\n sha256 = \"7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hex/0.4.3/download\"],\n strip_prefix = \"hex-0.4.3\",\n build_file = Label(\"@crates//crates:BUILD.hex-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__home-0.5.9\",\n sha256 = \"e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/home/0.5.9/download\"],\n strip_prefix = \"home-0.5.9\",\n build_file = Label(\"@crates//crates:BUILD.home-0.5.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-0.2.12\",\n sha256 = \"601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/0.2.12/download\"],\n strip_prefix = \"http-0.2.12\",\n build_file = Label(\"@crates//crates:BUILD.http-0.2.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-body-0.4.6\",\n sha256 = \"7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/0.4.6/download\"],\n strip_prefix = \"http-body-0.4.6\",\n build_file = Label(\"@crates//crates:BUILD.http-body-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-serde-1.1.3\",\n sha256 = \"6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-serde/1.1.3/download\"],\n strip_prefix = \"http-serde-1.1.3\",\n build_file = Label(\"@crates//crates:BUILD.http-serde-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-types-2.12.0\",\n sha256 = \"6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-types/2.12.0/download\"],\n strip_prefix = \"http-types-2.12.0\",\n build_file = Label(\"@crates//crates:BUILD.http-types-2.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__httparse-1.9.4\",\n sha256 = \"0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.9.4/download\"],\n strip_prefix = \"httparse-1.9.4\",\n build_file = Label(\"@crates//crates:BUILD.httparse-1.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__httpdate-1.0.3\",\n sha256 = \"df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httpdate/1.0.3/download\"],\n strip_prefix = \"httpdate-1.0.3\",\n build_file = Label(\"@crates//crates:BUILD.httpdate-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__humantime-2.1.0\",\n sha256 = \"9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/humantime/2.1.0/download\"],\n strip_prefix = \"humantime-2.1.0\",\n build_file = Label(\"@crates//crates:BUILD.humantime-2.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyper-0.14.30\",\n sha256 = \"a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/0.14.30/download\"],\n strip_prefix = \"hyper-0.14.30\",\n build_file = Label(\"@crates//crates:BUILD.hyper-0.14.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyper-rustls-0.23.2\",\n sha256 = \"1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.23.2/download\"],\n strip_prefix = \"hyper-rustls-0.23.2\",\n build_file = Label(\"@crates//crates:BUILD.hyper-rustls-0.23.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyper-rustls-0.24.2\",\n sha256 = \"ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.24.2/download\"],\n strip_prefix = \"hyper-rustls-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.hyper-rustls-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyperx-1.4.0\",\n sha256 = \"5617e92fc2f2501c3e2bc6ce547cad841adba2bae5b921c7e52510beca6d084c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyperx/1.4.0/download\"],\n strip_prefix = \"hyperx-1.4.0\",\n build_file = Label(\"@crates//crates:BUILD.hyperx-1.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__iana-time-zone-0.1.60\",\n sha256 = \"e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone/0.1.60/download\"],\n strip_prefix = \"iana-time-zone-0.1.60\",\n build_file = Label(\"@crates//crates:BUILD.iana-time-zone-0.1.60.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__iana-time-zone-haiku-0.1.2\",\n sha256 = \"f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone-haiku/0.1.2/download\"],\n strip_prefix = \"iana-time-zone-haiku-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.iana-time-zone-haiku-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ident_case-1.0.1\",\n sha256 = \"b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ident_case/1.0.1/download\"],\n strip_prefix = \"ident_case-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.ident_case-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__idna-0.2.3\",\n sha256 = \"418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna/0.2.3/download\"],\n strip_prefix = \"idna-0.2.3\",\n build_file = Label(\"@crates//crates:BUILD.idna-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indexmap-1.9.3\",\n sha256 = \"bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/1.9.3/download\"],\n strip_prefix = \"indexmap-1.9.3\",\n build_file = Label(\"@crates//crates:BUILD.indexmap-1.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indexmap-2.5.0\",\n sha256 = \"68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.5.0/download\"],\n strip_prefix = \"indexmap-2.5.0\",\n build_file = Label(\"@crates//crates:BUILD.indexmap-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indicatif-0.17.8\",\n sha256 = \"763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif/0.17.8/download\"],\n strip_prefix = \"indicatif-0.17.8\",\n build_file = Label(\"@crates//crates:BUILD.indicatif-0.17.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__infer-0.2.3\",\n sha256 = \"64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/infer/0.2.3/download\"],\n strip_prefix = \"infer-0.2.3\",\n build_file = Label(\"@crates//crates:BUILD.infer-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__instant-0.1.13\",\n sha256 = \"e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/instant/0.1.13/download\"],\n strip_prefix = \"instant-0.1.13\",\n build_file = Label(\"@crates//crates:BUILD.instant-0.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ipnet-2.9.0\",\n sha256 = \"8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipnet/2.9.0/download\"],\n strip_prefix = \"ipnet-2.9.0\",\n build_file = Label(\"@crates//crates:BUILD.ipnet-2.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__is_terminal_polyfill-1.70.1\",\n sha256 = \"7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.1/download\"],\n strip_prefix = \"is_terminal_polyfill-1.70.1\",\n build_file = Label(\"@crates//crates:BUILD.is_terminal_polyfill-1.70.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__itertools-0.12.1\",\n sha256 = \"ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.12.1/download\"],\n strip_prefix = \"itertools-0.12.1\",\n build_file = Label(\"@crates//crates:BUILD.itertools-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__itoa-1.0.11\",\n sha256 = \"49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.11/download\"],\n strip_prefix = \"itoa-1.0.11\",\n build_file = Label(\"@crates//crates:BUILD.itoa-1.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__jni-0.21.1\",\n sha256 = \"1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni/0.21.1/download\"],\n strip_prefix = \"jni-0.21.1\",\n build_file = Label(\"@crates//crates:BUILD.jni-0.21.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__jni-sys-0.3.0\",\n sha256 = \"8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni-sys/0.3.0/download\"],\n strip_prefix = \"jni-sys-0.3.0\",\n build_file = Label(\"@crates//crates:BUILD.jni-sys-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__js-sys-0.3.76\",\n sha256 = \"6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.76/download\"],\n strip_prefix = \"js-sys-0.3.76\",\n build_file = Label(\"@crates//crates:BUILD.js-sys-0.3.76.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__jsonwebtoken-8.3.0\",\n sha256 = \"6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jsonwebtoken/8.3.0/download\"],\n strip_prefix = \"jsonwebtoken-8.3.0\",\n build_file = Label(\"@crates//crates:BUILD.jsonwebtoken-8.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__language-tags-0.3.2\",\n sha256 = \"d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/language-tags/0.3.2/download\"],\n strip_prefix = \"language-tags-0.3.2\",\n build_file = Label(\"@crates//crates:BUILD.language-tags-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lazy_static-1.5.0\",\n sha256 = \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazy_static/1.5.0/download\"],\n strip_prefix = \"lazy_static-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lexpr-0.2.7\",\n sha256 = \"6a84de6a9df442363b08f5dbf0cd5b92edc70097b89c4ce4bfea4679fe48bc67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lexpr/0.2.7/download\"],\n strip_prefix = \"lexpr-0.2.7\",\n build_file = Label(\"@crates//crates:BUILD.lexpr-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lexpr-macros-0.2.2\",\n sha256 = \"36b5cb8bb985c81a8ac1a0f8b5c4865214f574ddd64397ef7a99c236e21f35bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lexpr-macros/0.2.2/download\"],\n strip_prefix = \"lexpr-macros-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.lexpr-macros-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libc-0.2.158\",\n sha256 = \"d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.158/download\"],\n strip_prefix = \"libc-0.2.158\",\n build_file = Label(\"@crates//crates:BUILD.libc-0.2.158.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libm-0.1.4\",\n sha256 = \"7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.1.4/download\"],\n strip_prefix = \"libm-0.1.4\",\n build_file = Label(\"@crates//crates:BUILD.libm-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libm-0.2.8\",\n sha256 = \"4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.2.8/download\"],\n strip_prefix = \"libm-0.2.8\",\n build_file = Label(\"@crates//crates:BUILD.libm-0.2.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libredox-0.1.3\",\n sha256 = \"c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libredox/0.1.3/download\"],\n strip_prefix = \"libredox-0.1.3\",\n build_file = Label(\"@crates//crates:BUILD.libredox-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__linux-raw-sys-0.4.14\",\n sha256 = \"78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.4.14/download\"],\n strip_prefix = \"linux-raw-sys-0.4.14\",\n build_file = Label(\"@crates//crates:BUILD.linux-raw-sys-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lock_api-0.4.12\",\n sha256 = \"07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.12/download\"],\n strip_prefix = \"lock_api-0.4.12\",\n build_file = Label(\"@crates//crates:BUILD.lock_api-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__log-0.4.22\",\n sha256 = \"a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.22/download\"],\n strip_prefix = \"log-0.4.22\",\n build_file = Label(\"@crates//crates:BUILD.log-0.4.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__matchers-0.1.0\",\n sha256 = \"8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchers/0.1.0/download\"],\n strip_prefix = \"matchers-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.matchers-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__matches-0.1.10\",\n sha256 = \"2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matches/0.1.10/download\"],\n strip_prefix = \"matches-0.1.10\",\n build_file = Label(\"@crates//crates:BUILD.matches-0.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__md-5-0.10.6\",\n sha256 = \"d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/md-5/0.10.6/download\"],\n strip_prefix = \"md-5-0.10.6\",\n build_file = Label(\"@crates//crates:BUILD.md-5-0.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memchr-2.7.4\",\n sha256 = \"78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.7.4/download\"],\n strip_prefix = \"memchr-2.7.4\",\n build_file = Label(\"@crates//crates:BUILD.memchr-2.7.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memoffset-0.6.5\",\n sha256 = \"5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memoffset/0.6.5/download\"],\n strip_prefix = \"memoffset-0.6.5\",\n build_file = Label(\"@crates//crates:BUILD.memoffset-0.6.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__mime-0.3.17\",\n sha256 = \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mime/0.3.17/download\"],\n strip_prefix = \"mime-0.3.17\",\n build_file = Label(\"@crates//crates:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__minicov-0.3.5\",\n sha256 = \"5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/minicov/0.3.5/download\"],\n strip_prefix = \"minicov-0.3.5\",\n build_file = Label(\"@crates//crates:BUILD.minicov-0.3.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__miniz_oxide-0.7.4\",\n sha256 = \"b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.7.4/download\"],\n strip_prefix = \"miniz_oxide-0.7.4\",\n build_file = Label(\"@crates//crates:BUILD.miniz_oxide-0.7.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__miniz_oxide-0.8.0\",\n sha256 = \"e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.0/download\"],\n strip_prefix = \"miniz_oxide-0.8.0\",\n build_file = Label(\"@crates//crates:BUILD.miniz_oxide-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__mio-1.0.2\",\n sha256 = \"80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.0.2/download\"],\n strip_prefix = \"mio-1.0.2\",\n build_file = Label(\"@crates//crates:BUILD.mio-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__mslnk-0.1.8\",\n sha256 = \"86c97310150b7f496a93f31690da7822b99d95ff68ca9d30fb09d3ad54375c76\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mslnk/0.1.8/download\"],\n strip_prefix = \"mslnk-0.1.8\",\n build_file = Label(\"@crates//crates:BUILD.mslnk-0.1.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__msvc-demangler-0.9.0\",\n sha256 = \"bfb67c6dd0fa9b00619c41c5700b6f92d5f418be49b45ddb9970fbd4569df3c8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/msvc-demangler/0.9.0/download\"],\n strip_prefix = \"msvc-demangler-0.9.0\",\n build_file = Label(\"@crates//crates:BUILD.msvc-demangler-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__multimap-0.8.3\",\n sha256 = \"e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.8.3/download\"],\n strip_prefix = \"multimap-0.8.3\",\n build_file = Label(\"@crates//crates:BUILD.multimap-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__multimap-0.9.1\",\n sha256 = \"e1a5d38b9b352dbd913288736af36af41c48d61b1a8cd34bcecd727561b7d511\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.9.1/download\"],\n strip_prefix = \"multimap-0.9.1\",\n build_file = Label(\"@crates//crates:BUILD.multimap-0.9.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__named-lock-0.4.1\",\n sha256 = \"988ce9f7411c058a1d6788e60897a949dcdf5aa66202d789da045a03b4e4f406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/named-lock/0.4.1/download\"],\n strip_prefix = \"named-lock-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.named-lock-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nanorand-0.7.0\",\n sha256 = \"6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nanorand/0.7.0/download\"],\n strip_prefix = \"nanorand-0.7.0\",\n build_file = Label(\"@crates//crates:BUILD.nanorand-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__native-tls-0.2.12\",\n sha256 = \"a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/native-tls/0.2.12/download\"],\n strip_prefix = \"native-tls-0.2.12\",\n build_file = Label(\"@crates//crates:BUILD.native-tls-0.2.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__native-windows-gui-1.0.13\",\n sha256 = \"4f7003a669f68deb6b7c57d74fff4f8e533c44a3f0b297492440ef4ff5a28454\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/native-windows-gui/1.0.13/download\"],\n strip_prefix = \"native-windows-gui-1.0.13\",\n build_file = Label(\"@crates//crates:BUILD.native-windows-gui-1.0.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__new_mime_guess-4.0.4\",\n sha256 = \"02a2dfb3559d53e90b709376af1c379462f7fb3085a0177deb73e6ea0d99eff4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/new_mime_guess/4.0.4/download\"],\n strip_prefix = \"new_mime_guess-4.0.4\",\n build_file = Label(\"@crates//crates:BUILD.new_mime_guess-4.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__newline-converter-0.2.2\",\n sha256 = \"1f71d09d5c87634207f894c6b31b6a2b2c64ea3bdcf71bd5599fdbbe1600c00f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/newline-converter/0.2.2/download\"],\n strip_prefix = \"newline-converter-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.newline-converter-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nix-0.24.3\",\n sha256 = \"fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.24.3/download\"],\n strip_prefix = \"nix-0.24.3\",\n build_file = Label(\"@crates//crates:BUILD.nix-0.24.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nix-0.25.1\",\n sha256 = \"f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.25.1/download\"],\n strip_prefix = \"nix-0.25.1\",\n build_file = Label(\"@crates//crates:BUILD.nix-0.25.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__no-std-compat-0.4.1\",\n sha256 = \"b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/no-std-compat/0.4.1/download\"],\n strip_prefix = \"no-std-compat-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.no-std-compat-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ntapi-0.4.1\",\n sha256 = \"e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ntapi/0.4.1/download\"],\n strip_prefix = \"ntapi-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.ntapi-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nu-ansi-term-0.46.0\",\n sha256 = \"77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nu-ansi-term/0.46.0/download\"],\n strip_prefix = \"nu-ansi-term-0.46.0\",\n build_file = Label(\"@crates//crates:BUILD.nu-ansi-term-0.46.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-bigint-0.4.6\",\n sha256 = \"a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-bigint/0.4.6/download\"],\n strip_prefix = \"num-bigint-0.4.6\",\n build_file = Label(\"@crates//crates:BUILD.num-bigint-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-conv-0.1.0\",\n sha256 = \"51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.1.0/download\"],\n strip_prefix = \"num-conv-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.num-conv-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-integer-0.1.46\",\n sha256 = \"7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-integer/0.1.46/download\"],\n strip_prefix = \"num-integer-0.1.46\",\n build_file = Label(\"@crates//crates:BUILD.num-integer-0.1.46.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@crates//crates:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num_cpus-1.16.0\",\n sha256 = \"4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num_cpus/1.16.0/download\"],\n strip_prefix = \"num_cpus-1.16.0\",\n build_file = Label(\"@crates//crates:BUILD.num_cpus-1.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__number_prefix-0.4.0\",\n sha256 = \"830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/number_prefix/0.4.0/download\"],\n strip_prefix = \"number_prefix-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.number_prefix-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__object-0.36.4\",\n sha256 = \"084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/object/0.36.4/download\"],\n strip_prefix = \"object-0.36.4\",\n build_file = Label(\"@crates//crates:BUILD.object-0.36.4.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crates__octocrab-0.17.0\",\n commit = \"88f81c840085ce0aa591f9f53d6c62309cac8260\",\n init_submodules = True,\n remote = \"https://github.com/enso-org/octocrab\",\n build_file = Label(\"@crates//crates:BUILD.octocrab-0.17.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__once_cell-1.19.0\",\n sha256 = \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.19.0/download\"],\n strip_prefix = \"once_cell-1.19.0\",\n build_file = Label(\"@crates//crates:BUILD.once_cell-1.19.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-0.10.66\",\n sha256 = \"9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl/0.10.66/download\"],\n strip_prefix = \"openssl-0.10.66\",\n build_file = Label(\"@crates//crates:BUILD.openssl-0.10.66.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-macros-0.1.1\",\n sha256 = \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-macros/0.1.1/download\"],\n strip_prefix = \"openssl-macros-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.openssl-macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-probe-0.1.5\",\n sha256 = \"ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-probe/0.1.5/download\"],\n strip_prefix = \"openssl-probe-0.1.5\",\n build_file = Label(\"@crates//crates:BUILD.openssl-probe-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-sys-0.9.103\",\n sha256 = \"7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-sys/0.9.103/download\"],\n strip_prefix = \"openssl-sys-0.9.103\",\n build_file = Label(\"@crates//crates:BUILD.openssl-sys-0.9.103.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__option-ext-0.2.0\",\n sha256 = \"04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/option-ext/0.2.0/download\"],\n strip_prefix = \"option-ext-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.option-ext-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__os_str_bytes-6.6.1\",\n sha256 = \"e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/os_str_bytes/6.6.1/download\"],\n strip_prefix = \"os_str_bytes-6.6.1\",\n build_file = Label(\"@crates//crates:BUILD.os_str_bytes-6.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__overload-0.1.1\",\n sha256 = \"b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/overload/0.1.1/download\"],\n strip_prefix = \"overload-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.overload-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__parking-2.2.0\",\n sha256 = \"bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking/2.2.0/download\"],\n strip_prefix = \"parking-2.2.0\",\n build_file = Label(\"@crates//crates:BUILD.parking-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__parking_lot-0.12.3\",\n sha256 = \"f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot/0.12.3/download\"],\n strip_prefix = \"parking_lot-0.12.3\",\n build_file = Label(\"@crates//crates:BUILD.parking_lot-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__parking_lot_core-0.9.10\",\n sha256 = \"1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot_core/0.9.10/download\"],\n strip_prefix = \"parking_lot_core-0.9.10\",\n build_file = Label(\"@crates//crates:BUILD.parking_lot_core-0.9.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__paste-1.0.15\",\n sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n strip_prefix = \"paste-1.0.15\",\n build_file = Label(\"@crates//crates:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__path-absolutize-3.1.1\",\n sha256 = \"e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/path-absolutize/3.1.1/download\"],\n strip_prefix = \"path-absolutize-3.1.1\",\n build_file = Label(\"@crates//crates:BUILD.path-absolutize-3.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__path-dedot-3.1.1\",\n sha256 = \"07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/path-dedot/3.1.1/download\"],\n strip_prefix = \"path-dedot-3.1.1\",\n build_file = Label(\"@crates//crates:BUILD.path-dedot-3.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__path-slash-0.2.1\",\n sha256 = \"1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/path-slash/0.2.1/download\"],\n strip_prefix = \"path-slash-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.path-slash-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pathdiff-0.2.1\",\n sha256 = \"8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pathdiff/0.2.1/download\"],\n strip_prefix = \"pathdiff-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.pathdiff-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pelite-0.10.0\",\n sha256 = \"88dccf4bd32294364aeb7bd55d749604450e9db54605887551f21baea7617685\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pelite/0.10.0/download\"],\n strip_prefix = \"pelite-0.10.0\",\n build_file = Label(\"@crates//crates:BUILD.pelite-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pelite-macros-0.1.1\",\n sha256 = \"7a7cf3f8ecebb0f4895f4892a8be0a0dc81b498f9d56735cb769dc31bf00815b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pelite-macros/0.1.1/download\"],\n strip_prefix = \"pelite-macros-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.pelite-macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pem-1.1.1\",\n sha256 = \"a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pem/1.1.1/download\"],\n strip_prefix = \"pem-1.1.1\",\n build_file = Label(\"@crates//crates:BUILD.pem-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__percent-encoding-2.1.0\",\n sha256 = \"d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.1.0/download\"],\n strip_prefix = \"percent-encoding-2.1.0\",\n build_file = Label(\"@crates//crates:BUILD.percent-encoding-2.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest-2.7.11\",\n sha256 = \"cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest/2.7.11/download\"],\n strip_prefix = \"pest-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest_derive-2.7.11\",\n sha256 = \"2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_derive/2.7.11/download\"],\n strip_prefix = \"pest_derive-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest_derive-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest_generator-2.7.11\",\n sha256 = \"3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_generator/2.7.11/download\"],\n strip_prefix = \"pest_generator-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest_generator-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest_meta-2.7.11\",\n sha256 = \"a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_meta/2.7.11/download\"],\n strip_prefix = \"pest_meta-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest_meta-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-project-1.1.5\",\n sha256 = \"b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project/1.1.5/download\"],\n strip_prefix = \"pin-project-1.1.5\",\n build_file = Label(\"@crates//crates:BUILD.pin-project-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-project-internal-1.1.5\",\n sha256 = \"2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-internal/1.1.5/download\"],\n strip_prefix = \"pin-project-internal-1.1.5\",\n build_file = Label(\"@crates//crates:BUILD.pin-project-internal-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-project-lite-0.2.14\",\n sha256 = \"bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.14/download\"],\n strip_prefix = \"pin-project-lite-0.2.14\",\n build_file = Label(\"@crates//crates:BUILD.pin-project-lite-0.2.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-utils-0.1.0\",\n sha256 = \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-utils/0.1.0/download\"],\n strip_prefix = \"pin-utils-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.pin-utils-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pkg-config-0.3.30\",\n sha256 = \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkg-config/0.3.30/download\"],\n strip_prefix = \"pkg-config-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.pkg-config-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__plain-0.2.3\",\n sha256 = \"b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plain/0.2.3/download\"],\n strip_prefix = \"plain-0.2.3\",\n build_file = Label(\"@crates//crates:BUILD.plain-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__plotters-0.3.6\",\n sha256 = \"a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters/0.3.6/download\"],\n strip_prefix = \"plotters-0.3.6\",\n build_file = Label(\"@crates//crates:BUILD.plotters-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__plotters-backend-0.3.6\",\n sha256 = \"414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters-backend/0.3.6/download\"],\n strip_prefix = \"plotters-backend-0.3.6\",\n build_file = Label(\"@crates//crates:BUILD.plotters-backend-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__port_check-0.1.5\",\n sha256 = \"f6519412c9e0d4be579b9f0618364d19cb434b324fc6ddb1b27b1e682c7105ed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/port_check/0.1.5/download\"],\n strip_prefix = \"port_check-0.1.5\",\n build_file = Label(\"@crates//crates:BUILD.port_check-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__portable-atomic-1.7.0\",\n sha256 = \"da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.7.0/download\"],\n strip_prefix = \"portable-atomic-1.7.0\",\n build_file = Label(\"@crates//crates:BUILD.portable-atomic-1.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__portpicker-0.1.1\",\n sha256 = \"be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portpicker/0.1.1/download\"],\n strip_prefix = \"portpicker-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.portpicker-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__powerfmt-0.2.0\",\n sha256 = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/powerfmt/0.2.0/download\"],\n strip_prefix = \"powerfmt-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ppv-lite86-0.2.20\",\n sha256 = \"77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.20/download\"],\n strip_prefix = \"ppv-lite86-0.2.20\",\n build_file = Label(\"@crates//crates:BUILD.ppv-lite86-0.2.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__proc-macro2-1.0.86\",\n sha256 = \"5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.86/download\"],\n strip_prefix = \"proc-macro2-1.0.86\",\n build_file = Label(\"@crates//crates:BUILD.proc-macro2-1.0.86.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pulldown-cmark-0.9.6\",\n sha256 = \"57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pulldown-cmark/0.9.6/download\"],\n strip_prefix = \"pulldown-cmark-0.9.6\",\n build_file = Label(\"@crates//crates:BUILD.pulldown-cmark-0.9.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__quote-1.0.37\",\n sha256 = \"b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.37/download\"],\n strip_prefix = \"quote-1.0.37\",\n build_file = Label(\"@crates//crates:BUILD.quote-1.0.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand-0.7.3\",\n sha256 = \"6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.7.3/download\"],\n strip_prefix = \"rand-0.7.3\",\n build_file = Label(\"@crates//crates:BUILD.rand-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand-0.8.5\",\n sha256 = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.8.5/download\"],\n strip_prefix = \"rand-0.8.5\",\n build_file = Label(\"@crates//crates:BUILD.rand-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_chacha-0.2.2\",\n sha256 = \"f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.2.2/download\"],\n strip_prefix = \"rand_chacha-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.rand_chacha-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_chacha-0.3.1\",\n sha256 = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.3.1/download\"],\n strip_prefix = \"rand_chacha-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.rand_chacha-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_core-0.5.1\",\n sha256 = \"90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.5.1/download\"],\n strip_prefix = \"rand_core-0.5.1\",\n build_file = Label(\"@crates//crates:BUILD.rand_core-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_core-0.6.4\",\n sha256 = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.6.4/download\"],\n strip_prefix = \"rand_core-0.6.4\",\n build_file = Label(\"@crates//crates:BUILD.rand_core-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_distr-0.4.3\",\n sha256 = \"32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_distr/0.4.3/download\"],\n strip_prefix = \"rand_distr-0.4.3\",\n build_file = Label(\"@crates//crates:BUILD.rand_distr-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_hc-0.2.0\",\n sha256 = \"ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_hc/0.2.0/download\"],\n strip_prefix = \"rand_hc-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.rand_hc-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rayon-1.10.0\",\n sha256 = \"b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon/1.10.0/download\"],\n strip_prefix = \"rayon-1.10.0\",\n build_file = Label(\"@crates//crates:BUILD.rayon-1.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rayon-core-1.12.1\",\n sha256 = \"1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon-core/1.12.1/download\"],\n strip_prefix = \"rayon-core-1.12.1\",\n build_file = Label(\"@crates//crates:BUILD.rayon-core-1.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__redox_syscall-0.5.3\",\n sha256 = \"2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_syscall/0.5.3/download\"],\n strip_prefix = \"redox_syscall-0.5.3\",\n build_file = Label(\"@crates//crates:BUILD.redox_syscall-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__redox_users-0.4.6\",\n sha256 = \"ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_users/0.4.6/download\"],\n strip_prefix = \"redox_users-0.4.6\",\n build_file = Label(\"@crates//crates:BUILD.redox_users-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-1.10.6\",\n sha256 = \"4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.10.6/download\"],\n strip_prefix = \"regex-1.10.6\",\n build_file = Label(\"@crates//crates:BUILD.regex-1.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.1.10\",\n sha256 = \"6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.1.10/download\"],\n strip_prefix = \"regex-automata-0.1.10\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.4.7\",\n sha256 = \"38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.7/download\"],\n strip_prefix = \"regex-automata-0.4.7\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.6.29\",\n sha256 = \"f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.6.29/download\"],\n strip_prefix = \"regex-syntax-0.6.29\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.6.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.8.4\",\n sha256 = \"7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.4/download\"],\n strip_prefix = \"regex-syntax-0.8.4\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__reqwest-0.11.27\",\n sha256 = \"dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/reqwest/0.11.27/download\"],\n strip_prefix = \"reqwest-0.11.27\",\n build_file = Label(\"@crates//crates:BUILD.reqwest-0.11.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__retain_mut-0.1.9\",\n sha256 = \"4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/retain_mut/0.1.9/download\"],\n strip_prefix = \"retain_mut-0.1.9\",\n build_file = Label(\"@crates//crates:BUILD.retain_mut-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ring-0.16.20\",\n sha256 = \"3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.16.20/download\"],\n strip_prefix = \"ring-0.16.20\",\n build_file = Label(\"@crates//crates:BUILD.ring-0.16.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ring-0.17.8\",\n sha256 = \"c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.8/download\"],\n strip_prefix = \"ring-0.17.8\",\n build_file = Label(\"@crates//crates:BUILD.ring-0.17.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__roxmltree-0.18.1\",\n sha256 = \"862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/roxmltree/0.18.1/download\"],\n strip_prefix = \"roxmltree-0.18.1\",\n build_file = Label(\"@crates//crates:BUILD.roxmltree-0.18.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustc-demangle-0.1.24\",\n sha256 = \"719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-demangle/0.1.24/download\"],\n strip_prefix = \"rustc-demangle-0.1.24\",\n build_file = Label(\"@crates//crates:BUILD.rustc-demangle-0.1.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustc_version-0.4.1\",\n sha256 = \"cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc_version/0.4.1/download\"],\n strip_prefix = \"rustc_version-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.rustc_version-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustix-0.38.35\",\n sha256 = \"a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/0.38.35/download\"],\n strip_prefix = \"rustix-0.38.35\",\n build_file = Label(\"@crates//crates:BUILD.rustix-0.38.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-0.20.9\",\n sha256 = \"1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.20.9/download\"],\n strip_prefix = \"rustls-0.20.9\",\n build_file = Label(\"@crates//crates:BUILD.rustls-0.20.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-0.21.12\",\n sha256 = \"3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.21.12/download\"],\n strip_prefix = \"rustls-0.21.12\",\n build_file = Label(\"@crates//crates:BUILD.rustls-0.21.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-native-certs-0.6.3\",\n sha256 = \"a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-native-certs/0.6.3/download\"],\n strip_prefix = \"rustls-native-certs-0.6.3\",\n build_file = Label(\"@crates//crates:BUILD.rustls-native-certs-0.6.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-pemfile-1.0.4\",\n sha256 = \"1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pemfile/1.0.4/download\"],\n strip_prefix = \"rustls-pemfile-1.0.4\",\n build_file = Label(\"@crates//crates:BUILD.rustls-pemfile-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-webpki-0.101.7\",\n sha256 = \"8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.101.7/download\"],\n strip_prefix = \"rustls-webpki-0.101.7\",\n build_file = Label(\"@crates//crates:BUILD.rustls-webpki-0.101.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustversion-1.0.17\",\n sha256 = \"955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.17/download\"],\n strip_prefix = \"rustversion-1.0.17\",\n build_file = Label(\"@crates//crates:BUILD.rustversion-1.0.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ryu-1.0.18\",\n sha256 = \"f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ryu/1.0.18/download\"],\n strip_prefix = \"ryu-1.0.18\",\n build_file = Label(\"@crates//crates:BUILD.ryu-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__same-file-1.0.6\",\n sha256 = \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/same-file/1.0.6/download\"],\n strip_prefix = \"same-file-1.0.6\",\n build_file = Label(\"@crates//crates:BUILD.same-file-1.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__schannel-0.1.23\",\n sha256 = \"fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schannel/0.1.23/download\"],\n strip_prefix = \"schannel-0.1.23\",\n build_file = Label(\"@crates//crates:BUILD.schannel-0.1.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scoped-tls-1.0.1\",\n sha256 = \"e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scoped-tls/1.0.1/download\"],\n strip_prefix = \"scoped-tls-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.scoped-tls-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scopeguard-1.2.0\",\n sha256 = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scopeguard/1.2.0/download\"],\n strip_prefix = \"scopeguard-1.2.0\",\n build_file = Label(\"@crates//crates:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scroll-0.11.0\",\n sha256 = \"04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scroll/0.11.0/download\"],\n strip_prefix = \"scroll-0.11.0\",\n build_file = Label(\"@crates//crates:BUILD.scroll-0.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scroll_derive-0.11.1\",\n sha256 = \"1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scroll_derive/0.11.1/download\"],\n strip_prefix = \"scroll_derive-0.11.1\",\n build_file = Label(\"@crates//crates:BUILD.scroll_derive-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sct-0.7.1\",\n sha256 = \"da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sct/0.7.1/download\"],\n strip_prefix = \"sct-0.7.1\",\n build_file = Label(\"@crates//crates:BUILD.sct-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__secrecy-0.8.0\",\n sha256 = \"9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/secrecy/0.8.0/download\"],\n strip_prefix = \"secrecy-0.8.0\",\n build_file = Label(\"@crates//crates:BUILD.secrecy-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__security-framework-2.11.1\",\n sha256 = \"897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework/2.11.1/download\"],\n strip_prefix = \"security-framework-2.11.1\",\n build_file = Label(\"@crates//crates:BUILD.security-framework-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__security-framework-sys-2.11.1\",\n sha256 = \"75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework-sys/2.11.1/download\"],\n strip_prefix = \"security-framework-sys-2.11.1\",\n build_file = Label(\"@crates//crates:BUILD.security-framework-sys-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__self-replace-1.5.0\",\n sha256 = \"03ec815b5eab420ab893f63393878d89c90fdd94c0bcc44c07abb8ad95552fb7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/self-replace/1.5.0/download\"],\n strip_prefix = \"self-replace-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.self-replace-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__semver-1.0.23\",\n sha256 = \"61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.23/download\"],\n strip_prefix = \"semver-1.0.23\",\n build_file = Label(\"@crates//crates:BUILD.semver-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde-1.0.209\",\n sha256 = \"99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.209/download\"],\n strip_prefix = \"serde-1.0.209\",\n build_file = Label(\"@crates//crates:BUILD.serde-1.0.209.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_derive-1.0.209\",\n sha256 = \"a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.209/download\"],\n strip_prefix = \"serde_derive-1.0.209\",\n build_file = Label(\"@crates//crates:BUILD.serde_derive-1.0.209.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_json-1.0.127\",\n sha256 = \"8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.127/download\"],\n strip_prefix = \"serde_json-1.0.127\",\n build_file = Label(\"@crates//crates:BUILD.serde_json-1.0.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_path_to_error-0.1.16\",\n sha256 = \"af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_path_to_error/0.1.16/download\"],\n strip_prefix = \"serde_path_to_error-0.1.16\",\n build_file = Label(\"@crates//crates:BUILD.serde_path_to_error-0.1.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_qs-0.8.5\",\n sha256 = \"c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_qs/0.8.5/download\"],\n strip_prefix = \"serde_qs-0.8.5\",\n build_file = Label(\"@crates//crates:BUILD.serde_qs-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_spanned-0.6.7\",\n sha256 = \"eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_spanned/0.6.7/download\"],\n strip_prefix = \"serde_spanned-0.6.7\",\n build_file = Label(\"@crates//crates:BUILD.serde_spanned-0.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_urlencoded-0.7.1\",\n sha256 = \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_urlencoded/0.7.1/download\"],\n strip_prefix = \"serde_urlencoded-0.7.1\",\n build_file = Label(\"@crates//crates:BUILD.serde_urlencoded-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_yaml-0.9.34-deprecated\",\n sha256 = \"6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_yaml/0.9.34+deprecated/download\"],\n strip_prefix = \"serde_yaml-0.9.34+deprecated\",\n build_file = Label(\"@crates//crates:BUILD.serde_yaml-0.9.34+deprecated.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha1-0.10.6\",\n sha256 = \"e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1/0.10.6/download\"],\n strip_prefix = \"sha1-0.10.6\",\n build_file = Label(\"@crates//crates:BUILD.sha1-0.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha1-0.6.1\",\n sha256 = \"c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1/0.6.1/download\"],\n strip_prefix = \"sha1-0.6.1\",\n build_file = Label(\"@crates//crates:BUILD.sha1-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha1_smol-1.0.1\",\n sha256 = \"bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1_smol/1.0.1/download\"],\n strip_prefix = \"sha1_smol-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.sha1_smol-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha2-0.10.8\",\n sha256 = \"793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha2/0.10.8/download\"],\n strip_prefix = \"sha2-0.10.8\",\n build_file = Label(\"@crates//crates:BUILD.sha2-0.10.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sharded-slab-0.1.7\",\n sha256 = \"f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sharded-slab/0.1.7/download\"],\n strip_prefix = \"sharded-slab-0.1.7\",\n build_file = Label(\"@crates//crates:BUILD.sharded-slab-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__signal-hook-registry-1.4.2\",\n sha256 = \"a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.2/download\"],\n strip_prefix = \"signal-hook-registry-1.4.2\",\n build_file = Label(\"@crates//crates:BUILD.signal-hook-registry-1.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__simple_asn1-0.6.2\",\n sha256 = \"adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/simple_asn1/0.6.2/download\"],\n strip_prefix = \"simple_asn1-0.6.2\",\n build_file = Label(\"@crates//crates:BUILD.simple_asn1-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__skim-0.10.4\",\n sha256 = \"e5d28de0a6cb2cdd83a076f1de9d965b973ae08b244df1aa70b432946dda0f32\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/skim/0.10.4/download\"],\n strip_prefix = \"skim-0.10.4\",\n build_file = Label(\"@crates//crates:BUILD.skim-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__slab-0.4.9\",\n sha256 = \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.9/download\"],\n strip_prefix = \"slab-0.4.9\",\n build_file = Label(\"@crates//crates:BUILD.slab-0.4.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__smallvec-1.13.2\",\n sha256 = \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.13.2/download\"],\n strip_prefix = \"smallvec-1.13.2\",\n build_file = Label(\"@crates//crates:BUILD.smallvec-1.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__snafu-0.7.5\",\n sha256 = \"e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/snafu/0.7.5/download\"],\n strip_prefix = \"snafu-0.7.5\",\n build_file = Label(\"@crates//crates:BUILD.snafu-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__snafu-derive-0.7.5\",\n sha256 = \"990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/snafu-derive/0.7.5/download\"],\n strip_prefix = \"snafu-derive-0.7.5\",\n build_file = Label(\"@crates//crates:BUILD.snafu-derive-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__socket2-0.5.7\",\n sha256 = \"ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.5.7/download\"],\n strip_prefix = \"socket2-0.5.7\",\n build_file = Label(\"@crates//crates:BUILD.socket2-0.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__spin-0.5.2\",\n sha256 = \"6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.5.2/download\"],\n strip_prefix = \"spin-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.spin-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__spin-0.9.8\",\n sha256 = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.8/download\"],\n strip_prefix = \"spin-0.9.8\",\n build_file = Label(\"@crates//crates:BUILD.spin-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__stretch-0.3.2\",\n sha256 = \"7b0dc6d20ce137f302edf90f9cd3d278866fd7fb139efca6f246161222ad6d87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/stretch/0.3.2/download\"],\n strip_prefix = \"stretch-0.3.2\",\n build_file = Label(\"@crates//crates:BUILD.stretch-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strsim-0.10.0\",\n sha256 = \"73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strsim/0.10.0/download\"],\n strip_prefix = \"strsim-0.10.0\",\n build_file = Label(\"@crates//crates:BUILD.strsim-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strsim-0.11.1\",\n sha256 = \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strsim/0.11.1/download\"],\n strip_prefix = \"strsim-0.11.1\",\n build_file = Label(\"@crates//crates:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strum-0.26.3\",\n sha256 = \"8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum/0.26.3/download\"],\n strip_prefix = \"strum-0.26.3\",\n build_file = Label(\"@crates//crates:BUILD.strum-0.26.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strum_macros-0.26.4\",\n sha256 = \"4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum_macros/0.26.4/download\"],\n strip_prefix = \"strum_macros-0.26.4\",\n build_file = Label(\"@crates//crates:BUILD.strum_macros-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__symlink-0.1.0\",\n sha256 = \"a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/symlink/0.1.0/download\"],\n strip_prefix = \"symlink-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.symlink-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-1.0.109\",\n sha256 = \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/1.0.109/download\"],\n strip_prefix = \"syn-1.0.109\",\n build_file = Label(\"@crates//crates:BUILD.syn-1.0.109.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-2.0.77\",\n sha256 = \"9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.77/download\"],\n strip_prefix = \"syn-2.0.77\",\n build_file = Label(\"@crates//crates:BUILD.syn-2.0.77.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sync_wrapper-0.1.2\",\n sha256 = \"2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/0.1.2/download\"],\n strip_prefix = \"sync_wrapper-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.sync_wrapper-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sysinfo-0.30.13\",\n sha256 = \"0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sysinfo/0.30.13/download\"],\n strip_prefix = \"sysinfo-0.30.13\",\n build_file = Label(\"@crates//crates:BUILD.sysinfo-0.30.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__system-configuration-0.5.1\",\n sha256 = \"ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration/0.5.1/download\"],\n strip_prefix = \"system-configuration-0.5.1\",\n build_file = Label(\"@crates//crates:BUILD.system-configuration-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__system-configuration-sys-0.5.0\",\n sha256 = \"a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration-sys/0.5.0/download\"],\n strip_prefix = \"system-configuration-sys-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.system-configuration-sys-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tar-0.4.41\",\n sha256 = \"cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tar/0.4.41/download\"],\n strip_prefix = \"tar-0.4.41\",\n build_file = Label(\"@crates//crates:BUILD.tar-0.4.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tempfile-3.12.0\",\n sha256 = \"04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.12.0/download\"],\n strip_prefix = \"tempfile-3.12.0\",\n build_file = Label(\"@crates//crates:BUILD.tempfile-3.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__term-0.7.0\",\n sha256 = \"c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/term/0.7.0/download\"],\n strip_prefix = \"term-0.7.0\",\n build_file = Label(\"@crates//crates:BUILD.term-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__termcolor-1.4.1\",\n sha256 = \"06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/termcolor/1.4.1/download\"],\n strip_prefix = \"termcolor-1.4.1\",\n build_file = Label(\"@crates//crates:BUILD.termcolor-1.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__terminal_size-0.3.0\",\n sha256 = \"21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/terminal_size/0.3.0/download\"],\n strip_prefix = \"terminal_size-0.3.0\",\n build_file = Label(\"@crates//crates:BUILD.terminal_size-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__textwrap-0.16.1\",\n sha256 = \"23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/textwrap/0.16.1/download\"],\n strip_prefix = \"textwrap-0.16.1\",\n build_file = Label(\"@crates//crates:BUILD.textwrap-0.16.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__thiserror-1.0.63\",\n sha256 = \"c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/1.0.63/download\"],\n strip_prefix = \"thiserror-1.0.63\",\n build_file = Label(\"@crates//crates:BUILD.thiserror-1.0.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__thiserror-impl-1.0.63\",\n sha256 = \"a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/1.0.63/download\"],\n strip_prefix = \"thiserror-impl-1.0.63\",\n build_file = Label(\"@crates//crates:BUILD.thiserror-impl-1.0.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__thread_local-1.1.8\",\n sha256 = \"8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thread_local/1.1.8/download\"],\n strip_prefix = \"thread_local-1.1.8\",\n build_file = Label(\"@crates//crates:BUILD.thread_local-1.1.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__time-0.3.36\",\n sha256 = \"5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.36/download\"],\n strip_prefix = \"time-0.3.36\",\n build_file = Label(\"@crates//crates:BUILD.time-0.3.36.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__time-core-0.1.2\",\n sha256 = \"ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.2/download\"],\n strip_prefix = \"time-core-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.time-core-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__time-macros-0.2.18\",\n sha256 = \"3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.18/download\"],\n strip_prefix = \"time-macros-0.2.18\",\n build_file = Label(\"@crates//crates:BUILD.time-macros-0.2.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__timer-0.2.0\",\n sha256 = \"31d42176308937165701f50638db1c31586f183f1aab416268216577aec7306b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/timer/0.2.0/download\"],\n strip_prefix = \"timer-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.timer-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tinyvec-1.8.0\",\n sha256 = \"445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec/1.8.0/download\"],\n strip_prefix = \"tinyvec-1.8.0\",\n build_file = Label(\"@crates//crates:BUILD.tinyvec-1.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tinyvec_macros-0.1.1\",\n sha256 = \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec_macros/0.1.1/download\"],\n strip_prefix = \"tinyvec_macros-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.tinyvec_macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-1.40.0\",\n sha256 = \"e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.40.0/download\"],\n strip_prefix = \"tokio-1.40.0\",\n build_file = Label(\"@crates//crates:BUILD.tokio-1.40.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-macros-2.4.0\",\n sha256 = \"693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.4.0/download\"],\n strip_prefix = \"tokio-macros-2.4.0\",\n build_file = Label(\"@crates//crates:BUILD.tokio-macros-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-native-tls-0.3.1\",\n sha256 = \"bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-native-tls/0.3.1/download\"],\n strip_prefix = \"tokio-native-tls-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.tokio-native-tls-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-rustls-0.23.4\",\n sha256 = \"c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.23.4/download\"],\n strip_prefix = \"tokio-rustls-0.23.4\",\n build_file = Label(\"@crates//crates:BUILD.tokio-rustls-0.23.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-rustls-0.24.1\",\n sha256 = \"c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.24.1/download\"],\n strip_prefix = \"tokio-rustls-0.24.1\",\n build_file = Label(\"@crates//crates:BUILD.tokio-rustls-0.24.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-stream-0.1.15\",\n sha256 = \"267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-stream/0.1.15/download\"],\n strip_prefix = \"tokio-stream-0.1.15\",\n build_file = Label(\"@crates//crates:BUILD.tokio-stream-0.1.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-util-0.7.11\",\n sha256 = \"9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.11/download\"],\n strip_prefix = \"tokio-util-0.7.11\",\n build_file = Label(\"@crates//crates:BUILD.tokio-util-0.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml-0.5.11\",\n sha256 = \"f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml/0.5.11/download\"],\n strip_prefix = \"toml-0.5.11\",\n build_file = Label(\"@crates//crates:BUILD.toml-0.5.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml-0.8.19\",\n sha256 = \"a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml/0.8.19/download\"],\n strip_prefix = \"toml-0.8.19\",\n build_file = Label(\"@crates//crates:BUILD.toml-0.8.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml_datetime-0.6.8\",\n sha256 = \"0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_datetime/0.6.8/download\"],\n strip_prefix = \"toml_datetime-0.6.8\",\n build_file = Label(\"@crates//crates:BUILD.toml_datetime-0.6.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml_edit-0.22.20\",\n sha256 = \"583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_edit/0.22.20/download\"],\n strip_prefix = \"toml_edit-0.22.20\",\n build_file = Label(\"@crates//crates:BUILD.toml_edit-0.22.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tower-0.4.13\",\n sha256 = \"b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.4.13/download\"],\n strip_prefix = \"tower-0.4.13\",\n build_file = Label(\"@crates//crates:BUILD.tower-0.4.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tower-layer-0.3.3\",\n sha256 = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-layer/0.3.3/download\"],\n strip_prefix = \"tower-layer-0.3.3\",\n build_file = Label(\"@crates//crates:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tower-service-0.3.3\",\n sha256 = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-service/0.3.3/download\"],\n strip_prefix = \"tower-service-0.3.3\",\n build_file = Label(\"@crates//crates:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-0.1.40\",\n sha256 = \"c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.40/download\"],\n strip_prefix = \"tracing-0.1.40\",\n build_file = Label(\"@crates//crates:BUILD.tracing-0.1.40.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-attributes-0.1.27\",\n sha256 = \"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-attributes/0.1.27/download\"],\n strip_prefix = \"tracing-attributes-0.1.27\",\n build_file = Label(\"@crates//crates:BUILD.tracing-attributes-0.1.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-core-0.1.32\",\n sha256 = \"c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.32/download\"],\n strip_prefix = \"tracing-core-0.1.32\",\n build_file = Label(\"@crates//crates:BUILD.tracing-core-0.1.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-log-0.2.0\",\n sha256 = \"ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-log/0.2.0/download\"],\n strip_prefix = \"tracing-log-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.tracing-log-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-subscriber-0.3.18\",\n sha256 = \"ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-subscriber/0.3.18/download\"],\n strip_prefix = \"tracing-subscriber-0.3.18\",\n build_file = Label(\"@crates//crates:BUILD.tracing-subscriber-0.3.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__try-lock-0.2.5\",\n sha256 = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/try-lock/0.2.5/download\"],\n strip_prefix = \"try-lock-0.2.5\",\n build_file = Label(\"@crates//crates:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tuikit-0.5.0\",\n sha256 = \"5e19c6ab038babee3d50c8c12ff8b910bdb2196f62278776422f50390d8e53d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tuikit/0.5.0/download\"],\n strip_prefix = \"tuikit-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.tuikit-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__typenum-1.17.0\",\n sha256 = \"42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typenum/1.17.0/download\"],\n strip_prefix = \"typenum-1.17.0\",\n build_file = Label(\"@crates//crates:BUILD.typenum-1.17.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ucd-trie-0.1.6\",\n sha256 = \"ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ucd-trie/0.1.6/download\"],\n strip_prefix = \"ucd-trie-0.1.6\",\n build_file = Label(\"@crates//crates:BUILD.ucd-trie-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicase-2.6.0\",\n sha256 = \"50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicase/2.6.0/download\"],\n strip_prefix = \"unicase-2.6.0\",\n build_file = Label(\"@crates//crates:BUILD.unicase-2.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-bidi-0.3.15\",\n sha256 = \"08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-bidi/0.3.15/download\"],\n strip_prefix = \"unicode-bidi-0.3.15\",\n build_file = Label(\"@crates//crates:BUILD.unicode-bidi-0.3.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-ident-1.0.12\",\n sha256 = \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.12/download\"],\n strip_prefix = \"unicode-ident-1.0.12\",\n build_file = Label(\"@crates//crates:BUILD.unicode-ident-1.0.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-normalization-0.1.23\",\n sha256 = \"a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-normalization/0.1.23/download\"],\n strip_prefix = \"unicode-normalization-0.1.23\",\n build_file = Label(\"@crates//crates:BUILD.unicode-normalization-0.1.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-segmentation-1.11.0\",\n sha256 = \"d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-segmentation/1.11.0/download\"],\n strip_prefix = \"unicode-segmentation-1.11.0\",\n build_file = Label(\"@crates//crates:BUILD.unicode-segmentation-1.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-width-0.1.13\",\n sha256 = \"0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-width/0.1.13/download\"],\n strip_prefix = \"unicode-width-0.1.13\",\n build_file = Label(\"@crates//crates:BUILD.unicode-width-0.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-xid-0.2.5\",\n sha256 = \"229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-xid/0.2.5/download\"],\n strip_prefix = \"unicode-xid-0.2.5\",\n build_file = Label(\"@crates//crates:BUILD.unicode-xid-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unsafe-libyaml-0.2.11\",\n sha256 = \"673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unsafe-libyaml/0.2.11/download\"],\n strip_prefix = \"unsafe-libyaml-0.2.11\",\n build_file = Label(\"@crates//crates:BUILD.unsafe-libyaml-0.2.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__untrusted-0.7.1\",\n sha256 = \"a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.7.1/download\"],\n strip_prefix = \"untrusted-0.7.1\",\n build_file = Label(\"@crates//crates:BUILD.untrusted-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@crates//crates:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__url-2.3.0\",\n sha256 = \"22fe195a4f217c25b25cb5058ced57059824a678474874038dc88d211bf508d3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/url/2.3.0/download\"],\n strip_prefix = \"url-2.3.0\",\n build_file = Label(\"@crates//crates:BUILD.url-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__urlencoding-2.1.3\",\n sha256 = \"daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/urlencoding/2.1.3/download\"],\n strip_prefix = \"urlencoding-2.1.3\",\n build_file = Label(\"@crates//crates:BUILD.urlencoding-2.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__utf8parse-0.2.2\",\n sha256 = \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8parse/0.2.2/download\"],\n strip_prefix = \"utf8parse-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__uuid-1.10.0\",\n sha256 = \"81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/uuid/1.10.0/download\"],\n strip_prefix = \"uuid-1.10.0\",\n build_file = Label(\"@crates//crates:BUILD.uuid-1.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__valuable-0.1.0\",\n sha256 = \"830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/valuable/0.1.0/download\"],\n strip_prefix = \"valuable-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.valuable-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vcpkg-0.2.15\",\n sha256 = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vcpkg/0.2.15/download\"],\n strip_prefix = \"vcpkg-0.2.15\",\n build_file = Label(\"@crates//crates:BUILD.vcpkg-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__version_check-0.9.5\",\n sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n strip_prefix = \"version_check-0.9.5\",\n build_file = Label(\"@crates//crates:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vswhom-0.1.0\",\n sha256 = \"be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vswhom/0.1.0/download\"],\n strip_prefix = \"vswhom-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.vswhom-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vswhom-sys-0.1.2\",\n sha256 = \"d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vswhom-sys/0.1.2/download\"],\n strip_prefix = \"vswhom-sys-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.vswhom-sys-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vte-0.11.1\",\n sha256 = \"f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vte/0.11.1/download\"],\n strip_prefix = \"vte-0.11.1\",\n build_file = Label(\"@crates//crates:BUILD.vte-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vte_generate_state_changes-0.1.2\",\n sha256 = \"2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vte_generate_state_changes/0.1.2/download\"],\n strip_prefix = \"vte_generate_state_changes-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.vte_generate_state_changes-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__waker-fn-1.2.0\",\n sha256 = \"317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/waker-fn/1.2.0/download\"],\n strip_prefix = \"waker-fn-1.2.0\",\n build_file = Label(\"@crates//crates:BUILD.waker-fn-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__walkdir-2.5.0\",\n sha256 = \"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/walkdir/2.5.0/download\"],\n strip_prefix = \"walkdir-2.5.0\",\n build_file = Label(\"@crates//crates:BUILD.walkdir-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__want-0.3.1\",\n sha256 = \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/want/0.3.1/download\"],\n strip_prefix = \"want-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasi-0.11.0-wasi-snapshot-preview1\",\n sha256 = \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.0+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.0+wasi-snapshot-preview1\",\n build_file = Label(\"@crates//crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasi-0.9.0-wasi-snapshot-preview1\",\n sha256 = \"cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.9.0+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.9.0+wasi-snapshot-preview1\",\n build_file = Label(\"@crates//crates:BUILD.wasi-0.9.0+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-0.2.99\",\n sha256 = \"a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-backend-0.2.99\",\n sha256 = \"5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-backend/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-backend-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-backend-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-futures-0.4.49\",\n sha256 = \"38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-futures/0.4.49/download\"],\n strip_prefix = \"wasm-bindgen-futures-0.4.49\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-futures-0.4.49.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-0.2.99\",\n sha256 = \"2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-support-0.2.99\",\n sha256 = \"30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-support-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-shared-0.2.99\",\n sha256 = \"943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-shared-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-test-0.3.49\",\n sha256 = \"c61d44563646eb934577f2772656c7ad5e9c90fac78aa8013d776fcdaf24625d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-test/0.3.49/download\"],\n strip_prefix = \"wasm-bindgen-test-0.3.49\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-test-0.3.49.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-test-macro-0.3.49\",\n sha256 = \"54171416ce73aa0b9c377b51cc3cb542becee1cd678204812e8392e5b0e4a031\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-test-macro/0.3.49/download\"],\n strip_prefix = \"wasm-bindgen-test-macro-0.3.49\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-test-macro-0.3.49.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-streams-0.4.0\",\n sha256 = \"b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-streams/0.4.0/download\"],\n strip_prefix = \"wasm-streams-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.wasm-streams-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__web-sys-0.3.76\",\n sha256 = \"04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-sys/0.3.76/download\"],\n strip_prefix = \"web-sys-0.3.76\",\n build_file = Label(\"@crates//crates:BUILD.web-sys-0.3.76.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__webpki-0.22.4\",\n sha256 = \"ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki/0.22.4/download\"],\n strip_prefix = \"webpki-0.22.4\",\n build_file = Label(\"@crates//crates:BUILD.webpki-0.22.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__webpki-roots-0.25.4\",\n sha256 = \"5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-roots/0.25.4/download\"],\n strip_prefix = \"webpki-roots-0.25.4\",\n build_file = Label(\"@crates//crates:BUILD.webpki-roots-0.25.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__websocket-codec-0.5.2\",\n sha256 = \"2108c9c18a6e746addc085c18cedb66b672e8ffea6a993712decc295b0d8ae55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/websocket-codec/0.5.2/download\"],\n strip_prefix = \"websocket-codec-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.websocket-codec-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__websocket-lite-0.5.2\",\n sha256 = \"1d6cae39139c6e837afebd915935e7adc8af5c28425935de606d0e8c9d3268f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/websocket-lite/0.5.2/download\"],\n strip_prefix = \"websocket-lite-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.websocket-lite-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__which-5.0.0\",\n sha256 = \"9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/which/5.0.0/download\"],\n strip_prefix = \"which-5.0.0\",\n build_file = Label(\"@crates//crates:BUILD.which-5.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-0.3.9\",\n sha256 = \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi/0.3.9/download\"],\n strip_prefix = \"winapi-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.winapi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-build-0.1.1\",\n sha256 = \"2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-build/0.1.1/download\"],\n strip_prefix = \"winapi-build-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.winapi-build-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-i686-pc-windows-gnu-0.4.0\",\n sha256 = \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-i686-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-util-0.1.9\",\n sha256 = \"cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-util/0.1.9/download\"],\n strip_prefix = \"winapi-util-0.1.9\",\n build_file = Label(\"@crates//crates:BUILD.winapi-util-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-x86_64-pc-windows-gnu-0.4.0\",\n sha256 = \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-x86_64-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-0.52.0\",\n sha256 = \"e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows/0.52.0/download\"],\n strip_prefix = \"windows-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-0.53.0\",\n sha256 = \"efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows/0.53.0/download\"],\n strip_prefix = \"windows-0.53.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-core-0.52.0\",\n sha256 = \"33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.52.0/download\"],\n strip_prefix = \"windows-core-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-core-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-core-0.53.0\",\n sha256 = \"9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.53.0/download\"],\n strip_prefix = \"windows-core-0.53.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-core-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-result-0.1.2\",\n sha256 = \"5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.1.2/download\"],\n strip_prefix = \"windows-result-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.windows-result-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.45.0\",\n sha256 = \"75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.45.0/download\"],\n strip_prefix = \"windows-sys-0.45.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.45.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.48.0\",\n sha256 = \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.48.0/download\"],\n strip_prefix = \"windows-sys-0.48.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.48.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.59.0\",\n sha256 = \"1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.59.0/download\"],\n strip_prefix = \"windows-sys-0.59.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.59.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.42.2\",\n sha256 = \"8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.42.2/download\"],\n strip_prefix = \"windows-targets-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.48.5\",\n sha256 = \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.48.5/download\"],\n strip_prefix = \"windows-targets-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.42.2\",\n sha256 = \"597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.48.5\",\n sha256 = \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.42.2\",\n sha256 = \"e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.48.5\",\n sha256 = \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.42.2\",\n sha256 = \"c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.42.2/download\"],\n strip_prefix = \"windows_i686_gnu-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.48.5\",\n sha256 = \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.48.5/download\"],\n strip_prefix = \"windows_i686_gnu-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.42.2\",\n sha256 = \"44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.42.2/download\"],\n strip_prefix = \"windows_i686_msvc-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.48.5\",\n sha256 = \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.48.5/download\"],\n strip_prefix = \"windows_i686_msvc-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.42.2\",\n sha256 = \"8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.48.5\",\n sha256 = \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.42.2\",\n sha256 = \"26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.48.5\",\n sha256 = \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.42.2\",\n sha256 = \"9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.48.5\",\n sha256 = \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winnow-0.6.18\",\n sha256 = \"68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winnow/0.6.18/download\"],\n strip_prefix = \"winnow-0.6.18\",\n build_file = Label(\"@crates//crates:BUILD.winnow-0.6.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winreg-0.50.0\",\n sha256 = \"524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winreg/0.50.0/download\"],\n strip_prefix = \"winreg-0.50.0\",\n build_file = Label(\"@crates//crates:BUILD.winreg-0.50.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winreg-0.52.0\",\n sha256 = \"a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winreg/0.52.0/download\"],\n strip_prefix = \"winreg-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.winreg-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wiremock-0.5.22\",\n sha256 = \"13a3a53eaf34f390dd30d7b1b078287dd05df2aa2e21a589ccb80f5c7253c2e9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wiremock/0.5.22/download\"],\n strip_prefix = \"wiremock-0.5.22\",\n build_file = Label(\"@crates//crates:BUILD.wiremock-0.5.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__xattr-1.3.1\",\n sha256 = \"8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xattr/1.3.1/download\"],\n strip_prefix = \"xattr-1.3.1\",\n build_file = Label(\"@crates//crates:BUILD.xattr-1.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__xdg-2.5.2\",\n sha256 = \"213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xdg/2.5.2/download\"],\n strip_prefix = \"xdg-2.5.2\",\n build_file = Label(\"@crates//crates:BUILD.xdg-2.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__xmlparser-0.13.6\",\n sha256 = \"66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xmlparser/0.13.6/download\"],\n strip_prefix = \"xmlparser-0.13.6\",\n build_file = Label(\"@crates//crates:BUILD.xmlparser-0.13.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zerocopy-0.7.35\",\n sha256 = \"1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy/0.7.35/download\"],\n strip_prefix = \"zerocopy-0.7.35\",\n build_file = Label(\"@crates//crates:BUILD.zerocopy-0.7.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zerocopy-derive-0.7.35\",\n sha256 = \"fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy-derive/0.7.35/download\"],\n strip_prefix = \"zerocopy-derive-0.7.35\",\n build_file = Label(\"@crates//crates:BUILD.zerocopy-derive-0.7.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zeroize-1.8.1\",\n sha256 = \"ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.8.1/download\"],\n strip_prefix = \"zeroize-1.8.1\",\n build_file = Label(\"@crates//crates:BUILD.zeroize-1.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zip-0.6.6\",\n sha256 = \"760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zip/0.6.6/download\"],\n strip_prefix = \"zip-0.6.6\",\n build_file = Label(\"@crates//crates:BUILD.zip-0.6.6.bazel\"),\n )\n\n return [\n struct(repo=\"crates__afl-0.15.10\", is_dev_dep = False),\n struct(repo=\"crates__anyhow-1.0.86\", is_dev_dep = False),\n struct(repo=\"crates__async-compression-0.3.15\", is_dev_dep = False),\n struct(repo=\"crates__async-trait-0.1.82\", is_dev_dep = False),\n struct(repo=\"crates__aws-config-0.51.0\", is_dev_dep = False),\n struct(repo=\"crates__aws-sdk-ecr-0.21.0\", is_dev_dep = False),\n struct(repo=\"crates__aws-sdk-s3-0.21.0\", is_dev_dep = False),\n struct(repo=\"crates__base64-0.13.1\", is_dev_dep = False),\n struct(repo=\"crates__base64-0.21.7\", is_dev_dep = False),\n struct(repo=\"crates__bincode-1.3.3\", is_dev_dep = False),\n struct(repo=\"crates__boolinator-2.4.0\", is_dev_dep = False),\n struct(repo=\"crates__bytes-1.1.0\", is_dev_dep = False),\n struct(repo=\"crates__bytesize-1.3.0\", is_dev_dep = False),\n struct(repo=\"crates__chrono-0.4.38\", is_dev_dep = False),\n struct(repo=\"crates__clap-4.5.16\", is_dev_dep = False),\n struct(repo=\"crates__console_error_panic_hook-0.1.7\", is_dev_dep = False),\n struct(repo=\"crates__convert_case-0.6.0\", is_dev_dep = False),\n struct(repo=\"crates__data-encoding-2.6.0\", is_dev_dep = False),\n struct(repo=\"crates__dependency_runner-1.2.4\", is_dev_dep = False),\n struct(repo=\"crates__derive-where-1.2.7\", is_dev_dep = False),\n struct(repo=\"crates__derive_more-1.0.0\", is_dev_dep = False),\n struct(repo=\"crates__dirs-5.0.1\", is_dev_dep = False),\n struct(repo=\"crates__either-1.13.0\", is_dev_dep = False),\n struct(repo=\"crates__embed-resource-2.4.3\", is_dev_dep = False),\n struct(repo=\"crates__flate2-1.0.33\", is_dev_dep = False),\n struct(repo=\"crates__flume-0.10.14\", is_dev_dep = False),\n struct(repo=\"crates__fn-error-context-0.2.1\", is_dev_dep = False),\n struct(repo=\"crates__fs_extra-1.3.0\", is_dev_dep = False),\n struct(repo=\"crates__futures-0.3.30\", is_dev_dep = False),\n struct(repo=\"crates__futures-util-0.3.30\", is_dev_dep = False),\n struct(repo=\"crates__glob-0.3.1\", is_dev_dep = False),\n struct(repo=\"crates__handlebars-4.5.0\", is_dev_dep = False),\n struct(repo=\"crates__headers-0.3.9\", is_dev_dep = False),\n struct(repo=\"crates__http-serde-1.1.3\", is_dev_dep = False),\n struct(repo=\"crates__indicatif-0.17.8\", is_dev_dep = False),\n struct(repo=\"crates__itertools-0.12.1\", is_dev_dep = False),\n struct(repo=\"crates__jni-0.21.1\", is_dev_dep = False),\n struct(repo=\"crates__lazy_static-1.5.0\", is_dev_dep = False),\n struct(repo=\"crates__lexpr-0.2.7\", is_dev_dep = False),\n struct(repo=\"crates__mime-0.3.17\", is_dev_dep = False),\n struct(repo=\"crates__mslnk-0.1.8\", is_dev_dep = False),\n struct(repo=\"crates__multimap-0.9.1\", is_dev_dep = False),\n struct(repo=\"crates__named-lock-0.4.1\", is_dev_dep = False),\n struct(repo=\"crates__native-windows-gui-1.0.13\", is_dev_dep = False),\n struct(repo=\"crates__new_mime_guess-4.0.4\", is_dev_dep = False),\n struct(repo=\"crates__octocrab-0.17.0\", is_dev_dep = False),\n struct(repo=\"crates__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crates__path-absolutize-3.1.1\", is_dev_dep = False),\n struct(repo=\"crates__path-slash-0.2.1\", is_dev_dep = False),\n struct(repo=\"crates__pathdiff-0.2.1\", is_dev_dep = False),\n struct(repo=\"crates__port_check-0.1.5\", is_dev_dep = False),\n struct(repo=\"crates__portpicker-0.1.1\", is_dev_dep = False),\n struct(repo=\"crates__proc-macro2-1.0.86\", is_dev_dep = False),\n struct(repo=\"crates__pulldown-cmark-0.9.6\", is_dev_dep = False),\n struct(repo=\"crates__quote-1.0.37\", is_dev_dep = False),\n struct(repo=\"crates__regex-1.10.6\", is_dev_dep = False),\n struct(repo=\"crates__reqwest-0.11.27\", is_dev_dep = False),\n struct(repo=\"crates__scopeguard-1.2.0\", is_dev_dep = False),\n struct(repo=\"crates__self-replace-1.5.0\", is_dev_dep = False),\n struct(repo=\"crates__semver-1.0.23\", is_dev_dep = False),\n struct(repo=\"crates__serde-1.0.209\", is_dev_dep = False),\n struct(repo=\"crates__serde_json-1.0.127\", is_dev_dep = False),\n struct(repo=\"crates__serde_yaml-0.9.34-deprecated\", is_dev_dep = False),\n struct(repo=\"crates__sha2-0.10.8\", is_dev_dep = False),\n struct(repo=\"crates__strum-0.26.3\", is_dev_dep = False),\n struct(repo=\"crates__symlink-0.1.0\", is_dev_dep = False),\n struct(repo=\"crates__syn-2.0.77\", is_dev_dep = False),\n struct(repo=\"crates__sysinfo-0.30.13\", is_dev_dep = False),\n struct(repo=\"crates__tar-0.4.41\", is_dev_dep = False),\n struct(repo=\"crates__tempfile-3.12.0\", is_dev_dep = False),\n struct(repo=\"crates__time-0.3.36\", is_dev_dep = False),\n struct(repo=\"crates__tokio-1.40.0\", is_dev_dep = False),\n struct(repo=\"crates__tokio-stream-0.1.15\", is_dev_dep = False),\n struct(repo=\"crates__tokio-util-0.7.11\", is_dev_dep = False),\n struct(repo=\"crates__toml-0.5.11\", is_dev_dep = False),\n struct(repo=\"crates__tracing-0.1.40\", is_dev_dep = False),\n struct(repo=\"crates__tracing-subscriber-0.3.18\", is_dev_dep = False),\n struct(repo=\"crates__unicase-2.6.0\", is_dev_dep = False),\n struct(repo=\"crates__url-2.3.0\", is_dev_dep = False),\n struct(repo=\"crates__uuid-1.10.0\", is_dev_dep = False),\n struct(repo=\"crates__walkdir-2.5.0\", is_dev_dep = False),\n struct(repo=\"crates__wasm-bindgen-0.2.99\", is_dev_dep = False),\n struct(repo=\"crates__websocket-lite-0.5.2\", is_dev_dep = False),\n struct(repo=\"crates__which-5.0.0\", is_dev_dep = False),\n struct(repo=\"crates__windows-0.52.0\", is_dev_dep = False),\n struct(repo=\"crates__winreg-0.52.0\", is_dev_dep = False),\n struct(repo=\"crates__zip-0.6.6\", is_dev_dep = False),\n struct(repo = \"crates__rand-0.8.5\", is_dev_dep = True),\n struct(repo = \"crates__rand_chacha-0.3.1\", is_dev_dep = True),\n struct(repo = \"crates__rand_distr-0.4.3\", is_dev_dep = True),\n struct(repo = \"crates__wasm-bindgen-test-0.3.49\", is_dev_dep = True),\n struct(repo = \"crates__wiremock-0.5.22\", is_dev_dep = True),\n ]\n" + "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"aws-config\": Label(\"@crates//:aws-config-0.51.0\"),\n \"aws-sdk-ecr\": Label(\"@crates//:aws-sdk-ecr-0.21.0\"),\n \"aws-sdk-s3\": Label(\"@crates//:aws-sdk-s3-0.21.0\"),\n \"base64\": Label(\"@crates//:base64-0.13.1\"),\n \"bytes\": Label(\"@crates//:bytes-1.1.0\"),\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"dirs\": Label(\"@crates//:dirs-5.0.1\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"glob\": Label(\"@crates//:glob-0.3.1\"),\n \"handlebars\": Label(\"@crates//:handlebars-4.5.0\"),\n \"mime\": Label(\"@crates//:mime-0.3.17\"),\n \"new_mime_guess\": Label(\"@crates//:new_mime_guess-4.0.4\"),\n \"octocrab\": Label(\"@crates//:octocrab-0.17.0\"),\n \"path-slash\": Label(\"@crates//:path-slash-0.2.1\"),\n \"port_check\": Label(\"@crates//:port_check-0.1.5\"),\n \"pulldown-cmark\": Label(\"@crates//:pulldown-cmark-0.9.6\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"reqwest\": Label(\"@crates//:reqwest-0.11.27\"),\n \"scopeguard\": Label(\"@crates//:scopeguard-1.2.0\"),\n \"semver\": Label(\"@crates//:semver-1.0.23\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"sha2\": Label(\"@crates//:sha2-0.10.8\"),\n \"strum\": Label(\"@crates//:strum-0.26.3\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tempfile\": Label(\"@crates//:tempfile-3.12.0\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"toml\": Label(\"@crates//:toml-0.5.11\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n \"url\": Label(\"@crates//:url-2.3.0\"),\n \"uuid\": Label(\"@crates//:uuid-1.10.0\"),\n \"walkdir\": Label(\"@crates//:walkdir-2.5.0\"),\n \"zip\": Label(\"@crates//:zip-0.6.6\"),\n },\n },\n \"build_tools/base\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"futures-util\": Label(\"@crates//:futures-util-0.3.30\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n },\n },\n \"build_tools/ci-gen\": {\n _COMMON_CONDITION: {\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n },\n },\n \"build_tools/cli\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"futures-util\": Label(\"@crates//:futures-util-0.3.30\"),\n \"octocrab\": Label(\"@crates//:octocrab-0.17.0\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n },\n },\n \"build_tools/macros/lib\": {\n _COMMON_CONDITION: {\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"itertools\": Label(\"@crates//:itertools-0.12.1\"),\n \"lazy_static\": Label(\"@crates//:lazy_static-1.5.0\"),\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"build_tools/enso-formatter\": {\n _COMMON_CONDITION: {\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n },\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"dirs\": Label(\"@crates//:dirs-5.0.1\"),\n \"named-lock\": Label(\"@crates//:named-lock-0.4.1\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"strum\": Label(\"@crates//:strum-0.26.3\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n \"tracing-subscriber\": Label(\"@crates//:tracing-subscriber-0.3.18\"),\n \"windows\": Label(\"@crates//:windows-0.52.0\"),\n },\n \"cfg(windows)\": {\n \"mslnk\": Label(\"@crates//:mslnk-0.1.8\"),\n \"native-windows-gui\": Label(\"@crates//:native-windows-gui-1.0.13\"),\n \"winreg\": Label(\"@crates//:winreg-0.52.0\"),\n },\n },\n \"build_tools/install/config\": {\n _COMMON_CONDITION: {\n \"embed-resource\": Label(\"@crates//:embed-resource-2.4.3\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"tempfile\": Label(\"@crates//:tempfile-3.12.0\"),\n \"walkdir\": Label(\"@crates//:walkdir-2.5.0\"),\n },\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"bytesize\": Label(\"@crates//:bytesize-1.3.0\"),\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"flate2\": Label(\"@crates//:flate2-1.0.33\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tar\": Label(\"@crates//:tar-0.4.41\"),\n },\n \"cfg(windows)\": {\n \"native-windows-gui\": Label(\"@crates//:native-windows-gui-1.0.13\"),\n },\n },\n \"lib/rust/macro-utils\": {\n _COMMON_CONDITION: {\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/prelude/macros\": {\n _COMMON_CONDITION: {\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n _COMMON_CONDITION: {\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n \"lexpr\": Label(\"@crates//:lexpr-0.2.7\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"lib/rust/parser\": {\n _COMMON_CONDITION: {\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"uuid\": Label(\"@crates//:uuid-1.10.0\"),\n },\n },\n \"lib/rust/parser/debug\": {\n _COMMON_CONDITION: {\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"lexpr\": Label(\"@crates//:lexpr-0.2.7\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n },\n },\n \"lib/rust/parser/debug/fuzz\": {\n _COMMON_CONDITION: {\n \"afl\": Label(\"@crates//:afl-0.15.10\"),\n },\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n _COMMON_CONDITION: {\n \"jni\": Label(\"@crates//:jni-0.21.1\"),\n },\n },\n \"lib/rust/parser/schema\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n },\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n _COMMON_CONDITION: {\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"lib/rust/prelude\": {\n _COMMON_CONDITION: {\n \"boolinator\": Label(\"@crates//:boolinator-2.4.0\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n _COMMON_CONDITION: {\n \"proc-macro2\": Label(\"@crates//:proc-macro2-1.0.86\"),\n \"quote\": Label(\"@crates//:quote-1.0.37\"),\n \"syn\": Label(\"@crates//:syn-2.0.77\"),\n },\n },\n \"build_tools/install/uninstaller\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"self-replace\": Label(\"@crates//:self-replace-1.5.0\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n },\n \"cfg(windows)\": {\n \"native-windows-gui\": Label(\"@crates//:native-windows-gui-1.0.13\"),\n },\n },\n \"lib/rust/zst\": {\n _COMMON_CONDITION: {\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n },\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n \"anyhow\": Label(\"@crates//:anyhow-1.0.86\"),\n \"async-compression\": Label(\"@crates//:async-compression-0.3.15\"),\n \"base64\": Label(\"@crates//:base64-0.21.7\"),\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n \"bytes\": Label(\"@crates//:bytes-1.1.0\"),\n \"chrono\": Label(\"@crates//:chrono-0.4.38\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"convert_case\": Label(\"@crates//:convert_case-0.6.0\"),\n \"data-encoding\": Label(\"@crates//:data-encoding-2.6.0\"),\n \"dependency_runner\": Label(\"@crates//:dependency_runner-1.2.4\"),\n \"derive_more\": Label(\"@crates//:derive_more-1.0.0\"),\n \"dirs\": Label(\"@crates//:dirs-5.0.1\"),\n \"flate2\": Label(\"@crates//:flate2-1.0.33\"),\n \"flume\": Label(\"@crates//:flume-0.10.14\"),\n \"fs_extra\": Label(\"@crates//:fs_extra-1.3.0\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"futures-util\": Label(\"@crates//:futures-util-0.3.30\"),\n \"glob\": Label(\"@crates//:glob-0.3.1\"),\n \"headers\": Label(\"@crates//:headers-0.3.9\"),\n \"http-serde\": Label(\"@crates//:http-serde-1.1.3\"),\n \"indicatif\": Label(\"@crates//:indicatif-0.17.8\"),\n \"itertools\": Label(\"@crates//:itertools-0.12.1\"),\n \"lazy_static\": Label(\"@crates//:lazy_static-1.5.0\"),\n \"mime\": Label(\"@crates//:mime-0.3.17\"),\n \"multimap\": Label(\"@crates//:multimap-0.9.1\"),\n \"new_mime_guess\": Label(\"@crates//:new_mime_guess-4.0.4\"),\n \"octocrab\": Label(\"@crates//:octocrab-0.17.0\"),\n \"path-absolutize\": Label(\"@crates//:path-absolutize-3.1.1\"),\n \"path-slash\": Label(\"@crates//:path-slash-0.2.1\"),\n \"pathdiff\": Label(\"@crates//:pathdiff-0.2.1\"),\n \"portpicker\": Label(\"@crates//:portpicker-0.1.1\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"reqwest\": Label(\"@crates//:reqwest-0.11.27\"),\n \"semver\": Label(\"@crates//:semver-1.0.23\"),\n \"serde\": Label(\"@crates//:serde-1.0.209\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n \"sha2\": Label(\"@crates//:sha2-0.10.8\"),\n \"strum\": Label(\"@crates//:strum-0.26.3\"),\n \"symlink\": Label(\"@crates//:symlink-0.1.0\"),\n \"sysinfo\": Label(\"@crates//:sysinfo-0.30.13\"),\n \"tar\": Label(\"@crates//:tar-0.4.41\"),\n \"tempfile\": Label(\"@crates//:tempfile-3.12.0\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tokio-stream\": Label(\"@crates//:tokio-stream-0.1.15\"),\n \"tokio-util\": Label(\"@crates//:tokio-util-0.7.11\"),\n \"tracing\": Label(\"@crates//:tracing-0.1.40\"),\n \"tracing-subscriber\": Label(\"@crates//:tracing-subscriber-0.3.18\"),\n \"unicase\": Label(\"@crates//:unicase-2.6.0\"),\n \"url\": Label(\"@crates//:url-2.3.0\"),\n \"uuid\": Label(\"@crates//:uuid-1.10.0\"),\n \"walkdir\": Label(\"@crates//:walkdir-2.5.0\"),\n \"which\": Label(\"@crates//:which-5.0.0\"),\n \"zip\": Label(\"@crates//:zip-0.6.6\"),\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n _COMMON_CONDITION: {\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"lazy_static\": Label(\"@crates//:lazy_static-1.5.0\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"time\": Label(\"@crates//:time-0.3.36\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tokio-stream\": Label(\"@crates//:tokio-stream-0.1.15\"),\n },\n },\n \"app/rust-ffi\": {\n _COMMON_CONDITION: {\n \"console_error_panic_hook\": Label(\"@crates//:console_error_panic_hook-0.1.7\"),\n \"serde_json\": Label(\"@crates//:serde_json-1.0.127\"),\n \"wasm-bindgen\": Label(\"@crates//:wasm-bindgen-0.2.99\"),\n },\n },\n \"tools/language-server/wstest\": {\n _COMMON_CONDITION: {\n \"base64\": Label(\"@crates//:base64-0.13.1\"),\n \"clap\": Label(\"@crates//:clap-4.5.16\"),\n \"either\": Label(\"@crates//:either-1.13.0\"),\n \"futures\": Label(\"@crates//:futures-0.3.30\"),\n \"regex\": Label(\"@crates//:regex-1.10.6\"),\n \"time\": Label(\"@crates//:time-0.3.36\"),\n \"tokio\": Label(\"@crates//:tokio-1.40.0\"),\n \"tokio-stream\": Label(\"@crates//:tokio-stream-0.1.15\"),\n \"url\": Label(\"@crates//:url-2.3.0\"),\n \"websocket-lite\": Label(\"@crates//:websocket-lite-0.5.2\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/base\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/ci-gen\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/cli\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/macros/lib\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/enso-formatter\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n },\n \"cfg(windows)\": {\n },\n },\n \"build_tools/install/config\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n },\n \"cfg(windows)\": {\n },\n },\n \"lib/rust/macro-utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/prelude/macros\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/debug\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/debug/fuzz\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/parser/schema\": {\n _COMMON_CONDITION: {\n },\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n },\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/prelude\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install/uninstaller\": {\n _COMMON_CONDITION: {\n },\n \"cfg(windows)\": {\n },\n },\n \"lib/rust/zst\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n _COMMON_CONDITION: {\n },\n },\n \"app/rust-ffi\": {\n _COMMON_CONDITION: {\n },\n },\n \"tools/language-server/wstest\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n \"lexpr\": Label(\"@crates//:lexpr-0.2.7\"),\n },\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n \"bincode\": Label(\"@crates//:bincode-1.3.3\"),\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n \"rand\": Label(\"@crates//:rand-0.8.5\"),\n \"rand_chacha\": Label(\"@crates//:rand_chacha-0.3.1\"),\n \"rand_distr\": Label(\"@crates//:rand_distr-0.4.3\"),\n },\n \"cfg(target_arch = \\\"wasm32\\\")\": {\n \"wasm-bindgen-test\": Label(\"@crates//:wasm-bindgen-test-0.3.49\"),\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n \"wiremock\": Label(\"@crates//:wiremock-0.5.22\"),\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n },\n \"cfg(target_arch = \\\"wasm32\\\")\": {\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"build_tools/base\": {\n _COMMON_CONDITION: {\n \"fn-error-context\": Label(\"@crates//:fn-error-context-0.2.1\"),\n },\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/parser\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n \"paste\": Label(\"@crates//:paste-1.0.15\"),\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n _COMMON_CONDITION: {\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n \"async-trait\": Label(\"@crates//:async-trait-0.1.82\"),\n \"derive-where\": Label(\"@crates//:derive-where-1.2.7\"),\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": {\n },\n \"cfg(target_arch = \\\"wasm32\\\")\": {\n },\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n \"serde_yaml\": Label(\"@crates//:serde_yaml-0.9.34-deprecated\"),\n },\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n \"embed-resource\": Label(\"@crates//:embed-resource-2.4.3\"),\n },\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n \"embed-resource\": Label(\"@crates//:embed-resource-2.4.3\"),\n \"flate2\": Label(\"@crates//:flate2-1.0.33\"),\n \"tar\": Label(\"@crates//:tar-0.4.41\"),\n },\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"build_tools/build\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n _COMMON_CONDITION: {\n },\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n _COMMON_CONDITION: {\n },\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"build_tools/build\": {\n },\n \"build_tools/base\": {\n },\n \"build_tools/ci-gen\": {\n },\n \"build_tools/cli\": {\n },\n \"build_tools/macros/lib\": {\n },\n \"lib/rust/parser/doc-parser\": {\n },\n \"build_tools/enso-formatter\": {\n },\n \"build_tools/install\": {\n },\n \"build_tools/install/config\": {\n },\n \"build_tools/install/installer\": {\n },\n \"lib/rust/macro-utils\": {\n },\n \"lib/rust/prelude/macros\": {\n },\n \"lib/rust/metamodel\": {\n },\n \"lib/rust/metamodel/lexpr\": {\n },\n \"lib/rust/parser\": {\n },\n \"lib/rust/parser/debug\": {\n },\n \"lib/rust/parser/debug/fuzz\": {\n },\n \"lib/rust/parser/generate-java\": {\n },\n \"lib/rust/parser/jni\": {\n },\n \"lib/rust/parser/schema\": {\n },\n \"lib/rust/parser/src/syntax/tree/visitor\": {\n },\n \"lib/rust/prelude\": {\n },\n \"lib/rust/reflect\": {\n },\n \"lib/rust/reflect/macros\": {\n },\n \"build_tools/install/uninstaller\": {\n },\n \"lib/rust/zst\": {\n },\n \"build_tools/ci_utils\": {\n },\n \"lib/rust/launcher-shims\": {\n },\n \"tools/language-server/logstat\": {\n },\n \"app/rust-ffi\": {\n },\n \"tools/language-server/wstest\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-apple-ios\": [\"@rules_rust//rust/platform:aarch64-apple-ios\"],\n \"aarch64-apple-ios-sim\": [\"@rules_rust//rust/platform:aarch64-apple-ios-sim\"],\n \"aarch64-linux-android\": [\"@rules_rust//rust/platform:aarch64-linux-android\"],\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-pc-windows-msvc\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\"],\n \"aarch64-unknown-fuchsia\": [\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\"],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\"],\n \"aarch64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\"],\n \"aarch64-unknown-nto-qnx710\": [\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\"],\n \"aarch64-unknown-uefi\": [\"@rules_rust//rust/platform:aarch64-unknown-uefi\"],\n \"aarch64-uwp-windows-msvc\": [],\n \"arm-unknown-linux-gnueabi\": [\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\"],\n \"armv7-linux-androideabi\": [\"@rules_rust//rust/platform:armv7-linux-androideabi\"],\n \"armv7-unknown-linux-gnueabi\": [\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", target_endian = \\\"little\\\", any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-linux-android\"],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(target_arch = \\\"aarch64\\\", target_arch = \\\"arm\\\")))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", target_endian = \\\"little\\\", any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", target_endian = \\\"little\\\", any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips32r6\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"mips64r6\\\"), target_arch = \\\"x86\\\", all(target_arch = \\\"x86_64\\\", target_pointer_width = \\\"64\\\")))))))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"windows\\\"))\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\"],\n \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", not(target_os = \\\"wasi\\\")))\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_vendor = \\\"unknown\\\", target_os = \\\"unknown\\\", target_env = \\\"\\\"))\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"cfg(all(target_arch = \\\"wasm32\\\", wasm_bindgen_unstable_test_coverage))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:i686-unknown-linux-gnu\"],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:i686-unknown-linux-gnu\"],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:i686-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(target_os = \\\"windows\\\", target_env = \\\"msvc\\\"))\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(unix, not(target_os = \\\"macos\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(all(target_arch = \\\"arm\\\", target_pointer_width = \\\"32\\\"), target_arch = \\\"mips\\\", target_arch = \\\"powerpc\\\"))\": [\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"arm\\\", target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\", all(any(target_arch = \\\"aarch64\\\", target_arch = \\\"arm\\\"), any(target_os = \\\"android\\\", target_os = \\\"fuchsia\\\", target_os = \\\"linux\\\"))))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"illumos\\\", target_os = \\\"netbsd\\\", target_os = \\\"openbsd\\\", target_os = \\\"solaris\\\"))\": [\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\"],\n \"cfg(any(target_os = \\\"freebsd\\\", target_os = \\\"netbsd\\\"))\": [\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\"],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"ios\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\"],\n \"cfg(any(unix, target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(windows, target_os = \\\"linux\\\", target_os = \\\"android\\\"))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any(windows, unix, target_os = \\\"redox\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(not(all(target_arch = \\\"arm\\\", target_os = \\\"none\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(all(windows, target_env = \\\"msvc\\\", not(target_vendor = \\\"uwp\\\"))))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(any(target_os = \\\"unknown\\\", target_arch = \\\"wasm32\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(any(target_os = \\\"windows\\\", target_vendor = \\\"apple\\\")))\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(target_os = \\\"emscripten\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(target_os = \\\"windows\\\"))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(windows))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(not(windows_raw_dylib))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:aarch64-unknown-uefi\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\",\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:thumbv7em-none-eabi\",\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\",\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\",\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"cfg(target_arch = \\\"wasm32\\\")\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(target_feature = \\\"atomics\\\")\": [],\n \"cfg(target_os = \\\"android\\\")\": [\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:x86_64-linux-android\"],\n \"cfg(target_os = \\\"emscripten\\\")\": [],\n \"cfg(target_os = \\\"haiku\\\")\": [],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"linux\\\")\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(target_os = \\\"macos\\\")\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"cfg(target_os = \\\"redox\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(target_os = \\\"windows\\\")\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(target_vendor = \\\"apple\\\")\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\"],\n \"cfg(tokio_taskdump)\": [],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-apple-ios\",\"@rules_rust//rust/platform:aarch64-apple-ios-sim\",\"@rules_rust//rust/platform:aarch64-linux-android\",\"@rules_rust//rust/platform:aarch64-unknown-fuchsia\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:armv7-linux-androideabi\",\"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\",\"@rules_rust//rust/platform:i686-apple-darwin\",\"@rules_rust//rust/platform:i686-linux-android\",\"@rules_rust//rust/platform:i686-unknown-freebsd\",\"@rules_rust//rust/platform:i686-unknown-linux-gnu\",\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\",\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-apple-darwin\",\"@rules_rust//rust/platform:x86_64-apple-ios\",\"@rules_rust//rust/platform:x86_64-linux-android\",\"@rules_rust//rust/platform:x86_64-unknown-freebsd\",\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(windows)\": [\"@rules_rust//rust/platform:aarch64-pc-windows-msvc\",\"@rules_rust//rust/platform:i686-pc-windows-msvc\",\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"i686-apple-darwin\": [\"@rules_rust//rust/platform:i686-apple-darwin\"],\n \"i686-linux-android\": [\"@rules_rust//rust/platform:i686-linux-android\"],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"i686-pc-windows-msvc\": [\"@rules_rust//rust/platform:i686-pc-windows-msvc\"],\n \"i686-unknown-freebsd\": [\"@rules_rust//rust/platform:i686-unknown-freebsd\"],\n \"i686-unknown-linux-gnu\": [\"@rules_rust//rust/platform:i686-unknown-linux-gnu\"],\n \"i686-uwp-windows-gnu\": [],\n \"i686-uwp-windows-msvc\": [],\n \"powerpc-unknown-linux-gnu\": [\"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\"],\n \"riscv32imc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\"],\n \"riscv64gc-unknown-none-elf\": [\"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\"],\n \"s390x-unknown-linux-gnu\": [\"@rules_rust//rust/platform:s390x-unknown-linux-gnu\"],\n \"thumbv7em-none-eabi\": [\"@rules_rust//rust/platform:thumbv7em-none-eabi\"],\n \"thumbv8m.main-none-eabi\": [\"@rules_rust//rust/platform:thumbv8m.main-none-eabi\"],\n \"wasm32-unknown-unknown\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"wasm32-wasip1\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"x86_64-apple-darwin\": [\"@rules_rust//rust/platform:x86_64-apple-darwin\"],\n \"x86_64-apple-ios\": [\"@rules_rust//rust/platform:x86_64-apple-ios\"],\n \"x86_64-linux-android\": [\"@rules_rust//rust/platform:x86_64-linux-android\"],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-msvc\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"x86_64-unknown-freebsd\": [\"@rules_rust//rust/platform:x86_64-unknown-freebsd\"],\n \"x86_64-unknown-fuchsia\": [\"@rules_rust//rust/platform:x86_64-unknown-fuchsia\"],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"x86_64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"x86_64-unknown-none\": [\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"x86_64-unknown-uefi\": [\"@rules_rust//rust/platform:x86_64-unknown-uefi\"],\n \"x86_64-uwp-windows-gnu\": [],\n \"x86_64-uwp-windows-msvc\": [],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crates__addr2line-0.22.0\",\n sha256 = \"6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/addr2line/0.22.0/download\"],\n strip_prefix = \"addr2line-0.22.0\",\n build_file = Label(\"@crates//crates:BUILD.addr2line-0.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__adler-1.0.2\",\n sha256 = \"f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler/1.0.2/download\"],\n strip_prefix = \"adler-1.0.2\",\n build_file = Label(\"@crates//crates:BUILD.adler-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__adler2-2.0.0\",\n sha256 = \"512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler2/2.0.0/download\"],\n strip_prefix = \"adler2-2.0.0\",\n build_file = Label(\"@crates//crates:BUILD.adler2-2.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__afl-0.15.10\",\n sha256 = \"c21e10b6947189c5ff61343b5354e9ad1c1722bd47b69cd0a6b49e5fa7f7ecf6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/afl/0.15.10/download\"],\n strip_prefix = \"afl-0.15.10\",\n build_file = Label(\"@crates//crates:BUILD.afl-0.15.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ahash-0.8.11\",\n sha256 = \"e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ahash/0.8.11/download\"],\n strip_prefix = \"ahash-0.8.11\",\n build_file = Label(\"@crates//crates:BUILD.ahash-0.8.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aho-corasick-1.1.3\",\n sha256 = \"8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.3/download\"],\n strip_prefix = \"aho-corasick-1.1.3\",\n build_file = Label(\"@crates//crates:BUILD.aho-corasick-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__allocator-api2-0.2.18\",\n sha256 = \"5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/allocator-api2/0.2.18/download\"],\n strip_prefix = \"allocator-api2-0.2.18\",\n build_file = Label(\"@crates//crates:BUILD.allocator-api2-0.2.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__android-tzdata-0.1.1\",\n sha256 = \"e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android-tzdata/0.1.1/download\"],\n strip_prefix = \"android-tzdata-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.android-tzdata-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__android_system_properties-0.1.5\",\n sha256 = \"819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android_system_properties/0.1.5/download\"],\n strip_prefix = \"android_system_properties-0.1.5\",\n build_file = Label(\"@crates//crates:BUILD.android_system_properties-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstream-0.6.15\",\n sha256 = \"64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/0.6.15/download\"],\n strip_prefix = \"anstream-0.6.15\",\n build_file = Label(\"@crates//crates:BUILD.anstream-0.6.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-1.0.8\",\n sha256 = \"1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle/1.0.8/download\"],\n strip_prefix = \"anstyle-1.0.8\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-1.0.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-parse-0.2.5\",\n sha256 = \"eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/0.2.5/download\"],\n strip_prefix = \"anstyle-parse-0.2.5\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-parse-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-query-1.1.1\",\n sha256 = \"6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-query/1.1.1/download\"],\n strip_prefix = \"anstyle-query-1.1.1\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-query-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anstyle-wincon-3.0.4\",\n sha256 = \"5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.4/download\"],\n strip_prefix = \"anstyle-wincon-3.0.4\",\n build_file = Label(\"@crates//crates:BUILD.anstyle-wincon-3.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__anyhow-1.0.86\",\n sha256 = \"b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.86/download\"],\n strip_prefix = \"anyhow-1.0.86\",\n build_file = Label(\"@crates//crates:BUILD.anyhow-1.0.86.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__arc-swap-1.7.1\",\n sha256 = \"69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arc-swap/1.7.1/download\"],\n strip_prefix = \"arc-swap-1.7.1\",\n build_file = Label(\"@crates//crates:BUILD.arc-swap-1.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__arrayvec-0.7.6\",\n sha256 = \"7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arrayvec/0.7.6/download\"],\n strip_prefix = \"arrayvec-0.7.6\",\n build_file = Label(\"@crates//crates:BUILD.arrayvec-0.7.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__assert-json-diff-2.0.2\",\n sha256 = \"47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/assert-json-diff/2.0.2/download\"],\n strip_prefix = \"assert-json-diff-2.0.2\",\n build_file = Label(\"@crates//crates:BUILD.assert-json-diff-2.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__async-channel-1.9.0\",\n sha256 = \"81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-channel/1.9.0/download\"],\n strip_prefix = \"async-channel-1.9.0\",\n build_file = Label(\"@crates//crates:BUILD.async-channel-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__async-compression-0.3.15\",\n sha256 = \"942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-compression/0.3.15/download\"],\n strip_prefix = \"async-compression-0.3.15\",\n build_file = Label(\"@crates//crates:BUILD.async-compression-0.3.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__async-trait-0.1.82\",\n sha256 = \"a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-trait/0.1.82/download\"],\n strip_prefix = \"async-trait-0.1.82\",\n build_file = Label(\"@crates//crates:BUILD.async-trait-0.1.82.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__atty-0.2.14\",\n sha256 = \"d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atty/0.2.14/download\"],\n strip_prefix = \"atty-0.2.14\",\n build_file = Label(\"@crates//crates:BUILD.atty-0.2.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__autocfg-1.3.0\",\n sha256 = \"0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.3.0/download\"],\n strip_prefix = \"autocfg-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.autocfg-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-config-0.51.0\",\n sha256 = \"56a636c44c77fa18bdba56126a34d30cfe5538fe88f7d34988fa731fee143ddd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-config/0.51.0/download\"],\n strip_prefix = \"aws-config-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-config-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-endpoint-0.51.0\",\n sha256 = \"6ca8f374874f6459aaa88dc861d7f5d834ca1ff97668eae190e97266b5f6c3fb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-endpoint/0.51.0/download\"],\n strip_prefix = \"aws-endpoint-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-endpoint-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-http-0.51.0\",\n sha256 = \"78d41e19e779b73463f5f0c21b3aacc995f4ba783ab13a7ae9f5dfb159a551b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-http/0.51.0/download\"],\n strip_prefix = \"aws-http-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-http-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-ecr-0.21.0\",\n sha256 = \"40adb537ecb04ca12accba5c44308699c1bfc4c175dbe9b9562787b87736e010\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-ecr/0.21.0/download\"],\n strip_prefix = \"aws-sdk-ecr-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-ecr-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-s3-0.21.0\",\n sha256 = \"a9f08665c8e03aca8cb092ef01e617436ebfa977fddc1240e1b062488ab5d48a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-s3/0.21.0/download\"],\n strip_prefix = \"aws-sdk-s3-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-s3-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-sso-0.21.0\",\n sha256 = \"86dcb1cb71aa8763b327542ead410424515cff0cde5b753eedd2917e09c63734\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-sso/0.21.0/download\"],\n strip_prefix = \"aws-sdk-sso-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-sso-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sdk-sts-0.21.0\",\n sha256 = \"fdfcf584297c666f6b472d5368a78de3bc714b6e0a53d7fbf76c3e347c292ab1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sdk-sts/0.21.0/download\"],\n strip_prefix = \"aws-sdk-sts-0.21.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sdk-sts-0.21.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sig-auth-0.51.0\",\n sha256 = \"12cbe7b2be9e185c1fbce27fc9c41c66b195b32d89aa099f98768d9544221308\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sig-auth/0.51.0/download\"],\n strip_prefix = \"aws-sig-auth-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-sig-auth-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-sigv4-0.51.1\",\n sha256 = \"5c0b2658d2cb66dbf02f0e8dee80810ef1e0ca3530ede463e0ef994c301087d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-sigv4/0.51.1/download\"],\n strip_prefix = \"aws-sigv4-0.51.1\",\n build_file = Label(\"@crates//crates:BUILD.aws-sigv4-0.51.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-async-0.51.0\",\n sha256 = \"7b3442b4c5d3fc39891a2e5e625735fba6b24694887d49c6518460fde98247a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-async/0.51.0/download\"],\n strip_prefix = \"aws-smithy-async-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-async-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-checksums-0.51.0\",\n sha256 = \"cc227e36e346f45298288359f37123e1a92628d1cec6b11b5eb335553278bd9e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-checksums/0.51.0/download\"],\n strip_prefix = \"aws-smithy-checksums-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-checksums-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-client-0.51.0\",\n sha256 = \"ff28d553714f8f54cd921227934fc13a536a1c03f106e56b362fd57e16d450ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-client/0.51.0/download\"],\n strip_prefix = \"aws-smithy-client-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-client-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-eventstream-0.51.0\",\n sha256 = \"d7ea0df7161ce65b5c8ca6eb709a1a907376fa18226976e41c748ce02ccccf24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-eventstream/0.51.0/download\"],\n strip_prefix = \"aws-smithy-eventstream-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-eventstream-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-http-0.51.0\",\n sha256 = \"bf58ed4fefa61dbf038e5421a521cbc2c448ef69deff0ab1d915d8a10eda5664\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-http/0.51.0/download\"],\n strip_prefix = \"aws-smithy-http-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-http-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-http-tower-0.51.0\",\n sha256 = \"20c96d7bd35e7cf96aca1134b2f81b1b59ffe493f7c6539c051791cbbf7a42d3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-http-tower/0.51.0/download\"],\n strip_prefix = \"aws-smithy-http-tower-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-http-tower-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-json-0.51.0\",\n sha256 = \"d8324ba98c8a94187723cc16c37aefa09504646ee65c3d2c3af495bab5ea701b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-json/0.51.0/download\"],\n strip_prefix = \"aws-smithy-json-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-json-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-query-0.51.0\",\n sha256 = \"83834ed2ff69ea6f6657baf205267dc2c0abe940703503a3e5d60ce23be3d306\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-query/0.51.0/download\"],\n strip_prefix = \"aws-smithy-query-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-query-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-types-0.51.0\",\n sha256 = \"8b02e06ea63498c43bc0217ea4d16605d4e58d85c12fc23f6572ff6d0a840c61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-types/0.51.0/download\"],\n strip_prefix = \"aws-smithy-types-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-types-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-smithy-xml-0.51.0\",\n sha256 = \"246e9f83dd1fdf5d347fa30ae4ad30a9d1d42ce4cd74a93d94afa874646f94cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-smithy-xml/0.51.0/download\"],\n strip_prefix = \"aws-smithy-xml-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-smithy-xml-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aws-types-0.51.0\",\n sha256 = \"05701d32da168b44f7ee63147781aed8723e792cc131cb9b18363b5393f17f70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aws-types/0.51.0/download\"],\n strip_prefix = \"aws-types-0.51.0\",\n build_file = Label(\"@crates//crates:BUILD.aws-types-0.51.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__backtrace-0.3.73\",\n sha256 = \"5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/backtrace/0.3.73/download\"],\n strip_prefix = \"backtrace-0.3.73\",\n build_file = Label(\"@crates//crates:BUILD.backtrace-0.3.73.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__base64-0.13.1\",\n sha256 = \"9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.13.1/download\"],\n strip_prefix = \"base64-0.13.1\",\n build_file = Label(\"@crates//crates:BUILD.base64-0.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__base64-0.21.7\",\n sha256 = \"9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.21.7/download\"],\n strip_prefix = \"base64-0.21.7\",\n build_file = Label(\"@crates//crates:BUILD.base64-0.21.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__beef-0.5.2\",\n sha256 = \"3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/beef/0.5.2/download\"],\n strip_prefix = \"beef-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.beef-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bincode-1.3.3\",\n sha256 = \"b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bincode/1.3.3/download\"],\n strip_prefix = \"bincode-1.3.3\",\n build_file = Label(\"@crates//crates:BUILD.bincode-1.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bitflags-1.3.2\",\n sha256 = \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/1.3.2/download\"],\n strip_prefix = \"bitflags-1.3.2\",\n build_file = Label(\"@crates//crates:BUILD.bitflags-1.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bitflags-2.6.0\",\n sha256 = \"b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.6.0/download\"],\n strip_prefix = \"bitflags-2.6.0\",\n build_file = Label(\"@crates//crates:BUILD.bitflags-2.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__block-buffer-0.10.4\",\n sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n strip_prefix = \"block-buffer-0.10.4\",\n build_file = Label(\"@crates//crates:BUILD.block-buffer-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__boolinator-2.4.0\",\n sha256 = \"cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/boolinator/2.4.0/download\"],\n strip_prefix = \"boolinator-2.4.0\",\n build_file = Label(\"@crates//crates:BUILD.boolinator-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bumpalo-3.16.0\",\n sha256 = \"79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.16.0/download\"],\n strip_prefix = \"bumpalo-3.16.0\",\n build_file = Label(\"@crates//crates:BUILD.bumpalo-3.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__byteorder-1.5.0\",\n sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n strip_prefix = \"byteorder-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.byteorder-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytes-1.1.0\",\n sha256 = \"c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.1.0/download\"],\n strip_prefix = \"bytes-1.1.0\",\n build_file = Label(\"@crates//crates:BUILD.bytes-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytes-utils-0.1.4\",\n sha256 = \"7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes-utils/0.1.4/download\"],\n strip_prefix = \"bytes-utils-0.1.4\",\n build_file = Label(\"@crates//crates:BUILD.bytes-utils-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytesize-1.3.0\",\n sha256 = \"a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytesize/1.3.0/download\"],\n strip_prefix = \"bytesize-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.bytesize-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cc-1.1.15\",\n sha256 = \"57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.1.15/download\"],\n strip_prefix = \"cc-1.1.15\",\n build_file = Label(\"@crates//crates:BUILD.cc-1.1.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cesu8-1.1.0\",\n sha256 = \"6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cesu8/1.1.0/download\"],\n strip_prefix = \"cesu8-1.1.0\",\n build_file = Label(\"@crates//crates:BUILD.cesu8-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cfg-if-1.0.0\",\n sha256 = \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.0/download\"],\n strip_prefix = \"cfg-if-1.0.0\",\n build_file = Label(\"@crates//crates:BUILD.cfg-if-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__chrono-0.4.38\",\n sha256 = \"a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/chrono/0.4.38/download\"],\n strip_prefix = \"chrono-0.4.38\",\n build_file = Label(\"@crates//crates:BUILD.chrono-0.4.38.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap-3.2.25\",\n sha256 = \"4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/3.2.25/download\"],\n strip_prefix = \"clap-3.2.25\",\n build_file = Label(\"@crates//crates:BUILD.clap-3.2.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap-4.5.16\",\n sha256 = \"ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.5.16/download\"],\n strip_prefix = \"clap-4.5.16\",\n build_file = Label(\"@crates//crates:BUILD.clap-4.5.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_builder-4.5.15\",\n sha256 = \"216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.5.15/download\"],\n strip_prefix = \"clap_builder-4.5.15\",\n build_file = Label(\"@crates//crates:BUILD.clap_builder-4.5.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_derive-4.5.13\",\n sha256 = \"501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.5.13/download\"],\n strip_prefix = \"clap_derive-4.5.13\",\n build_file = Label(\"@crates//crates:BUILD.clap_derive-4.5.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_lex-0.2.4\",\n sha256 = \"2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/0.2.4/download\"],\n strip_prefix = \"clap_lex-0.2.4\",\n build_file = Label(\"@crates//crates:BUILD.clap_lex-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__clap_lex-0.7.2\",\n sha256 = \"1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/0.7.2/download\"],\n strip_prefix = \"clap_lex-0.7.2\",\n build_file = Label(\"@crates//crates:BUILD.clap_lex-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__colorchoice-1.0.2\",\n sha256 = \"d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/colorchoice/1.0.2/download\"],\n strip_prefix = \"colorchoice-1.0.2\",\n build_file = Label(\"@crates//crates:BUILD.colorchoice-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__combine-4.6.7\",\n sha256 = \"ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/combine/4.6.7/download\"],\n strip_prefix = \"combine-4.6.7\",\n build_file = Label(\"@crates//crates:BUILD.combine-4.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__concurrent-queue-2.5.0\",\n sha256 = \"4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/concurrent-queue/2.5.0/download\"],\n strip_prefix = \"concurrent-queue-2.5.0\",\n build_file = Label(\"@crates//crates:BUILD.concurrent-queue-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__console-0.15.8\",\n sha256 = \"0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.15.8/download\"],\n strip_prefix = \"console-0.15.8\",\n build_file = Label(\"@crates//crates:BUILD.console-0.15.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__console_error_panic_hook-0.1.7\",\n sha256 = \"a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console_error_panic_hook/0.1.7/download\"],\n strip_prefix = \"console_error_panic_hook-0.1.7\",\n build_file = Label(\"@crates//crates:BUILD.console_error_panic_hook-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__convert_case-0.6.0\",\n sha256 = \"ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/convert_case/0.6.0/download\"],\n strip_prefix = \"convert_case-0.6.0\",\n build_file = Label(\"@crates//crates:BUILD.convert_case-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__core-foundation-0.9.4\",\n sha256 = \"91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.9.4/download\"],\n strip_prefix = \"core-foundation-0.9.4\",\n build_file = Label(\"@crates//crates:BUILD.core-foundation-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__core-foundation-sys-0.8.7\",\n sha256 = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation-sys/0.8.7/download\"],\n strip_prefix = \"core-foundation-sys-0.8.7\",\n build_file = Label(\"@crates//crates:BUILD.core-foundation-sys-0.8.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cpufeatures-0.2.13\",\n sha256 = \"51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cpufeatures/0.2.13/download\"],\n strip_prefix = \"cpufeatures-0.2.13\",\n build_file = Label(\"@crates//crates:BUILD.cpufeatures-0.2.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crc32c-0.6.8\",\n sha256 = \"3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32c/0.6.8/download\"],\n strip_prefix = \"crc32c-0.6.8\",\n build_file = Label(\"@crates//crates:BUILD.crc32c-0.6.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crc32fast-1.4.2\",\n sha256 = \"a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32fast/1.4.2/download\"],\n strip_prefix = \"crc32fast-1.4.2\",\n build_file = Label(\"@crates//crates:BUILD.crc32fast-1.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-0.8.4\",\n sha256 = \"1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam/0.8.4/download\"],\n strip_prefix = \"crossbeam-0.8.4\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-channel-0.5.13\",\n sha256 = \"33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-channel/0.5.13/download\"],\n strip_prefix = \"crossbeam-channel-0.5.13\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-channel-0.5.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-deque-0.8.5\",\n sha256 = \"613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-deque/0.8.5/download\"],\n strip_prefix = \"crossbeam-deque-0.8.5\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-deque-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-epoch-0.9.18\",\n sha256 = \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-epoch/0.9.18/download\"],\n strip_prefix = \"crossbeam-epoch-0.9.18\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-epoch-0.9.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-queue-0.3.11\",\n sha256 = \"df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-queue/0.3.11/download\"],\n strip_prefix = \"crossbeam-queue-0.3.11\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-queue-0.3.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crossbeam-utils-0.8.20\",\n sha256 = \"22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-utils/0.8.20/download\"],\n strip_prefix = \"crossbeam-utils-0.8.20\",\n build_file = Label(\"@crates//crates:BUILD.crossbeam-utils-0.8.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crypto-common-0.1.6\",\n sha256 = \"1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crypto-common/0.1.6/download\"],\n strip_prefix = \"crypto-common-0.1.6\",\n build_file = Label(\"@crates//crates:BUILD.crypto-common-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__darling-0.14.4\",\n sha256 = \"7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling/0.14.4/download\"],\n strip_prefix = \"darling-0.14.4\",\n build_file = Label(\"@crates//crates:BUILD.darling-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__darling_core-0.14.4\",\n sha256 = \"109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_core/0.14.4/download\"],\n strip_prefix = \"darling_core-0.14.4\",\n build_file = Label(\"@crates//crates:BUILD.darling_core-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__darling_macro-0.14.4\",\n sha256 = \"a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_macro/0.14.4/download\"],\n strip_prefix = \"darling_macro-0.14.4\",\n build_file = Label(\"@crates//crates:BUILD.darling_macro-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__data-encoding-2.6.0\",\n sha256 = \"e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/data-encoding/2.6.0/download\"],\n strip_prefix = \"data-encoding-2.6.0\",\n build_file = Label(\"@crates//crates:BUILD.data-encoding-2.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dataview-1.0.1\",\n sha256 = \"50eb3a329e19d78c3a3dfa4ec5a51ecb84fa3a20c06edad04be25356018218f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dataview/1.0.1/download\"],\n strip_prefix = \"dataview-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.dataview-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__deadpool-0.9.5\",\n sha256 = \"421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deadpool/0.9.5/download\"],\n strip_prefix = \"deadpool-0.9.5\",\n build_file = Label(\"@crates//crates:BUILD.deadpool-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__deadpool-runtime-0.1.4\",\n sha256 = \"092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deadpool-runtime/0.1.4/download\"],\n strip_prefix = \"deadpool-runtime-0.1.4\",\n build_file = Label(\"@crates//crates:BUILD.deadpool-runtime-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__defer-drop-1.3.0\",\n sha256 = \"f613ec9fa66a6b28cdb1842b27f9adf24f39f9afc4dcdd9fdecee4aca7945c57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defer-drop/1.3.0/download\"],\n strip_prefix = \"defer-drop-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.defer-drop-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dependency_runner-1.2.4\",\n sha256 = \"9a183e141d0e543fe8abc96e0f06da25e3294284239260e50f63847f549d807a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dependency_runner/1.2.4/download\"],\n strip_prefix = \"dependency_runner-1.2.4\",\n build_file = Label(\"@crates//crates:BUILD.dependency_runner-1.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__deranged-0.3.11\",\n sha256 = \"b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.3.11/download\"],\n strip_prefix = \"deranged-0.3.11\",\n build_file = Label(\"@crates//crates:BUILD.deranged-0.3.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive-where-1.2.7\",\n sha256 = \"62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive-where/1.2.7/download\"],\n strip_prefix = \"derive-where-1.2.7\",\n build_file = Label(\"@crates//crates:BUILD.derive-where-1.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_builder-0.11.2\",\n sha256 = \"d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_builder/0.11.2/download\"],\n strip_prefix = \"derive_builder-0.11.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_builder-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_builder_core-0.11.2\",\n sha256 = \"1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_builder_core/0.11.2/download\"],\n strip_prefix = \"derive_builder_core-0.11.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_builder_core-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_builder_macro-0.11.2\",\n sha256 = \"8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_builder_macro/0.11.2/download\"],\n strip_prefix = \"derive_builder_macro-0.11.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_builder_macro-0.11.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_more-1.0.0\",\n sha256 = \"4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more/1.0.0/download\"],\n strip_prefix = \"derive_more-1.0.0\",\n build_file = Label(\"@crates//crates:BUILD.derive_more-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_more-impl-1.0.0\",\n sha256 = \"cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_more-impl/1.0.0/download\"],\n strip_prefix = \"derive_more-impl-1.0.0\",\n build_file = Label(\"@crates//crates:BUILD.derive_more-impl-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__derive_pod-0.1.2\",\n sha256 = \"c2ea6706d74fca54e15f1d40b5cf7fe7f764aaec61352a9fcec58fe27e042fc8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/derive_pod/0.1.2/download\"],\n strip_prefix = \"derive_pod-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.derive_pod-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__digest-0.10.7\",\n sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n strip_prefix = \"digest-0.10.7\",\n build_file = Label(\"@crates//crates:BUILD.digest-0.10.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-5.0.1\",\n sha256 = \"44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs/5.0.1/download\"],\n strip_prefix = \"dirs-5.0.1\",\n build_file = Label(\"@crates//crates:BUILD.dirs-5.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-next-2.0.0\",\n sha256 = \"b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-next/2.0.0/download\"],\n strip_prefix = \"dirs-next-2.0.0\",\n build_file = Label(\"@crates//crates:BUILD.dirs-next-2.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-sys-0.4.1\",\n sha256 = \"520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-sys/0.4.1/download\"],\n strip_prefix = \"dirs-sys-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.dirs-sys-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__dirs-sys-next-0.1.2\",\n sha256 = \"4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-sys-next/0.1.2/download\"],\n strip_prefix = \"dirs-sys-next-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.dirs-sys-next-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__doc-comment-0.3.3\",\n sha256 = \"fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/doc-comment/0.3.3/download\"],\n strip_prefix = \"doc-comment-0.3.3\",\n build_file = Label(\"@crates//crates:BUILD.doc-comment-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__either-1.13.0\",\n sha256 = \"60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.13.0/download\"],\n strip_prefix = \"either-1.13.0\",\n build_file = Label(\"@crates//crates:BUILD.either-1.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__embed-resource-2.4.3\",\n sha256 = \"4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embed-resource/2.4.3/download\"],\n strip_prefix = \"embed-resource-2.4.3\",\n build_file = Label(\"@crates//crates:BUILD.embed-resource-2.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__encode_unicode-0.3.6\",\n sha256 = \"a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encode_unicode/0.3.6/download\"],\n strip_prefix = \"encode_unicode-0.3.6\",\n build_file = Label(\"@crates//crates:BUILD.encode_unicode-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__encoding_rs-0.8.34\",\n sha256 = \"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encoding_rs/0.8.34/download\"],\n strip_prefix = \"encoding_rs-0.8.34\",\n build_file = Label(\"@crates//crates:BUILD.encoding_rs-0.8.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__env_logger-0.9.3\",\n sha256 = \"a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_logger/0.9.3/download\"],\n strip_prefix = \"env_logger-0.9.3\",\n build_file = Label(\"@crates//crates:BUILD.env_logger-0.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__equivalent-1.0.1\",\n sha256 = \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/equivalent/1.0.1/download\"],\n strip_prefix = \"equivalent-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.equivalent-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__errno-0.3.9\",\n sha256 = \"534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.9/download\"],\n strip_prefix = \"errno-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.errno-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__event-listener-2.5.3\",\n sha256 = \"0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/event-listener/2.5.3/download\"],\n strip_prefix = \"event-listener-2.5.3\",\n build_file = Label(\"@crates//crates:BUILD.event-listener-2.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fastrand-1.9.0\",\n sha256 = \"e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/1.9.0/download\"],\n strip_prefix = \"fastrand-1.9.0\",\n build_file = Label(\"@crates//crates:BUILD.fastrand-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fastrand-2.1.1\",\n sha256 = \"e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.1.1/download\"],\n strip_prefix = \"fastrand-2.1.1\",\n build_file = Label(\"@crates//crates:BUILD.fastrand-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__filetime-0.2.25\",\n sha256 = \"35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/filetime/0.2.25/download\"],\n strip_prefix = \"filetime-0.2.25\",\n build_file = Label(\"@crates//crates:BUILD.filetime-0.2.25.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__flate2-1.0.33\",\n sha256 = \"324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flate2/1.0.33/download\"],\n strip_prefix = \"flate2-1.0.33\",\n build_file = Label(\"@crates//crates:BUILD.flate2-1.0.33.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__flume-0.10.14\",\n sha256 = \"1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flume/0.10.14/download\"],\n strip_prefix = \"flume-0.10.14\",\n build_file = Label(\"@crates//crates:BUILD.flume-0.10.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fn-error-context-0.2.1\",\n sha256 = \"2cd66269887534af4b0c3e3337404591daa8dc8b9b2b3db71f9523beb4bafb41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fn-error-context/0.2.1/download\"],\n strip_prefix = \"fn-error-context-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.fn-error-context-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fnv-1.0.7\",\n sha256 = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fnv/1.0.7/download\"],\n strip_prefix = \"fnv-1.0.7\",\n build_file = Label(\"@crates//crates:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__foreign-types-0.3.2\",\n sha256 = \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types/0.3.2/download\"],\n strip_prefix = \"foreign-types-0.3.2\",\n build_file = Label(\"@crates//crates:BUILD.foreign-types-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__foreign-types-shared-0.1.1\",\n sha256 = \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types-shared/0.1.1/download\"],\n strip_prefix = \"foreign-types-shared-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.foreign-types-shared-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__form_urlencoded-1.0.1\",\n sha256 = \"5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/form_urlencoded/1.0.1/download\"],\n strip_prefix = \"form_urlencoded-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.form_urlencoded-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fs-err-2.11.0\",\n sha256 = \"88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fs-err/2.11.0/download\"],\n strip_prefix = \"fs-err-2.11.0\",\n build_file = Label(\"@crates//crates:BUILD.fs-err-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fs_extra-1.3.0\",\n sha256 = \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fs_extra/1.3.0/download\"],\n strip_prefix = \"fs_extra-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.fs_extra-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-0.3.30\",\n sha256 = \"645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures/0.3.30/download\"],\n strip_prefix = \"futures-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-channel-0.3.30\",\n sha256 = \"eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.30/download\"],\n strip_prefix = \"futures-channel-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-channel-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-core-0.3.30\",\n sha256 = \"dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.30/download\"],\n strip_prefix = \"futures-core-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-core-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-executor-0.3.30\",\n sha256 = \"a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-executor/0.3.30/download\"],\n strip_prefix = \"futures-executor-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-executor-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-io-0.3.30\",\n sha256 = \"a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.30/download\"],\n strip_prefix = \"futures-io-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-io-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-lite-1.13.0\",\n sha256 = \"49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-lite/1.13.0/download\"],\n strip_prefix = \"futures-lite-1.13.0\",\n build_file = Label(\"@crates//crates:BUILD.futures-lite-1.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-macro-0.3.30\",\n sha256 = \"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-macro/0.3.30/download\"],\n strip_prefix = \"futures-macro-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-macro-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-sink-0.3.30\",\n sha256 = \"9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.30/download\"],\n strip_prefix = \"futures-sink-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-sink-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-task-0.3.30\",\n sha256 = \"38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.30/download\"],\n strip_prefix = \"futures-task-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-task-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-timer-3.0.3\",\n sha256 = \"f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-timer/3.0.3/download\"],\n strip_prefix = \"futures-timer-3.0.3\",\n build_file = Label(\"@crates//crates:BUILD.futures-timer-3.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__futures-util-0.3.30\",\n sha256 = \"3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.30/download\"],\n strip_prefix = \"futures-util-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.futures-util-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__fuzzy-matcher-0.3.7\",\n sha256 = \"54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fuzzy-matcher/0.3.7/download\"],\n strip_prefix = \"fuzzy-matcher-0.3.7\",\n build_file = Label(\"@crates//crates:BUILD.fuzzy-matcher-0.3.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__generic-array-0.14.7\",\n sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n strip_prefix = \"generic-array-0.14.7\",\n build_file = Label(\"@crates//crates:BUILD.generic-array-0.14.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getopts-0.2.21\",\n sha256 = \"14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getopts/0.2.21/download\"],\n strip_prefix = \"getopts-0.2.21\",\n build_file = Label(\"@crates//crates:BUILD.getopts-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getrandom-0.1.16\",\n sha256 = \"8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.1.16/download\"],\n strip_prefix = \"getrandom-0.1.16\",\n build_file = Label(\"@crates//crates:BUILD.getrandom-0.1.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getrandom-0.2.15\",\n sha256 = \"c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.15/download\"],\n strip_prefix = \"getrandom-0.2.15\",\n build_file = Label(\"@crates//crates:BUILD.getrandom-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__gimli-0.29.0\",\n sha256 = \"40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/gimli/0.29.0/download\"],\n strip_prefix = \"gimli-0.29.0\",\n build_file = Label(\"@crates//crates:BUILD.gimli-0.29.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__glob-0.3.1\",\n sha256 = \"d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/glob/0.3.1/download\"],\n strip_prefix = \"glob-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.glob-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__goblin-0.6.1\",\n sha256 = \"0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/goblin/0.6.1/download\"],\n strip_prefix = \"goblin-0.6.1\",\n build_file = Label(\"@crates//crates:BUILD.goblin-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__h2-0.3.26\",\n sha256 = \"81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.3.26/download\"],\n strip_prefix = \"h2-0.3.26\",\n build_file = Label(\"@crates//crates:BUILD.h2-0.3.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__handlebars-4.5.0\",\n sha256 = \"faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/handlebars/4.5.0/download\"],\n strip_prefix = \"handlebars-4.5.0\",\n build_file = Label(\"@crates//crates:BUILD.handlebars-4.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hashbrown-0.12.3\",\n sha256 = \"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.12.3/download\"],\n strip_prefix = \"hashbrown-0.12.3\",\n build_file = Label(\"@crates//crates:BUILD.hashbrown-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hashbrown-0.14.5\",\n sha256 = \"e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.14.5/download\"],\n strip_prefix = \"hashbrown-0.14.5\",\n build_file = Label(\"@crates//crates:BUILD.hashbrown-0.14.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__headers-0.3.9\",\n sha256 = \"06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/headers/0.3.9/download\"],\n strip_prefix = \"headers-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.headers-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__headers-core-0.2.0\",\n sha256 = \"e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/headers-core/0.2.0/download\"],\n strip_prefix = \"headers-core-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.headers-core-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__heck-0.4.1\",\n sha256 = \"95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.4.1/download\"],\n strip_prefix = \"heck-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.heck-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__heck-0.5.0\",\n sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n strip_prefix = \"heck-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hermit-abi-0.1.19\",\n sha256 = \"62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hermit-abi/0.1.19/download\"],\n strip_prefix = \"hermit-abi-0.1.19\",\n build_file = Label(\"@crates//crates:BUILD.hermit-abi-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hermit-abi-0.3.9\",\n sha256 = \"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hermit-abi/0.3.9/download\"],\n strip_prefix = \"hermit-abi-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.hermit-abi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hex-0.4.3\",\n sha256 = \"7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hex/0.4.3/download\"],\n strip_prefix = \"hex-0.4.3\",\n build_file = Label(\"@crates//crates:BUILD.hex-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__home-0.5.9\",\n sha256 = \"e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/home/0.5.9/download\"],\n strip_prefix = \"home-0.5.9\",\n build_file = Label(\"@crates//crates:BUILD.home-0.5.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-0.2.12\",\n sha256 = \"601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/0.2.12/download\"],\n strip_prefix = \"http-0.2.12\",\n build_file = Label(\"@crates//crates:BUILD.http-0.2.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-body-0.4.6\",\n sha256 = \"7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/0.4.6/download\"],\n strip_prefix = \"http-body-0.4.6\",\n build_file = Label(\"@crates//crates:BUILD.http-body-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-serde-1.1.3\",\n sha256 = \"6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-serde/1.1.3/download\"],\n strip_prefix = \"http-serde-1.1.3\",\n build_file = Label(\"@crates//crates:BUILD.http-serde-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-types-2.12.0\",\n sha256 = \"6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-types/2.12.0/download\"],\n strip_prefix = \"http-types-2.12.0\",\n build_file = Label(\"@crates//crates:BUILD.http-types-2.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__httparse-1.9.4\",\n sha256 = \"0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.9.4/download\"],\n strip_prefix = \"httparse-1.9.4\",\n build_file = Label(\"@crates//crates:BUILD.httparse-1.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__httpdate-1.0.3\",\n sha256 = \"df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httpdate/1.0.3/download\"],\n strip_prefix = \"httpdate-1.0.3\",\n build_file = Label(\"@crates//crates:BUILD.httpdate-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__humantime-2.1.0\",\n sha256 = \"9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/humantime/2.1.0/download\"],\n strip_prefix = \"humantime-2.1.0\",\n build_file = Label(\"@crates//crates:BUILD.humantime-2.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyper-0.14.30\",\n sha256 = \"a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/0.14.30/download\"],\n strip_prefix = \"hyper-0.14.30\",\n build_file = Label(\"@crates//crates:BUILD.hyper-0.14.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyper-rustls-0.23.2\",\n sha256 = \"1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.23.2/download\"],\n strip_prefix = \"hyper-rustls-0.23.2\",\n build_file = Label(\"@crates//crates:BUILD.hyper-rustls-0.23.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyper-rustls-0.24.2\",\n sha256 = \"ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.24.2/download\"],\n strip_prefix = \"hyper-rustls-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.hyper-rustls-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__hyperx-1.4.0\",\n sha256 = \"5617e92fc2f2501c3e2bc6ce547cad841adba2bae5b921c7e52510beca6d084c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyperx/1.4.0/download\"],\n strip_prefix = \"hyperx-1.4.0\",\n build_file = Label(\"@crates//crates:BUILD.hyperx-1.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__iana-time-zone-0.1.60\",\n sha256 = \"e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone/0.1.60/download\"],\n strip_prefix = \"iana-time-zone-0.1.60\",\n build_file = Label(\"@crates//crates:BUILD.iana-time-zone-0.1.60.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__iana-time-zone-haiku-0.1.2\",\n sha256 = \"f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone-haiku/0.1.2/download\"],\n strip_prefix = \"iana-time-zone-haiku-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.iana-time-zone-haiku-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ident_case-1.0.1\",\n sha256 = \"b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ident_case/1.0.1/download\"],\n strip_prefix = \"ident_case-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.ident_case-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__idna-0.2.3\",\n sha256 = \"418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna/0.2.3/download\"],\n strip_prefix = \"idna-0.2.3\",\n build_file = Label(\"@crates//crates:BUILD.idna-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indexmap-1.9.3\",\n sha256 = \"bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/1.9.3/download\"],\n strip_prefix = \"indexmap-1.9.3\",\n build_file = Label(\"@crates//crates:BUILD.indexmap-1.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indexmap-2.5.0\",\n sha256 = \"68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.5.0/download\"],\n strip_prefix = \"indexmap-2.5.0\",\n build_file = Label(\"@crates//crates:BUILD.indexmap-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indicatif-0.17.8\",\n sha256 = \"763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif/0.17.8/download\"],\n strip_prefix = \"indicatif-0.17.8\",\n build_file = Label(\"@crates//crates:BUILD.indicatif-0.17.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__infer-0.2.3\",\n sha256 = \"64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/infer/0.2.3/download\"],\n strip_prefix = \"infer-0.2.3\",\n build_file = Label(\"@crates//crates:BUILD.infer-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__instant-0.1.13\",\n sha256 = \"e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/instant/0.1.13/download\"],\n strip_prefix = \"instant-0.1.13\",\n build_file = Label(\"@crates//crates:BUILD.instant-0.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ipnet-2.9.0\",\n sha256 = \"8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipnet/2.9.0/download\"],\n strip_prefix = \"ipnet-2.9.0\",\n build_file = Label(\"@crates//crates:BUILD.ipnet-2.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__is_terminal_polyfill-1.70.1\",\n sha256 = \"7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.1/download\"],\n strip_prefix = \"is_terminal_polyfill-1.70.1\",\n build_file = Label(\"@crates//crates:BUILD.is_terminal_polyfill-1.70.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__itertools-0.12.1\",\n sha256 = \"ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.12.1/download\"],\n strip_prefix = \"itertools-0.12.1\",\n build_file = Label(\"@crates//crates:BUILD.itertools-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__itoa-1.0.11\",\n sha256 = \"49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.11/download\"],\n strip_prefix = \"itoa-1.0.11\",\n build_file = Label(\"@crates//crates:BUILD.itoa-1.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__jni-0.21.1\",\n sha256 = \"1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni/0.21.1/download\"],\n strip_prefix = \"jni-0.21.1\",\n build_file = Label(\"@crates//crates:BUILD.jni-0.21.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__jni-sys-0.3.0\",\n sha256 = \"8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jni-sys/0.3.0/download\"],\n strip_prefix = \"jni-sys-0.3.0\",\n build_file = Label(\"@crates//crates:BUILD.jni-sys-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__js-sys-0.3.76\",\n sha256 = \"6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.76/download\"],\n strip_prefix = \"js-sys-0.3.76\",\n build_file = Label(\"@crates//crates:BUILD.js-sys-0.3.76.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__jsonwebtoken-8.3.0\",\n sha256 = \"6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jsonwebtoken/8.3.0/download\"],\n strip_prefix = \"jsonwebtoken-8.3.0\",\n build_file = Label(\"@crates//crates:BUILD.jsonwebtoken-8.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__language-tags-0.3.2\",\n sha256 = \"d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/language-tags/0.3.2/download\"],\n strip_prefix = \"language-tags-0.3.2\",\n build_file = Label(\"@crates//crates:BUILD.language-tags-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lazy_static-1.5.0\",\n sha256 = \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazy_static/1.5.0/download\"],\n strip_prefix = \"lazy_static-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lexpr-0.2.7\",\n sha256 = \"6a84de6a9df442363b08f5dbf0cd5b92edc70097b89c4ce4bfea4679fe48bc67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lexpr/0.2.7/download\"],\n strip_prefix = \"lexpr-0.2.7\",\n build_file = Label(\"@crates//crates:BUILD.lexpr-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lexpr-macros-0.2.2\",\n sha256 = \"36b5cb8bb985c81a8ac1a0f8b5c4865214f574ddd64397ef7a99c236e21f35bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lexpr-macros/0.2.2/download\"],\n strip_prefix = \"lexpr-macros-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.lexpr-macros-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libc-0.2.158\",\n sha256 = \"d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.158/download\"],\n strip_prefix = \"libc-0.2.158\",\n build_file = Label(\"@crates//crates:BUILD.libc-0.2.158.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libm-0.1.4\",\n sha256 = \"7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.1.4/download\"],\n strip_prefix = \"libm-0.1.4\",\n build_file = Label(\"@crates//crates:BUILD.libm-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libm-0.2.8\",\n sha256 = \"4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.2.8/download\"],\n strip_prefix = \"libm-0.2.8\",\n build_file = Label(\"@crates//crates:BUILD.libm-0.2.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libredox-0.1.3\",\n sha256 = \"c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libredox/0.1.3/download\"],\n strip_prefix = \"libredox-0.1.3\",\n build_file = Label(\"@crates//crates:BUILD.libredox-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__linux-raw-sys-0.4.14\",\n sha256 = \"78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.4.14/download\"],\n strip_prefix = \"linux-raw-sys-0.4.14\",\n build_file = Label(\"@crates//crates:BUILD.linux-raw-sys-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__lock_api-0.4.12\",\n sha256 = \"07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.12/download\"],\n strip_prefix = \"lock_api-0.4.12\",\n build_file = Label(\"@crates//crates:BUILD.lock_api-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__log-0.4.22\",\n sha256 = \"a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.22/download\"],\n strip_prefix = \"log-0.4.22\",\n build_file = Label(\"@crates//crates:BUILD.log-0.4.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__matchers-0.1.0\",\n sha256 = \"8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchers/0.1.0/download\"],\n strip_prefix = \"matchers-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.matchers-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__matches-0.1.10\",\n sha256 = \"2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matches/0.1.10/download\"],\n strip_prefix = \"matches-0.1.10\",\n build_file = Label(\"@crates//crates:BUILD.matches-0.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__md-5-0.10.6\",\n sha256 = \"d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/md-5/0.10.6/download\"],\n strip_prefix = \"md-5-0.10.6\",\n build_file = Label(\"@crates//crates:BUILD.md-5-0.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memchr-2.7.4\",\n sha256 = \"78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.7.4/download\"],\n strip_prefix = \"memchr-2.7.4\",\n build_file = Label(\"@crates//crates:BUILD.memchr-2.7.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memoffset-0.6.5\",\n sha256 = \"5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memoffset/0.6.5/download\"],\n strip_prefix = \"memoffset-0.6.5\",\n build_file = Label(\"@crates//crates:BUILD.memoffset-0.6.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__mime-0.3.17\",\n sha256 = \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mime/0.3.17/download\"],\n strip_prefix = \"mime-0.3.17\",\n build_file = Label(\"@crates//crates:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__minicov-0.3.5\",\n sha256 = \"5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/minicov/0.3.5/download\"],\n strip_prefix = \"minicov-0.3.5\",\n build_file = Label(\"@crates//crates:BUILD.minicov-0.3.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__miniz_oxide-0.7.4\",\n sha256 = \"b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.7.4/download\"],\n strip_prefix = \"miniz_oxide-0.7.4\",\n build_file = Label(\"@crates//crates:BUILD.miniz_oxide-0.7.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__miniz_oxide-0.8.0\",\n sha256 = \"e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.0/download\"],\n strip_prefix = \"miniz_oxide-0.8.0\",\n build_file = Label(\"@crates//crates:BUILD.miniz_oxide-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__mio-1.0.2\",\n sha256 = \"80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.0.2/download\"],\n strip_prefix = \"mio-1.0.2\",\n build_file = Label(\"@crates//crates:BUILD.mio-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__mslnk-0.1.8\",\n sha256 = \"86c97310150b7f496a93f31690da7822b99d95ff68ca9d30fb09d3ad54375c76\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mslnk/0.1.8/download\"],\n strip_prefix = \"mslnk-0.1.8\",\n build_file = Label(\"@crates//crates:BUILD.mslnk-0.1.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__msvc-demangler-0.9.0\",\n sha256 = \"bfb67c6dd0fa9b00619c41c5700b6f92d5f418be49b45ddb9970fbd4569df3c8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/msvc-demangler/0.9.0/download\"],\n strip_prefix = \"msvc-demangler-0.9.0\",\n build_file = Label(\"@crates//crates:BUILD.msvc-demangler-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__multimap-0.8.3\",\n sha256 = \"e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.8.3/download\"],\n strip_prefix = \"multimap-0.8.3\",\n build_file = Label(\"@crates//crates:BUILD.multimap-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__multimap-0.9.1\",\n sha256 = \"e1a5d38b9b352dbd913288736af36af41c48d61b1a8cd34bcecd727561b7d511\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.9.1/download\"],\n strip_prefix = \"multimap-0.9.1\",\n build_file = Label(\"@crates//crates:BUILD.multimap-0.9.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__named-lock-0.4.1\",\n sha256 = \"988ce9f7411c058a1d6788e60897a949dcdf5aa66202d789da045a03b4e4f406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/named-lock/0.4.1/download\"],\n strip_prefix = \"named-lock-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.named-lock-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nanorand-0.7.0\",\n sha256 = \"6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nanorand/0.7.0/download\"],\n strip_prefix = \"nanorand-0.7.0\",\n build_file = Label(\"@crates//crates:BUILD.nanorand-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__native-tls-0.2.12\",\n sha256 = \"a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/native-tls/0.2.12/download\"],\n strip_prefix = \"native-tls-0.2.12\",\n build_file = Label(\"@crates//crates:BUILD.native-tls-0.2.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__native-windows-gui-1.0.13\",\n sha256 = \"4f7003a669f68deb6b7c57d74fff4f8e533c44a3f0b297492440ef4ff5a28454\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/native-windows-gui/1.0.13/download\"],\n strip_prefix = \"native-windows-gui-1.0.13\",\n build_file = Label(\"@crates//crates:BUILD.native-windows-gui-1.0.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__new_mime_guess-4.0.4\",\n sha256 = \"02a2dfb3559d53e90b709376af1c379462f7fb3085a0177deb73e6ea0d99eff4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/new_mime_guess/4.0.4/download\"],\n strip_prefix = \"new_mime_guess-4.0.4\",\n build_file = Label(\"@crates//crates:BUILD.new_mime_guess-4.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__newline-converter-0.2.2\",\n sha256 = \"1f71d09d5c87634207f894c6b31b6a2b2c64ea3bdcf71bd5599fdbbe1600c00f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/newline-converter/0.2.2/download\"],\n strip_prefix = \"newline-converter-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.newline-converter-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nix-0.24.3\",\n sha256 = \"fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.24.3/download\"],\n strip_prefix = \"nix-0.24.3\",\n build_file = Label(\"@crates//crates:BUILD.nix-0.24.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nix-0.25.1\",\n sha256 = \"f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.25.1/download\"],\n strip_prefix = \"nix-0.25.1\",\n build_file = Label(\"@crates//crates:BUILD.nix-0.25.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__no-std-compat-0.4.1\",\n sha256 = \"b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/no-std-compat/0.4.1/download\"],\n strip_prefix = \"no-std-compat-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.no-std-compat-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ntapi-0.4.1\",\n sha256 = \"e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ntapi/0.4.1/download\"],\n strip_prefix = \"ntapi-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.ntapi-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__nu-ansi-term-0.46.0\",\n sha256 = \"77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nu-ansi-term/0.46.0/download\"],\n strip_prefix = \"nu-ansi-term-0.46.0\",\n build_file = Label(\"@crates//crates:BUILD.nu-ansi-term-0.46.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-bigint-0.4.6\",\n sha256 = \"a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-bigint/0.4.6/download\"],\n strip_prefix = \"num-bigint-0.4.6\",\n build_file = Label(\"@crates//crates:BUILD.num-bigint-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-conv-0.1.0\",\n sha256 = \"51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.1.0/download\"],\n strip_prefix = \"num-conv-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.num-conv-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-integer-0.1.46\",\n sha256 = \"7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-integer/0.1.46/download\"],\n strip_prefix = \"num-integer-0.1.46\",\n build_file = Label(\"@crates//crates:BUILD.num-integer-0.1.46.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@crates//crates:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num_cpus-1.16.0\",\n sha256 = \"4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num_cpus/1.16.0/download\"],\n strip_prefix = \"num_cpus-1.16.0\",\n build_file = Label(\"@crates//crates:BUILD.num_cpus-1.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__number_prefix-0.4.0\",\n sha256 = \"830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/number_prefix/0.4.0/download\"],\n strip_prefix = \"number_prefix-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.number_prefix-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__object-0.36.4\",\n sha256 = \"084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/object/0.36.4/download\"],\n strip_prefix = \"object-0.36.4\",\n build_file = Label(\"@crates//crates:BUILD.object-0.36.4.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crates__octocrab-0.17.0\",\n commit = \"88f81c840085ce0aa591f9f53d6c62309cac8260\",\n init_submodules = True,\n remote = \"https://github.com/enso-org/octocrab\",\n build_file = Label(\"@crates//crates:BUILD.octocrab-0.17.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__once_cell-1.19.0\",\n sha256 = \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.19.0/download\"],\n strip_prefix = \"once_cell-1.19.0\",\n build_file = Label(\"@crates//crates:BUILD.once_cell-1.19.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-0.10.70\",\n sha256 = \"61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl/0.10.70/download\"],\n strip_prefix = \"openssl-0.10.70\",\n build_file = Label(\"@crates//crates:BUILD.openssl-0.10.70.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-macros-0.1.1\",\n sha256 = \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-macros/0.1.1/download\"],\n strip_prefix = \"openssl-macros-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.openssl-macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-probe-0.1.5\",\n sha256 = \"ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-probe/0.1.5/download\"],\n strip_prefix = \"openssl-probe-0.1.5\",\n build_file = Label(\"@crates//crates:BUILD.openssl-probe-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__openssl-sys-0.9.105\",\n sha256 = \"8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-sys/0.9.105/download\"],\n strip_prefix = \"openssl-sys-0.9.105\",\n build_file = Label(\"@crates//crates:BUILD.openssl-sys-0.9.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__option-ext-0.2.0\",\n sha256 = \"04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/option-ext/0.2.0/download\"],\n strip_prefix = \"option-ext-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.option-ext-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__os_str_bytes-6.6.1\",\n sha256 = \"e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/os_str_bytes/6.6.1/download\"],\n strip_prefix = \"os_str_bytes-6.6.1\",\n build_file = Label(\"@crates//crates:BUILD.os_str_bytes-6.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__overload-0.1.1\",\n sha256 = \"b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/overload/0.1.1/download\"],\n strip_prefix = \"overload-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.overload-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__parking-2.2.0\",\n sha256 = \"bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking/2.2.0/download\"],\n strip_prefix = \"parking-2.2.0\",\n build_file = Label(\"@crates//crates:BUILD.parking-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__parking_lot-0.12.3\",\n sha256 = \"f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot/0.12.3/download\"],\n strip_prefix = \"parking_lot-0.12.3\",\n build_file = Label(\"@crates//crates:BUILD.parking_lot-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__parking_lot_core-0.9.10\",\n sha256 = \"1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot_core/0.9.10/download\"],\n strip_prefix = \"parking_lot_core-0.9.10\",\n build_file = Label(\"@crates//crates:BUILD.parking_lot_core-0.9.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__paste-1.0.15\",\n sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n strip_prefix = \"paste-1.0.15\",\n build_file = Label(\"@crates//crates:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__path-absolutize-3.1.1\",\n sha256 = \"e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/path-absolutize/3.1.1/download\"],\n strip_prefix = \"path-absolutize-3.1.1\",\n build_file = Label(\"@crates//crates:BUILD.path-absolutize-3.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__path-dedot-3.1.1\",\n sha256 = \"07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/path-dedot/3.1.1/download\"],\n strip_prefix = \"path-dedot-3.1.1\",\n build_file = Label(\"@crates//crates:BUILD.path-dedot-3.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__path-slash-0.2.1\",\n sha256 = \"1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/path-slash/0.2.1/download\"],\n strip_prefix = \"path-slash-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.path-slash-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pathdiff-0.2.1\",\n sha256 = \"8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pathdiff/0.2.1/download\"],\n strip_prefix = \"pathdiff-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.pathdiff-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pelite-0.10.0\",\n sha256 = \"88dccf4bd32294364aeb7bd55d749604450e9db54605887551f21baea7617685\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pelite/0.10.0/download\"],\n strip_prefix = \"pelite-0.10.0\",\n build_file = Label(\"@crates//crates:BUILD.pelite-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pelite-macros-0.1.1\",\n sha256 = \"7a7cf3f8ecebb0f4895f4892a8be0a0dc81b498f9d56735cb769dc31bf00815b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pelite-macros/0.1.1/download\"],\n strip_prefix = \"pelite-macros-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.pelite-macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pem-1.1.1\",\n sha256 = \"a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pem/1.1.1/download\"],\n strip_prefix = \"pem-1.1.1\",\n build_file = Label(\"@crates//crates:BUILD.pem-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__percent-encoding-2.1.0\",\n sha256 = \"d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.1.0/download\"],\n strip_prefix = \"percent-encoding-2.1.0\",\n build_file = Label(\"@crates//crates:BUILD.percent-encoding-2.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest-2.7.11\",\n sha256 = \"cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest/2.7.11/download\"],\n strip_prefix = \"pest-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest_derive-2.7.11\",\n sha256 = \"2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_derive/2.7.11/download\"],\n strip_prefix = \"pest_derive-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest_derive-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest_generator-2.7.11\",\n sha256 = \"3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_generator/2.7.11/download\"],\n strip_prefix = \"pest_generator-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest_generator-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pest_meta-2.7.11\",\n sha256 = \"a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_meta/2.7.11/download\"],\n strip_prefix = \"pest_meta-2.7.11\",\n build_file = Label(\"@crates//crates:BUILD.pest_meta-2.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-project-1.1.5\",\n sha256 = \"b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project/1.1.5/download\"],\n strip_prefix = \"pin-project-1.1.5\",\n build_file = Label(\"@crates//crates:BUILD.pin-project-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-project-internal-1.1.5\",\n sha256 = \"2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-internal/1.1.5/download\"],\n strip_prefix = \"pin-project-internal-1.1.5\",\n build_file = Label(\"@crates//crates:BUILD.pin-project-internal-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-project-lite-0.2.14\",\n sha256 = \"bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.14/download\"],\n strip_prefix = \"pin-project-lite-0.2.14\",\n build_file = Label(\"@crates//crates:BUILD.pin-project-lite-0.2.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pin-utils-0.1.0\",\n sha256 = \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-utils/0.1.0/download\"],\n strip_prefix = \"pin-utils-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.pin-utils-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pkg-config-0.3.30\",\n sha256 = \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkg-config/0.3.30/download\"],\n strip_prefix = \"pkg-config-0.3.30\",\n build_file = Label(\"@crates//crates:BUILD.pkg-config-0.3.30.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__plain-0.2.3\",\n sha256 = \"b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plain/0.2.3/download\"],\n strip_prefix = \"plain-0.2.3\",\n build_file = Label(\"@crates//crates:BUILD.plain-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__plotters-0.3.6\",\n sha256 = \"a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters/0.3.6/download\"],\n strip_prefix = \"plotters-0.3.6\",\n build_file = Label(\"@crates//crates:BUILD.plotters-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__plotters-backend-0.3.6\",\n sha256 = \"414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/plotters-backend/0.3.6/download\"],\n strip_prefix = \"plotters-backend-0.3.6\",\n build_file = Label(\"@crates//crates:BUILD.plotters-backend-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__port_check-0.1.5\",\n sha256 = \"f6519412c9e0d4be579b9f0618364d19cb434b324fc6ddb1b27b1e682c7105ed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/port_check/0.1.5/download\"],\n strip_prefix = \"port_check-0.1.5\",\n build_file = Label(\"@crates//crates:BUILD.port_check-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__portable-atomic-1.7.0\",\n sha256 = \"da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.7.0/download\"],\n strip_prefix = \"portable-atomic-1.7.0\",\n build_file = Label(\"@crates//crates:BUILD.portable-atomic-1.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__portpicker-0.1.1\",\n sha256 = \"be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portpicker/0.1.1/download\"],\n strip_prefix = \"portpicker-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.portpicker-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__powerfmt-0.2.0\",\n sha256 = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/powerfmt/0.2.0/download\"],\n strip_prefix = \"powerfmt-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ppv-lite86-0.2.20\",\n sha256 = \"77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.20/download\"],\n strip_prefix = \"ppv-lite86-0.2.20\",\n build_file = Label(\"@crates//crates:BUILD.ppv-lite86-0.2.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__proc-macro2-1.0.86\",\n sha256 = \"5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.86/download\"],\n strip_prefix = \"proc-macro2-1.0.86\",\n build_file = Label(\"@crates//crates:BUILD.proc-macro2-1.0.86.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pulldown-cmark-0.9.6\",\n sha256 = \"57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pulldown-cmark/0.9.6/download\"],\n strip_prefix = \"pulldown-cmark-0.9.6\",\n build_file = Label(\"@crates//crates:BUILD.pulldown-cmark-0.9.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__quote-1.0.37\",\n sha256 = \"b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.37/download\"],\n strip_prefix = \"quote-1.0.37\",\n build_file = Label(\"@crates//crates:BUILD.quote-1.0.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand-0.7.3\",\n sha256 = \"6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.7.3/download\"],\n strip_prefix = \"rand-0.7.3\",\n build_file = Label(\"@crates//crates:BUILD.rand-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand-0.8.5\",\n sha256 = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.8.5/download\"],\n strip_prefix = \"rand-0.8.5\",\n build_file = Label(\"@crates//crates:BUILD.rand-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_chacha-0.2.2\",\n sha256 = \"f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.2.2/download\"],\n strip_prefix = \"rand_chacha-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.rand_chacha-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_chacha-0.3.1\",\n sha256 = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.3.1/download\"],\n strip_prefix = \"rand_chacha-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.rand_chacha-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_core-0.5.1\",\n sha256 = \"90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.5.1/download\"],\n strip_prefix = \"rand_core-0.5.1\",\n build_file = Label(\"@crates//crates:BUILD.rand_core-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_core-0.6.4\",\n sha256 = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.6.4/download\"],\n strip_prefix = \"rand_core-0.6.4\",\n build_file = Label(\"@crates//crates:BUILD.rand_core-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_distr-0.4.3\",\n sha256 = \"32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_distr/0.4.3/download\"],\n strip_prefix = \"rand_distr-0.4.3\",\n build_file = Label(\"@crates//crates:BUILD.rand_distr-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rand_hc-0.2.0\",\n sha256 = \"ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_hc/0.2.0/download\"],\n strip_prefix = \"rand_hc-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.rand_hc-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rayon-1.10.0\",\n sha256 = \"b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon/1.10.0/download\"],\n strip_prefix = \"rayon-1.10.0\",\n build_file = Label(\"@crates//crates:BUILD.rayon-1.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rayon-core-1.12.1\",\n sha256 = \"1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rayon-core/1.12.1/download\"],\n strip_prefix = \"rayon-core-1.12.1\",\n build_file = Label(\"@crates//crates:BUILD.rayon-core-1.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__redox_syscall-0.5.3\",\n sha256 = \"2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_syscall/0.5.3/download\"],\n strip_prefix = \"redox_syscall-0.5.3\",\n build_file = Label(\"@crates//crates:BUILD.redox_syscall-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__redox_users-0.4.6\",\n sha256 = \"ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_users/0.4.6/download\"],\n strip_prefix = \"redox_users-0.4.6\",\n build_file = Label(\"@crates//crates:BUILD.redox_users-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-1.10.6\",\n sha256 = \"4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.10.6/download\"],\n strip_prefix = \"regex-1.10.6\",\n build_file = Label(\"@crates//crates:BUILD.regex-1.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.1.10\",\n sha256 = \"6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.1.10/download\"],\n strip_prefix = \"regex-automata-0.1.10\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.4.7\",\n sha256 = \"38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.7/download\"],\n strip_prefix = \"regex-automata-0.4.7\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.6.29\",\n sha256 = \"f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.6.29/download\"],\n strip_prefix = \"regex-syntax-0.6.29\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.6.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.8.4\",\n sha256 = \"7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.4/download\"],\n strip_prefix = \"regex-syntax-0.8.4\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__reqwest-0.11.27\",\n sha256 = \"dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/reqwest/0.11.27/download\"],\n strip_prefix = \"reqwest-0.11.27\",\n build_file = Label(\"@crates//crates:BUILD.reqwest-0.11.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__retain_mut-0.1.9\",\n sha256 = \"4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/retain_mut/0.1.9/download\"],\n strip_prefix = \"retain_mut-0.1.9\",\n build_file = Label(\"@crates//crates:BUILD.retain_mut-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ring-0.16.20\",\n sha256 = \"3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.16.20/download\"],\n strip_prefix = \"ring-0.16.20\",\n build_file = Label(\"@crates//crates:BUILD.ring-0.16.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ring-0.17.8\",\n sha256 = \"c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.8/download\"],\n strip_prefix = \"ring-0.17.8\",\n build_file = Label(\"@crates//crates:BUILD.ring-0.17.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__roxmltree-0.18.1\",\n sha256 = \"862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/roxmltree/0.18.1/download\"],\n strip_prefix = \"roxmltree-0.18.1\",\n build_file = Label(\"@crates//crates:BUILD.roxmltree-0.18.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustc-demangle-0.1.24\",\n sha256 = \"719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-demangle/0.1.24/download\"],\n strip_prefix = \"rustc-demangle-0.1.24\",\n build_file = Label(\"@crates//crates:BUILD.rustc-demangle-0.1.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustc_version-0.4.1\",\n sha256 = \"cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc_version/0.4.1/download\"],\n strip_prefix = \"rustc_version-0.4.1\",\n build_file = Label(\"@crates//crates:BUILD.rustc_version-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustix-0.38.35\",\n sha256 = \"a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/0.38.35/download\"],\n strip_prefix = \"rustix-0.38.35\",\n build_file = Label(\"@crates//crates:BUILD.rustix-0.38.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-0.20.9\",\n sha256 = \"1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.20.9/download\"],\n strip_prefix = \"rustls-0.20.9\",\n build_file = Label(\"@crates//crates:BUILD.rustls-0.20.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-0.21.12\",\n sha256 = \"3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.21.12/download\"],\n strip_prefix = \"rustls-0.21.12\",\n build_file = Label(\"@crates//crates:BUILD.rustls-0.21.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-native-certs-0.6.3\",\n sha256 = \"a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-native-certs/0.6.3/download\"],\n strip_prefix = \"rustls-native-certs-0.6.3\",\n build_file = Label(\"@crates//crates:BUILD.rustls-native-certs-0.6.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-pemfile-1.0.4\",\n sha256 = \"1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pemfile/1.0.4/download\"],\n strip_prefix = \"rustls-pemfile-1.0.4\",\n build_file = Label(\"@crates//crates:BUILD.rustls-pemfile-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-webpki-0.101.7\",\n sha256 = \"8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.101.7/download\"],\n strip_prefix = \"rustls-webpki-0.101.7\",\n build_file = Label(\"@crates//crates:BUILD.rustls-webpki-0.101.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustversion-1.0.17\",\n sha256 = \"955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.17/download\"],\n strip_prefix = \"rustversion-1.0.17\",\n build_file = Label(\"@crates//crates:BUILD.rustversion-1.0.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ryu-1.0.18\",\n sha256 = \"f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ryu/1.0.18/download\"],\n strip_prefix = \"ryu-1.0.18\",\n build_file = Label(\"@crates//crates:BUILD.ryu-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__same-file-1.0.6\",\n sha256 = \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/same-file/1.0.6/download\"],\n strip_prefix = \"same-file-1.0.6\",\n build_file = Label(\"@crates//crates:BUILD.same-file-1.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__schannel-0.1.23\",\n sha256 = \"fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schannel/0.1.23/download\"],\n strip_prefix = \"schannel-0.1.23\",\n build_file = Label(\"@crates//crates:BUILD.schannel-0.1.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scoped-tls-1.0.1\",\n sha256 = \"e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scoped-tls/1.0.1/download\"],\n strip_prefix = \"scoped-tls-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.scoped-tls-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scopeguard-1.2.0\",\n sha256 = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scopeguard/1.2.0/download\"],\n strip_prefix = \"scopeguard-1.2.0\",\n build_file = Label(\"@crates//crates:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scroll-0.11.0\",\n sha256 = \"04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scroll/0.11.0/download\"],\n strip_prefix = \"scroll-0.11.0\",\n build_file = Label(\"@crates//crates:BUILD.scroll-0.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__scroll_derive-0.11.1\",\n sha256 = \"1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scroll_derive/0.11.1/download\"],\n strip_prefix = \"scroll_derive-0.11.1\",\n build_file = Label(\"@crates//crates:BUILD.scroll_derive-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sct-0.7.1\",\n sha256 = \"da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sct/0.7.1/download\"],\n strip_prefix = \"sct-0.7.1\",\n build_file = Label(\"@crates//crates:BUILD.sct-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__secrecy-0.8.0\",\n sha256 = \"9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/secrecy/0.8.0/download\"],\n strip_prefix = \"secrecy-0.8.0\",\n build_file = Label(\"@crates//crates:BUILD.secrecy-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__security-framework-2.11.1\",\n sha256 = \"897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework/2.11.1/download\"],\n strip_prefix = \"security-framework-2.11.1\",\n build_file = Label(\"@crates//crates:BUILD.security-framework-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__security-framework-sys-2.11.1\",\n sha256 = \"75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework-sys/2.11.1/download\"],\n strip_prefix = \"security-framework-sys-2.11.1\",\n build_file = Label(\"@crates//crates:BUILD.security-framework-sys-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__self-replace-1.5.0\",\n sha256 = \"03ec815b5eab420ab893f63393878d89c90fdd94c0bcc44c07abb8ad95552fb7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/self-replace/1.5.0/download\"],\n strip_prefix = \"self-replace-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.self-replace-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__semver-1.0.23\",\n sha256 = \"61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.23/download\"],\n strip_prefix = \"semver-1.0.23\",\n build_file = Label(\"@crates//crates:BUILD.semver-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde-1.0.209\",\n sha256 = \"99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.209/download\"],\n strip_prefix = \"serde-1.0.209\",\n build_file = Label(\"@crates//crates:BUILD.serde-1.0.209.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_derive-1.0.209\",\n sha256 = \"a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.209/download\"],\n strip_prefix = \"serde_derive-1.0.209\",\n build_file = Label(\"@crates//crates:BUILD.serde_derive-1.0.209.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_json-1.0.127\",\n sha256 = \"8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.127/download\"],\n strip_prefix = \"serde_json-1.0.127\",\n build_file = Label(\"@crates//crates:BUILD.serde_json-1.0.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_path_to_error-0.1.16\",\n sha256 = \"af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_path_to_error/0.1.16/download\"],\n strip_prefix = \"serde_path_to_error-0.1.16\",\n build_file = Label(\"@crates//crates:BUILD.serde_path_to_error-0.1.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_qs-0.8.5\",\n sha256 = \"c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_qs/0.8.5/download\"],\n strip_prefix = \"serde_qs-0.8.5\",\n build_file = Label(\"@crates//crates:BUILD.serde_qs-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_spanned-0.6.7\",\n sha256 = \"eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_spanned/0.6.7/download\"],\n strip_prefix = \"serde_spanned-0.6.7\",\n build_file = Label(\"@crates//crates:BUILD.serde_spanned-0.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_urlencoded-0.7.1\",\n sha256 = \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_urlencoded/0.7.1/download\"],\n strip_prefix = \"serde_urlencoded-0.7.1\",\n build_file = Label(\"@crates//crates:BUILD.serde_urlencoded-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_yaml-0.9.34-deprecated\",\n sha256 = \"6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_yaml/0.9.34+deprecated/download\"],\n strip_prefix = \"serde_yaml-0.9.34+deprecated\",\n build_file = Label(\"@crates//crates:BUILD.serde_yaml-0.9.34+deprecated.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha1-0.10.6\",\n sha256 = \"e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1/0.10.6/download\"],\n strip_prefix = \"sha1-0.10.6\",\n build_file = Label(\"@crates//crates:BUILD.sha1-0.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha1-0.6.1\",\n sha256 = \"c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1/0.6.1/download\"],\n strip_prefix = \"sha1-0.6.1\",\n build_file = Label(\"@crates//crates:BUILD.sha1-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha1_smol-1.0.1\",\n sha256 = \"bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1_smol/1.0.1/download\"],\n strip_prefix = \"sha1_smol-1.0.1\",\n build_file = Label(\"@crates//crates:BUILD.sha1_smol-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sha2-0.10.8\",\n sha256 = \"793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha2/0.10.8/download\"],\n strip_prefix = \"sha2-0.10.8\",\n build_file = Label(\"@crates//crates:BUILD.sha2-0.10.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sharded-slab-0.1.7\",\n sha256 = \"f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sharded-slab/0.1.7/download\"],\n strip_prefix = \"sharded-slab-0.1.7\",\n build_file = Label(\"@crates//crates:BUILD.sharded-slab-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__signal-hook-registry-1.4.2\",\n sha256 = \"a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.2/download\"],\n strip_prefix = \"signal-hook-registry-1.4.2\",\n build_file = Label(\"@crates//crates:BUILD.signal-hook-registry-1.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__simple_asn1-0.6.2\",\n sha256 = \"adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/simple_asn1/0.6.2/download\"],\n strip_prefix = \"simple_asn1-0.6.2\",\n build_file = Label(\"@crates//crates:BUILD.simple_asn1-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__skim-0.10.4\",\n sha256 = \"e5d28de0a6cb2cdd83a076f1de9d965b973ae08b244df1aa70b432946dda0f32\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/skim/0.10.4/download\"],\n strip_prefix = \"skim-0.10.4\",\n build_file = Label(\"@crates//crates:BUILD.skim-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__slab-0.4.9\",\n sha256 = \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.9/download\"],\n strip_prefix = \"slab-0.4.9\",\n build_file = Label(\"@crates//crates:BUILD.slab-0.4.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__smallvec-1.13.2\",\n sha256 = \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.13.2/download\"],\n strip_prefix = \"smallvec-1.13.2\",\n build_file = Label(\"@crates//crates:BUILD.smallvec-1.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__snafu-0.7.5\",\n sha256 = \"e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/snafu/0.7.5/download\"],\n strip_prefix = \"snafu-0.7.5\",\n build_file = Label(\"@crates//crates:BUILD.snafu-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__snafu-derive-0.7.5\",\n sha256 = \"990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/snafu-derive/0.7.5/download\"],\n strip_prefix = \"snafu-derive-0.7.5\",\n build_file = Label(\"@crates//crates:BUILD.snafu-derive-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__socket2-0.5.7\",\n sha256 = \"ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.5.7/download\"],\n strip_prefix = \"socket2-0.5.7\",\n build_file = Label(\"@crates//crates:BUILD.socket2-0.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__spin-0.5.2\",\n sha256 = \"6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.5.2/download\"],\n strip_prefix = \"spin-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.spin-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__spin-0.9.8\",\n sha256 = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.8/download\"],\n strip_prefix = \"spin-0.9.8\",\n build_file = Label(\"@crates//crates:BUILD.spin-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__stretch-0.3.2\",\n sha256 = \"7b0dc6d20ce137f302edf90f9cd3d278866fd7fb139efca6f246161222ad6d87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/stretch/0.3.2/download\"],\n strip_prefix = \"stretch-0.3.2\",\n build_file = Label(\"@crates//crates:BUILD.stretch-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strsim-0.10.0\",\n sha256 = \"73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strsim/0.10.0/download\"],\n strip_prefix = \"strsim-0.10.0\",\n build_file = Label(\"@crates//crates:BUILD.strsim-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strsim-0.11.1\",\n sha256 = \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strsim/0.11.1/download\"],\n strip_prefix = \"strsim-0.11.1\",\n build_file = Label(\"@crates//crates:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strum-0.26.3\",\n sha256 = \"8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum/0.26.3/download\"],\n strip_prefix = \"strum-0.26.3\",\n build_file = Label(\"@crates//crates:BUILD.strum-0.26.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__strum_macros-0.26.4\",\n sha256 = \"4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum_macros/0.26.4/download\"],\n strip_prefix = \"strum_macros-0.26.4\",\n build_file = Label(\"@crates//crates:BUILD.strum_macros-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__symlink-0.1.0\",\n sha256 = \"a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/symlink/0.1.0/download\"],\n strip_prefix = \"symlink-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.symlink-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-1.0.109\",\n sha256 = \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/1.0.109/download\"],\n strip_prefix = \"syn-1.0.109\",\n build_file = Label(\"@crates//crates:BUILD.syn-1.0.109.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-2.0.77\",\n sha256 = \"9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.77/download\"],\n strip_prefix = \"syn-2.0.77\",\n build_file = Label(\"@crates//crates:BUILD.syn-2.0.77.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sync_wrapper-0.1.2\",\n sha256 = \"2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/0.1.2/download\"],\n strip_prefix = \"sync_wrapper-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.sync_wrapper-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__sysinfo-0.30.13\",\n sha256 = \"0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sysinfo/0.30.13/download\"],\n strip_prefix = \"sysinfo-0.30.13\",\n build_file = Label(\"@crates//crates:BUILD.sysinfo-0.30.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__system-configuration-0.5.1\",\n sha256 = \"ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration/0.5.1/download\"],\n strip_prefix = \"system-configuration-0.5.1\",\n build_file = Label(\"@crates//crates:BUILD.system-configuration-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__system-configuration-sys-0.5.0\",\n sha256 = \"a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration-sys/0.5.0/download\"],\n strip_prefix = \"system-configuration-sys-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.system-configuration-sys-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tar-0.4.41\",\n sha256 = \"cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tar/0.4.41/download\"],\n strip_prefix = \"tar-0.4.41\",\n build_file = Label(\"@crates//crates:BUILD.tar-0.4.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tempfile-3.12.0\",\n sha256 = \"04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.12.0/download\"],\n strip_prefix = \"tempfile-3.12.0\",\n build_file = Label(\"@crates//crates:BUILD.tempfile-3.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__term-0.7.0\",\n sha256 = \"c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/term/0.7.0/download\"],\n strip_prefix = \"term-0.7.0\",\n build_file = Label(\"@crates//crates:BUILD.term-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__termcolor-1.4.1\",\n sha256 = \"06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/termcolor/1.4.1/download\"],\n strip_prefix = \"termcolor-1.4.1\",\n build_file = Label(\"@crates//crates:BUILD.termcolor-1.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__terminal_size-0.3.0\",\n sha256 = \"21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/terminal_size/0.3.0/download\"],\n strip_prefix = \"terminal_size-0.3.0\",\n build_file = Label(\"@crates//crates:BUILD.terminal_size-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__textwrap-0.16.1\",\n sha256 = \"23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/textwrap/0.16.1/download\"],\n strip_prefix = \"textwrap-0.16.1\",\n build_file = Label(\"@crates//crates:BUILD.textwrap-0.16.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__thiserror-1.0.63\",\n sha256 = \"c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/1.0.63/download\"],\n strip_prefix = \"thiserror-1.0.63\",\n build_file = Label(\"@crates//crates:BUILD.thiserror-1.0.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__thiserror-impl-1.0.63\",\n sha256 = \"a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/1.0.63/download\"],\n strip_prefix = \"thiserror-impl-1.0.63\",\n build_file = Label(\"@crates//crates:BUILD.thiserror-impl-1.0.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__thread_local-1.1.8\",\n sha256 = \"8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thread_local/1.1.8/download\"],\n strip_prefix = \"thread_local-1.1.8\",\n build_file = Label(\"@crates//crates:BUILD.thread_local-1.1.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__time-0.3.36\",\n sha256 = \"5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.36/download\"],\n strip_prefix = \"time-0.3.36\",\n build_file = Label(\"@crates//crates:BUILD.time-0.3.36.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__time-core-0.1.2\",\n sha256 = \"ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.2/download\"],\n strip_prefix = \"time-core-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.time-core-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__time-macros-0.2.18\",\n sha256 = \"3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.18/download\"],\n strip_prefix = \"time-macros-0.2.18\",\n build_file = Label(\"@crates//crates:BUILD.time-macros-0.2.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__timer-0.2.0\",\n sha256 = \"31d42176308937165701f50638db1c31586f183f1aab416268216577aec7306b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/timer/0.2.0/download\"],\n strip_prefix = \"timer-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.timer-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tinyvec-1.8.0\",\n sha256 = \"445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec/1.8.0/download\"],\n strip_prefix = \"tinyvec-1.8.0\",\n build_file = Label(\"@crates//crates:BUILD.tinyvec-1.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tinyvec_macros-0.1.1\",\n sha256 = \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyvec_macros/0.1.1/download\"],\n strip_prefix = \"tinyvec_macros-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.tinyvec_macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-1.40.0\",\n sha256 = \"e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.40.0/download\"],\n strip_prefix = \"tokio-1.40.0\",\n build_file = Label(\"@crates//crates:BUILD.tokio-1.40.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-macros-2.4.0\",\n sha256 = \"693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.4.0/download\"],\n strip_prefix = \"tokio-macros-2.4.0\",\n build_file = Label(\"@crates//crates:BUILD.tokio-macros-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-native-tls-0.3.1\",\n sha256 = \"bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-native-tls/0.3.1/download\"],\n strip_prefix = \"tokio-native-tls-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.tokio-native-tls-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-rustls-0.23.4\",\n sha256 = \"c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.23.4/download\"],\n strip_prefix = \"tokio-rustls-0.23.4\",\n build_file = Label(\"@crates//crates:BUILD.tokio-rustls-0.23.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-rustls-0.24.1\",\n sha256 = \"c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.24.1/download\"],\n strip_prefix = \"tokio-rustls-0.24.1\",\n build_file = Label(\"@crates//crates:BUILD.tokio-rustls-0.24.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-stream-0.1.15\",\n sha256 = \"267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-stream/0.1.15/download\"],\n strip_prefix = \"tokio-stream-0.1.15\",\n build_file = Label(\"@crates//crates:BUILD.tokio-stream-0.1.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tokio-util-0.7.11\",\n sha256 = \"9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.11/download\"],\n strip_prefix = \"tokio-util-0.7.11\",\n build_file = Label(\"@crates//crates:BUILD.tokio-util-0.7.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml-0.5.11\",\n sha256 = \"f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml/0.5.11/download\"],\n strip_prefix = \"toml-0.5.11\",\n build_file = Label(\"@crates//crates:BUILD.toml-0.5.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml-0.8.19\",\n sha256 = \"a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml/0.8.19/download\"],\n strip_prefix = \"toml-0.8.19\",\n build_file = Label(\"@crates//crates:BUILD.toml-0.8.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml_datetime-0.6.8\",\n sha256 = \"0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_datetime/0.6.8/download\"],\n strip_prefix = \"toml_datetime-0.6.8\",\n build_file = Label(\"@crates//crates:BUILD.toml_datetime-0.6.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__toml_edit-0.22.20\",\n sha256 = \"583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_edit/0.22.20/download\"],\n strip_prefix = \"toml_edit-0.22.20\",\n build_file = Label(\"@crates//crates:BUILD.toml_edit-0.22.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tower-0.4.13\",\n sha256 = \"b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.4.13/download\"],\n strip_prefix = \"tower-0.4.13\",\n build_file = Label(\"@crates//crates:BUILD.tower-0.4.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tower-layer-0.3.3\",\n sha256 = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-layer/0.3.3/download\"],\n strip_prefix = \"tower-layer-0.3.3\",\n build_file = Label(\"@crates//crates:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tower-service-0.3.3\",\n sha256 = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-service/0.3.3/download\"],\n strip_prefix = \"tower-service-0.3.3\",\n build_file = Label(\"@crates//crates:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-0.1.40\",\n sha256 = \"c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.40/download\"],\n strip_prefix = \"tracing-0.1.40\",\n build_file = Label(\"@crates//crates:BUILD.tracing-0.1.40.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-attributes-0.1.27\",\n sha256 = \"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-attributes/0.1.27/download\"],\n strip_prefix = \"tracing-attributes-0.1.27\",\n build_file = Label(\"@crates//crates:BUILD.tracing-attributes-0.1.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-core-0.1.32\",\n sha256 = \"c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.32/download\"],\n strip_prefix = \"tracing-core-0.1.32\",\n build_file = Label(\"@crates//crates:BUILD.tracing-core-0.1.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-log-0.2.0\",\n sha256 = \"ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-log/0.2.0/download\"],\n strip_prefix = \"tracing-log-0.2.0\",\n build_file = Label(\"@crates//crates:BUILD.tracing-log-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tracing-subscriber-0.3.18\",\n sha256 = \"ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-subscriber/0.3.18/download\"],\n strip_prefix = \"tracing-subscriber-0.3.18\",\n build_file = Label(\"@crates//crates:BUILD.tracing-subscriber-0.3.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__try-lock-0.2.5\",\n sha256 = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/try-lock/0.2.5/download\"],\n strip_prefix = \"try-lock-0.2.5\",\n build_file = Label(\"@crates//crates:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__tuikit-0.5.0\",\n sha256 = \"5e19c6ab038babee3d50c8c12ff8b910bdb2196f62278776422f50390d8e53d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tuikit/0.5.0/download\"],\n strip_prefix = \"tuikit-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.tuikit-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__typenum-1.17.0\",\n sha256 = \"42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typenum/1.17.0/download\"],\n strip_prefix = \"typenum-1.17.0\",\n build_file = Label(\"@crates//crates:BUILD.typenum-1.17.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ucd-trie-0.1.6\",\n sha256 = \"ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ucd-trie/0.1.6/download\"],\n strip_prefix = \"ucd-trie-0.1.6\",\n build_file = Label(\"@crates//crates:BUILD.ucd-trie-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicase-2.6.0\",\n sha256 = \"50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicase/2.6.0/download\"],\n strip_prefix = \"unicase-2.6.0\",\n build_file = Label(\"@crates//crates:BUILD.unicase-2.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-bidi-0.3.15\",\n sha256 = \"08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-bidi/0.3.15/download\"],\n strip_prefix = \"unicode-bidi-0.3.15\",\n build_file = Label(\"@crates//crates:BUILD.unicode-bidi-0.3.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-ident-1.0.12\",\n sha256 = \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.12/download\"],\n strip_prefix = \"unicode-ident-1.0.12\",\n build_file = Label(\"@crates//crates:BUILD.unicode-ident-1.0.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-normalization-0.1.23\",\n sha256 = \"a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-normalization/0.1.23/download\"],\n strip_prefix = \"unicode-normalization-0.1.23\",\n build_file = Label(\"@crates//crates:BUILD.unicode-normalization-0.1.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-segmentation-1.11.0\",\n sha256 = \"d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-segmentation/1.11.0/download\"],\n strip_prefix = \"unicode-segmentation-1.11.0\",\n build_file = Label(\"@crates//crates:BUILD.unicode-segmentation-1.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-width-0.1.13\",\n sha256 = \"0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-width/0.1.13/download\"],\n strip_prefix = \"unicode-width-0.1.13\",\n build_file = Label(\"@crates//crates:BUILD.unicode-width-0.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-xid-0.2.5\",\n sha256 = \"229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-xid/0.2.5/download\"],\n strip_prefix = \"unicode-xid-0.2.5\",\n build_file = Label(\"@crates//crates:BUILD.unicode-xid-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unsafe-libyaml-0.2.11\",\n sha256 = \"673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unsafe-libyaml/0.2.11/download\"],\n strip_prefix = \"unsafe-libyaml-0.2.11\",\n build_file = Label(\"@crates//crates:BUILD.unsafe-libyaml-0.2.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__untrusted-0.7.1\",\n sha256 = \"a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.7.1/download\"],\n strip_prefix = \"untrusted-0.7.1\",\n build_file = Label(\"@crates//crates:BUILD.untrusted-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@crates//crates:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__url-2.3.0\",\n sha256 = \"22fe195a4f217c25b25cb5058ced57059824a678474874038dc88d211bf508d3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/url/2.3.0/download\"],\n strip_prefix = \"url-2.3.0\",\n build_file = Label(\"@crates//crates:BUILD.url-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__urlencoding-2.1.3\",\n sha256 = \"daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/urlencoding/2.1.3/download\"],\n strip_prefix = \"urlencoding-2.1.3\",\n build_file = Label(\"@crates//crates:BUILD.urlencoding-2.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__utf8parse-0.2.2\",\n sha256 = \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8parse/0.2.2/download\"],\n strip_prefix = \"utf8parse-0.2.2\",\n build_file = Label(\"@crates//crates:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__uuid-1.10.0\",\n sha256 = \"81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/uuid/1.10.0/download\"],\n strip_prefix = \"uuid-1.10.0\",\n build_file = Label(\"@crates//crates:BUILD.uuid-1.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__valuable-0.1.0\",\n sha256 = \"830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/valuable/0.1.0/download\"],\n strip_prefix = \"valuable-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.valuable-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vcpkg-0.2.15\",\n sha256 = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vcpkg/0.2.15/download\"],\n strip_prefix = \"vcpkg-0.2.15\",\n build_file = Label(\"@crates//crates:BUILD.vcpkg-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__version_check-0.9.5\",\n sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n strip_prefix = \"version_check-0.9.5\",\n build_file = Label(\"@crates//crates:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vswhom-0.1.0\",\n sha256 = \"be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vswhom/0.1.0/download\"],\n strip_prefix = \"vswhom-0.1.0\",\n build_file = Label(\"@crates//crates:BUILD.vswhom-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vswhom-sys-0.1.2\",\n sha256 = \"d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vswhom-sys/0.1.2/download\"],\n strip_prefix = \"vswhom-sys-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.vswhom-sys-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vte-0.11.1\",\n sha256 = \"f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vte/0.11.1/download\"],\n strip_prefix = \"vte-0.11.1\",\n build_file = Label(\"@crates//crates:BUILD.vte-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__vte_generate_state_changes-0.1.2\",\n sha256 = \"2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vte_generate_state_changes/0.1.2/download\"],\n strip_prefix = \"vte_generate_state_changes-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.vte_generate_state_changes-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__waker-fn-1.2.0\",\n sha256 = \"317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/waker-fn/1.2.0/download\"],\n strip_prefix = \"waker-fn-1.2.0\",\n build_file = Label(\"@crates//crates:BUILD.waker-fn-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__walkdir-2.5.0\",\n sha256 = \"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/walkdir/2.5.0/download\"],\n strip_prefix = \"walkdir-2.5.0\",\n build_file = Label(\"@crates//crates:BUILD.walkdir-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__want-0.3.1\",\n sha256 = \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/want/0.3.1/download\"],\n strip_prefix = \"want-0.3.1\",\n build_file = Label(\"@crates//crates:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasi-0.11.0-wasi-snapshot-preview1\",\n sha256 = \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.0+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.0+wasi-snapshot-preview1\",\n build_file = Label(\"@crates//crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasi-0.9.0-wasi-snapshot-preview1\",\n sha256 = \"cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.9.0+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.9.0+wasi-snapshot-preview1\",\n build_file = Label(\"@crates//crates:BUILD.wasi-0.9.0+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-0.2.99\",\n sha256 = \"a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-backend-0.2.99\",\n sha256 = \"5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-backend/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-backend-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-backend-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-futures-0.4.49\",\n sha256 = \"38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-futures/0.4.49/download\"],\n strip_prefix = \"wasm-bindgen-futures-0.4.49\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-futures-0.4.49.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-0.2.99\",\n sha256 = \"2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-support-0.2.99\",\n sha256 = \"30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-support-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-shared-0.2.99\",\n sha256 = \"943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.99/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.99\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-shared-0.2.99.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-test-0.3.49\",\n sha256 = \"c61d44563646eb934577f2772656c7ad5e9c90fac78aa8013d776fcdaf24625d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-test/0.3.49/download\"],\n strip_prefix = \"wasm-bindgen-test-0.3.49\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-test-0.3.49.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-test-macro-0.3.49\",\n sha256 = \"54171416ce73aa0b9c377b51cc3cb542becee1cd678204812e8392e5b0e4a031\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-test-macro/0.3.49/download\"],\n strip_prefix = \"wasm-bindgen-test-macro-0.3.49\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-test-macro-0.3.49.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-streams-0.4.0\",\n sha256 = \"b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-streams/0.4.0/download\"],\n strip_prefix = \"wasm-streams-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.wasm-streams-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__web-sys-0.3.76\",\n sha256 = \"04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-sys/0.3.76/download\"],\n strip_prefix = \"web-sys-0.3.76\",\n build_file = Label(\"@crates//crates:BUILD.web-sys-0.3.76.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__webpki-0.22.4\",\n sha256 = \"ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki/0.22.4/download\"],\n strip_prefix = \"webpki-0.22.4\",\n build_file = Label(\"@crates//crates:BUILD.webpki-0.22.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__webpki-roots-0.25.4\",\n sha256 = \"5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-roots/0.25.4/download\"],\n strip_prefix = \"webpki-roots-0.25.4\",\n build_file = Label(\"@crates//crates:BUILD.webpki-roots-0.25.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__websocket-codec-0.5.2\",\n sha256 = \"2108c9c18a6e746addc085c18cedb66b672e8ffea6a993712decc295b0d8ae55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/websocket-codec/0.5.2/download\"],\n strip_prefix = \"websocket-codec-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.websocket-codec-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__websocket-lite-0.5.2\",\n sha256 = \"1d6cae39139c6e837afebd915935e7adc8af5c28425935de606d0e8c9d3268f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/websocket-lite/0.5.2/download\"],\n strip_prefix = \"websocket-lite-0.5.2\",\n build_file = Label(\"@crates//crates:BUILD.websocket-lite-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__which-5.0.0\",\n sha256 = \"9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/which/5.0.0/download\"],\n strip_prefix = \"which-5.0.0\",\n build_file = Label(\"@crates//crates:BUILD.which-5.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-0.3.9\",\n sha256 = \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi/0.3.9/download\"],\n strip_prefix = \"winapi-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.winapi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-build-0.1.1\",\n sha256 = \"2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-build/0.1.1/download\"],\n strip_prefix = \"winapi-build-0.1.1\",\n build_file = Label(\"@crates//crates:BUILD.winapi-build-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-i686-pc-windows-gnu-0.4.0\",\n sha256 = \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-i686-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-util-0.1.9\",\n sha256 = \"cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-util/0.1.9/download\"],\n strip_prefix = \"winapi-util-0.1.9\",\n build_file = Label(\"@crates//crates:BUILD.winapi-util-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winapi-x86_64-pc-windows-gnu-0.4.0\",\n sha256 = \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-x86_64-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crates//crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-0.52.0\",\n sha256 = \"e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows/0.52.0/download\"],\n strip_prefix = \"windows-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-0.53.0\",\n sha256 = \"efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows/0.53.0/download\"],\n strip_prefix = \"windows-0.53.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-core-0.52.0\",\n sha256 = \"33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.52.0/download\"],\n strip_prefix = \"windows-core-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-core-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-core-0.53.0\",\n sha256 = \"9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.53.0/download\"],\n strip_prefix = \"windows-core-0.53.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-core-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-result-0.1.2\",\n sha256 = \"5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.1.2/download\"],\n strip_prefix = \"windows-result-0.1.2\",\n build_file = Label(\"@crates//crates:BUILD.windows-result-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.45.0\",\n sha256 = \"75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.45.0/download\"],\n strip_prefix = \"windows-sys-0.45.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.45.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.48.0\",\n sha256 = \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.48.0/download\"],\n strip_prefix = \"windows-sys-0.48.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.48.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.59.0\",\n sha256 = \"1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.59.0/download\"],\n strip_prefix = \"windows-sys-0.59.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.59.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.42.2\",\n sha256 = \"8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.42.2/download\"],\n strip_prefix = \"windows-targets-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.48.5\",\n sha256 = \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.48.5/download\"],\n strip_prefix = \"windows-targets-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.42.2\",\n sha256 = \"597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.48.5\",\n sha256 = \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.42.2\",\n sha256 = \"e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.48.5\",\n sha256 = \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.42.2\",\n sha256 = \"c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.42.2/download\"],\n strip_prefix = \"windows_i686_gnu-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.48.5\",\n sha256 = \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.48.5/download\"],\n strip_prefix = \"windows_i686_gnu-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.42.2\",\n sha256 = \"44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.42.2/download\"],\n strip_prefix = \"windows_i686_msvc-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.48.5\",\n sha256 = \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.48.5/download\"],\n strip_prefix = \"windows_i686_msvc-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.42.2\",\n sha256 = \"8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.48.5\",\n sha256 = \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.42.2\",\n sha256 = \"26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.48.5\",\n sha256 = \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.42.2\",\n sha256 = \"9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.42.2/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.42.2\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.42.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.48.5\",\n sha256 = \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.48.5/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.48.5\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winnow-0.6.18\",\n sha256 = \"68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winnow/0.6.18/download\"],\n strip_prefix = \"winnow-0.6.18\",\n build_file = Label(\"@crates//crates:BUILD.winnow-0.6.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winreg-0.50.0\",\n sha256 = \"524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winreg/0.50.0/download\"],\n strip_prefix = \"winreg-0.50.0\",\n build_file = Label(\"@crates//crates:BUILD.winreg-0.50.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__winreg-0.52.0\",\n sha256 = \"a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winreg/0.52.0/download\"],\n strip_prefix = \"winreg-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.winreg-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wiremock-0.5.22\",\n sha256 = \"13a3a53eaf34f390dd30d7b1b078287dd05df2aa2e21a589ccb80f5c7253c2e9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wiremock/0.5.22/download\"],\n strip_prefix = \"wiremock-0.5.22\",\n build_file = Label(\"@crates//crates:BUILD.wiremock-0.5.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__xattr-1.3.1\",\n sha256 = \"8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xattr/1.3.1/download\"],\n strip_prefix = \"xattr-1.3.1\",\n build_file = Label(\"@crates//crates:BUILD.xattr-1.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__xdg-2.5.2\",\n sha256 = \"213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xdg/2.5.2/download\"],\n strip_prefix = \"xdg-2.5.2\",\n build_file = Label(\"@crates//crates:BUILD.xdg-2.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__xmlparser-0.13.6\",\n sha256 = \"66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/xmlparser/0.13.6/download\"],\n strip_prefix = \"xmlparser-0.13.6\",\n build_file = Label(\"@crates//crates:BUILD.xmlparser-0.13.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zerocopy-0.7.35\",\n sha256 = \"1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy/0.7.35/download\"],\n strip_prefix = \"zerocopy-0.7.35\",\n build_file = Label(\"@crates//crates:BUILD.zerocopy-0.7.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zerocopy-derive-0.7.35\",\n sha256 = \"fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy-derive/0.7.35/download\"],\n strip_prefix = \"zerocopy-derive-0.7.35\",\n build_file = Label(\"@crates//crates:BUILD.zerocopy-derive-0.7.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zeroize-1.8.1\",\n sha256 = \"ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.8.1/download\"],\n strip_prefix = \"zeroize-1.8.1\",\n build_file = Label(\"@crates//crates:BUILD.zeroize-1.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zip-0.6.6\",\n sha256 = \"760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zip/0.6.6/download\"],\n strip_prefix = \"zip-0.6.6\",\n build_file = Label(\"@crates//crates:BUILD.zip-0.6.6.bazel\"),\n )\n\n return [\n struct(repo=\"crates__afl-0.15.10\", is_dev_dep = False),\n struct(repo=\"crates__anyhow-1.0.86\", is_dev_dep = False),\n struct(repo=\"crates__async-compression-0.3.15\", is_dev_dep = False),\n struct(repo=\"crates__async-trait-0.1.82\", is_dev_dep = False),\n struct(repo=\"crates__aws-config-0.51.0\", is_dev_dep = False),\n struct(repo=\"crates__aws-sdk-ecr-0.21.0\", is_dev_dep = False),\n struct(repo=\"crates__aws-sdk-s3-0.21.0\", is_dev_dep = False),\n struct(repo=\"crates__base64-0.13.1\", is_dev_dep = False),\n struct(repo=\"crates__base64-0.21.7\", is_dev_dep = False),\n struct(repo=\"crates__bincode-1.3.3\", is_dev_dep = False),\n struct(repo=\"crates__boolinator-2.4.0\", is_dev_dep = False),\n struct(repo=\"crates__bytes-1.1.0\", is_dev_dep = False),\n struct(repo=\"crates__bytesize-1.3.0\", is_dev_dep = False),\n struct(repo=\"crates__chrono-0.4.38\", is_dev_dep = False),\n struct(repo=\"crates__clap-4.5.16\", is_dev_dep = False),\n struct(repo=\"crates__console_error_panic_hook-0.1.7\", is_dev_dep = False),\n struct(repo=\"crates__convert_case-0.6.0\", is_dev_dep = False),\n struct(repo=\"crates__data-encoding-2.6.0\", is_dev_dep = False),\n struct(repo=\"crates__dependency_runner-1.2.4\", is_dev_dep = False),\n struct(repo=\"crates__derive-where-1.2.7\", is_dev_dep = False),\n struct(repo=\"crates__derive_more-1.0.0\", is_dev_dep = False),\n struct(repo=\"crates__dirs-5.0.1\", is_dev_dep = False),\n struct(repo=\"crates__either-1.13.0\", is_dev_dep = False),\n struct(repo=\"crates__embed-resource-2.4.3\", is_dev_dep = False),\n struct(repo=\"crates__flate2-1.0.33\", is_dev_dep = False),\n struct(repo=\"crates__flume-0.10.14\", is_dev_dep = False),\n struct(repo=\"crates__fn-error-context-0.2.1\", is_dev_dep = False),\n struct(repo=\"crates__fs_extra-1.3.0\", is_dev_dep = False),\n struct(repo=\"crates__futures-0.3.30\", is_dev_dep = False),\n struct(repo=\"crates__futures-util-0.3.30\", is_dev_dep = False),\n struct(repo=\"crates__glob-0.3.1\", is_dev_dep = False),\n struct(repo=\"crates__handlebars-4.5.0\", is_dev_dep = False),\n struct(repo=\"crates__headers-0.3.9\", is_dev_dep = False),\n struct(repo=\"crates__http-serde-1.1.3\", is_dev_dep = False),\n struct(repo=\"crates__indicatif-0.17.8\", is_dev_dep = False),\n struct(repo=\"crates__itertools-0.12.1\", is_dev_dep = False),\n struct(repo=\"crates__jni-0.21.1\", is_dev_dep = False),\n struct(repo=\"crates__lazy_static-1.5.0\", is_dev_dep = False),\n struct(repo=\"crates__lexpr-0.2.7\", is_dev_dep = False),\n struct(repo=\"crates__mime-0.3.17\", is_dev_dep = False),\n struct(repo=\"crates__mslnk-0.1.8\", is_dev_dep = False),\n struct(repo=\"crates__multimap-0.9.1\", is_dev_dep = False),\n struct(repo=\"crates__named-lock-0.4.1\", is_dev_dep = False),\n struct(repo=\"crates__native-windows-gui-1.0.13\", is_dev_dep = False),\n struct(repo=\"crates__new_mime_guess-4.0.4\", is_dev_dep = False),\n struct(repo=\"crates__octocrab-0.17.0\", is_dev_dep = False),\n struct(repo=\"crates__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crates__path-absolutize-3.1.1\", is_dev_dep = False),\n struct(repo=\"crates__path-slash-0.2.1\", is_dev_dep = False),\n struct(repo=\"crates__pathdiff-0.2.1\", is_dev_dep = False),\n struct(repo=\"crates__port_check-0.1.5\", is_dev_dep = False),\n struct(repo=\"crates__portpicker-0.1.1\", is_dev_dep = False),\n struct(repo=\"crates__proc-macro2-1.0.86\", is_dev_dep = False),\n struct(repo=\"crates__pulldown-cmark-0.9.6\", is_dev_dep = False),\n struct(repo=\"crates__quote-1.0.37\", is_dev_dep = False),\n struct(repo=\"crates__regex-1.10.6\", is_dev_dep = False),\n struct(repo=\"crates__reqwest-0.11.27\", is_dev_dep = False),\n struct(repo=\"crates__scopeguard-1.2.0\", is_dev_dep = False),\n struct(repo=\"crates__self-replace-1.5.0\", is_dev_dep = False),\n struct(repo=\"crates__semver-1.0.23\", is_dev_dep = False),\n struct(repo=\"crates__serde-1.0.209\", is_dev_dep = False),\n struct(repo=\"crates__serde_json-1.0.127\", is_dev_dep = False),\n struct(repo=\"crates__serde_yaml-0.9.34-deprecated\", is_dev_dep = False),\n struct(repo=\"crates__sha2-0.10.8\", is_dev_dep = False),\n struct(repo=\"crates__strum-0.26.3\", is_dev_dep = False),\n struct(repo=\"crates__symlink-0.1.0\", is_dev_dep = False),\n struct(repo=\"crates__syn-2.0.77\", is_dev_dep = False),\n struct(repo=\"crates__sysinfo-0.30.13\", is_dev_dep = False),\n struct(repo=\"crates__tar-0.4.41\", is_dev_dep = False),\n struct(repo=\"crates__tempfile-3.12.0\", is_dev_dep = False),\n struct(repo=\"crates__time-0.3.36\", is_dev_dep = False),\n struct(repo=\"crates__tokio-1.40.0\", is_dev_dep = False),\n struct(repo=\"crates__tokio-stream-0.1.15\", is_dev_dep = False),\n struct(repo=\"crates__tokio-util-0.7.11\", is_dev_dep = False),\n struct(repo=\"crates__toml-0.5.11\", is_dev_dep = False),\n struct(repo=\"crates__tracing-0.1.40\", is_dev_dep = False),\n struct(repo=\"crates__tracing-subscriber-0.3.18\", is_dev_dep = False),\n struct(repo=\"crates__unicase-2.6.0\", is_dev_dep = False),\n struct(repo=\"crates__url-2.3.0\", is_dev_dep = False),\n struct(repo=\"crates__uuid-1.10.0\", is_dev_dep = False),\n struct(repo=\"crates__walkdir-2.5.0\", is_dev_dep = False),\n struct(repo=\"crates__wasm-bindgen-0.2.99\", is_dev_dep = False),\n struct(repo=\"crates__websocket-lite-0.5.2\", is_dev_dep = False),\n struct(repo=\"crates__which-5.0.0\", is_dev_dep = False),\n struct(repo=\"crates__windows-0.52.0\", is_dev_dep = False),\n struct(repo=\"crates__winreg-0.52.0\", is_dev_dep = False),\n struct(repo=\"crates__zip-0.6.6\", is_dev_dep = False),\n struct(repo = \"crates__rand-0.8.5\", is_dev_dep = True),\n struct(repo = \"crates__rand_chacha-0.3.1\", is_dev_dep = True),\n struct(repo = \"crates__rand_distr-0.4.3\", is_dev_dep = True),\n struct(repo = \"crates__wasm-bindgen-test-0.3.49\", is_dev_dep = True),\n struct(repo = \"crates__wiremock-0.5.22\", is_dev_dep = True),\n ]\n" } } }, @@ -4756,7 +4756,7 @@ "https://static.crates.io/crates/native-tls/0.2.12/download" ], "strip_prefix": "native-tls-0.2.12", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_build_script\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"native_tls\",\n deps = [\n \"@crates__native-tls-0.2.12//:build_script_build\",\n ] + select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n \"@crates__tempfile-3.12.0//:tempfile\", # cfg(target_os = \"macos\")\n ],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n ],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n ],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [\n \"@crates__schannel-0.1.23//:schannel\", # cfg(target_os = \"windows\")\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n \"@crates__tempfile-3.12.0//:tempfile\", # cfg(target_os = \"macos\")\n ],\n \"@rules_rust//rust/platform:i686-linux-android\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [\n \"@crates__schannel-0.1.23//:schannel\", # cfg(target_os = \"windows\")\n ],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n \"@crates__tempfile-3.12.0//:tempfile\", # cfg(target_os = \"macos\")\n ],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n ],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [\n \"@crates__schannel-0.1.23//:schannel\", # cfg(target_os = \"windows\")\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.66//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.12\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = select({\n \"@rules_rust//rust/platform:aarch64-linux-android\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-linux-android\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n edition = \"2015\",\n pkg_name = \"native-tls\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.2.12\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_build_script\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"native_tls\",\n deps = [\n \"@crates__native-tls-0.2.12//:build_script_build\",\n ] + select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n \"@crates__tempfile-3.12.0//:tempfile\", # cfg(target_os = \"macos\")\n ],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n ],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n ],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [\n \"@crates__schannel-0.1.23//:schannel\", # cfg(target_os = \"windows\")\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n \"@crates__tempfile-3.12.0//:tempfile\", # cfg(target_os = \"macos\")\n ],\n \"@rules_rust//rust/platform:i686-linux-android\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [\n \"@crates__schannel-0.1.23//:schannel\", # cfg(target_os = \"windows\")\n ],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n \"@crates__tempfile-3.12.0//:tempfile\", # cfg(target_os = \"macos\")\n ],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [\n \"@crates__libc-0.2.158//:libc\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-2.11.1//:security_framework\", # cfg(target_vendor = \"apple\")\n \"@crates__security-framework-sys-2.11.1//:security_framework_sys\", # cfg(target_vendor = \"apple\")\n ],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [\n \"@crates__schannel-0.1.23//:schannel\", # cfg(target_os = \"windows\")\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [\n \"@crates__log-0.4.22//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-0.10.70//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-probe-0.1.5//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.12\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = select({\n \"@rules_rust//rust/platform:aarch64-linux-android\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-linux-android\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n edition = \"2015\",\n pkg_name = \"native-tls\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.2.12\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crates__native-windows-gui-1.0.13": { @@ -5080,7 +5080,7 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"once_cell\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"race\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=once_cell\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.19.0\",\n)\n" } }, - "crates__openssl-0.10.66": { + "crates__openssl-0.10.70": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -5090,13 +5090,13 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1", + "sha256": "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/openssl/0.10.66/download" + "https://static.crates.io/crates/openssl/0.10.70/download" ], - "strip_prefix": "openssl-0.10.66", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_build_script\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"openssl\",\n deps = [\n \"@crates__bitflags-2.6.0//:bitflags\",\n \"@crates__cfg-if-1.0.0//:cfg_if\",\n \"@crates__foreign-types-0.3.2//:foreign_types\",\n \"@crates__libc-0.2.158//:libc\",\n \"@crates__once_cell-1.19.0//:once_cell\",\n \"@crates__openssl-0.10.66//:build_script_build\",\n \"@crates__openssl-sys-0.9.103//:openssl_sys\",\n ],\n proc_macro_deps = [\n \"@crates__openssl-macros-0.1.1//:openssl_macros\",\n ],\n aliases = {\n \"@crates__openssl-sys-0.9.103//:openssl_sys\": \"ffi\",\n },\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.66\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = [\n \"@crates__openssl-sys-0.9.103//:openssl_sys\",\n ],\n edition = \"2018\",\n pkg_name = \"openssl\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.10.66\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "openssl-0.10.70", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_build_script\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"openssl\",\n deps = [\n \"@crates__bitflags-2.6.0//:bitflags\",\n \"@crates__cfg-if-1.0.0//:cfg_if\",\n \"@crates__foreign-types-0.3.2//:foreign_types\",\n \"@crates__libc-0.2.158//:libc\",\n \"@crates__once_cell-1.19.0//:once_cell\",\n \"@crates__openssl-0.10.70//:build_script_build\",\n \"@crates__openssl-sys-0.9.105//:openssl_sys\",\n ],\n proc_macro_deps = [\n \"@crates__openssl-macros-0.1.1//:openssl_macros\",\n ],\n aliases = {\n \"@crates__openssl-sys-0.9.105//:openssl_sys\": \"ffi\",\n },\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.70\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = [\n \"@crates__openssl-sys-0.9.105//:openssl_sys\",\n ],\n edition = \"2021\",\n pkg_name = \"openssl\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.10.70\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crates__openssl-macros-0.1.1": { @@ -5137,7 +5137,7 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"openssl_probe\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl-probe\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.1.5\",\n)\n" } }, - "crates__openssl-sys-0.9.103": { + "crates__openssl-sys-0.9.105": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -5147,13 +5147,13 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6", + "sha256": "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/openssl-sys/0.9.103/download" + "https://static.crates.io/crates/openssl-sys/0.9.105/download" ], - "strip_prefix": "openssl-sys-0.9.103", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_build_script\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"openssl_sys\",\n deps = [\n \"@crates__libc-0.2.158//:libc\",\n \"@crates__openssl-sys-0.9.103//:build_script_main\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.103\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_main\",\n crate_root = \"build/main.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__cc-1.1.15//:cc\",\n \"@crates__pkg-config-0.3.30//:pkg_config\",\n \"@crates__vcpkg-0.2.15//:vcpkg\",\n ],\n edition = \"2018\",\n links = \"openssl\",\n pkg_name = \"openssl-sys\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.9.103\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_main\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "openssl-sys-0.9.105", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo ''\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_build_script\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nrust_library(\n name = \"openssl_sys\",\n deps = [\n \"@crates__libc-0.2.158//:libc\",\n \"@crates__openssl-sys-0.9.105//:build_script_main\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios\": [],\n \"@rules_rust//rust/platform:aarch64-apple-ios-sim\": [],\n \"@rules_rust//rust/platform:aarch64-linux-android\": [],\n \"@rules_rust//rust/platform:aarch64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-uefi\": [],\n \"@rules_rust//rust/platform:arm-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:armv7-linux-androideabi\": [],\n \"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi\": [],\n \"@rules_rust//rust/platform:i686-apple-darwin\": [],\n \"@rules_rust//rust/platform:i686-linux-android\": [],\n \"@rules_rust//rust/platform:i686-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:i686-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:i686-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:powerpc-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:riscv32imc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:riscv64gc-unknown-none-elf\": [],\n \"@rules_rust//rust/platform:s390x-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:thumbv7em-none-eabi\": [],\n \"@rules_rust//rust/platform:thumbv8m.main-none-eabi\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-apple-darwin\": [],\n \"@rules_rust//rust/platform:x86_64-apple-ios\": [],\n \"@rules_rust//rust/platform:x86_64-linux-android\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-freebsd\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-fuchsia\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-uefi\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.105\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_main\",\n crate_root = \"build/main.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__cc-1.1.15//:cc\",\n \"@crates__pkg-config-0.3.30//:pkg_config\",\n \"@crates__vcpkg-0.2.15//:vcpkg\",\n ],\n edition = \"2021\",\n links = \"openssl\",\n pkg_name = \"openssl-sys\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.9.105\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_main\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crates__option-ext-0.2.0": { diff --git a/app/common/package.json b/app/common/package.json index 73322f15bcf4..fdd5227dd804 100644 --- a/app/common/package.json +++ b/app/common/package.json @@ -31,6 +31,6 @@ "@types/node": "^20.11.21", "lib0": "^0.2.99", "react": "^18.3.1", - "vitest": "3.0.3" + "vitest": "3.0.5" } } diff --git a/app/common/src/backendQuery.ts b/app/common/src/backendQuery.ts index 0620e5bf3478..b3439a85084a 100644 --- a/app/common/src/backendQuery.ts +++ b/app/common/src/backendQuery.ts @@ -9,6 +9,104 @@ import * as object from './utilities/data/object' /** The properties of the Backend type that are methods. */ export type BackendMethods = object.ExtractKeys> +/** Ensure that the given type contains only names of backend methods. */ +type DefineBackendMethods = T + +/** Names of methods corresponding to mutations. */ +export type BackendMutationMethod = DefineBackendMethods< + | 'acceptInvitation' + | 'associateTag' + | 'changeUserGroup' + | 'closeProject' + | 'copyAsset' + | 'createCheckoutSession' + | 'createDatalink' + | 'createDirectory' + | 'createPermission' + | 'createProject' + | 'createProjectExecution' + | 'createSecret' + | 'createTag' + | 'createUser' + | 'createUserGroup' + | 'declineInvitation' + | 'deleteAsset' + | 'deleteDatalink' + | 'deleteInvitation' + | 'deleteProjectExecution' + | 'deleteTag' + | 'deleteUser' + | 'deleteUserGroup' + | 'duplicateProject' + | 'inviteUser' + | 'logEvent' + | 'openProject' + | 'removeUser' + | 'resendInvitation' + | 'restoreUser' + | 'syncProjectExecution' + | 'undoDeleteAsset' + | 'updateAsset' + | 'updateDirectory' + | 'updateFile' + | 'updateOrganization' + | 'updateProject' + | 'updateProjectExecution' + | 'updateSecret' + | 'updateUser' + | 'uploadFileChunk' + | 'uploadFileEnd' + | 'uploadFileStart' + | 'uploadOrganizationPicture' + | 'uploadUserPicture' +> + +/** Names of methods corresponding to queries. */ +export type BackendQueryMethod = Exclude + +/** A value for {@link INVALIDATION_MAP} representing all queries. */ +export const INVALIDATE_ALL_QUERIES = Symbol('invalidate all queries') +/** A mapping between mutation methods and queries invalidated by them. */ +export const INVALIDATION_MAP: Partial< + Record +> = { + createUser: ['usersMe'], + updateUser: ['usersMe'], + deleteUser: ['usersMe'], + restoreUser: ['usersMe'], + uploadUserPicture: ['usersMe'], + updateOrganization: ['getOrganization'], + uploadOrganizationPicture: ['getOrganization'], + createUserGroup: ['listUserGroups'], + deleteUserGroup: ['listUserGroups'], + changeUserGroup: ['listUsers'], + createTag: ['listTags'], + deleteTag: ['listTags'], + associateTag: ['listDirectory'], + acceptInvitation: [INVALIDATE_ALL_QUERIES], + declineInvitation: ['usersMe'], + createProject: ['listDirectory'], + duplicateProject: ['listDirectory'], + createDirectory: ['listDirectory'], + createSecret: ['listDirectory'], + updateSecret: ['listDirectory'], + updateProject: ['listDirectory'], + updateFile: ['listDirectory'], + updateDirectory: ['listDirectory'], + createDatalink: ['listDirectory', 'getDatalink'], + uploadFileEnd: ['listDirectory'], + copyAsset: ['listDirectory', 'listAssetVersions'], + deleteAsset: ['listDirectory', 'listAssetVersions'], + undoDeleteAsset: ['listDirectory'], + updateAsset: ['listDirectory', 'listAssetVersions'], + openProject: ['listDirectory'], + closeProject: ['listDirectory', 'listAssetVersions'], + createProjectExecution: ['listProjectExecutions'], + updateProjectExecution: ['listProjectExecutions'], + syncProjectExecution: ['listProjectExecutions'], + deleteProjectExecution: ['listProjectExecutions'], +} + /** For each backend method, an optional function defining how to create a query key from its arguments. */ type BackendQueryNormalizers = { [Method in BackendMethods]?: ( diff --git a/app/common/src/services/Backend.ts b/app/common/src/services/Backend.ts index b9d09c2f0cdb..be64fc96e295 100644 --- a/app/common/src/services/Backend.ts +++ b/app/common/src/services/Backend.ts @@ -1679,15 +1679,6 @@ export function extractProjectExtension(name: string) { return { basename: basename ?? name, extension: extension ?? '' } } -/** Check whether a pending rename is valid. */ -export function isNewTitleValid( - item: AnyAsset, - newTitle: string, - siblings?: readonly AnyAsset[] | null, -) { - return newTitle !== '' && newTitle !== item.title && isNewTitleUnique(item, newTitle, siblings) -} - /** * Check whether a new title is unique among the siblings. */ @@ -1792,7 +1783,10 @@ export default abstract class Backend { title: string, ): Promise /** Create a directory. */ - abstract createDirectory(body: CreateDirectoryRequestBody): Promise + abstract createDirectory( + body: CreateDirectoryRequestBody, + discardTitle?: boolean, + ): Promise /** Change the name of a directory. */ abstract updateDirectory( directoryId: DirectoryId, diff --git a/app/common/src/text/english.json b/app/common/src/text/english.json index 852e6c3ba356..9d590e7907bc 100644 --- a/app/common/src/text/english.json +++ b/app/common/src/text/english.json @@ -92,7 +92,7 @@ "confirmRegistrationTitleError": "Could not confirm your email", "confirmRegistrationSubtitleError": "Please try again or contact the administrators.", "confirmRegistrationTitleSuccess": "Email confirmed!", - "confirmRegistrationSubtitleSuccess": "You can now close this page.", + "confirmRegistrationSubtitleSuccess": "You will be redirected back to the IDE shortly.", "confirmRegistrationTitleIdle": "Confirm your email", "confirmRegistrationSubtitleIdle": "Please enter the verification code we emailed you.", "setUsernameError": "Could not set your username.", @@ -105,6 +105,7 @@ "forgotPasswordSuccess": "We have sent you an email with further instructions!", "changePasswordSuccess": "Successfully changed password!", "resetPasswordSuccess": "Successfully reset password!", + "resetPasswordSuccessSubtitle": "You will be redirected back to the IDE shortly.", "signOutSuccess": "Successfully logged out!", "userNotAuthorizedError": "Your session has expired. Please log in again.", @@ -1109,5 +1110,10 @@ "assetProjectExecutions.notProjectAsset": "Select a single project to view its executions.", "assetProjectExecutionsCalendar.localBackend": "The execution calendar is not available for local projects.", "assetProjectExecutionsCalendar.notSelected": "Select a single project to view its execution calendar.", - "assetProjectExecutionsCalendar.notProjectAsset": "Select a single project to view its execution calendar." + "assetProjectExecutionsCalendar.notProjectAsset": "Select a single project to view its execution calendar.", + + "cloudBrowserDisabledTitle": "Desktop App Required.", + "cloudBrowserDisabledSubtitle": "For the best experience and full functionality, please use our desktop app. You will be redirected to the desktop app shortly. Alternatively, you can download the desktop app below.", + "openInDesktop": "Open in Desktop", + "downloadIDE": "Download Enso Desktop Edition" } diff --git a/app/common/src/utilities/data/object.ts b/app/common/src/utilities/data/object.ts index 44279a04d2b3..5599b6b3d3f2 100644 --- a/app/common/src/utilities/data/object.ts +++ b/app/common/src/utilities/data/object.ts @@ -61,13 +61,13 @@ export function unsafeMutable(object: T): { -readonly [K in ke * Return the entries of an object. UNSAFE only when it is possible for an object to have * extra keys. */ -export function unsafeKeys(object: T): readonly (keyof T)[] { +export function unsafeKeys(object: T): (keyof T)[] { // @ts-expect-error This is intentionally a wrapper function with a different type. return Object.keys(object) } /** Return the values of an object. UNSAFE only when it is possible for an object to have extra keys. */ -export function unsafeValues(object: T): readonly T[keyof T][] { +export function unsafeValues(object: T): T[keyof T][] { return Object.values(object) } @@ -77,7 +77,7 @@ export function unsafeValues(object: T): readonly T[keyo */ export function unsafeEntries( object: T, -): readonly { [K in keyof T]: readonly [K, T[K]] }[keyof T][] { +): readonly { [K in keyof T]: [K, T[K]] }[keyof T][] { // @ts-expect-error This is intentionally a wrapper function with a different type. return Object.entries(object) } @@ -87,7 +87,7 @@ export function unsafeEntries( * extra keys. */ export function unsafeFromEntries( - entries: readonly { [K in keyof T]: readonly [K, T[K]] }[keyof T][], + entries: readonly { [K in keyof T]: [K, T[K]] }[keyof T][], ): T { // @ts-expect-error This is intentionally a wrapper function with a different type. return Object.fromEntries(entries) diff --git a/app/gui/src/dashboard/utilities/input.ts b/app/common/src/utilities/file.ts similarity index 51% rename from app/gui/src/dashboard/utilities/input.ts rename to app/common/src/utilities/file.ts index fc07ee6ab218..d44bdcbf92ba 100644 --- a/app/gui/src/dashboard/utilities/input.ts +++ b/app/common/src/utilities/file.ts @@ -1,16 +1,23 @@ -/** @file Functions related to inputs. */ +/** @file Functions related to files. */ + +export type FileExtension = `.${string}` +export type MimeType = `${string}/${string}` + +export interface InputFilesOptions { + accept?: (FileExtension | MimeType)[] +} /** - * Trigger a file input. + * Open a file-selection dialog and read the file selected by the user. */ -export function inputFiles() { +export function readUserSelectedFile(options: InputFilesOptions = {}) { return new Promise((resolve, reject) => { const input = document.createElement('input') input.type = 'file' input.style.display = 'none' + if (options.accept) input.accept = options.accept.join(',') document.body.appendChild(input) input.addEventListener('input', () => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion resolve(input.files!) }) input.addEventListener('cancel', () => { diff --git a/app/gui/.dev-env b/app/gui/.dev-env new file mode 160000 index 000000000000..459a84970220 --- /dev/null +++ b/app/gui/.dev-env @@ -0,0 +1 @@ +Subproject commit 459a84970220c24282ad32c5c89e99bbf811ce2d diff --git a/app/gui/.env.development b/app/gui/.env.development new file mode 120000 index 000000000000..132b516495bc --- /dev/null +++ b/app/gui/.env.development @@ -0,0 +1 @@ +.dev-env/.env.development \ No newline at end of file diff --git a/app/gui/.env.production b/app/gui/.env.production new file mode 120000 index 000000000000..ff358514923e --- /dev/null +++ b/app/gui/.env.production @@ -0,0 +1 @@ +.dev-env/.env.prod \ No newline at end of file diff --git a/app/gui/.env.staging b/app/gui/.env.staging new file mode 120000 index 000000000000..55f42d0e2919 --- /dev/null +++ b/app/gui/.env.staging @@ -0,0 +1 @@ +.dev-env/.env.staging \ No newline at end of file diff --git a/app/gui/env.d.ts b/app/gui/env.d.ts index 9dfeb5ffa61f..0a84bf999156 100644 --- a/app/gui/env.d.ts +++ b/app/gui/env.d.ts @@ -199,3 +199,14 @@ declare global { (message: string, projectId?: string | null, metadata?: object | null): void } } + +// Add additional types for svg imports from `#/assets/*.svg` +declare module 'vite/client' { + declare module '#/assets/*.svg' { + /** + * @deprecated Prefer defined keys over importing from `#/assets/*.svg + */ + const src: string + export default src + } +} diff --git a/app/gui/integration-test/dashboard/actions/DrivePageActions.ts b/app/gui/integration-test/dashboard/actions/DrivePageActions.ts index b31d0a05be85..7c621cd79c38 100644 --- a/app/gui/integration-test/dashboard/actions/DrivePageActions.ts +++ b/app/gui/integration-test/dashboard/actions/DrivePageActions.ts @@ -10,7 +10,7 @@ import NewDataLinkModalActions from './NewDataLinkModalActions' import PageActions from './PageActions' import StartModalActions from './StartModalActions' -const ASSET_ROW_SAFE_POSITION = { x: 300, y: 16 } +const ASSET_ROW_SAFE_POSITION = { x: 150, y: 16 } /** Find the context menu. */ function locateContextMenu(page: Page) { @@ -385,12 +385,9 @@ export default class DrivePageActions extends PageActions { /** Create a new empty project. */ newEmptyProject() { - return this.step( - 'Create empty project', - (page) => page.getByText(TEXT.newEmptyProject, { exact: true }).click(), - // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 - // Uncomment once cloud execution in the browser is re-enabled. - ) /* .into(EditorPageActions) */ + return this.step('Create empty project', (page) => + page.getByText(TEXT.newEmptyProject, { exact: true }).click(), + ).into(EditorPageActions) } // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 diff --git a/app/gui/integration-test/dashboard/actions/EditorPageActions.ts b/app/gui/integration-test/dashboard/actions/EditorPageActions.ts index 3bba639a5819..7b0e8c92920d 100644 --- a/app/gui/integration-test/dashboard/actions/EditorPageActions.ts +++ b/app/gui/integration-test/dashboard/actions/EditorPageActions.ts @@ -14,4 +14,19 @@ export default class EditorPageActions extends PageActions { await this.page.waitForSelector('[data-testid=editor]', { state: 'visible' }) }) } + + /** + * Close all toast notifications. + */ + closeToastNotifications() { + return this.step('close toast notifications', async () => { + await Promise.all( + await this.page + .locator('.Toastify__toast') + .getByRole('button') + .all() + .then((buttons) => buttons.map((button) => button.click())), + ) + }) + } } diff --git a/app/gui/integration-test/dashboard/actions/api.ts b/app/gui/integration-test/dashboard/actions/api.ts index eb851271c17d..614f00e9aa45 100644 --- a/app/gui/integration-test/dashboard/actions/api.ts +++ b/app/gui/integration-test/dashboard/actions/api.ts @@ -168,6 +168,7 @@ async function mockApiInternal({ page, setupAPI }: MockParams) { userGroups: null, plan: backend.Plan.solo, isOrganizationAdmin: true, + isEnsoTeamMember: true, } const defaultOrganization: backend.OrganizationInfo = { id: defaultOrganizationId, @@ -178,6 +179,14 @@ async function mockApiInternal({ page, setupAPI }: MockParams) { website: null, subscription: {}, } + + let featureFlags: Partial = { + enableCloudExecution: true, + enableAsyncExecution: true, + enableAdvancedProjectExecutionOptions: true, + enableAssetsTableBackgroundRefresh: false, + } + const callsObjects = new Set() let totalSeats = 1 // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -650,6 +659,7 @@ async function mockApiInternal({ page, setupAPI }: MockParams) { userGroups: null, plan: backend.Plan.enterprise, isOrganizationAdmin: true, + isEnsoTeamMember: true, ...rest, } users.push(user) @@ -1235,6 +1245,7 @@ async function mockApiInternal({ page, setupAPI }: MockParams) { rootDirectoryId, userGroups: null, isOrganizationAdmin: true, + isEnsoTeamMember: true, } return currentUser }) @@ -1477,17 +1488,7 @@ async function mockApiInternal({ page, setupAPI }: MockParams) { createUserPermission, createUserGroupPermission, setFeatureFlags: (flags: Partial) => { - return page.addInitScript((flags: Partial) => { - const currentOverrideFeatureFlags = - 'overrideFeatureFlags' in window && typeof window.overrideFeatureFlags === 'object' ? - window.overrideFeatureFlags - : {} - - Object.defineProperty(window, 'overrideFeatureFlags', { - value: { ...currentOverrideFeatureFlags, ...flags }, - writable: false, - }) - }, flags) + featureFlags = { ...featureFlags, ...flags } }, // TODO: // addPermission, @@ -1501,5 +1502,16 @@ async function mockApiInternal({ page, setupAPI }: MockParams) { await setupAPI(api) } + await page.addInitScript((flags) => { + Object.defineProperty(window, 'overrideFeatureFlags', { + value: flags, + writable: false, + configurable: false, + }) + }, featureFlags) + + // Disallow any changes to the feature flags after the mock API has been initialized. + featureFlags = Object.freeze({}) + return api } diff --git a/app/gui/integration-test/dashboard/assetsTableFeatures.spec.ts b/app/gui/integration-test/dashboard/assetsTableFeatures.spec.ts index ffe279b1db83..275ee7406991 100644 --- a/app/gui/integration-test/dashboard/assetsTableFeatures.spec.ts +++ b/app/gui/integration-test/dashboard/assetsTableFeatures.spec.ts @@ -139,20 +139,16 @@ test("can't run a project in browser by default", ({ page }) => page, setupAPI: async (api) => { api.addProject({ title: 'a' }) + api.setFeatureFlags({ enableCloudExecution: false }) }, - }).driveTable.withRows(async (rows) => { - const row = rows.first() - - const startProjectButton = row.getByTestId('open-project') - await expect(startProjectButton).toBeDisabled() + }).do(() => { + expect(page.getByText(TEXT.cloudBrowserDisabledTitle)).toBeVisible() })) test("can't start an already running by another user", ({ page }) => mockAllAndLogin({ page, setupAPI: async (api) => { - await api.setFeatureFlags({ enableCloudExecution: true }) - const userGroup = api.addUserGroup('Test Group') api.addUserGroupToUser(api.defaultUser.userId, userGroup.id) diff --git a/app/gui/integration-test/dashboard/copy.spec.ts b/app/gui/integration-test/dashboard/copy.spec.ts index 7d489deefa60..c13882cf13da 100644 --- a/app/gui/integration-test/dashboard/copy.spec.ts +++ b/app/gui/integration-test/dashboard/copy.spec.ts @@ -147,7 +147,8 @@ test('move to trash', ({ page }) => .driveTable.expectPlaceholderRow() .goToCategory.trash() .driveTable.withRows(async (rows) => { - await expect(rows).toHaveText([/^New Folder 1/, /^New Folder 2/]) + await expect(rows.getByTestId('asset-row-name').getByText(/^New Folder 1/)).toBeVisible() + await expect(rows.getByTestId('asset-row-name').getByText(/^New Folder 2/)).toBeVisible() })) test('move (keyboard)', ({ page }) => @@ -186,13 +187,12 @@ test('cut (keyboard)', ({ page }) => })) test('duplicate', ({ page }) => - mockAllAndLogin({ page }) - // Assets: [0: New Project 1] - .newEmptyProject() - // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 - // Uncomment once cloud execution in the browser is re-enabled. - // .waitForEditorToLoad() - // .goToPage.drive() + mockAllAndLogin({ + page, + setupAPI: (api) => { + api.addProject({ title: 'New Project 1' }) + }, + }) .driveTable.rightClickRow(0) .contextMenu.duplicate() .driveTable.withRows(async (rows) => { @@ -204,13 +204,12 @@ test('duplicate', ({ page }) => })) test('duplicate (keyboard)', ({ page }) => - mockAllAndLogin({ page }) - // Assets: [0: New Project 1] - .newEmptyProject() - // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 - // Uncomment once cloud execution in the browser is re-enabled. - // .waitForEditorToLoad() - // .goToPage.drive() + mockAllAndLogin({ + page, + setupAPI: (api) => { + api.addProject({ title: 'New Project 1' }) + }, + }) .driveTable.clickRow(0) .press('Mod+D') .driveTable.withRows(async (rows) => { diff --git a/app/gui/integration-test/dashboard/createAsset.spec.ts b/app/gui/integration-test/dashboard/createAsset.spec.ts index 79688a9e721b..8db20ab0f219 100644 --- a/app/gui/integration-test/dashboard/createAsset.spec.ts +++ b/app/gui/integration-test/dashboard/createAsset.spec.ts @@ -26,8 +26,8 @@ test('create project', ({ page }) => .newEmptyProject() // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 // Uncomment once cloud execution in the browser is re-enabled. - // .do((thePage) => expect(locateEditor(thePage)).toBeAttached()) - // .goToPage.drive() + .waitForEditorToLoad() + .goToPage.drive() .driveTable.withRows((rows) => expect(rows).toHaveCount(1))) test('upload file', ({ page }) => diff --git a/app/gui/integration-test/dashboard/driveView.spec.ts b/app/gui/integration-test/dashboard/driveView.spec.ts index 607b039042c3..15ccbc6d1332 100644 --- a/app/gui/integration-test/dashboard/driveView.spec.ts +++ b/app/gui/integration-test/dashboard/driveView.spec.ts @@ -4,7 +4,7 @@ import { expect, test, type Locator } from '@playwright/test' import { TEXT, mockAllAndLogin } from './actions' /** Find a button to close the project. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars + function locateStopProjectButton(page: Locator) { return page.getByLabel(TEXT.stopExecution) } @@ -16,12 +16,8 @@ test('drive view', ({ page }) => }) .driveTable.expectPlaceholderRow() .newEmptyProject() - // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 - // Uncomment once cloud execution in the browser is re-enabled. - // .do(async () => { - // await expect(locateEditor(page)).toBeAttached() - // }) - // .goToPage.drive() + .waitForEditorToLoad() + .goToPage.drive() .driveTable.withRows(async (rows) => { await expect(rows).toHaveCount(1) }) @@ -29,24 +25,16 @@ test('drive view', ({ page }) => await expect(assetsTable).toBeVisible() }) .newEmptyProject() - // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 - // Uncomment once cloud execution in the browser is re-enabled. - // .do(async () => { - // await expect(locateEditor(page)).toBeAttached() - // }) - // .goToPage.drive() + .goToPage.drive() .driveTable.withRows(async (rows) => { await expect(rows).toHaveCount(2) }) - // FIXME[sb]: https://github.com/enso-org/cloud-v2/issues/1615 - // Uncomment once cloud execution in the browser is re-enabled. - // // The last opened project needs to be stopped, to remove the toast notification notifying the - // // user that project creation may take a while. Previously opened projects are stopped when the - // // new project is created. - // .driveTable.withRows(async (rows) => { - // await locateStopProjectButton(rows.nth(1)).click() - // }) - // Project context menu + // The last opened project needs to be stopped, to remove the toast notification notifying the + // user that project creation may take a while. Previously opened projects are stopped when the + // new project is created. + .driveTable.withRows(async (rows) => { + await locateStopProjectButton(rows.nth(0)).click() + }) .driveTable.rightClickRow(0) .contextMenu.moveNonFolderToTrash() .driveTable.withRows(async (rows) => { diff --git a/app/gui/integration-test/project-view/actions.ts b/app/gui/integration-test/project-view/actions.ts index 00522b0410aa..500fe10cc6bd 100644 --- a/app/gui/integration-test/project-view/actions.ts +++ b/app/gui/integration-test/project-view/actions.ts @@ -36,7 +36,7 @@ export async function expectNodePositionsInitialized(page: Page, yPos: number) { // Wait until edges are initialized and displayed correctly. await expect(page.getByTestId('broken-edge')).toBeHidden() // Wait until node sizes are initialized. - await expect(locate.graphNode(page).first().locator('.bgFill')).toBeVisible() + await expect(locate.graphNode(page).first().locator('.nodeBackground')).toBeVisible() // TODO: The yPos should not need to be a variable. Instead, first automatically positioned nodes // should always have constant known position. This is a bug caused by incorrect layout after // entering a function. To be fixed with #9255 diff --git a/app/gui/integration-test/project-view/componentBrowser.spec.ts b/app/gui/integration-test/project-view/componentBrowser.spec.ts index 95607c23504e..81f06b6c86f6 100644 --- a/app/gui/integration-test/project-view/componentBrowser.spec.ts +++ b/app/gui/integration-test/project-view/componentBrowser.spec.ts @@ -59,7 +59,10 @@ test('Different ways of opening Component Browser', async ({ page }) => { await locate.graphEditor(page).press('Enter') await expectAndCancelBrowser(page, '', 'selected') // Dragging out an edge - let outputPort = await locate.outputPortCoordinates(locate.graphNodeByBinding(page, 'selected')) + let outputPort = await locate.outputPortCoordinates( + page, + locate.graphNodeByBinding(page, 'selected'), + ) await page.mouse.click(outputPort.x, outputPort.y) await locate.graphEditor(page).click({ position: { x: 100, y: 500 } }) await expectAndCancelBrowser(page, '', 'selected') @@ -67,7 +70,7 @@ test('Different ways of opening Component Browser', async ({ page }) => { // TODO[ao] Without timeout, even the first click would be treated as double due to previous // event. Probably we need a better way to simulate double clicks. await page.waitForTimeout(600) - outputPort = await locate.outputPortCoordinates(locate.graphNodeByBinding(page, 'selected')) + outputPort = await locate.outputPortCoordinates(page, locate.graphNodeByBinding(page, 'selected')) await page.mouse.click(outputPort.x, outputPort.y) await page.mouse.click(outputPort.x, outputPort.y) await expectAndCancelBrowser(page, '', 'selected') @@ -79,15 +82,16 @@ test('Opening Component Browser from output port buttons', async ({ page }) => { // Small (+) button shown when node is hovered const node = locate.graphNodeByBinding(page, 'selected') await locate.graphNodeIcon(node).hover() - await expect(locate.createNodeFromPort(node)).toBeVisible() - await locate.createNodeFromPort(node).click({ force: true }) + const createNodeFromPortButton = await locate.createNodeFromPortButton(page, node) + await expect(createNodeFromPortButton).toBeVisible() + await createNodeFromPortButton.click({ force: true }) await expectAndCancelBrowser(page, '', 'selected') // Small (+) button shown when node is selected await page.keyboard.press('Escape') await node.click() - await expect(locate.createNodeFromPort(node)).toBeVisible() - await locate.createNodeFromPort(node).click({ force: true }) + await expect(createNodeFromPortButton).toBeVisible() + await createNodeFromPortButton.click({ force: true }) await expectAndCancelBrowser(page, '', 'selected') }) @@ -111,7 +115,10 @@ test('Graph Editor pans to Component Browser', async ({ page }) => { await page.mouse.move(100, 280) await page.mouse.up({ button: 'middle' }) await expect(locate.graphNodeByBinding(page, 'five')).toBeInViewport() - const outputPort = await locate.outputPortCoordinates(locate.graphNodeByBinding(page, 'final')) + const outputPort = await locate.outputPortCoordinates( + page, + locate.graphNodeByBinding(page, 'final'), + ) await page.mouse.click(outputPort.x, outputPort.y) await locate.graphEditor(page).click({ position: { x: 100, y: 1700 } }) await expect(locate.graphNodeByBinding(page, 'five')).not.toBeInViewport() diff --git a/app/gui/integration-test/project-view/edgeInteractions.spec.ts b/app/gui/integration-test/project-view/edgeInteractions.spec.ts index 574e68db9553..72e313795220 100644 --- a/app/gui/integration-test/project-view/edgeInteractions.spec.ts +++ b/app/gui/integration-test/project-view/edgeInteractions.spec.ts @@ -82,7 +82,7 @@ test('Conditional ports: Disabled', async ({ page }) => { // When a port is disabled, it doesn't react to hovering with a disconnected edge, // and any attempt to connect to it should open the CB. - const outputPort = await outputPortCoordinates(graphNodeByBinding(page, 'final')) + const outputPort = await outputPortCoordinates(page, graphNodeByBinding(page, 'final')) await page.mouse.click(outputPort.x, outputPort.y) await conditionalPort.hover() await expect(conditionalPort).not.toHaveClass(/isTarget/) @@ -101,7 +101,7 @@ test('Conditional ports: Enabled', async ({ page }) => { await page.keyboard.down(CONTROL_KEY) await expect(conditionalPort).toHaveClass(/enabled/) - const outputPort = await outputPortCoordinates(graphNodeByBinding(page, 'final')) + const outputPort = await outputPortCoordinates(page, graphNodeByBinding(page, 'final')) await page.mouse.click(outputPort.x, outputPort.y) await conditionalPort.hover() await expect(conditionalPort).toHaveClass(/isTarget/) diff --git a/app/gui/integration-test/project-view/graphNodeVisualization.spec.ts b/app/gui/integration-test/project-view/graphNodeVisualization.spec.ts index 6b8d9ddd0861..271641addc76 100644 --- a/app/gui/integration-test/project-view/graphNodeVisualization.spec.ts +++ b/app/gui/integration-test/project-view/graphNodeVisualization.spec.ts @@ -29,7 +29,7 @@ test('Node can open and load visualization', async ({ page }) => { test('Previewing visualization', async ({ page }) => { await actions.goToGraph(page) const node = locate.graphNode(page).last() - const port = await locate.outputPortCoordinates(node) + const port = await locate.outputPortCoordinates(page, node) await page.keyboard.down('Meta') await page.keyboard.down('Control') await expect(locate.anyVisualization(page)).toBeHidden() diff --git a/app/gui/integration-test/project-view/locate.ts b/app/gui/integration-test/project-view/locate.ts index e8a4a04b769f..900014bda609 100644 --- a/app/gui/integration-test/project-view/locate.ts +++ b/app/gui/integration-test/project-view/locate.ts @@ -13,7 +13,7 @@ function or(a: (page: Locator | Page) => Locator, b: (page: Locator | Page) => L /** Show/hide visualization button */ export function toggleVisualizationButton(page: Locator | Page) { - return page.getByLabel('Visualization', { exact: true }) + return page.getByLabel('Show/Hide visualization') } /** Visualization Selector button */ @@ -83,7 +83,6 @@ export const componentMenu = componentLocator('.ComponentMenu') export const addNewNodeButton = componentLocator('.PlusButton') export const componentBrowser = componentLocator('.ComponentBrowser') export const nodeOutputPort = componentLocator('.outputPortHoverArea') -export const createNodeFromPort = componentLocator('.CreateNodeFromPortButton .plusIcon') export const editorRoot = componentLocator('.CodeMirror') export const nodeComment = componentLocator('.GraphNodeComment') export const nodeCommentContent = componentLocator('.GraphNodeComment div[contentEditable]') @@ -185,11 +184,22 @@ export async function edgesToNode(page: Page, node: Locator) { * Returns a location that can be clicked to activate an output port. * Using a `Locator` would be better, but `position` option of `click` doesn't work. */ -export async function outputPortCoordinates(node: Locator) { - const outputPortArea = await node.locator('.outputPortHoverArea').boundingBox() +export async function outputPortCoordinates(page: Page, node: Locator) { + const nodeId = await node.getAttribute('data-node-id') + const outputPortArea = await page + .locator(`.GraphNodeOutputPorts[data-output-ports-node-id="${nodeId}"] .outputPortHoverArea`) + .boundingBox() expect(outputPortArea).not.toBeNull() assert(outputPortArea) const centerX = outputPortArea.x + outputPortArea.width / 2 const bottom = outputPortArea.y + outputPortArea.height return { x: centerX, y: bottom - 2.0 } } + +/** Returns a locator for the create node from port button. */ +export async function createNodeFromPortButton(page: Page, node: Locator) { + const nodeId = await node.getAttribute('data-node-id') + return page.locator( + `.GraphNodeOutputPorts[data-output-ports-node-id="${nodeId}"] .CreateNodeFromPortButton .plusIcon`, + ) +} diff --git a/app/gui/integration-test/project-view/rightPanel.spec.ts b/app/gui/integration-test/project-view/rightPanel.spec.ts index a6b58969f304..64cb6dff1da6 100644 --- a/app/gui/integration-test/project-view/rightPanel.spec.ts +++ b/app/gui/integration-test/project-view/rightPanel.spec.ts @@ -21,6 +21,22 @@ test('Main method documentation', async ({ page }) => { for (const img of await rightDock.getByAltText('Image').all()) await expect(img).toHaveJSProperty('naturalWidth', 3) + // Nested lists are rendered with hierarchical indentation + const listItemPos = (text: string) => + locate + .editorRoot(rightDock) + .locator('span.cm-BulletList-item span') + .getByText(text, { exact: true }) + .boundingBox() + const listLevel0 = await listItemPos('Outer list element') + const listLevel1 = await listItemPos('Nested list element') + const listLevel2 = await listItemPos('Very nested list element') + expect(listLevel0).not.toBeNull() + expect(listLevel1).not.toBeNull() + expect(listLevel2).not.toBeNull() + expect(listLevel0!.x).toBeLessThan(listLevel1!.x) + expect(listLevel1!.x).toBeLessThan(listLevel2!.x) + // Documentation hotkey closes right-dock.p await page.keyboard.press(`${CONTROL_KEY}+D`) await expect(locate.rightDock(page)).toBeHidden() diff --git a/app/gui/integration-test/project-view/tableVisualisation.spec.ts b/app/gui/integration-test/project-view/tableVisualisation.spec.ts index c9ac40573ab5..3d2f3103ecdd 100644 --- a/app/gui/integration-test/project-view/tableVisualisation.spec.ts +++ b/app/gui/integration-test/project-view/tableVisualisation.spec.ts @@ -94,7 +94,7 @@ test('Copy/paste from Table Visualization', async ({ page, context }) => { await page.mouse.down({ button: 'right' }) await page.mouse.up({ button: 'right' }) await page.getByText('Copy with Headers').click() - await expectClipboard.toMatch(/^Column #1\tColumn #2\r\n0,0\t0,1\r\n1,0\t1,1\r\n2,0\t2,1$/) + await expectClipboard.toMatch(/^Column 1\tColumn 2\r\n0,0\t0,1\r\n1,0\t1,1\r\n2,0\t2,1$/) }) async function expectTableInputContent(page: Page, node: Locator) { diff --git a/app/gui/integration-test/project-view/widgets.spec.ts b/app/gui/integration-test/project-view/widgets.spec.ts index 8d32cb4b2350..bf00f5ef75f0 100644 --- a/app/gui/integration-test/project-view/widgets.spec.ts +++ b/app/gui/integration-test/project-view/widgets.spec.ts @@ -601,7 +601,7 @@ test('Table widget', async ({ page }) => { // Create first column await widget.getByRole('button', { name: 'Add new column' }).click() - await expect(widget.locator('.ag-header-cell-text')).toHaveText(['#', 'Column #1']) + await expect(widget.locator('.ag-header-cell-text')).toHaveText(['#', 'Column 1']) await expect(widget.locator('.ag-cell')).toHaveText(['0', '', '']) // Putting first value @@ -612,14 +612,14 @@ test('Table widget', async ({ page }) => { await expect(widget.locator('.ag-cell')).toHaveText(['0', 'Value', '', '1', '', '']) // Renaming column - await widget.locator('.ag-header-cell-text', { hasText: 'Column #1' }).first().click() + await widget.locator('.ag-header-cell-text', { hasText: 'Column 1' }).first().click() await page.keyboard.type('Header') await page.keyboard.press('Enter') await expect(widget.locator('.ag-header-cell-text')).toHaveText(['#', 'Header']) // Adding next column await widget.getByRole('button', { name: 'Add new column' }).click() - await expect(widget.locator('.ag-header-cell-text')).toHaveText(['#', 'Header', 'Column #2']) + await expect(widget.locator('.ag-header-cell-text')).toHaveText(['#', 'Header', 'Column 2']) await expect(widget.locator('.ag-cell')).toHaveText(['0', 'Value', '', '', '1', '', '', '']) // Switching edit between cells and headers - check we will never edit two things at once. diff --git a/app/gui/package.json b/app/gui/package.json index 52786d674a1c..366afba2a1da 100644 --- a/app/gui/package.json +++ b/app/gui/package.json @@ -209,7 +209,7 @@ "vite": "^6.0.9", "vite-plugin-vue-devtools": "7.6.8", "vite-plugin-wasm": "^3.4.1", - "vitest": "3.0.3", + "vitest": "3.0.5", "vue-react-wrapper": "^0.3.1", "vue-tsc": "^2.2.0", "yaml": "^2.7.0", diff --git a/app/gui/scripts/generateIconMetadata.mjs b/app/gui/scripts/generateIconMetadata.mjs index 242b2c76f8fd..e93936267f65 100644 --- a/app/gui/scripts/generateIconMetadata.mjs +++ b/app/gui/scripts/generateIconMetadata.mjs @@ -15,7 +15,7 @@ await fs.writeFile( // Please run \`bazel run //:write_all\` to regenerate this file whenever \`icons.svg\` is changed. /** All icon names present in icons.svg. */ -const iconNames = [ +export const iconNames = [ ${iconNames?.map((name) => ` '${name}',`).join('\n')} ] as const diff --git a/app/gui/src/App.vue b/app/gui/src/App.vue index c81288cfaf3e..10c95f54906f 100644 --- a/app/gui/src/App.vue +++ b/app/gui/src/App.vue @@ -2,10 +2,12 @@ import '@/assets/base.css' import TooltipDisplayer from '@/components/TooltipDisplayer.vue' import ProjectView from '@/ProjectView.vue' +import { initializeActions } from '@/providers/action' import { provideAppClassSet } from '@/providers/appClass' import { provideGuiConfig } from '@/providers/guiConfig' +import { provideInteractionHandler } from '@/providers/interactionHandler' import { provideTooltipRegistry } from '@/providers/tooltipRegistry' -import { registerAutoBlurHandler } from '@/util/autoBlur' +import { registerAutoBlurHandler, registerGlobalBlurHandler } from '@/util/autoBlur' import { baseConfig, configValue, mergeConfig, type ApplicationConfigValue } from '@/util/config' import { urlParams } from '@/util/urlParams' import { useQueryClient } from '@tanstack/vue-query' @@ -36,8 +38,11 @@ const ReactRootWrapper = applyPureReactInVue(ReactRoot) const queryClient = useQueryClient() provideGuiConfig(appConfigValue) +provideInteractionHandler() +initializeActions() registerAutoBlurHandler() +registerGlobalBlurHandler() onMounted(() => { if (appConfigValue.value.window.vibrancy) { @@ -56,6 +61,7 @@ onMounted(() => { @authenticated="onAuthenticated ?? (() => {})" /> +
@@ -67,6 +73,29 @@ onMounted(() => { flex-direction: column; } +#floatingLayer { + position: absolute; + color: var(--color-text); + font-family: var(--font-sans); + font-weight: 500; + font-size: 11.5px; + line-height: 20px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + top: 0; + left: 0; + /* The size isn't important, except it must be non-zero for `floating-ui` to calculate the scale factor. */ + width: 1px; + height: 1px; + contain: layout size style; + will-change: transform; + pointer-events: none; + > * { + pointer-events: auto; + } +} + /* TODO [ao]: Veaury adds a wrapping elements which have `style="all: unset"`, which in turn breaks our layout. See https://github.com/gloriasoft/veaury/issues/158 diff --git a/app/gui/src/dashboard/App.tsx b/app/gui/src/dashboard/App.tsx index 89aeae155af9..87e94057adb5 100644 --- a/app/gui/src/dashboard/App.tsx +++ b/app/gui/src/dashboard/App.tsx @@ -94,6 +94,7 @@ import { STATIC_QUERY_OPTIONS } from '#/utilities/reactQuery' import { useInitAuthService } from '#/authentication/service' import { InvitedToOrganizationModal } from '#/modals/InvitedToOrganizationModal' +import { CloudBrowserDisabledLayout } from '#/providers/AuthProvider' import { useMutation } from '@tanstack/react-query' import { useOffline } from './hooks/offlineHooks' @@ -471,21 +472,28 @@ function AppRouter(props: AppRouterProps) { }> }> }> - }> - }> - }> - } /> - - - - - - - } - /> + } + > + }> + }> + }> + } + /> + + + + + + + } + /> + @@ -505,8 +513,14 @@ function AppRouter(props: AppRouterProps) { }> - }> - } /> + }> + }> + } + > + } /> + + diff --git a/app/gui/src/dashboard/appUtils.tsx b/app/gui/src/dashboard/appUtils.tsx index 593f02ca64b0..5d59fee28231 100644 --- a/app/gui/src/dashboard/appUtils.tsx +++ b/app/gui/src/dashboard/appUtils.tsx @@ -6,6 +6,8 @@ // === Paths === +export const OPEN_IDE_DEEPLINK = 'enso://' + /** Path to the root of the app (i.e., the Cloud dashboard). */ export const DASHBOARD_PATH = '/' /** Path to the login page. */ diff --git a/app/gui/src/dashboard/authentication/service.ts b/app/gui/src/dashboard/authentication/service.ts index 0394eb6bc8a7..7c1d01b77f24 100644 --- a/app/gui/src/dashboard/authentication/service.ts +++ b/app/gui/src/dashboard/authentication/service.ts @@ -230,8 +230,21 @@ function setDeepLinkHandler(logger: Logger, navigate: (url: string) => void) { // If the user is being redirected after clicking the registration confirmation link in their // email, then the URL will be for the confirmation page path. case '//auth/confirmation': { - const redirectUrl = `${appUtils.CONFIRM_REGISTRATION_PATH}${url.search}` + const verificationCode = url.searchParams.get('verification_code') + + let redirectUrl = '' + + // In case if the verifaction code is present, then we need to navigate to the confirmation + // page, because the URL is a deep link for confirmation page and user is not yet confirmed. + if (verificationCode != null) { + redirectUrl = `${appUtils.CONFIRM_REGISTRATION_PATH}${url.search}` + } else { + // Otherwise, we need to navigate to the setup page, because user is already confirmed. + // but the redirect link navigates to the confirmation page, for some reason. + redirectUrl = `${appUtils.SETUP_PATH}${url.search}` + } navigate(redirectUrl) + break } case '//auth': { @@ -281,7 +294,7 @@ function setDeepLinkHandler(logger: Logger, navigate: (url: string) => void) { break } default: { - logger.error(`Ignoring unknown deep link '${urlString}'.`) + navigate(pathname.slice(1)) break } } diff --git a/app/gui/src/dashboard/components/AriaComponents/Button/Button.stories.tsx b/app/gui/src/dashboard/components/AriaComponents/Button/Button.stories.tsx index 6eec46bd6c40..801eafa992be 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Button/Button.stories.tsx +++ b/app/gui/src/dashboard/components/AriaComponents/Button/Button.stories.tsx @@ -9,7 +9,7 @@ import { expect, userEvent, within } from '@storybook/test' import { Button, type BaseButtonProps } from '.' import { Badge } from '../../Badge' -type Story = StoryObj> +type Story = StoryObj> const variants = [ 'primary', @@ -40,7 +40,7 @@ export default { addonStart: { control: false }, addonEnd: { control: false }, }, -} as Meta> +} satisfies Meta> export const Variants: Story = { render: () => ( diff --git a/app/gui/src/dashboard/components/AriaComponents/Button/Button.tsx b/app/gui/src/dashboard/components/AriaComponents/Button/Button.tsx index 327ea8fd4791..cee8ed33c59b 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Button/Button.tsx +++ b/app/gui/src/dashboard/components/AriaComponents/Button/Button.tsx @@ -10,11 +10,10 @@ import { } from 'react' import * as aria from '#/components/aria' -import { StatelessSpinner } from '#/components/StatelessSpinner' -import SvgMask from '#/components/SvgMask' - import { useVisualTooltip } from '#/components/AriaComponents/Text' import { Tooltip, TooltipTrigger } from '#/components/AriaComponents/Tooltip' +import { Icon as IconComponent } from '#/components/Icon' +import { StatelessSpinner } from '#/components/StatelessSpinner' import { useEventCallback } from '#/hooks/eventCallbackHooks' import { forwardRef } from '#/utilities/react' import { ButtonGroup, ButtonGroupJoin } from './ButtonGroup' @@ -28,7 +27,10 @@ const ICON_LOADER_DELAY = 150 // Manually casting types to make TS infer the final type correctly (e.g. RenderProps in icon) // eslint-disable-next-line no-restricted-syntax export const Button = memo( - forwardRef(function Button(props: ButtonProps, ref: ForwardedRef) { + forwardRef(function Button( + props: ButtonProps, + ref: ForwardedRef, + ) { props = useMergedButtonStyles(props) const { className, @@ -252,7 +254,9 @@ export const Button = memo( ) }), -) as unknown as ((props: ButtonProps & { ref?: ForwardedRef }) => ReactNode) & { +) as unknown as (( + props: ButtonProps & { ref?: ForwardedRef }, +) => ReactNode) & { // eslint-disable-next-line @typescript-eslint/naming-convention Group: typeof ButtonGroup // eslint-disable-next-line @typescript-eslint/naming-convention @@ -382,7 +386,7 @@ const Icon = memo(function Icon(props: IconProps) { const actualIcon = (() => { return typeof icon === 'string' ? - + {icon} : {icon} })() diff --git a/app/gui/src/dashboard/components/AriaComponents/Button/CloseButton.tsx b/app/gui/src/dashboard/components/AriaComponents/Button/CloseButton.tsx index 120d13d2dbe5..265ae955eca5 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Button/CloseButton.tsx +++ b/app/gui/src/dashboard/components/AriaComponents/Button/CloseButton.tsx @@ -8,10 +8,15 @@ import { Button } from './Button' import type { ButtonProps } from './types' /** Props for a {@link CloseButton}. */ -export type CloseButtonProps = Omit +export type CloseButtonProps = Omit< + ButtonProps, + 'children' | 'rounding' | 'size' | 'variant' +> /** A styled button with a close icon that appears on hover. */ -export const CloseButton = memo(function CloseButton(props: CloseButtonProps) { +export const CloseButton = memo(function CloseButton( + props: CloseButtonProps, +) { const { getText } = useText() const { diff --git a/app/gui/src/dashboard/components/AriaComponents/Button/CopyButton.tsx b/app/gui/src/dashboard/components/AriaComponents/Button/CopyButton.tsx index e2567b6837a7..5a5f57801211 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Button/CopyButton.tsx +++ b/app/gui/src/dashboard/components/AriaComponents/Button/CopyButton.tsx @@ -17,7 +17,8 @@ import type { ButtonProps } from './types' // ================== /** Props for a {@link CopyButton}. */ -export interface CopyButtonProps extends Omit { +export interface CopyButtonProps + extends Omit, 'icon' | 'loading' | 'onPress'> { /** The text to copy to the clipboard. */ readonly copyText: string /** @@ -38,7 +39,7 @@ export interface CopyButtonProps extends Omit(props: CopyButtonProps) { const { variant = 'icon', copyIcon = CopyIcon, diff --git a/app/gui/src/dashboard/components/AriaComponents/Button/types.ts b/app/gui/src/dashboard/components/AriaComponents/Button/types.ts index 797a6f5957c0..72a1a7c5761b 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Button/types.ts +++ b/app/gui/src/dashboard/components/AriaComponents/Button/types.ts @@ -42,11 +42,11 @@ export interface LinkRenderProps extends aria.LinkRenderProps { } /** Props for a Button. */ -export type ButtonProps = - | (BaseButtonProps & +export type ButtonProps = + | (BaseButtonProps & Omit & PropsWithoutHref) - | (BaseButtonProps & + | (BaseButtonProps & Omit & PropsWithHref) @@ -61,7 +61,7 @@ interface PropsWithoutHref { } /** Base props for a button. */ -export interface BaseButtonProps +export interface BaseButtonProps extends Omit, TestIdProps { /** If `true`, the loader will not be shown. */ @@ -70,7 +70,7 @@ export interface BaseButtonProps readonly tooltip?: ReactElement | string | false | null readonly tooltipPlacement?: aria.Placement /** The icon to display in the button */ - readonly icon?: IconProp + readonly icon?: IconProp /** When `true`, icon will be shown only when hovered. */ readonly showIconOnHover?: boolean /** diff --git a/app/gui/src/dashboard/components/AriaComponents/Button/variants.ts b/app/gui/src/dashboard/components/AriaComponents/Button/variants.ts index 904d78500504..9f056dd1e286 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Button/variants.ts +++ b/app/gui/src/dashboard/components/AriaComponents/Button/variants.ts @@ -316,13 +316,13 @@ export const BUTTON_STYLES = tv({ { variant: 'icon', class: { base: 'flex-none' } }, { variant: 'icon', isDisabled: true, class: { base: 'opacity-50 cursor-not-allowed' } }, + { variant: 'link', class: 'h-auto' }, { variant: 'link', isFocused: true, class: 'focus-visible:outline-offset-1' }, - { variant: 'link', size: 'xxsmall', class: 'font-medium' }, - { variant: 'link', size: 'xsmall', class: 'font-medium' }, - { variant: 'link', size: 'small', class: 'font-medium' }, - { variant: 'link', size: 'medium', class: 'font-medium' }, - { variant: 'link', size: 'large', class: 'font-medium' }, - { variant: 'link', size: 'hero', class: 'font-medium' }, + { + variant: 'link', + size: ['xxsmall', 'xsmall', 'small', 'medium', 'large', 'hero'], + class: 'font-medium', + }, { variant: 'icon', isDisabled: true, class: 'opacity-50' }, @@ -338,43 +338,33 @@ export const BUTTON_STYLES = tv({ isJoined: true, position: ['first', 'middle'], variant: 'primary', - class: { - joinSeparator: 'text-background', - }, + class: { joinSeparator: 'text-background' }, }, { isJoined: true, position: ['first', 'middle'], variant: 'accent', - class: { - joinSeparator: 'text-background', - }, + class: { joinSeparator: 'text-background' }, }, { isJoined: true, position: ['first', 'middle'], variant: 'delete', - class: { - joinSeparator: 'text-background', - }, + class: { joinSeparator: 'text-background' }, }, { isJoined: true, position: ['first', 'middle'], variant: 'ghost', - class: { - joinSeparator: 'text-primary/20', - }, + class: { joinSeparator: 'text-primary/20' }, }, { isJoined: true, position: ['first', 'middle'], variant: 'ghost-fading', - class: { - joinSeparator: 'text-primary/20', - }, + class: { joinSeparator: 'text-primary/20' }, }, { diff --git a/app/gui/src/dashboard/components/AriaComponents/Dialog/Close.tsx b/app/gui/src/dashboard/components/AriaComponents/Dialog/Close.tsx index f49ea796f9c8..61eaad4d3c3e 100644 --- a/app/gui/src/dashboard/components/AriaComponents/Dialog/Close.tsx +++ b/app/gui/src/dashboard/components/AriaComponents/Dialog/Close.tsx @@ -4,25 +4,23 @@ * Close button for a dialog. */ -import invariant from 'tiny-invariant' - import { useEventCallback } from '#/hooks/eventCallbackHooks' import { type ButtonProps, Button } from '../Button' import * as dialogProvider from './DialogProvider' /** Props for {@link Close} component. */ -export type CloseProps = ButtonProps +export type CloseProps = ButtonProps /** Close button for a dialog. */ -export function Close(props: CloseProps) { - const dialogContext = dialogProvider.useDialogContext() - - invariant(dialogContext, 'Close must be used inside a DialogProvider') +export function Close(props: CloseProps) { + const dialogContext = dialogProvider.useDialogStrictContext() - const onPressCallback = useEventCallback>((event) => { - dialogContext.close() - return props.onPress?.(event) - }) + const onPressCallback = useEventCallback['onPress']>>( + (event) => { + dialogContext.close() + return props.onPress?.(event) + }, + ) return