diff --git a/.bazelrc b/.bazelrc index a5905788f7..c61ae090e6 100644 --- a/.bazelrc +++ b/.bazelrc @@ -30,6 +30,7 @@ common --action_env=ANDROID_HOME="" common --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0 common --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu +common --extra_toolchains=//bazel/toolchains:baselibs_libclang_toolchain common --host_platform=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix common --//score/json:base_library=nlohmann diff --git a/BUILD b/BUILD index e82782091e..ed9acbd334 100644 --- a/BUILD +++ b/BUILD @@ -15,6 +15,7 @@ load("@hedron_compile_commands//:refresh_compile_commands.bzl", "refresh_compile load("@score_bazel_tools_cc//quality:defs.bzl", "quality_clang_tidy_config") load("@score_docs_as_code//:docs.bzl", "docs") load("@score_tooling//:defs.bzl", "copyright_checker", "dash_license_checker") +load("@score_tooling//bazel/rules/rules_score:rules_score.bzl", "dependable_element") load("@score_tooling//third_party/format:macros.bzl", "use_format_targets") load("//:project_config.bzl", "PROJECT_CONFIG") load(":qemu.bzl", "qemu_aarch64") @@ -95,6 +96,12 @@ docs( "@score_process_description//:needs_json_file", ], source_dir = "docs", + # Take test links from the *.lobster activity pools emitted by lobster-gtest + # instead of scanning bazel-testlogs/**/test.xml. The pools are produced by + # every build of the dependable_element()/component() targets, so the + # testcase needs no longer depend on the cc_tests having been named + # explicitly in a `bazel test` invocation. + testlink_source = "lobster", ) # Generate `compile_commands.json`. @@ -224,3 +231,50 @@ quality_clang_tidy_config( unsupported_flags = [], visibility = ["//visibility:public"], ) + +# Complete SEooC for baselibs, assembling requirements, AoUs, architecture +# and the implementing component(s) into a single certifiable dependable +# element. This is baselibs' single, repo-wide dependable element (not +# scoped per component), so it lives here in the root BUILD rather than in +# an individual component's own BUILD file; its own artifact targets +# (requirements, AoUs, architecture diagram, FMEA) still live in +# //score/bitmanipulation, hence the fully-qualified labels below instead of +# same-package ":name" references. +# +# requirements points at feat_req_baselibs, not comp_req_bitmanipulation: +# dependable_element.requirements only accepts targets providing +# FeatureRequirementsInfo/AssumedSystemRequirementsInfo. comp_req_bitmanipulation +# (ComponentRequirementsInfo) is already pulled in transitively via +# `components` -> component_bitmanipulation's own `requirements` attribute. +# feat_req_baselibs converts all 14 baselibs feature requirements; as long as +# component_bitmanipulation is the only component wired in below, this +# report's "Feature Requirements" coverage stays well below 100% (only +# bitmanipulation's own feat_req is ever referenced by a Component +# Requirement) - a reporting-precision concern only, not a build/test +# failure under maturity=development. Adding more baselibs components here +# over time is expected to raise that coverage. +# +# dependability_analysis wraps fmea_bitmanipulation, a TRLC re-expression of +# the failure modes/control measures already analysed as prose in +# score/bitmanipulation/docs/safety_analysis/fmea.rst. tests is empty for +# now: there are no system-level integration tests beyond the unit tests +# already wired via unit(). +dependable_element( + name = "dependable_element_baselibs", + assumptions_of_use = ["//score/bitmanipulation:aous_bitmanipulation"], + requirements = ["@score_platform//docs/features/baselibs/requirements:feat_req_baselibs"], + architectural_design = ["//score/bitmanipulation:arch_design_bitmanipulation"], + dependability_analysis = ["//score/bitmanipulation:dependability_analysis_bitmanipulation"], + components = ["//score/bitmanipulation:component_bitmanipulation"], + tests = [], + integrity_level = "B", + # This SEooC is still in development: component_bitmanipulation has no + # test_case_coverage_lock yet, so the "Test Case Coverage" lobster level + # has no data. maturity="release" (the default) force-emits that level + # empty and fails the build on every Component Requirement missing a + # coverage-lock-backed reference. maturity="development" omits empty + # checking levels instead, downgrading such gaps to warnings until the + # lock file is introduced. + maturity = "development", + visibility = ["//visibility:public"], +) diff --git a/MODULE.bazel b/MODULE.bazel index 5c61e0ef75..72932c70c3 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -101,8 +101,45 @@ bazel_dep(name = "score_process_description", version = "2.1.2") bazel_dep(name = "score_tooling", version = "2.2.1", dev_dependency = True) +# Playground experiment: point score_tooling at the poc/rst-package-param +# branch (pushed), which has newer rules_score features (package= +# overrides, req_kind directive filtering, [version==N] qualifier +# stripping in derived_from/satisfies) not yet present in the registry's +# score_tooling 2.2.1 release. +git_override( + module_name = "score_tooling", + commit = "a429b1cbfdefe8a2b6d54284640eaeefab0b27b5", + remote = "https://github.com/eclipse-score/tooling.git", +) + +# Playground experiment: point score_docs_as_code at the pushed +# playground/bitmanipulation-seooc-lobster-report branch, which carries the +# score_lobster_report Sphinx extension (renders a pre-built Lobster +# traceability JSON report as a table on a docs page) plus the lobster_parser +# test-link producer selected via docs(testlink_source = "lobster"). +# Both mirror how score_source_code_linker reads build artifacts off disk at +# Sphinx build time instead of depending on the (testonly) test targets through +# the Bazel graph. +git_override( + module_name = "score_docs_as_code", + commit = "03972ae89132e8ba77623cc7d788308d2def0ec3", + remote = "https://github.com/eclipse-score/docs-as-code.git", +) + bazel_dep(name = "score_platform", version = "0.7.1") +# Playground experiment: point score_platform at the +# playground/bitmanipulation-seooc branch of the score checkout instead of +# the registry version, so we can reference its docs/features RST sources +# (e.g. the baselibs feature requirements) directly. This commit reverts +# the earlier bitmanipulation.rst extraction (merged back into index.rst; +# feat_req_bitmanipulation removed, only feat_req_baselibs remains). +git_override( + module_name = "score_platform", + commit = "10d492b0fb7747734220ea213d67e2e1b9a31dc5", + remote = "https://github.com/eclipse-score/score.git", +) + ## Configure the python toolchain bazel_dep(name = "rules_python", version = "1.8.5") @@ -136,7 +173,11 @@ llvm.toolchain( llvm_version = "22.1.7", stdlib = {"linux-x86_64": "stdc++"}, ) -use_repo(llvm, "llvm_toolchain") + +# "llvm_toolchain_llvm" exposes the raw LLVM distribution (libclang.so, C++ +# include dirs), needed to register our own libclang_toolchain for +# score_tooling's unit()/component() cpp_parser (see //bazel/toolchains). +use_repo(llvm, "llvm_toolchain", "llvm_toolchain_llvm") deb = use_repo_rule("@download_utils//download/deb:defs.bzl", "download_deb") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 1a50552faf..d46770bb55 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -42,7 +42,6 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.4/MODULE.bazel": "ccc41028429f894b02fde7ef67d416cba3ba5084ed9ddb9bb6107aa82d118776", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.21.0/MODULE.bazel": "77dc393c43ad79398b05865444c5200c6f1aae6765615544f2c7730b5858d533", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.21.0/source.json": "062b1d3dba8adcfeb28fe60c185647f5a53ec0487ffe93cf0ae91566596e4b49", "https://bcr.bazel.build/modules/aspect_rules_js/1.33.1/MODULE.bazel": "db3e7f16e471cf6827059d03af7c21859e7a0d2bc65429a3a11f005d46fc501b", @@ -51,22 +50,15 @@ "https://bcr.bazel.build/modules/aspect_rules_js/2.3.8/MODULE.bazel": "74bf20a7a6bd5f2be09607fdb4196cfd6f203422ea271752ec2b1afe95426101", "https://bcr.bazel.build/modules/aspect_rules_js/2.3.8/source.json": "411ec9d79d6f5fe8a083359588c21d01a5b48d88a2cbd334a4c90365015b7836", "https://bcr.bazel.build/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "e767c5dbfeb254ec03275a7701b5cfde2c4d2873676804bc7cb27ddff3728fed", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.0.3/MODULE.bazel": "ed0fe929647ba21d2041e14ea3d757133ca306b72d4998e8a3d0d2f515196765", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.3.1/MODULE.bazel": "06ce330900a7d6403bc8d88e5dfad6aeeb8ae40179f66bb89e69c8bf6f6b1a0b", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.4.2/MODULE.bazel": "78d025facf6fa675fd6f0b62fd6a9a2bec7ef5ae1e288e5b53f4383b98017105", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.4.4/MODULE.bazel": "24459eeeeb084bc3e7628c338e494746718bc17b3a3cbd94415c8df5c7c6dc37", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.5.3/MODULE.bazel": "7fee71b11be63f1cf0458cd8c731712a0e672d0bb6df8879ed70249bf8dfdfdc", "https://bcr.bazel.build/modules/aspect_rules_lint/2.0.0/MODULE.bazel": "1f4c81edd9af0c54e65dedbe36653fc63dc9a91605313d54d5ab371f853d693c", "https://bcr.bazel.build/modules/aspect_rules_lint/2.3.0/MODULE.bazel": "4d36bce3c1347bb4fed5906877dce0e683cb207f4032711aff32334003bcf835", "https://bcr.bazel.build/modules/aspect_rules_lint/2.5.0/MODULE.bazel": "24f49acb3b8375fa138ba6ab53bcf517ae92529770a04ab04d47c958ff47b63e", "https://bcr.bazel.build/modules/aspect_rules_lint/2.5.0/source.json": "8beadb1db5fa4b5e36769a5247c200a877fbc9f397dc10b5aa33e76099483070", - "https://bcr.bazel.build/modules/aspect_rules_py/1.0.0/MODULE.bazel": "8eb29876512d3242af50a424300bec5c5f8957b455963df5f618cb7fd4e8ae19", "https://bcr.bazel.build/modules/aspect_rules_py/1.4.0/MODULE.bazel": "6fd29b93207a31445d5d3ab9d9882fd5511e43c95e8e82e7492872663720fd44", "https://bcr.bazel.build/modules/aspect_rules_py/1.6.3/MODULE.bazel": "a34d989f9a258f478b40f69a0c1dd0a810b65173681b459c296ffeebabd997b0", "https://bcr.bazel.build/modules/aspect_rules_py/1.6.3/source.json": "aac06d362804a5a4c1424efc37fc1ded6c6ac7d8be84ef28f735944f8a1f884d", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.0/MODULE.bazel": "d0045b5eabb012be550a609589b3e5e47eba682344b19cfd9365d4d896ed07df", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.0/source.json": "5593e3f1cd0dd5147f7748e163307fd5c2e1077913d6945b58739ad8d770a290", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.5/MODULE.bazel": "5a3c8013c3ba9ebc0a65efda40e4376b869e1260873c98020504feed55244ce8", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "aa975a83e72bcaac62ee61ab12b788ea324a1d05c4aab28aadb202f647881679", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/source.json": "786cbc49377fb6bf4859aec5b1c61f8fc26b08e9fdb929e2dde2e1e2a406bd24", @@ -81,7 +73,6 @@ "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", - "https://bcr.bazel.build/modules/bazel_features/1.2.0/MODULE.bazel": "122b2b606622afbaa498913d54f52d9bcd2d19a5edd1bd6d6c5aa17441c4d5f9", "https://bcr.bazel.build/modules/bazel_features/1.20.0/MODULE.bazel": "8b85300b9c8594752e0721a37210e34879d23adc219ed9dc8f4104a4a1750920", "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", @@ -129,7 +120,6 @@ "https://bcr.bazel.build/modules/boringssl/0.20240913.0/MODULE.bazel": "fcaa7503a5213290831a91ed1eb538551cf11ac0bc3a6ad92d0fef92c5bd25fb", "https://bcr.bazel.build/modules/boringssl/0.20241024.0/MODULE.bazel": "b540cff73d948cb79cb0bc108d7cef391d2098a25adabfda5043e4ef548dbc87", "https://bcr.bazel.build/modules/boringssl/0.20241024.0/source.json": "d843092e682b84188c043ac742965d7f96e04c846c7e338187e03238674909a9", - "https://bcr.bazel.build/modules/buildifier_prebuilt/6.1.2/MODULE.bazel": "2ef4962c8b0b6d8d21928a89190755619254459bc67f870dc0ccb9ba9952d444", "https://bcr.bazel.build/modules/buildifier_prebuilt/6.4.0/MODULE.bazel": "37389c6b5a40c59410b4226d3bb54b08637f393d66e2fa57925c6fcf68e64bf4", "https://bcr.bazel.build/modules/buildifier_prebuilt/7.3.1/MODULE.bazel": "537faf0ad9f5892910074b8e43b4c91c96f1d5d86b6ed04bdbe40cf68aa48b68", "https://bcr.bazel.build/modules/buildifier_prebuilt/8.2.0.2/MODULE.bazel": "a9b689711d5b69f9db741649b218c119b9fdf82924ba390415037e09798edd03", @@ -212,7 +202,6 @@ "https://bcr.bazel.build/modules/libpfm/4.11.0.bcr.1/MODULE.bazel": "e5362dadc90aab6724c83a2cc1e67cbed9c89a05d97fb1f90053c8deb1e445c8", "https://bcr.bazel.build/modules/libpfm/4.11.0.bcr.1/source.json": "0646414d9037f8aad148781dd760bec90b0b25ac12fda5e03f8aadbd6b9c61e6", "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", - "https://bcr.bazel.build/modules/lobster/1.0.3/MODULE.bazel": "dcd27c238d7d5bdf2c9cc3b273395955371dcc72167a2363178558d99c723898", "https://bcr.bazel.build/modules/lobster/1.0.6/MODULE.bazel": "fd5778e9a1db6d19d7c9028dce2e40e29cf63809c9a95a53c0a80d954aa92f84", "https://bcr.bazel.build/modules/lobster/1.0.6/source.json": "6be6b3030dbaede36aba42faba16f5d0a31346985bdf29ff236e47c3592ff4bf", "https://bcr.bazel.build/modules/mbedtls/3.6.0/MODULE.bazel": "8e380e4698107c5f8766264d4df92e36766248447858db28187151d884995a09", @@ -352,7 +341,6 @@ "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", - "https://bcr.bazel.build/modules/rules_java/8.11.0/MODULE.bazel": "c3d280bc5ff1038dcb3bacb95d3f6b83da8dd27bba57820ec89ea4085da767ad", "https://bcr.bazel.build/modules/rules_java/8.13.0/MODULE.bazel": "0444ebf737d144cf2bb2ccb368e7f1cce735264285f2a3711785827c1686625e", "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", "https://bcr.bazel.build/modules/rules_java/8.15.1/MODULE.bazel": "5071eebf0fd602ab0617f846e0e0d8f388d66c961513c736e0ac4a1dcde3ff2c", @@ -361,7 +349,6 @@ "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", - "https://bcr.bazel.build/modules/rules_java/8.6.3/MODULE.bazel": "e90505b7a931d194245ffcfb6ff4ca8ef9d46b4e830d12e64817752e0198e2ed", "https://bcr.bazel.build/modules/rules_java/8.8.0/MODULE.bazel": "de589d0880911ac007abd521b9f0ddcd8b0dbd05c8553e6f8124a050b83acf7d", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", @@ -387,10 +374,8 @@ "https://bcr.bazel.build/modules/rules_multirun/0.9.0/MODULE.bazel": "32d628ef586b5b23f67e55886b7bc38913ea4160420d66ae90521dda2ff37df0", "https://bcr.bazel.build/modules/rules_multirun/0.9.0/source.json": "e882ba77962fa6c5fe68619e5c7d0374ec9a219fb8d03c42eadaf6d0243771bd", "https://bcr.bazel.build/modules/rules_multitool/0.11.0/MODULE.bazel": "8d9dda78d2398e136300d3ef4fbcc89ede7c32c158d8c016fa7d032df41c4aaf", - "https://bcr.bazel.build/modules/rules_multitool/0.4.0/MODULE.bazel": "15517987d5c00c9e7faab41fbe22ee67a350b6eabcc1e08baded5c6d9025897f", "https://bcr.bazel.build/modules/rules_multitool/1.11.1/MODULE.bazel": "f826d2d394e8d964e44ebb4a75ebcfe4e9cd4eb150e2ddcd60398ffeb939696a", "https://bcr.bazel.build/modules/rules_multitool/1.11.1/source.json": "201f43de1d35bd17f25a4fed3ba5a2ec500ef5e08b7d4b341bb9fd39cef0cbc6", - "https://bcr.bazel.build/modules/rules_multitool/1.2.0/MODULE.bazel": "8d818d6104f4030930291bbbbc5684702c237dbcdee7229097543e6a6035adaa", "https://bcr.bazel.build/modules/rules_multitool/1.9.0/MODULE.bazel": "8a042b0dbf35e4aaa94c28ad69efa75c9e673e9ea4bd5c0fb70bab75ef9c636b", "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", @@ -409,7 +394,6 @@ "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", - "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc2/MODULE.bazel": "e17f94f8a347e2c808517b65d74988839d2d62daceb50073e44060193b785eb1", "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", @@ -482,8 +466,6 @@ "https://bcr.bazel.build/modules/toolchain_utils/1.0.2/MODULE.bazel": "9b8be503a4fcfd3b8b952525bff0869177a5234d5c35dc3e566b9f5ca2f755a1", "https://bcr.bazel.build/modules/toolchains_llvm/1.8.0/MODULE.bazel": "68259b66e5fb84f94fa37125ad476c3eb8edf602a34bf58377cde9a16dd8fa98", "https://bcr.bazel.build/modules/toolchains_llvm/1.8.0/source.json": "70d80fe5b626a3fadf812af41dda4a028640a1184f5a3c7e6cb20130d93ed783", - "https://bcr.bazel.build/modules/toolchains_protoc/0.2.1/MODULE.bazel": "2f08433ff5e659069b3a1abfee2377d68f510f2de1da50678ed992c455b4ff91", - "https://bcr.bazel.build/modules/trlc/2.0.5/MODULE.bazel": "0e65fc48ef40d16ee449e4913b487228428a12f97e50cc97c496400cf28038a8", "https://bcr.bazel.build/modules/trlc/3.0.0/MODULE.bazel": "45444f9112300e7a716bf842beb17ed8f84d7d1f84c3d1ed126f57bec9bdf2a9", "https://bcr.bazel.build/modules/trlc/3.0.1/MODULE.bazel": "9ece74d6ae5a718850a6f39d94ac52a84c002e0a5c6dadf676433e330c2e2f6c", "https://bcr.bazel.build/modules/trlc/3.0.1/source.json": "3bd9ec62c5a44d759377acee89b7ed966e2ce227292b2b175424bf4343ed0b66", @@ -542,26 +524,18 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.9.4/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_esbuild/0.21.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/1.33.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/1.40.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/2.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/2.3.8/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.0.3/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.3.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.4.2/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.4.4/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.5.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/2.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/2.3.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/2.5.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.6.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_ts/3.6.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.2.5/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/0.1.0/MODULE.bazel": "not found", @@ -575,7 +549,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.17.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.18.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.19.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.2.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.20.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.21.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.23.0/MODULE.bazel": "not found", @@ -616,7 +589,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/boringssl/0.0.0-20240530-2db0eb3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/boringssl/0.20240913.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/boringssl/0.20241024.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/buildifier_prebuilt/6.1.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/buildifier_prebuilt/6.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/buildifier_prebuilt/7.3.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/buildifier_prebuilt/8.2.0.2/MODULE.bazel": "not found", @@ -675,7 +647,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/jsoncpp/1.9.6/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/libpfm/4.11.0.bcr.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/libpfm/4.11.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/lobster/1.0.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/lobster/1.0.6/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/mbedtls/3.6.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/nlohmann_json/3.11.3/MODULE.bazel": "not found", @@ -792,7 +763,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/7.3.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/7.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/7.6.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.11.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.13.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.14.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.15.1/MODULE.bazel": "not found", @@ -800,7 +770,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.5.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.6.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.6.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.6.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.8.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_jvm_external/4.4.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_jvm_external/5.1/MODULE.bazel": "not found", @@ -822,9 +791,7 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_license/1.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multirun/0.9.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/0.11.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/0.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/1.11.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/1.2.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/1.9.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_nodejs/5.8.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_nodejs/6.2.0/MODULE.bazel": "not found", @@ -840,7 +807,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/4.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.0-rc2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/7.0.2/MODULE.bazel": "not found", @@ -897,53 +863,15 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_cc/0.1.0/source.json": "c22ba73ccb64d3bbd2177122d9b039c23c1c1cd0b9c7ea71103e8c43af2e4411", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_python/0.1.3/MODULE.bazel": "02bd71d03010d7903412b2c98d25519a46af7ec6d9492270ec371c198e15caec", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_python/0.1.3/source.json": "f87907b20372ca2c4ad15719cba03423577ed1ea8392c7373eb37f73499decce", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_cr_checker/0.2.2/MODULE.bazel": "dc36d9c35543db918c3fb5b93a8e684431f56c7c784cf2a1b90f35802a373c98", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_cr_checker/0.3.1/MODULE.bazel": "f49e037d7fbc0b2a8b2734fc6b47334e8cc8589ca7a5aa0f3ccca85cc5f79fac", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_crates/0.0.11/MODULE.bazel": "ef4590c417955837ce12549c6de26e008cb2957fe481844a45ae5f3d66e21211", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_crates/0.0.11/source.json": "6b532c133e072aa45bab711afb5d911afe7e972c10702ed8c45c79b4cdd0dfcd", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_dash_license_checker/0.1.1/MODULE.bazel": "76681dbd2d45b5c540869a2337174086c56c54953aab1d02cd878b59d31d13a5", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.11.0/MODULE.bazel": "fb6041c96e949a151307b4690ee81cf5d9254d6bf79540184b16567b04397171", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.11.0/source.json": "b379a2499cf06f16de65c2981665c3723afba9e858ed16b453f044882067f56f", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.7.0/MODULE.bazel": "f9a5971fbd05f0ed14e7a373dbf58af72a5c58d081537a75c314daaf61c92ae9", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.8.0/MODULE.bazel": "89f855b94d041d2e61ff9667562fb4539c146249f6fb4c5dddf3d13bb9064aa7", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.2.4/MODULE.bazel": "ea4801e96c87e2b8650a0fa9e5fed9b8bdbef05c1bc3e30003ba527d5af60a43", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.2.6/MODULE.bazel": "1af2963e91c6472555e222f0aba3dc2f5492d04598298209a361978ee3e321e3", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.3.3/MODULE.bazel": "95d2b7d44d461c1cf9bd016605f740716fd4ea1303f5f2ed93de3566b90feb1b", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.0-RC1/MODULE.bazel": "e118b5cbdc453cde83b5ce481107d8e4a713d3458550b9d10445046d4bba2ff3", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.0/MODULE.bazel": "a3ad204b7412c02a899034d78de62b5549bafba5530a256d1007cb3f4ed20a11", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.2-CW1/MODULE.bazel": "08d30eba6a1c502096abd65ebb759afb35f988b31e4b72ab5866177703cfec77", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.2/MODULE.bazel": "259894df09b4aa6bb5152717b03c3c06a3fd4ad583a7119c52f3a2f0d277b857", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.2.0/MODULE.bazel": "a2b10950d585e14b09a6266025c0624b42101f72d3c4efe9591716b8713ede47", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/2.0.0/MODULE.bazel": "0c850a488fd50067b28726bfd7330a6970e36b63e67ea06efd5fbbc813e7be5c", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/2.0.3/MODULE.bazel": "9b945514727190d4c381d8965b972884ba04ce105260ffd2b3c9df51f206ebfe", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/4.5.0/MODULE.bazel": "4cfe52fe8b8dbeaf7e87500036391da278f72f1c2b41b689ffdd4337196dd8fe", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/4.6.0/MODULE.bazel": "d5fbfed7b9bd65f10830e2290045dea639a8cfcaf9f9f0f7a1b12888c14e7d2b", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/4.6.1/MODULE.bazel": "0dae734ea8a99970a7417829b3115af02717b29f0fc40a8ebd3c1afcc71e1e21", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/8.0.1/MODULE.bazel": "446b0462f893021e3133b2f95672ae37dfe2ade434b6052c91530043e4d89993", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/8.0.1/source.json": "66b23fb84129367ef68024d853d5dcd72563260a409114b57131e68ca412e6c0", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_format_checker/0.1.1/MODULE.bazel": "1acc254faa90e9f97b79ac69af25b6c21c561f8d6079914f6352b9b20d26bd37", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.1.0/MODULE.bazel": "cc9eae86e76f2a930510ed6e50ec991bb5661687e24881685b39c322087adf6f", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.1.1/MODULE.bazel": "eb086ba99f9319371fbbd0a9252dfd27b0817039b88bd4d691602974b1ada005", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.7.1/MODULE.bazel": "be2ae8861842689353b92b0cbc111c94e1bea57675692fe3b029ccd211c0b74c", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.7.1/source.json": "f6fbb5a258653c11ee9c48242c8b078bf05f7ed461f6cae5120a6adbd928aa09", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.0.4/MODULE.bazel": "f74302cb90a7c4878db302276afae82966878099861dcfca3ef43256131dab52", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.0.5/MODULE.bazel": "ed17c232ebd65e9d50fd5c1832f90f95ffe95b2a1113d63a176295a2af64d111", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.1.0/MODULE.bazel": "97dd927309f87ecb73629725683028a5dbb37a49b1159c771292e6993569055b", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.1.1-Beta/MODULE.bazel": "7ab8931f4b2754b728101ed5a2afda458b82b885f5cfdb9d8c4c62b5c1a2da7e", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.1.1/MODULE.bazel": "35c84c7cec7d15678f63145054bb74367afb65929724c2115095d5e1b96fca94", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.2.0/MODULE.bazel": "ec092bf01731a1866352d7b8aaa0e30cae319667abc8cf7a86aec0bdb8555a0e", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.3.1/MODULE.bazel": "29666e38fbc76eddd6676e594f225e474d130dce9c3a9d224e59ae7a499c4575", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.3.2/MODULE.bazel": "a32390ef217cef9a811408b0a1c5aeed1398c377aa846f5d5416d7b95b4e4366", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.6.0/MODULE.bazel": "2496bc24311f69f49449ee85d8bb38e3b970cbfcf10d0a7f19b2d5262ce80e8d", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.1/MODULE.bazel": "88bff0ed46da79d87f8c441a6bf6b760ee7c194b282e7e54a8b7db6ea2354db9", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.2/MODULE.bazel": "6d2b227bb6880e9f6871cc8cf94c83399e35c188424f7e9b826262de8149ed43", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.2/source.json": "5ae55f0dabcddeb5bfae16ce480e2c065f907d2b0ed6a8e4ed7409b259b004ee", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process_description/2.1.0/MODULE.bazel": "ea125cd27f5177d616e870c259ec760819ea9a576c19005c4a21b37f09857cba", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process_description/2.1.2/MODULE.bazel": "1076b36d2d05ab1a18df0746f6a545869eec6927019d651af99d99ef056e2023", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process_description/2.1.2/source.json": "f76099f076243e2641803971e2a95ed27f24756c9bdda5d10a808c664996f0fc", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.0/MODULE.bazel": "785ddd5295213e36c31ab86bdc34f29c0f7d1b72e9abd931bb08f42c0e48e2e9", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.1/MODULE.bazel": "99c491109937542e61df090222666a8613ef946fa7bb2b2d5ba648b2baba03ad", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.2/MODULE.bazel": "f25490f64035a0e3a0d53ad9cb6164e8325ce6cf2a7ee68c6ae153840cb2497e", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.4/MODULE.bazel": "53bd16dfbb1fb8ecf6822fb26f9f4e8333bac7b14d12bb02bf84078063820a31", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_qnx_unit_tests/0.2.0/MODULE.bazel": "aaffff67916dd058737aac8e04368f12b214e7646ff58adbab48e6429d1a5410", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_qnx_unit_tests/0.2.0/source.json": "c40a614fd88beab7cb65b8640debd44eff3fbc32a7839734ef1112f265d2eeef", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rules_imagefs/0.0.3/MODULE.bazel": "d87fcd3485438284fa96d6a5a81923d6b6672468947423517cc43c4d7692ca6a", @@ -952,14 +880,8 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.2/MODULE.bazel": "ade2bad4a331b02d9b7e7d9842e8de8c6fded6186486e02c4f7db5cd4b71d34d", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.5/MODULE.bazel": "7de02547bdf121d3dedf5141b97f0fd9a545bd255ff5c7b699056b35816ffad9", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.5/source.json": "22c8bf0a5cbf7c7b06f774f3f66498e0bc14346a8b2208f7427a8fbb78a42547", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_starpls_lsp/0.1.0/MODULE.bazel": "b2f8c4c8d8e851706255ff9002b448bff6e040b8f0c6adedbde2a09375aa16cc", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_toolchains_rust/0.10.0/MODULE.bazel": "535296e6cdef55a506c580ca2ce541aa9ddefb354de1a24ab2bd4addc939282b", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_toolchains_rust/0.10.0/source.json": "8bda773be264da16d2a82a03ebb737421dd4a35855f1e9a5d03d9722d84c1df5", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tooling/1.0.2/MODULE.bazel": "e70f396375b9d612b4f41ebceff7f18f68ab423b14625c138a354cc01bc62a10", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tooling/1.1.2/MODULE.bazel": "56d08309931cfad67c2b6691207bb5f761a3946830d620c630d2436630e6b499", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tooling/1.3.1/MODULE.bazel": "4ce18de0fdfb447ba750b98febb24e12471862cbbd5d08f5f683f27886767367", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tooling/2.2.1/MODULE.bazel": "65847454f3555ae56ebfda04dcbdbeb44ece2e5ed9df8f63796309822091d38a", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tooling/2.2.1/source.json": "c5cdd2502f4edd11404c578987d33a8b924900908551f677775bd67a661d69fc", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/sphinxdocs/2.2.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/stardoc/0.5.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/stardoc/0.5.1/MODULE.bazel": "not found", @@ -977,8 +899,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/tar.bzl/0.7.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/toolchain_utils/1.0.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/toolchains_llvm/1.8.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/toolchains_protoc/0.2.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/trlc/2.0.5/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/trlc/3.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/trlc/3.0.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/upb/0.0.0-20211020-160625a/MODULE.bazel": "not found", @@ -2300,7 +2220,7 @@ "@@rules_distroless+//apt:extensions.bzl%apt": { "general": { "bzlTransitiveDigest": "eH+PnBEEuvk2JyknjwUNuJrwPPryyUkKwi8qCYCVrvY=", - "usagesDigest": "Kbq3vakmb+1UomjqoFOLjIWDOEyV1DIMuOO4IQVtXmk=", + "usagesDigest": "PGGts4dHdQebqbjPFpqdLfQGezTaqPJ0ZOpmBcqbhSs=", "recordedFileInputs": { "@@score_tooling+//third_party/docs_runtime/manifest.yaml": "f8bd762e0dcaf3150504eca8dfd60819fc3be428d3a8b58d1d9cc52d68e16a45", "@@score_tooling+//third_party/tooling_sysroot/manifest.yaml": "ef1e4af34dbf67a9e332c69ccad0b12b2e295849c33e98658c6ccd69e363c4cd" @@ -4036,7 +3956,7 @@ "@@rules_rust+//crate_universe:extensions.bzl%crate": { "general": { "bzlTransitiveDigest": "mSyRciUgGxicMA/+qhyxO0VreW+G8essayBHQj47EvQ=", - "usagesDigest": "Ht3zsHeFYwUb7xoOju2mqifsLE08UE2QJZ6ZnxJycZM=", + "usagesDigest": "4Sznk9NP2iEXKbYKDTAVxNy4jeOBOD9OZUd7c9aZAIE=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": { @@ -4056,7 +3976,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 'score_crates'\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 = \"adler32-1.2.0\",\n actual = \"@crate_index__adler32-1.2.0//:adler32\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"adler32\",\n actual = \"@crate_index__adler32-1.2.0//:adler32\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow-1.0.104\",\n actual = \"@crate_index__anyhow-1.0.104//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow\",\n actual = \"@crate_index__anyhow-1.0.104//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"argh-0.1.19\",\n actual = \"@crate_index__argh-0.1.19//:argh\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"argh\",\n actual = \"@crate_index__argh-0.1.19//:argh\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"arrayvec-0.7.8\",\n actual = \"@crate_index__arrayvec-0.7.8//:arrayvec\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"arrayvec\",\n actual = \"@crate_index__arrayvec-0.7.8//:arrayvec\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-stream-0.3.6\",\n actual = \"@crate_index__async-stream-0.3.6//:async_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"async-stream\",\n actual = \"@crate_index__async-stream-0.3.6//:async_stream\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytes-1.12.1\",\n actual = \"@crate_index__bytes-1.12.1//:bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bytes\",\n actual = \"@crate_index__bytes-1.12.1//:bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cc-1.4.4\",\n actual = \"@crate_index__cc-1.4.4//:cc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cc\",\n actual = \"@crate_index__cc-1.4.4//:cc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap-4.6.6\",\n actual = \"@crate_index__clap-4.6.6//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap\",\n actual = \"@crate_index__clap-4.6.6//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cliclack-0.3.8\",\n actual = \"@crate_index__cliclack-0.3.8//:cliclack\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cliclack\",\n actual = \"@crate_index__cliclack-0.3.8//:cliclack\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"console-0.16.4\",\n actual = \"@crate_index__console-0.16.4//:console\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"console\",\n actual = \"@crate_index__console-0.16.4//:console\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ctrlc-3.5.2\",\n actual = \"@crate_index__ctrlc-3.5.2//:ctrlc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ctrlc\",\n actual = \"@crate_index__ctrlc-3.5.2//:ctrlc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"env_logger-0.11.11\",\n actual = \"@crate_index__env_logger-0.11.11//:env_logger\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"env_logger\",\n actual = \"@crate_index__env_logger-0.11.11//:env_logger\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"equivalent-1.0.2\",\n actual = \"@crate_index__equivalent-1.0.2//:equivalent\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"equivalent\",\n actual = \"@crate_index__equivalent-1.0.2//:equivalent\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"foldhash-0.2.0\",\n actual = \"@crate_index__foldhash-0.2.0//:foldhash\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"foldhash\",\n actual = \"@crate_index__foldhash-0.2.0//:foldhash\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures-0.3.34\",\n actual = \"@crate_index__futures-0.3.34//:futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"futures\",\n actual = \"@crate_index__futures-0.3.34//:futures\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hashbrown-0.17.1\",\n actual = \"@crate_index__hashbrown-0.17.1//:hashbrown\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hashbrown\",\n actual = \"@crate_index__hashbrown-0.17.1//:hashbrown\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"human_bytes-0.4.3\",\n actual = \"@crate_index__human_bytes-0.4.3//:human_bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"human_bytes\",\n actual = \"@crate_index__human_bytes-0.4.3//:human_bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-0.5.0\",\n actual = \"@crate_index__iceoryx2-0.5.0//:iceoryx2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2\",\n actual = \"@crate_index__iceoryx2-0.5.0//:iceoryx2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-container-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-container-qnx8-0.7.0//:iceoryx2_bb_container_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-container-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-container-qnx8-0.7.0//:iceoryx2_bb_container_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-derive-macros-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-derive-macros-qnx8-0.7.0//:iceoryx2_bb_derive_macros_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-derive-macros-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-derive-macros-qnx8-0.7.0//:iceoryx2_bb_derive_macros_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-elementary-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-elementary-qnx8-0.7.0//:iceoryx2_bb_elementary_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-elementary-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-elementary-qnx8-0.7.0//:iceoryx2_bb_elementary_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-elementary-traits-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-elementary-traits-qnx8-0.7.0//:iceoryx2_bb_elementary_traits_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-elementary-traits-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-elementary-traits-qnx8-0.7.0//:iceoryx2_bb_elementary_traits_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-lock-free-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-lock-free-qnx8-0.7.0//:iceoryx2_bb_lock_free_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-lock-free-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-lock-free-qnx8-0.7.0//:iceoryx2_bb_lock_free_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-memory-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-memory-qnx8-0.7.0//:iceoryx2_bb_memory_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-memory-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-memory-qnx8-0.7.0//:iceoryx2_bb_memory_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-posix-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-posix-qnx8-0.7.0//:iceoryx2_bb_posix_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-posix-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-posix-qnx8-0.7.0//:iceoryx2_bb_posix_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-system-types-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-system-types-qnx8-0.7.0//:iceoryx2_bb_system_types_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-system-types-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-system-types-qnx8-0.7.0//:iceoryx2_bb_system_types_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-testing-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-testing-qnx8-0.7.0//:iceoryx2_bb_testing_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-testing-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-testing-qnx8-0.7.0//:iceoryx2_bb_testing_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-threadsafe-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-bb-threadsafe-qnx8-0.7.0//:iceoryx2_bb_threadsafe_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-bb-threadsafe-qnx8\",\n actual = \"@crate_index__iceoryx2-bb-threadsafe-qnx8-0.7.0//:iceoryx2_bb_threadsafe_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-cal-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-cal-qnx8-0.7.0//:iceoryx2_cal_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-cal-qnx8\",\n actual = \"@crate_index__iceoryx2-cal-qnx8-0.7.0//:iceoryx2_cal_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-pal-concurrency-sync-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-pal-concurrency-sync-qnx8-0.7.0//:iceoryx2_pal_concurrency_sync_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-pal-concurrency-sync-qnx8\",\n actual = \"@crate_index__iceoryx2-pal-concurrency-sync-qnx8-0.7.0//:iceoryx2_pal_concurrency_sync_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-qnx8-0.7.0\",\n actual = \"@crate_index__iceoryx2-qnx8-0.7.0//:iceoryx2_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"iceoryx2-qnx8\",\n actual = \"@crate_index__iceoryx2-qnx8-0.7.0//:iceoryx2_qnx8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap-2.14.0\",\n actual = \"@crate_index__indexmap-2.14.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap\",\n actual = \"@crate_index__indexmap-2.14.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif-0.18.6\",\n actual = \"@crate_index__indicatif-0.18.6//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif\",\n actual = \"@crate_index__indicatif-0.18.6//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif-log-bridge-0.2.3\",\n actual = \"@crate_index__indicatif-log-bridge-0.2.3//:indicatif_log_bridge\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif-log-bridge\",\n actual = \"@crate_index__indicatif-log-bridge-0.2.3//:indicatif_log_bridge\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ipc-channel-0.20.2\",\n actual = \"@crate_index__ipc-channel-0.20.2//:ipc_channel\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ipc-channel\",\n actual = \"@crate_index__ipc-channel-0.20.2//:ipc_channel\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"libc-0.2.186\",\n actual = \"@crate_index__libc-0.2.186//:libc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"libc\",\n actual = \"@crate_index__libc-0.2.186//:libc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"log-0.4.34\",\n actual = \"@crate_index__log-0.4.34//:log\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"log\",\n actual = \"@crate_index__log-0.4.34//:log\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"loom-0.7.2\",\n actual = \"@crate_index__loom-0.7.2//:loom\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"loom\",\n actual = \"@crate_index__loom-0.7.2//:loom\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mio-1.2.2\",\n actual = \"@crate_index__mio-1.2.2//:mio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mio\",\n actual = \"@crate_index__mio-1.2.2//:mio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mockall-0.14.0\",\n actual = \"@crate_index__mockall-0.14.0//:mockall\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"mockall\",\n actual = \"@crate_index__mockall-0.14.0//:mockall\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"nix-0.30.1\",\n actual = \"@crate_index__nix-0.30.1//:nix\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"nix\",\n actual = \"@crate_index__nix-0.30.1//:nix\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste-1.0.15\",\n actual = \"@crate_index__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste\",\n actual = \"@crate_index__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pastey-0.2.3\",\n actual = \"@crate_index__pastey-0.2.3//:pastey\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pastey\",\n actual = \"@crate_index__pastey-0.2.3//:pastey\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pico-args-0.5.0\",\n actual = \"@crate_index__pico-args-0.5.0//:pico_args\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pico-args\",\n actual = \"@crate_index__pico-args-0.5.0//:pico_args\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"postcard-1.1.3\",\n actual = \"@crate_index__postcard-1.1.3//:postcard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"postcard\",\n actual = \"@crate_index__postcard-1.1.3//:postcard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2-1.0.107\",\n actual = \"@crate_index__proc-macro2-1.0.107//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2\",\n actual = \"@crate_index__proc-macro2-1.0.107//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost-0.14.4\",\n actual = \"@crate_index__prost-0.14.4//:prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost\",\n actual = \"@crate_index__prost-0.14.4//:prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost-build-0.14.4\",\n actual = \"@crate_index__prost-build-0.14.4//:prost_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost-build\",\n actual = \"@crate_index__prost-build-0.14.4//:prost_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost-types-0.14.4\",\n actual = \"@crate_index__prost-types-0.14.4//:prost_types\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"prost-types\",\n actual = \"@crate_index__prost-types-0.14.4//:prost_types\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"protoc-gen-prost-0.4.0\",\n actual = \"@crate_index__protoc-gen-prost-0.4.0//:protoc_gen_prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"protoc-gen-prost\",\n actual = \"@crate_index__protoc-gen-prost-0.4.0//:protoc_gen_prost\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"protoc-gen-tonic-0.4.1\",\n actual = \"@crate_index__protoc-gen-tonic-0.4.1//:protoc_gen_tonic\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"protoc-gen-tonic\",\n actual = \"@crate_index__protoc-gen-tonic-0.4.1//:protoc_gen_tonic\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote-1.0.47\",\n actual = \"@crate_index__quote-1.0.47//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote\",\n actual = \"@crate_index__quote-1.0.47//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand-0.9.5\",\n actual = \"@crate_index__rand-0.9.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand\",\n actual = \"@crate_index__rand-0.9.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustversion-1.0.23\",\n actual = \"@crate_index__rustversion-1.0.23//:rustversion\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustversion\",\n actual = \"@crate_index__rustversion-1.0.23//:rustversion\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sem_safe-0.2.1\",\n actual = \"@crate_index__sem_safe-0.2.1//:sem_safe\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sem_safe\",\n actual = \"@crate_index__sem_safe-0.2.1//:sem_safe\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde-1.0.229\",\n actual = \"@crate_index__serde-1.0.229//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde\",\n actual = \"@crate_index__serde-1.0.229//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_core-1.0.229\",\n actual = \"@crate_index__serde_core-1.0.229//:serde_core\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_core\",\n actual = \"@crate_index__serde_core-1.0.229//:serde_core\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.151\",\n actual = \"@crate_index__serde_json-1.0.151//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@crate_index__serde_json-1.0.151//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"signal-hook-0.3.18\",\n actual = \"@crate_index__signal-hook-0.3.18//:signal_hook\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"signal-hook\",\n actual = \"@crate_index__signal-hook-0.3.18//:signal_hook\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"socket2-0.6.5\",\n actual = \"@crate_index__socket2-0.6.5//:socket2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"socket2\",\n actual = \"@crate_index__socket2-0.6.5//:socket2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn-2.0.119\",\n actual = \"@crate_index__syn-2.0.119//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn\",\n actual = \"@crate_index__syn-2.0.119//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile-3.27.0\",\n actual = \"@crate_index__tempfile-3.27.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile\",\n actual = \"@crate_index__tempfile-3.27.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror-2.0.20\",\n actual = \"@crate_index__thiserror-2.0.20//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror\",\n actual = \"@crate_index__thiserror-2.0.20//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"time-0.3.55\",\n actual = \"@crate_index__time-0.3.55//:time\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"time\",\n actual = \"@crate_index__time-0.3.55//:time\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tinyjson-2.5.1\",\n actual = \"@crate_index__tinyjson-2.5.1//:tinyjson\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tinyjson\",\n actual = \"@crate_index__tinyjson-2.5.1//:tinyjson\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-1.53.1\",\n actual = \"@crate_index__tokio-1.53.1//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio\",\n actual = \"@crate_index__tokio-1.53.1//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-seqpacket-0.8.2\",\n actual = \"@crate_index__tokio-seqpacket-0.8.2//:tokio_seqpacket\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-seqpacket\",\n actual = \"@crate_index__tokio-seqpacket-0.8.2//:tokio_seqpacket\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-util-0.7.19\",\n actual = \"@crate_index__tokio-util-0.7.19//:tokio_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-util\",\n actual = \"@crate_index__tokio-util-0.7.19//:tokio_util\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic-0.14.6\",\n actual = \"@crate_index__tonic-0.14.6//:tonic\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tonic\",\n actual = \"@crate_index__tonic-0.14.6//:tonic\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-0.1.44\",\n actual = \"@crate_index__tracing-0.1.44//:tracing\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing\",\n actual = \"@crate_index__tracing-0.1.44//:tracing\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-subscriber-0.3.23\",\n actual = \"@crate_index__tracing-subscriber-0.3.23//:tracing_subscriber\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tracing-subscriber\",\n actual = \"@crate_index__tracing-subscriber-0.3.23//:tracing_subscriber\",\n tags = [\"manual\"],\n)\n\n# Binaries\nalias(\n name = \"protoc-gen-prost__protoc-gen-prost\",\n actual = \"@crate_index__protoc-gen-prost-0.4.0//:protoc-gen-prost__bin\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"protoc-gen-tonic__protoc-gen-tonic\",\n actual = \"@crate_index__protoc-gen-tonic-0.4.1//:protoc-gen-tonic__bin\",\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 'score_crates'\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 \"\": {\n _COMMON_CONDITION: {\n \"adler32\": Label(\"@crate_index//:adler32-1.2.0\"),\n \"anyhow\": Label(\"@crate_index//:anyhow-1.0.104\"),\n \"argh\": Label(\"@crate_index//:argh-0.1.19\"),\n \"arrayvec\": Label(\"@crate_index//:arrayvec-0.7.8\"),\n \"async-stream\": Label(\"@crate_index//:async-stream-0.3.6\"),\n \"bytes\": Label(\"@crate_index//:bytes-1.12.1\"),\n \"cc\": Label(\"@crate_index//:cc-1.4.4\"),\n \"clap\": Label(\"@crate_index//:clap-4.6.6\"),\n \"cliclack\": Label(\"@crate_index//:cliclack-0.3.8\"),\n \"console\": Label(\"@crate_index//:console-0.16.4\"),\n \"ctrlc\": Label(\"@crate_index//:ctrlc-3.5.2\"),\n \"env_logger\": Label(\"@crate_index//:env_logger-0.11.11\"),\n \"equivalent\": Label(\"@crate_index//:equivalent-1.0.2\"),\n \"foldhash\": Label(\"@crate_index//:foldhash-0.2.0\"),\n \"futures\": Label(\"@crate_index//:futures-0.3.34\"),\n \"hashbrown\": Label(\"@crate_index//:hashbrown-0.17.1\"),\n \"human_bytes\": Label(\"@crate_index//:human_bytes-0.4.3\"),\n \"iceoryx2\": Label(\"@crate_index//:iceoryx2-0.5.0\"),\n \"iceoryx2-bb-container-qnx8\": Label(\"@crate_index//:iceoryx2-bb-container-qnx8-0.7.0\"),\n \"iceoryx2-bb-elementary-qnx8\": Label(\"@crate_index//:iceoryx2-bb-elementary-qnx8-0.7.0\"),\n \"iceoryx2-bb-elementary-traits-qnx8\": Label(\"@crate_index//:iceoryx2-bb-elementary-traits-qnx8-0.7.0\"),\n \"iceoryx2-bb-lock-free-qnx8\": Label(\"@crate_index//:iceoryx2-bb-lock-free-qnx8-0.7.0\"),\n \"iceoryx2-bb-memory-qnx8\": Label(\"@crate_index//:iceoryx2-bb-memory-qnx8-0.7.0\"),\n \"iceoryx2-bb-posix-qnx8\": Label(\"@crate_index//:iceoryx2-bb-posix-qnx8-0.7.0\"),\n \"iceoryx2-bb-system-types-qnx8\": Label(\"@crate_index//:iceoryx2-bb-system-types-qnx8-0.7.0\"),\n \"iceoryx2-bb-testing-qnx8\": Label(\"@crate_index//:iceoryx2-bb-testing-qnx8-0.7.0\"),\n \"iceoryx2-bb-threadsafe-qnx8\": Label(\"@crate_index//:iceoryx2-bb-threadsafe-qnx8-0.7.0\"),\n \"iceoryx2-cal-qnx8\": Label(\"@crate_index//:iceoryx2-cal-qnx8-0.7.0\"),\n \"iceoryx2-pal-concurrency-sync-qnx8\": Label(\"@crate_index//:iceoryx2-pal-concurrency-sync-qnx8-0.7.0\"),\n \"iceoryx2-qnx8\": Label(\"@crate_index//:iceoryx2-qnx8-0.7.0\"),\n \"indexmap\": Label(\"@crate_index//:indexmap-2.14.0\"),\n \"indicatif\": Label(\"@crate_index//:indicatif-0.18.6\"),\n \"indicatif-log-bridge\": Label(\"@crate_index//:indicatif-log-bridge-0.2.3\"),\n \"ipc-channel\": Label(\"@crate_index//:ipc-channel-0.20.2\"),\n \"libc\": Label(\"@crate_index//:libc-0.2.186\"),\n \"log\": Label(\"@crate_index//:log-0.4.34\"),\n \"loom\": Label(\"@crate_index//:loom-0.7.2\"),\n \"mio\": Label(\"@crate_index//:mio-1.2.2\"),\n \"mockall\": Label(\"@crate_index//:mockall-0.14.0\"),\n \"nix\": Label(\"@crate_index//:nix-0.30.1\"),\n \"pico-args\": Label(\"@crate_index//:pico-args-0.5.0\"),\n \"postcard\": Label(\"@crate_index//:postcard-1.1.3\"),\n \"proc-macro2\": Label(\"@crate_index//:proc-macro2-1.0.107\"),\n \"prost\": Label(\"@crate_index//:prost-0.14.4\"),\n \"prost-build\": Label(\"@crate_index//:prost-build-0.14.4\"),\n \"prost-types\": Label(\"@crate_index//:prost-types-0.14.4\"),\n \"protoc-gen-prost\": Label(\"@crate_index//:protoc-gen-prost-0.4.0\"),\n \"protoc-gen-tonic\": Label(\"@crate_index//:protoc-gen-tonic-0.4.1\"),\n \"quote\": Label(\"@crate_index//:quote-1.0.47\"),\n \"rand\": Label(\"@crate_index//:rand-0.9.5\"),\n \"sem_safe\": Label(\"@crate_index//:sem_safe-0.2.1\"),\n \"serde\": Label(\"@crate_index//:serde-1.0.229\"),\n \"serde_core\": Label(\"@crate_index//:serde_core-1.0.229\"),\n \"serde_json\": Label(\"@crate_index//:serde_json-1.0.151\"),\n \"signal-hook\": Label(\"@crate_index//:signal-hook-0.3.18\"),\n \"socket2\": Label(\"@crate_index//:socket2-0.6.5\"),\n \"syn\": Label(\"@crate_index//:syn-2.0.119\"),\n \"tempfile\": Label(\"@crate_index//:tempfile-3.27.0\"),\n \"thiserror\": Label(\"@crate_index//:thiserror-2.0.20\"),\n \"time\": Label(\"@crate_index//:time-0.3.55\"),\n \"tinyjson\": Label(\"@crate_index//:tinyjson-2.5.1\"),\n \"tokio\": Label(\"@crate_index//:tokio-1.53.1\"),\n \"tokio-seqpacket\": Label(\"@crate_index//:tokio-seqpacket-0.8.2\"),\n \"tokio-util\": Label(\"@crate_index//:tokio-util-0.7.19\"),\n \"tonic\": Label(\"@crate_index//:tonic-0.14.6\"),\n \"tracing\": Label(\"@crate_index//:tracing-0.1.44\"),\n \"tracing-subscriber\": Label(\"@crate_index//:tracing-subscriber-0.3.23\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"\": {\n _COMMON_CONDITION: {\n \"iceoryx2-bb-derive-macros-qnx8\": Label(\"@crate_index//:iceoryx2-bb-derive-macros-qnx8-0.7.0\"),\n \"paste\": Label(\"@crate_index//:paste-1.0.15\"),\n \"pastey\": Label(\"@crate_index//:pastey-0.2.3\"),\n \"rustversion\": Label(\"@crate_index//:rustversion-1.0.23\"),\n },\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"aarch64-unknown-nto-qnx710\": [\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", target_arch = \\\"s390x\\\"), 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 = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", target_arch = \\\"s390x\\\"), 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 = \\\"s390x\\\"), 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:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", target_arch = \\\"s390x\\\"), 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 = \\\"s390x\\\"), 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-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\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\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\": [],\n \"cfg(any())\": [],\n \"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\": [],\n \"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\"],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\": [],\n \"cfg(any(target_os = \\\"linux\\\", target_os = \\\"openbsd\\\", target_os = \\\"freebsd\\\", target_os = \\\"illumos\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\": [],\n \"cfg(any(unix, target_os = \\\"hermit\\\", target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(unix, target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(windows, unix, target_os = \\\"redox\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(target_has_atomic = \\\"ptr\\\"))\": [],\n \"cfg(target_arch = \\\"x86_64\\\")\": [\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"macos\\\")\": [],\n \"cfg(target_os = \\\"netbsd\\\")\": [],\n \"cfg(target_os = \\\"solaris\\\")\": [],\n \"cfg(target_os = \\\"vxworks\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [],\n \"cfg(target_os = \\\"windows\\\")\": [],\n \"cfg(target_vendor = \\\"apple\\\")\": [],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(windows)\": [],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"riscv32i-unknown-none-elf\": [],\n \"riscv32imc-unknown-none-elf\": [],\n \"x86_64-pc-nto-qnx710\": [\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\"],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-unknown-none\": [\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"xtensa-esp32s2-none-elf\": [],\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 = \"crate_index__adler32-1.2.0\",\n sha256 = \"aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler32/1.2.0/download\"],\n strip_prefix = \"adler32-1.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.adler32-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aho-corasick-1.1.5\",\n sha256 = \"c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.5/download\"],\n strip_prefix = \"aho-corasick-1.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aho-corasick-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aliasable-0.1.3\",\n sha256 = \"250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aliasable/0.1.3/download\"],\n strip_prefix = \"aliasable-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aliasable-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__allocator-api2-0.2.21\",\n sha256 = \"683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/allocator-api2/0.2.21/download\"],\n strip_prefix = \"allocator-api2-0.2.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.allocator-api2-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstream-1.0.0\",\n sha256 = \"824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/1.0.0/download\"],\n strip_prefix = \"anstream-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstream-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-1.0.14\",\n sha256 = \"940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle/1.0.14/download\"],\n strip_prefix = \"anstyle-1.0.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-1.0.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-parse-1.0.0\",\n sha256 = \"52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/1.0.0/download\"],\n strip_prefix = \"anstyle-parse-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-parse-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-query-1.1.5\",\n sha256 = \"40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-query/1.1.5/download\"],\n strip_prefix = \"anstyle-query-1.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-query-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-wincon-3.0.11\",\n sha256 = \"291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.11/download\"],\n strip_prefix = \"anstyle-wincon-3.0.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-wincon-3.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anyhow-1.0.104\",\n sha256 = \"330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.104/download\"],\n strip_prefix = \"anyhow-1.0.104\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anyhow-1.0.104.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__argh-0.1.19\",\n sha256 = \"211818e820cda9ca6f167a64a5c808837366a6dfd807157c64c1304c486cd033\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/argh/0.1.19/download\"],\n strip_prefix = \"argh-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.argh-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__argh_derive-0.1.19\",\n sha256 = \"c442a9d18cef5dde467405d27d461d080d68972d6d0dfd0408265b6749ec427d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/argh_derive/0.1.19/download\"],\n strip_prefix = \"argh_derive-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.argh_derive-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__argh_shared-0.1.19\",\n sha256 = \"e5ade012bac4db278517a0132c8c10c6427025868dca16c801087c28d5a411f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/argh_shared/0.1.19/download\"],\n strip_prefix = \"argh_shared-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.argh_shared-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__arrayvec-0.7.8\",\n sha256 = \"d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arrayvec/0.7.8/download\"],\n strip_prefix = \"arrayvec-0.7.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.arrayvec-0.7.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__async-stream-0.3.6\",\n sha256 = \"0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream/0.3.6/download\"],\n strip_prefix = \"async-stream-0.3.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.async-stream-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__async-stream-impl-0.3.6\",\n sha256 = \"c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream-impl/0.3.6/download\"],\n strip_prefix = \"async-stream-impl-0.3.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.async-stream-impl-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__async-trait-0.1.92\",\n sha256 = \"82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-trait/0.1.92/download\"],\n strip_prefix = \"async-trait-0.1.92\",\n build_file = Label(\"@crate_index//crate_index:BUILD.async-trait-0.1.92.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__atomic-polyfill-1.0.3\",\n sha256 = \"8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-polyfill/1.0.3/download\"],\n strip_prefix = \"atomic-polyfill-1.0.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.atomic-polyfill-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__atomic-waker-1.1.2\",\n sha256 = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-waker/1.1.2/download\"],\n strip_prefix = \"atomic-waker-1.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.atomic-waker-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__axum-0.8.9\",\n sha256 = \"31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum/0.8.9/download\"],\n strip_prefix = \"axum-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.axum-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__axum-core-0.5.6\",\n sha256 = \"08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum-core/0.5.6/download\"],\n strip_prefix = \"axum-core-0.5.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.axum-core-0.5.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.bincode-1.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bindgen-0.69.5\",\n sha256 = \"271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bindgen/0.69.5/download\"],\n strip_prefix = \"bindgen-0.69.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bindgen-0.69.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bindgen-0.72.1\",\n sha256 = \"993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bindgen/0.72.1/download\"],\n strip_prefix = \"bindgen-0.72.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bindgen-0.72.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.bitflags-1.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bitflags-2.13.1\",\n sha256 = \"b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.13.1/download\"],\n strip_prefix = \"bitflags-2.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bitflags-2.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__block2-0.6.2\",\n sha256 = \"cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/block2/0.6.2/download\"],\n strip_prefix = \"block2-0.6.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.block2-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bumpalo-3.20.3\",\n sha256 = \"72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.20.3/download\"],\n strip_prefix = \"bumpalo-3.20.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bumpalo-3.20.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.byteorder-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bytes-1.12.1\",\n sha256 = \"fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.12.1/download\"],\n strip_prefix = \"bytes-1.12.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bytes-1.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cc-1.4.4\",\n sha256 = \"0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.4.4/download\"],\n strip_prefix = \"cc-1.4.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cc-1.4.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cdr-0.2.4\",\n sha256 = \"9617422bf43fde9280707a7e90f8f7494389c182f5c70b0f67592d0f06d41dfa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cdr/0.2.4/download\"],\n strip_prefix = \"cdr-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cdr-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cexpr-0.6.0\",\n sha256 = \"6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cexpr/0.6.0/download\"],\n strip_prefix = \"cexpr-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cexpr-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cfg-if-1.0.4\",\n sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n strip_prefix = \"cfg-if-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cfg-if-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cfg_aliases-0.2.2\",\n sha256 = \"f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg_aliases/0.2.2/download\"],\n strip_prefix = \"cfg_aliases-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cfg_aliases-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clang-sys-1.9.1\",\n sha256 = \"157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clang-sys/1.9.1/download\"],\n strip_prefix = \"clang-sys-1.9.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clang-sys-1.9.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap-4.6.6\",\n sha256 = \"473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.6.6/download\"],\n strip_prefix = \"clap-4.6.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap-4.6.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_builder-4.6.6\",\n sha256 = \"7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.6.6/download\"],\n strip_prefix = \"clap_builder-4.6.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_builder-4.6.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_derive-4.6.4\",\n sha256 = \"d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.6.4/download\"],\n strip_prefix = \"clap_derive-4.6.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_derive-4.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_lex-1.1.0\",\n sha256 = \"c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/1.1.0/download\"],\n strip_prefix = \"clap_lex-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_lex-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cliclack-0.3.8\",\n sha256 = \"aa510b739c618c679375ea9c5af44ce9f591289546e874ad5910e7ce7df79844\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cliclack/0.3.8/download\"],\n strip_prefix = \"cliclack-0.3.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cliclack-0.3.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cobs-0.3.0\",\n sha256 = \"0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cobs/0.3.0/download\"],\n strip_prefix = \"cobs-0.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cobs-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__colorchoice-1.0.5\",\n sha256 = \"1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/colorchoice/1.0.5/download\"],\n strip_prefix = \"colorchoice-1.0.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.colorchoice-1.0.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__console-0.15.11\",\n sha256 = \"054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.15.11/download\"],\n strip_prefix = \"console-0.15.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.console-0.15.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__console-0.16.4\",\n sha256 = \"4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.16.4/download\"],\n strip_prefix = \"console-0.16.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.console-0.16.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__critical-section-1.2.0\",\n sha256 = \"790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/critical-section/1.2.0/download\"],\n strip_prefix = \"critical-section-1.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.critical-section-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crossbeam-channel-0.5.16\",\n sha256 = \"d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-channel/0.5.16/download\"],\n strip_prefix = \"crossbeam-channel-0.5.16\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crossbeam-channel-0.5.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crossbeam-utils-0.8.22\",\n sha256 = \"61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-utils/0.8.22/download\"],\n strip_prefix = \"crossbeam-utils-0.8.22\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crossbeam-utils-0.8.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ctrlc-3.5.2\",\n sha256 = \"e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ctrlc/3.5.2/download\"],\n strip_prefix = \"ctrlc-3.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ctrlc-3.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__defmt-1.1.1\",\n sha256 = \"e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defmt/1.1.1/download\"],\n strip_prefix = \"defmt-1.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.defmt-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__defmt-macros-1.1.1\",\n sha256 = \"bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defmt-macros/1.1.1/download\"],\n strip_prefix = \"defmt-macros-1.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.defmt-macros-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__defmt-parser-1.0.0\",\n sha256 = \"10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defmt-parser/1.0.0/download\"],\n strip_prefix = \"defmt-parser-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.defmt-parser-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__deranged-0.5.8\",\n sha256 = \"7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.5.8/download\"],\n strip_prefix = \"deranged-0.5.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.deranged-0.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__dispatch2-0.3.1\",\n sha256 = \"1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dispatch2/0.3.1/download\"],\n strip_prefix = \"dispatch2-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.dispatch2-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__downcast-0.11.0\",\n sha256 = \"1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/downcast/0.11.0/download\"],\n strip_prefix = \"downcast-0.11.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.downcast-0.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__either-1.18.0\",\n sha256 = \"252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.18.0/download\"],\n strip_prefix = \"either-1.18.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.either-1.18.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-io-0.4.0\",\n sha256 = \"ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-io/0.4.0/download\"],\n strip_prefix = \"embedded-io-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-io-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-io-0.6.1\",\n sha256 = \"edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-io/0.6.1/download\"],\n strip_prefix = \"embedded-io-0.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-io-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__encode_unicode-1.0.0\",\n sha256 = \"34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encode_unicode/1.0.0/download\"],\n strip_prefix = \"encode_unicode-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.encode_unicode-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__enum-iterator-2.3.0\",\n sha256 = \"a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-iterator/2.3.0/download\"],\n strip_prefix = \"enum-iterator-2.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.enum-iterator-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__enum-iterator-derive-1.5.0\",\n sha256 = \"685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-iterator-derive/1.5.0/download\"],\n strip_prefix = \"enum-iterator-derive-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.enum-iterator-derive-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_filter-2.0.0\",\n sha256 = \"900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_filter/2.0.0/download\"],\n strip_prefix = \"env_filter-2.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_filter-2.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_logger-0.11.11\",\n sha256 = \"de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_logger/0.11.11/download\"],\n strip_prefix = \"env_logger-0.11.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_logger-0.11.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__equivalent-1.0.2\",\n sha256 = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/equivalent/1.0.2/download\"],\n strip_prefix = \"equivalent-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.equivalent-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__errno-0.3.14\",\n sha256 = \"39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.14/download\"],\n strip_prefix = \"errno-0.3.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.errno-0.3.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fastrand-2.5.0\",\n sha256 = \"da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.5.0/download\"],\n strip_prefix = \"fastrand-2.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fastrand-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__filedesc-0.6.3\",\n sha256 = \"c4960c866d9cf4c48f64f11ef0020c98900d0cb32e9b019c000ed838470daa1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/filedesc/0.6.3/download\"],\n strip_prefix = \"filedesc-0.6.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.filedesc-0.6.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__find-msvc-tools-0.1.11\",\n sha256 = \"d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/find-msvc-tools/0.1.11/download\"],\n strip_prefix = \"find-msvc-tools-0.1.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.find-msvc-tools-0.1.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fixedbitset-0.5.7\",\n sha256 = \"1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fixedbitset/0.5.7/download\"],\n strip_prefix = \"fixedbitset-0.5.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fixedbitset-0.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foldhash-0.1.5\",\n sha256 = \"d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foldhash/0.1.5/download\"],\n strip_prefix = \"foldhash-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foldhash-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foldhash-0.2.0\",\n sha256 = \"77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foldhash/0.2.0/download\"],\n strip_prefix = \"foldhash-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foldhash-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fragile-2.1.0\",\n sha256 = \"8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fragile/2.1.0/download\"],\n strip_prefix = \"fragile-2.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fragile-2.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-0.3.34\",\n sha256 = \"9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures/0.3.34/download\"],\n strip_prefix = \"futures-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-channel-0.3.34\",\n sha256 = \"b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.34/download\"],\n strip_prefix = \"futures-channel-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-channel-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-core-0.3.34\",\n sha256 = \"92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.34/download\"],\n strip_prefix = \"futures-core-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-core-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-executor-0.3.34\",\n sha256 = \"031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-executor/0.3.34/download\"],\n strip_prefix = \"futures-executor-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-executor-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-io-0.3.34\",\n sha256 = \"53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.34/download\"],\n strip_prefix = \"futures-io-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-io-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-macro-0.3.34\",\n sha256 = \"9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-macro/0.3.34/download\"],\n strip_prefix = \"futures-macro-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-macro-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-sink-0.3.34\",\n sha256 = \"1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.34/download\"],\n strip_prefix = \"futures-sink-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-sink-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-task-0.3.34\",\n sha256 = \"cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.34/download\"],\n strip_prefix = \"futures-task-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-task-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-util-0.3.34\",\n sha256 = \"0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.34/download\"],\n strip_prefix = \"futures-util-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-util-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__generator-0.8.9\",\n sha256 = \"b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/generator/0.8.9/download\"],\n strip_prefix = \"generator-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.generator-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.2.17\",\n sha256 = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.17/download\"],\n strip_prefix = \"getrandom-0.2.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.3.4\",\n sha256 = \"899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.3.4/download\"],\n strip_prefix = \"getrandom-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.4.3\",\n sha256 = \"300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.4.3/download\"],\n strip_prefix = \"getrandom-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__glob-0.3.4\",\n sha256 = \"e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/glob/0.3.4/download\"],\n strip_prefix = \"glob-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.glob-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__h2-0.4.19\",\n sha256 = \"ef8e5e5a340588f4452631496976cf8636d4a7ecf600239fdc27615d2530bc16\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.4.19/download\"],\n strip_prefix = \"h2-0.4.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.h2-0.4.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hash32-0.2.1\",\n sha256 = \"b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hash32/0.2.1/download\"],\n strip_prefix = \"hash32-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hash32-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.15.5\",\n sha256 = \"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.15.5/download\"],\n strip_prefix = \"hashbrown-0.15.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.15.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.17.1\",\n sha256 = \"ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.17.1/download\"],\n strip_prefix = \"hashbrown-0.17.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.17.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__heapless-0.7.17\",\n sha256 = \"cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heapless/0.7.17/download\"],\n strip_prefix = \"heapless-0.7.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.heapless-0.7.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.heck-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__home-0.5.12\",\n sha256 = \"cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/home/0.5.12/download\"],\n strip_prefix = \"home-0.5.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.home-0.5.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-1.5.0\",\n sha256 = \"918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.5.0/download\"],\n strip_prefix = \"http-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-1.1.0\",\n sha256 = \"ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/1.1.0/download\"],\n strip_prefix = \"http-body-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-util-0.1.5\",\n sha256 = \"23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body-util/0.1.5/download\"],\n strip_prefix = \"http-body-util-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-util-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.httpdate-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__human_bytes-0.4.3\",\n sha256 = \"91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/human_bytes/0.4.3/download\"],\n strip_prefix = \"human_bytes-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.human_bytes-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-1.11.0\",\n sha256 = \"d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/1.11.0/download\"],\n strip_prefix = \"hyper-1.11.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-1.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-timeout-0.5.2\",\n sha256 = \"2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-timeout/0.5.2/download\"],\n strip_prefix = \"hyper-timeout-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-timeout-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-util-0.1.20\",\n sha256 = \"96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-util/0.1.20/download\"],\n strip_prefix = \"hyper-util-0.1.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-util-0.1.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-0.5.0\",\n sha256 = \"12c091b5786a230240f8f2691b9d29508ed0a02c025c254abaed8bc788a66bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2/0.5.0/download\"],\n strip_prefix = \"iceoryx2-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-container-0.5.0\",\n sha256 = \"fff9d75921f8ccd3e19261d72082b52ccc4704dcdd6930efe6c17b15693ab519\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-container/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-container-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-container-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-container-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-container-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/container\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-derive-macros-0.5.0\",\n sha256 = \"9257482fb822946bb3028225b6807350e3f815068961ff5bf683735ce01d59a4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-derive-macros/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-derive-macros-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-derive-macros-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-derive-macros-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n patches = [\n \"@@score_crates+//patches:iceoryx2_bb_derive_macros_readme.patch\",\n ],\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-derive-macros-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/derive-macros\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-elementary-0.5.0\",\n sha256 = \"38aae0237ff1575a7d9672c0202e5d313e7f674a635f6aaf619d2090fb7a12c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-elementary/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-elementary-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-elementary-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-elementary-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-elementary-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/elementary\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-elementary-traits-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-elementary-traits-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/elementary-traits\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-linux-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-linux-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/linux\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-lock-free-0.5.0\",\n sha256 = \"3ec3227a0c8b1d9e1ea4c61fa6a773e7c3b721fa3e2fd4363324f302b35ac85b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-lock-free/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-lock-free-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-lock-free-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-lock-free-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-lock-free-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/lock-free\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-log-0.5.0\",\n sha256 = \"07df5e6ff06cc2ffb0a86b67c7cd4be86b11264d5e83c02a52b384e2d5e6363a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-log/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-log-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-log-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-log-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-log-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/log\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-memory-0.5.0\",\n sha256 = \"55a4ae8856404b6e7eca567004673ca39109fc70fcf387b96ca6d6d27c61f31b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-memory/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-memory-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-memory-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-memory-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-memory-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/memory\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-posix-0.5.0\",\n sha256 = \"122ff88c452a3045a9de6db73d0429da736578f76eab75779dd0d3681de75d57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-posix/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-posix-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-posix-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-posix-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-posix-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/posix\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-system-types-0.5.0\",\n sha256 = \"ac2fb11a94823c3b9117a5e14edf16fd467794cf5391738eb2d8b7fc8e9b04fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-system-types/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-system-types-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-system-types-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-system-types-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-system-types-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/system-types\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-testing-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-testing-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/testing\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-threadsafe-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-threadsafe-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/threadsafe\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-cal-0.5.0\",\n sha256 = \"6c64b8eee1d57c4336d7df7d521671d8b76c72cac16af0db651e40f8c45f0946\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-cal/0.5.0/download\"],\n strip_prefix = \"iceoryx2-cal-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-cal-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-cal-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-cal-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-cal\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-pal-concurrency-sync-0.5.0\",\n sha256 = \"92dc4ec7c023819c41b5a14c9ca58e8dbb86476053321decda73ac440996f35f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-pal-concurrency-sync/0.5.0/download\"],\n strip_prefix = \"iceoryx2-pal-concurrency-sync-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-concurrency-sync-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-concurrency-sync-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-concurrency-sync-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/concurrency-sync\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-pal-configuration-0.5.0\",\n sha256 = \"d900aa8f9c5b661a9c5ddfbdc28eb87ac8c32be5375ca9b055b087d1c89c984d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-pal-configuration/0.5.0/download\"],\n strip_prefix = \"iceoryx2-pal-configuration-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-configuration-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-configuration-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-configuration-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/configuration\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-os-api-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-os-api-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/os-api\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-pal-posix-0.5.0\",\n sha256 = \"5789169791a6274b492561b95543e1c635285cb454d547f78e53cbc1acd9b3f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-pal-posix/0.5.0/download\"],\n strip_prefix = \"iceoryx2-pal-posix-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-posix-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-posix-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n patches = [\n \"@@score_crates+//patches:qnx8_iceoryx2.patch\",\n ],\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-posix-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/posix\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-testing-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-testing-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/testing\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indexmap-2.14.0\",\n sha256 = \"d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.14.0/download\"],\n strip_prefix = \"indexmap-2.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indexmap-2.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indicatif-0.18.6\",\n sha256 = \"9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif/0.18.6/download\"],\n strip_prefix = \"indicatif-0.18.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indicatif-0.18.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indicatif-log-bridge-0.2.3\",\n sha256 = \"63703cf9069b85dbe6fe26e1c5230d013dee99d3559cd3d02ba39e099ef7ab02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif-log-bridge/0.2.3/download\"],\n strip_prefix = \"indicatif-log-bridge-0.2.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indicatif-log-bridge-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ipc-channel-0.20.2\",\n sha256 = \"f93600b5616c2d075f8af8dbd23c1d69278c5d24e4913d220cbc60b14c95c180\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipc-channel/0.20.2/download\"],\n strip_prefix = \"ipc-channel-0.20.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ipc-channel-0.20.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__is_terminal_polyfill-1.70.2\",\n sha256 = \"a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.2/download\"],\n strip_prefix = \"is_terminal_polyfill-1.70.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.is_terminal_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.itertools-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itertools-0.13.0\",\n sha256 = \"413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.13.0/download\"],\n strip_prefix = \"itertools-0.13.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itertools-0.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itertools-0.14.0\",\n sha256 = \"2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.14.0/download\"],\n strip_prefix = \"itertools-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itertools-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itoa-1.0.18\",\n sha256 = \"8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.18/download\"],\n strip_prefix = \"itoa-1.0.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itoa-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-0.2.35\",\n sha256 = \"668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff/0.2.35/download\"],\n strip_prefix = \"jiff-0.2.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-0.2.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-core-0.1.0\",\n sha256 = \"7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-core/0.1.0/download\"],\n strip_prefix = \"jiff-core-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-core-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-static-0.2.35\",\n sha256 = \"3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-static/0.2.35/download\"],\n strip_prefix = \"jiff-static-0.2.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-static-0.2.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__js-sys-0.3.104\",\n sha256 = \"0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.104/download\"],\n strip_prefix = \"js-sys-0.3.104\",\n build_file = Label(\"@crate_index//crate_index:BUILD.js-sys-0.3.104.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lazycell-1.3.0\",\n sha256 = \"830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazycell/1.3.0/download\"],\n strip_prefix = \"lazycell-1.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lazycell-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libc-0.2.186\",\n sha256 = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.186/download\"],\n strip_prefix = \"libc-0.2.186\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libc-0.2.186.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libloading-0.8.9\",\n sha256 = \"d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libloading/0.8.9/download\"],\n strip_prefix = \"libloading-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libloading-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__linux-raw-sys-0.12.1\",\n sha256 = \"32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.12.1/download\"],\n strip_prefix = \"linux-raw-sys-0.12.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.linux-raw-sys-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__linux-raw-sys-0.4.15\",\n sha256 = \"d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.4.15/download\"],\n strip_prefix = \"linux-raw-sys-0.4.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.linux-raw-sys-0.4.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lock_api-0.4.14\",\n sha256 = \"224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.14/download\"],\n strip_prefix = \"lock_api-0.4.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lock_api-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__log-0.4.34\",\n sha256 = \"f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.34/download\"],\n strip_prefix = \"log-0.4.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.log-0.4.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__loom-0.7.2\",\n sha256 = \"419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/loom/0.7.2/download\"],\n strip_prefix = \"loom-0.7.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.loom-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__matchers-0.2.0\",\n sha256 = \"d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchers/0.2.0/download\"],\n strip_prefix = \"matchers-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.matchers-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__matchit-0.8.4\",\n sha256 = \"47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchit/0.8.4/download\"],\n strip_prefix = \"matchit-0.8.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.matchit-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__memchr-2.8.3\",\n sha256 = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.3/download\"],\n strip_prefix = \"memchr-2.8.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.memchr-2.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__minimal-lexical-0.2.1\",\n sha256 = \"68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/minimal-lexical/0.2.1/download\"],\n strip_prefix = \"minimal-lexical-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.minimal-lexical-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mio-1.2.2\",\n sha256 = \"30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.2.2/download\"],\n strip_prefix = \"mio-1.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mio-1.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mockall-0.14.0\",\n sha256 = \"f58d964098a5f9c6b63d0798e5372fd04708193510a7af313c22e9f29b7b620b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mockall/0.14.0/download\"],\n strip_prefix = \"mockall-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mockall-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mockall_derive-0.14.0\",\n sha256 = \"ca41ce716dda6a9be188b385aa78ee5260fc25cd3802cb2a8afdc6afbe6b6dbf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mockall_derive/0.14.0/download\"],\n strip_prefix = \"mockall_derive-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mockall_derive-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__multimap-0.10.1\",\n sha256 = \"1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.10.1/download\"],\n strip_prefix = \"multimap-0.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.multimap-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nix-0.30.1\",\n sha256 = \"74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.30.1/download\"],\n strip_prefix = \"nix-0.30.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nix-0.30.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nix-0.31.3\",\n sha256 = \"cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.31.3/download\"],\n strip_prefix = \"nix-0.31.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nix-0.31.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nom-7.1.3\",\n sha256 = \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nom/7.1.3/download\"],\n strip_prefix = \"nom-7.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nom-7.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nu-ansi-term-0.50.3\",\n sha256 = \"7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nu-ansi-term/0.50.3/download\"],\n strip_prefix = \"nu-ansi-term-0.50.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nu-ansi-term-0.50.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-conv-0.2.2\",\n sha256 = \"521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.2.2/download\"],\n strip_prefix = \"num-conv-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-conv-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__objc2-0.6.4\",\n sha256 = \"3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/objc2/0.6.4/download\"],\n strip_prefix = \"objc2-0.6.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.objc2-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__objc2-encode-4.1.0\",\n sha256 = \"ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/objc2-encode/4.1.0/download\"],\n strip_prefix = \"objc2-encode-4.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.objc2-encode-4.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell-1.21.4\",\n sha256 = \"9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.4/download\"],\n strip_prefix = \"once_cell-1.21.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell-1.21.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell_polyfill-1.70.2\",\n sha256 = \"384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell_polyfill/1.70.2/download\"],\n strip_prefix = \"once_cell_polyfill-1.70.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ouroboros-0.18.5\",\n sha256 = \"1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ouroboros/0.18.5/download\"],\n strip_prefix = \"ouroboros-0.18.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ouroboros-0.18.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ouroboros_macro-0.18.5\",\n sha256 = \"3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ouroboros_macro/0.18.5/download\"],\n strip_prefix = \"ouroboros_macro-0.18.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ouroboros_macro-0.18.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pastey-0.2.3\",\n sha256 = \"2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pastey/0.2.3/download\"],\n strip_prefix = \"pastey-0.2.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pastey-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__petgraph-0.7.1\",\n sha256 = \"3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/petgraph/0.7.1/download\"],\n strip_prefix = \"petgraph-0.7.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.petgraph-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__petgraph-0.8.3\",\n sha256 = \"8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/petgraph/0.8.3/download\"],\n strip_prefix = \"petgraph-0.8.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.petgraph-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pico-args-0.5.0\",\n sha256 = \"5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pico-args/0.5.0/download\"],\n strip_prefix = \"pico-args-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pico-args-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-1.1.13\",\n sha256 = \"2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project/1.1.13/download\"],\n strip_prefix = \"pin-project-1.1.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-1.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-internal-1.1.13\",\n sha256 = \"c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-internal/1.1.13/download\"],\n strip_prefix = \"pin-project-internal-1.1.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-internal-1.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-lite-0.2.17\",\n sha256 = \"a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.17/download\"],\n strip_prefix = \"pin-project-lite-0.2.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-lite-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-1.15.0\",\n sha256 = \"05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.15.0/download\"],\n strip_prefix = \"portable-atomic-1.15.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-1.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-util-0.2.7\",\n sha256 = \"c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic-util/0.2.7/download\"],\n strip_prefix = \"portable-atomic-util-0.2.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-util-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__postcard-1.1.3\",\n sha256 = \"6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/postcard/1.1.3/download\"],\n strip_prefix = \"postcard-1.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.postcard-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__postcard-derive-0.2.2\",\n sha256 = \"e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/postcard-derive/0.2.2/download\"],\n strip_prefix = \"postcard-derive-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.postcard-derive-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ppv-lite86-0.2.21\",\n sha256 = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.21/download\"],\n strip_prefix = \"ppv-lite86-0.2.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ppv-lite86-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__predicates-3.1.4\",\n sha256 = \"ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/predicates/3.1.4/download\"],\n strip_prefix = \"predicates-3.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.predicates-3.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__predicates-core-1.0.10\",\n sha256 = \"cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/predicates-core/1.0.10/download\"],\n strip_prefix = \"predicates-core-1.0.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.predicates-core-1.0.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__predicates-tree-1.0.13\",\n sha256 = \"d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/predicates-tree/1.0.13/download\"],\n strip_prefix = \"predicates-tree-1.0.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.predicates-tree-1.0.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prettyplease-0.2.37\",\n sha256 = \"479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prettyplease/0.2.37/download\"],\n strip_prefix = \"prettyplease-0.2.37\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prettyplease-0.2.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__proc-macro2-1.0.107\",\n sha256 = \"985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.107/download\"],\n strip_prefix = \"proc-macro2-1.0.107\",\n build_file = Label(\"@crate_index//crate_index:BUILD.proc-macro2-1.0.107.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__proc-macro2-diagnostics-0.10.1\",\n sha256 = \"af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2-diagnostics/0.10.1/download\"],\n strip_prefix = \"proc-macro2-diagnostics-0.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.proc-macro2-diagnostics-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-0.13.5\",\n sha256 = \"2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost/0.13.5/download\"],\n strip_prefix = \"prost-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-0.14.4\",\n sha256 = \"528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost/0.14.4/download\"],\n strip_prefix = \"prost-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-build-0.13.5\",\n sha256 = \"be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-build/0.13.5/download\"],\n strip_prefix = \"prost-build-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-build-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-build-0.14.4\",\n sha256 = \"03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-build/0.14.4/download\"],\n strip_prefix = \"prost-build-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-build-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-derive-0.13.5\",\n sha256 = \"8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-derive/0.13.5/download\"],\n strip_prefix = \"prost-derive-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-derive-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-derive-0.14.4\",\n sha256 = \"b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-derive/0.14.4/download\"],\n strip_prefix = \"prost-derive-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-derive-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-types-0.13.5\",\n sha256 = \"52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-types/0.13.5/download\"],\n strip_prefix = \"prost-types-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-types-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-types-0.14.4\",\n sha256 = \"f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-types/0.14.4/download\"],\n strip_prefix = \"prost-types-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-types-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__protoc-gen-prost-0.4.0\",\n sha256 = \"77eb17a7657a703f30cb9b7ba4d981e4037b8af2d819ab0077514b0bef537406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protoc-gen-prost/0.4.0/download\"],\n strip_prefix = \"protoc-gen-prost-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.protoc-gen-prost-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__protoc-gen-tonic-0.4.1\",\n sha256 = \"6ab6a0d73a0914752ed8fd7cc51afe169e28da87be3efef292de5676cc527634\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protoc-gen-tonic/0.4.1/download\"],\n strip_prefix = \"protoc-gen-tonic-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.protoc-gen-tonic-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__quote-1.0.47\",\n sha256 = \"1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.47/download\"],\n strip_prefix = \"quote-1.0.47\",\n build_file = Label(\"@crate_index//crate_index:BUILD.quote-1.0.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__r-efi-5.3.0\",\n sha256 = \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/5.3.0/download\"],\n strip_prefix = \"r-efi-5.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.r-efi-5.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__r-efi-6.0.0\",\n sha256 = \"f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/6.0.0/download\"],\n strip_prefix = \"r-efi-6.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.r-efi-6.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand-0.9.5\",\n sha256 = \"b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.9.5/download\"],\n strip_prefix = \"rand-0.9.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_chacha-0.9.0\",\n sha256 = \"d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.9.0/download\"],\n strip_prefix = \"rand_chacha-0.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_chacha-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_core-0.9.5\",\n sha256 = \"76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.9.5/download\"],\n strip_prefix = \"rand_core-0.9.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_core-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-1.13.1\",\n sha256 = \"f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.13.1/download\"],\n strip_prefix = \"regex-1.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-automata-0.4.18\",\n sha256 = \"ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.18/download\"],\n strip_prefix = \"regex-automata-0.4.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-automata-0.4.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-syntax-0.8.11\",\n sha256 = \"d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.11/download\"],\n strip_prefix = \"regex-syntax-0.8.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-syntax-0.8.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustc-hash-1.1.0\",\n sha256 = \"08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-hash/1.1.0/download\"],\n strip_prefix = \"rustc-hash-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustc-hash-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustc-hash-2.1.3\",\n sha256 = \"6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-hash/2.1.3/download\"],\n strip_prefix = \"rustc-hash-2.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustc-hash-2.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.rustc_version-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustix-0.38.44\",\n sha256 = \"fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/0.38.44/download\"],\n strip_prefix = \"rustix-0.38.44\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustix-0.38.44.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustix-1.1.4\",\n sha256 = \"b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/1.1.4/download\"],\n strip_prefix = \"rustix-1.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustix-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustversion-1.0.23\",\n sha256 = \"cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.23/download\"],\n strip_prefix = \"rustversion-1.0.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustversion-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.scoped-tls-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sem_safe-0.2.1\",\n sha256 = \"be9665e92f9b596cf2b20a8c0f55126cfee3514307740a859f1b25bc929e4947\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sem_safe/0.2.1/download\"],\n strip_prefix = \"sem_safe-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sem_safe-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__semver-1.0.28\",\n sha256 = \"8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.28/download\"],\n strip_prefix = \"semver-1.0.28\",\n build_file = Label(\"@crate_index//crate_index:BUILD.semver-1.0.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde-1.0.229\",\n sha256 = \"4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.229/download\"],\n strip_prefix = \"serde-1.0.229\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde-1.0.229.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_core-1.0.229\",\n sha256 = \"67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_core/1.0.229/download\"],\n strip_prefix = \"serde_core-1.0.229\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_core-1.0.229.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_derive-1.0.229\",\n sha256 = \"e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.229/download\"],\n strip_prefix = \"serde_derive-1.0.229\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_derive-1.0.229.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_json-1.0.151\",\n sha256 = \"c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.151/download\"],\n strip_prefix = \"serde_json-1.0.151\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_json-1.0.151.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_spanned-0.6.9\",\n sha256 = \"bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_spanned/0.6.9/download\"],\n strip_prefix = \"serde_spanned-0.6.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_spanned-0.6.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.sha1_smol-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.sharded-slab-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__shlex-2.0.1\",\n sha256 = \"f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/2.0.1/download\"],\n strip_prefix = \"shlex-2.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.shlex-2.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signal-hook-0.3.18\",\n sha256 = \"d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook/0.3.18/download\"],\n strip_prefix = \"signal-hook-0.3.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signal-hook-0.3.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signal-hook-registry-1.4.8\",\n sha256 = \"c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.8/download\"],\n strip_prefix = \"signal-hook-registry-1.4.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signal-hook-registry-1.4.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__slab-0.4.12\",\n sha256 = \"0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.12/download\"],\n strip_prefix = \"slab-0.4.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.slab-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__smallvec-1.15.2\",\n sha256 = \"8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.15.2/download\"],\n strip_prefix = \"smallvec-1.15.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.smallvec-1.15.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__smawk-0.3.3\",\n sha256 = \"e8e2fb0f499abb4d162f2bedad68f5ef91a1682b5a03596ddb67efd37768d100\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smawk/0.3.3/download\"],\n strip_prefix = \"smawk-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.smawk-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__socket2-0.6.5\",\n sha256 = \"c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.6.5/download\"],\n strip_prefix = \"socket2-0.6.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.socket2-0.6.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__spin-0.9.9\",\n sha256 = \"3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.9/download\"],\n strip_prefix = \"spin-0.9.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.spin-0.9.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__stable_deref_trait-1.2.1\",\n sha256 = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/stable_deref_trait/1.2.1/download\"],\n strip_prefix = \"stable_deref_trait-1.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.stable_deref_trait-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__static_assertions-1.1.0\",\n sha256 = \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/static_assertions/1.1.0/download\"],\n strip_prefix = \"static_assertions-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.static_assertions-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__syn-2.0.119\",\n sha256 = \"872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.119/download\"],\n strip_prefix = \"syn-2.0.119\",\n build_file = Label(\"@crate_index//crate_index:BUILD.syn-2.0.119.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__syn-3.0.4\",\n sha256 = \"e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/3.0.4/download\"],\n strip_prefix = \"syn-3.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.syn-3.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sync_wrapper-1.0.2\",\n sha256 = \"0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/1.0.2/download\"],\n strip_prefix = \"sync_wrapper-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sync_wrapper-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tempfile-3.27.0\",\n sha256 = \"32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.27.0/download\"],\n strip_prefix = \"tempfile-3.27.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tempfile-3.27.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__termsize-0.1.9\",\n sha256 = \"6f11ff5c25c172608d5b85e2fb43ee9a6d683a7f4ab7f96ae07b3d8b590368fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/termsize/0.1.9/download\"],\n strip_prefix = \"termsize-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.termsize-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__termtree-0.5.1\",\n sha256 = \"8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/termtree/0.5.1/download\"],\n strip_prefix = \"termtree-0.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.termtree-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__textwrap-0.16.2\",\n sha256 = \"c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/textwrap/0.16.2/download\"],\n strip_prefix = \"textwrap-0.16.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.textwrap-0.16.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-2.0.20\",\n sha256 = \"ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/2.0.20/download\"],\n strip_prefix = \"thiserror-2.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-2.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-impl-2.0.20\",\n sha256 = \"bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/2.0.20/download\"],\n strip_prefix = \"thiserror-impl-2.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-impl-2.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thread_local-1.1.10\",\n sha256 = \"1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thread_local/1.1.10/download\"],\n strip_prefix = \"thread_local-1.1.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thread_local-1.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-0.3.55\",\n sha256 = \"cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.55/download\"],\n strip_prefix = \"time-0.3.55\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-0.3.55.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-core-0.1.9\",\n sha256 = \"9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.9/download\"],\n strip_prefix = \"time-core-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-core-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-macros-0.2.32\",\n sha256 = \"7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.32/download\"],\n strip_prefix = \"time-macros-0.2.32\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-macros-0.2.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tiny-fn-0.1.9\",\n sha256 = \"9659b108631d1e1cf3e8e489f894bee40bc9d68fd6cc67ec4d4ce9b72d565228\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tiny-fn/0.1.9/download\"],\n strip_prefix = \"tiny-fn-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tiny-fn-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tinyjson-2.5.1\",\n sha256 = \"9ab95735ea2c8fd51154d01e39cf13912a78071c2d89abc49a7ef102a7dd725a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyjson/2.5.1/download\"],\n strip_prefix = \"tinyjson-2.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tinyjson-2.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-1.53.1\",\n sha256 = \"202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.53.1/download\"],\n strip_prefix = \"tokio-1.53.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-1.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-macros-2.7.2\",\n sha256 = \"78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.7.2/download\"],\n strip_prefix = \"tokio-macros-2.7.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-macros-2.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-seqpacket-0.8.2\",\n sha256 = \"24d1294c36e418ee280e57ba514cc260c0c80c69571abf44109eef2823a1c1c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-seqpacket/0.8.2/download\"],\n strip_prefix = \"tokio-seqpacket-0.8.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-seqpacket-0.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-stream-0.1.19\",\n sha256 = \"a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-stream/0.1.19/download\"],\n strip_prefix = \"tokio-stream-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-stream-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-util-0.7.19\",\n sha256 = \"494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.19/download\"],\n strip_prefix = \"tokio-util-0.7.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-util-0.7.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml-0.8.23\",\n sha256 = \"dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml/0.8.23/download\"],\n strip_prefix = \"toml-0.8.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml-0.8.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml_datetime-0.6.11\",\n sha256 = \"22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_datetime/0.6.11/download\"],\n strip_prefix = \"toml_datetime-0.6.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml_datetime-0.6.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml_edit-0.22.27\",\n sha256 = \"41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_edit/0.22.27/download\"],\n strip_prefix = \"toml_edit-0.22.27\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml_edit-0.22.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml_write-0.1.2\",\n sha256 = \"5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_write/0.1.2/download\"],\n strip_prefix = \"toml_write-0.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml_write-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tonic-0.14.6\",\n sha256 = \"ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic/0.14.6/download\"],\n strip_prefix = \"tonic-0.14.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tonic-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tonic-build-0.12.3\",\n sha256 = \"9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-build/0.12.3/download\"],\n strip_prefix = \"tonic-build-0.12.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tonic-build-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-0.5.3\",\n sha256 = \"ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.5.3/download\"],\n strip_prefix = \"tower-0.5.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-0.1.44\",\n sha256 = \"63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.44/download\"],\n strip_prefix = \"tracing-0.1.44\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-0.1.44.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-attributes-0.1.31\",\n sha256 = \"7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-attributes/0.1.31/download\"],\n strip_prefix = \"tracing-attributes-0.1.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-attributes-0.1.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-core-0.1.36\",\n sha256 = \"db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.36/download\"],\n strip_prefix = \"tracing-core-0.1.36\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-core-0.1.36.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.tracing-log-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-serde-0.2.0\",\n sha256 = \"704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-serde/0.2.0/download\"],\n strip_prefix = \"tracing-serde-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-serde-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-subscriber-0.3.23\",\n sha256 = \"cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-subscriber/0.3.23/download\"],\n strip_prefix = \"tracing-subscriber-0.3.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-subscriber-0.3.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-ident-1.0.24\",\n sha256 = \"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.24/download\"],\n strip_prefix = \"unicode-ident-1.0.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-ident-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-linebreak-0.1.5\",\n sha256 = \"3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-linebreak/0.1.5/download\"],\n strip_prefix = \"unicode-linebreak-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-linebreak-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-width-0.2.2\",\n sha256 = \"b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-width/0.2.2/download\"],\n strip_prefix = \"unicode-width-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-width-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unit-prefix-0.5.2\",\n sha256 = \"81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unit-prefix/0.5.2/download\"],\n strip_prefix = \"unit-prefix-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unit-prefix-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__uuid-1.25.0\",\n sha256 = \"f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/uuid/1.25.0/download\"],\n strip_prefix = \"uuid-1.25.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.uuid-1.25.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__valuable-0.1.1\",\n sha256 = \"ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/valuable/0.1.1/download\"],\n strip_prefix = \"valuable-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.valuable-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasip2-1.0.4-wasi-0.2.12\",\n sha256 = \"b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasip2/1.0.4+wasi-0.2.12/download\"],\n strip_prefix = \"wasip2-1.0.4+wasi-0.2.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasip2-1.0.4+wasi-0.2.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-0.2.127\",\n sha256 = \"1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-0.2.127\",\n sha256 = \"77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-support-0.2.127\",\n sha256 = \"e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-support-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-shared-0.2.127\",\n sha256 = \"7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-shared-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__web-time-1.1.0\",\n sha256 = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-time/1.1.0/download\"],\n strip_prefix = \"web-time-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.web-time-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__which-4.4.2\",\n sha256 = \"87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/which/4.4.2/download\"],\n strip_prefix = \"which-4.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.which-4.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.winapi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-0.61.3\",\n sha256 = \"9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows/0.61.3/download\"],\n strip_prefix = \"windows-0.61.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-0.61.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-collections-0.2.0\",\n sha256 = \"3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-collections/0.2.0/download\"],\n strip_prefix = \"windows-collections-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-collections-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-core-0.61.2\",\n sha256 = \"c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.61.2/download\"],\n strip_prefix = \"windows-core-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-core-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-future-0.2.1\",\n sha256 = \"fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-future/0.2.1/download\"],\n strip_prefix = \"windows-future-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-future-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-implement-0.60.2\",\n sha256 = \"053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-implement/0.60.2/download\"],\n strip_prefix = \"windows-implement-0.60.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-implement-0.60.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-interface-0.59.3\",\n sha256 = \"3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-interface/0.59.3/download\"],\n strip_prefix = \"windows-interface-0.59.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-interface-0.59.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.1.3\",\n sha256 = \"5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.1.3/download\"],\n strip_prefix = \"windows-link-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.2.1\",\n sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n strip_prefix = \"windows-link-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-numerics-0.2.0\",\n sha256 = \"9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-numerics/0.2.0/download\"],\n strip_prefix = \"windows-numerics-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-numerics-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.3.4\",\n sha256 = \"56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.3.4/download\"],\n strip_prefix = \"windows-result-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.4.1\",\n sha256 = \"7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.4.1/download\"],\n strip_prefix = \"windows-result-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-strings-0.4.2\",\n sha256 = \"56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-strings/0.4.2/download\"],\n strip_prefix = \"windows-strings-0.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-strings-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-sys-0.48.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-sys-0.59.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.61.2\",\n sha256 = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.61.2/download\"],\n strip_prefix = \"windows-sys-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-targets-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-threading-0.1.0\",\n sha256 = \"b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-threading/0.1.0/download\"],\n strip_prefix = \"windows-threading-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-threading-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winnow-0.7.15\",\n sha256 = \"df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winnow/0.7.15/download\"],\n strip_prefix = \"winnow-0.7.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winnow-0.7.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wit-bindgen-0.57.1\",\n sha256 = \"1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen/0.57.1/download\"],\n strip_prefix = \"wit-bindgen-0.57.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wit-bindgen-0.57.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__yansi-1.0.1\",\n sha256 = \"cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yansi/1.0.1/download\"],\n strip_prefix = \"yansi-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.yansi-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-0.8.56\",\n sha256 = \"556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy/0.8.56/download\"],\n strip_prefix = \"zerocopy-0.8.56\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-0.8.56.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-derive-0.8.56\",\n sha256 = \"f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy-derive/0.8.56/download\"],\n strip_prefix = \"zerocopy-derive-0.8.56\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-derive-0.8.56.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize-1.9.0\",\n sha256 = \"e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.9.0/download\"],\n strip_prefix = \"zeroize-1.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize_derive-1.5.0\",\n sha256 = \"3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize_derive/1.5.0/download\"],\n strip_prefix = \"zeroize_derive-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize_derive-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zmij-1.0.23\",\n sha256 = \"29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zmij/1.0.23/download\"],\n strip_prefix = \"zmij-1.0.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zmij-1.0.23.bazel\"),\n )\n\n return [\n struct(repo=\"crate_index__adler32-1.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__anyhow-1.0.104\", is_dev_dep = False),\n struct(repo=\"crate_index__argh-0.1.19\", is_dev_dep = False),\n struct(repo=\"crate_index__arrayvec-0.7.8\", is_dev_dep = False),\n struct(repo=\"crate_index__async-stream-0.3.6\", is_dev_dep = False),\n struct(repo=\"crate_index__bytes-1.12.1\", is_dev_dep = False),\n struct(repo=\"crate_index__cc-1.4.4\", is_dev_dep = False),\n struct(repo=\"crate_index__clap-4.6.6\", is_dev_dep = False),\n struct(repo=\"crate_index__cliclack-0.3.8\", is_dev_dep = False),\n struct(repo=\"crate_index__console-0.16.4\", is_dev_dep = False),\n struct(repo=\"crate_index__ctrlc-3.5.2\", is_dev_dep = False),\n struct(repo=\"crate_index__env_logger-0.11.11\", is_dev_dep = False),\n struct(repo=\"crate_index__equivalent-1.0.2\", is_dev_dep = False),\n struct(repo=\"crate_index__foldhash-0.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__futures-0.3.34\", is_dev_dep = False),\n struct(repo=\"crate_index__hashbrown-0.17.1\", is_dev_dep = False),\n struct(repo=\"crate_index__human_bytes-0.4.3\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-container-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-derive-macros-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-elementary-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-elementary-traits-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-lock-free-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-memory-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-posix-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-system-types-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-testing-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-threadsafe-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-cal-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-pal-concurrency-sync-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__indexmap-2.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__indicatif-0.18.6\", is_dev_dep = False),\n struct(repo=\"crate_index__indicatif-log-bridge-0.2.3\", is_dev_dep = False),\n struct(repo=\"crate_index__ipc-channel-0.20.2\", is_dev_dep = False),\n struct(repo=\"crate_index__libc-0.2.186\", is_dev_dep = False),\n struct(repo=\"crate_index__log-0.4.34\", is_dev_dep = False),\n struct(repo=\"crate_index__loom-0.7.2\", is_dev_dep = False),\n struct(repo=\"crate_index__mio-1.2.2\", is_dev_dep = False),\n struct(repo=\"crate_index__mockall-0.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__nix-0.30.1\", is_dev_dep = False),\n struct(repo=\"crate_index__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crate_index__pastey-0.2.3\", is_dev_dep = False),\n struct(repo=\"crate_index__pico-args-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__postcard-1.1.3\", is_dev_dep = False),\n struct(repo=\"crate_index__proc-macro2-1.0.107\", is_dev_dep = False),\n struct(repo=\"crate_index__prost-0.14.4\", is_dev_dep = False),\n struct(repo=\"crate_index__prost-build-0.14.4\", is_dev_dep = False),\n struct(repo=\"crate_index__prost-types-0.14.4\", is_dev_dep = False),\n struct(repo=\"crate_index__protoc-gen-prost-0.4.0\", is_dev_dep = False),\n struct(repo=\"crate_index__protoc-gen-tonic-0.4.1\", is_dev_dep = False),\n struct(repo=\"crate_index__quote-1.0.47\", is_dev_dep = False),\n struct(repo=\"crate_index__rand-0.9.5\", is_dev_dep = False),\n struct(repo=\"crate_index__rustversion-1.0.23\", is_dev_dep = False),\n struct(repo=\"crate_index__sem_safe-0.2.1\", is_dev_dep = False),\n struct(repo=\"crate_index__serde-1.0.229\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_core-1.0.229\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_json-1.0.151\", is_dev_dep = False),\n struct(repo=\"crate_index__signal-hook-0.3.18\", is_dev_dep = False),\n struct(repo=\"crate_index__socket2-0.6.5\", is_dev_dep = False),\n struct(repo=\"crate_index__syn-2.0.119\", is_dev_dep = False),\n struct(repo=\"crate_index__tempfile-3.27.0\", is_dev_dep = False),\n struct(repo=\"crate_index__thiserror-2.0.20\", is_dev_dep = False),\n struct(repo=\"crate_index__time-0.3.55\", is_dev_dep = False),\n struct(repo=\"crate_index__tinyjson-2.5.1\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-1.53.1\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-seqpacket-0.8.2\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-util-0.7.19\", is_dev_dep = False),\n struct(repo=\"crate_index__tonic-0.14.6\", is_dev_dep = False),\n struct(repo=\"crate_index__tracing-0.1.44\", is_dev_dep = False),\n struct(repo=\"crate_index__tracing-subscriber-0.3.23\", is_dev_dep = False),\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 'score_crates'\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 \"\": {\n _COMMON_CONDITION: {\n \"adler32\": Label(\"@crate_index//:adler32-1.2.0\"),\n \"anyhow\": Label(\"@crate_index//:anyhow-1.0.104\"),\n \"argh\": Label(\"@crate_index//:argh-0.1.19\"),\n \"arrayvec\": Label(\"@crate_index//:arrayvec-0.7.8\"),\n \"async-stream\": Label(\"@crate_index//:async-stream-0.3.6\"),\n \"bytes\": Label(\"@crate_index//:bytes-1.12.1\"),\n \"cc\": Label(\"@crate_index//:cc-1.4.4\"),\n \"clap\": Label(\"@crate_index//:clap-4.6.6\"),\n \"cliclack\": Label(\"@crate_index//:cliclack-0.3.8\"),\n \"console\": Label(\"@crate_index//:console-0.16.4\"),\n \"ctrlc\": Label(\"@crate_index//:ctrlc-3.5.2\"),\n \"env_logger\": Label(\"@crate_index//:env_logger-0.11.11\"),\n \"equivalent\": Label(\"@crate_index//:equivalent-1.0.2\"),\n \"foldhash\": Label(\"@crate_index//:foldhash-0.2.0\"),\n \"futures\": Label(\"@crate_index//:futures-0.3.34\"),\n \"hashbrown\": Label(\"@crate_index//:hashbrown-0.17.1\"),\n \"human_bytes\": Label(\"@crate_index//:human_bytes-0.4.3\"),\n \"iceoryx2\": Label(\"@crate_index//:iceoryx2-0.5.0\"),\n \"iceoryx2-bb-container-qnx8\": Label(\"@crate_index//:iceoryx2-bb-container-qnx8-0.7.0\"),\n \"iceoryx2-bb-elementary-qnx8\": Label(\"@crate_index//:iceoryx2-bb-elementary-qnx8-0.7.0\"),\n \"iceoryx2-bb-elementary-traits-qnx8\": Label(\"@crate_index//:iceoryx2-bb-elementary-traits-qnx8-0.7.0\"),\n \"iceoryx2-bb-lock-free-qnx8\": Label(\"@crate_index//:iceoryx2-bb-lock-free-qnx8-0.7.0\"),\n \"iceoryx2-bb-memory-qnx8\": Label(\"@crate_index//:iceoryx2-bb-memory-qnx8-0.7.0\"),\n \"iceoryx2-bb-posix-qnx8\": Label(\"@crate_index//:iceoryx2-bb-posix-qnx8-0.7.0\"),\n \"iceoryx2-bb-system-types-qnx8\": Label(\"@crate_index//:iceoryx2-bb-system-types-qnx8-0.7.0\"),\n \"iceoryx2-bb-testing-qnx8\": Label(\"@crate_index//:iceoryx2-bb-testing-qnx8-0.7.0\"),\n \"iceoryx2-bb-threadsafe-qnx8\": Label(\"@crate_index//:iceoryx2-bb-threadsafe-qnx8-0.7.0\"),\n \"iceoryx2-cal-qnx8\": Label(\"@crate_index//:iceoryx2-cal-qnx8-0.7.0\"),\n \"iceoryx2-pal-concurrency-sync-qnx8\": Label(\"@crate_index//:iceoryx2-pal-concurrency-sync-qnx8-0.7.0\"),\n \"iceoryx2-qnx8\": Label(\"@crate_index//:iceoryx2-qnx8-0.7.0\"),\n \"indexmap\": Label(\"@crate_index//:indexmap-2.14.0\"),\n \"indicatif\": Label(\"@crate_index//:indicatif-0.18.6\"),\n \"indicatif-log-bridge\": Label(\"@crate_index//:indicatif-log-bridge-0.2.3\"),\n \"ipc-channel\": Label(\"@crate_index//:ipc-channel-0.20.2\"),\n \"libc\": Label(\"@crate_index//:libc-0.2.186\"),\n \"log\": Label(\"@crate_index//:log-0.4.34\"),\n \"loom\": Label(\"@crate_index//:loom-0.7.2\"),\n \"mio\": Label(\"@crate_index//:mio-1.2.2\"),\n \"mockall\": Label(\"@crate_index//:mockall-0.14.0\"),\n \"nix\": Label(\"@crate_index//:nix-0.30.1\"),\n \"pico-args\": Label(\"@crate_index//:pico-args-0.5.0\"),\n \"postcard\": Label(\"@crate_index//:postcard-1.1.3\"),\n \"proc-macro2\": Label(\"@crate_index//:proc-macro2-1.0.107\"),\n \"prost\": Label(\"@crate_index//:prost-0.14.4\"),\n \"prost-build\": Label(\"@crate_index//:prost-build-0.14.4\"),\n \"prost-types\": Label(\"@crate_index//:prost-types-0.14.4\"),\n \"protoc-gen-prost\": Label(\"@crate_index//:protoc-gen-prost-0.4.0\"),\n \"protoc-gen-tonic\": Label(\"@crate_index//:protoc-gen-tonic-0.4.1\"),\n \"quote\": Label(\"@crate_index//:quote-1.0.47\"),\n \"rand\": Label(\"@crate_index//:rand-0.9.5\"),\n \"sem_safe\": Label(\"@crate_index//:sem_safe-0.2.1\"),\n \"serde\": Label(\"@crate_index//:serde-1.0.229\"),\n \"serde_core\": Label(\"@crate_index//:serde_core-1.0.229\"),\n \"serde_json\": Label(\"@crate_index//:serde_json-1.0.151\"),\n \"signal-hook\": Label(\"@crate_index//:signal-hook-0.3.18\"),\n \"socket2\": Label(\"@crate_index//:socket2-0.6.5\"),\n \"syn\": Label(\"@crate_index//:syn-2.0.119\"),\n \"tempfile\": Label(\"@crate_index//:tempfile-3.27.0\"),\n \"thiserror\": Label(\"@crate_index//:thiserror-2.0.20\"),\n \"time\": Label(\"@crate_index//:time-0.3.55\"),\n \"tinyjson\": Label(\"@crate_index//:tinyjson-2.5.1\"),\n \"tokio\": Label(\"@crate_index//:tokio-1.53.1\"),\n \"tokio-seqpacket\": Label(\"@crate_index//:tokio-seqpacket-0.8.2\"),\n \"tokio-util\": Label(\"@crate_index//:tokio-util-0.7.19\"),\n \"tonic\": Label(\"@crate_index//:tonic-0.14.6\"),\n \"tracing\": Label(\"@crate_index//:tracing-0.1.44\"),\n \"tracing-subscriber\": Label(\"@crate_index//:tracing-subscriber-0.3.23\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"\": {\n _COMMON_CONDITION: {\n \"iceoryx2-bb-derive-macros-qnx8\": Label(\"@crate_index//:iceoryx2-bb-derive-macros-qnx8-0.7.0\"),\n \"paste\": Label(\"@crate_index//:paste-1.0.15\"),\n \"pastey\": Label(\"@crate_index//:pastey-0.2.3\"),\n \"rustversion\": Label(\"@crate_index//:rustversion-1.0.23\"),\n },\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"aarch64-unknown-nto-qnx710\": [\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", target_arch = \\\"s390x\\\"), 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 = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", target_arch = \\\"s390x\\\"), 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 = \\\"s390x\\\"), 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:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", target_arch = \\\"s390x\\\"), 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 = \\\"s390x\\\"), 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-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\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\"],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\": [],\n \"cfg(any())\": [],\n \"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\": [],\n \"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\"],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\": [],\n \"cfg(any(target_os = \\\"linux\\\", target_os = \\\"openbsd\\\", target_os = \\\"freebsd\\\", target_os = \\\"illumos\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\": [],\n \"cfg(any(unix, target_os = \\\"hermit\\\", target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(unix, target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(windows, unix, target_os = \\\"redox\\\"))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(target_has_atomic = \\\"ptr\\\"))\": [],\n \"cfg(target_arch = \\\"x86_64\\\")\": [\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"macos\\\")\": [],\n \"cfg(target_os = \\\"netbsd\\\")\": [],\n \"cfg(target_os = \\\"solaris\\\")\": [],\n \"cfg(target_os = \\\"vxworks\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [],\n \"cfg(target_os = \\\"windows\\\")\": [],\n \"cfg(target_vendor = \\\"apple\\\")\": [],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(windows)\": [],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"riscv32i-unknown-none-elf\": [],\n \"riscv32imc-unknown-none-elf\": [],\n \"x86_64-pc-nto-qnx710\": [\"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\"],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-unknown-none\": [\"@rules_rust//rust/platform:x86_64-unknown-none\"],\n \"xtensa-esp32s2-none-elf\": [],\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 = \"crate_index__adler32-1.2.0\",\n sha256 = \"aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler32/1.2.0/download\"],\n strip_prefix = \"adler32-1.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.adler32-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aho-corasick-1.1.5\",\n sha256 = \"c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.5/download\"],\n strip_prefix = \"aho-corasick-1.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aho-corasick-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aliasable-0.1.3\",\n sha256 = \"250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aliasable/0.1.3/download\"],\n strip_prefix = \"aliasable-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aliasable-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__allocator-api2-0.2.21\",\n sha256 = \"683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/allocator-api2/0.2.21/download\"],\n strip_prefix = \"allocator-api2-0.2.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.allocator-api2-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstream-1.0.0\",\n sha256 = \"824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/1.0.0/download\"],\n strip_prefix = \"anstream-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstream-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-1.0.14\",\n sha256 = \"940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle/1.0.14/download\"],\n strip_prefix = \"anstyle-1.0.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-1.0.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-parse-1.0.0\",\n sha256 = \"52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/1.0.0/download\"],\n strip_prefix = \"anstyle-parse-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-parse-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-query-1.1.5\",\n sha256 = \"40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-query/1.1.5/download\"],\n strip_prefix = \"anstyle-query-1.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-query-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-wincon-3.0.11\",\n sha256 = \"291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.11/download\"],\n strip_prefix = \"anstyle-wincon-3.0.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-wincon-3.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anyhow-1.0.104\",\n sha256 = \"330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.104/download\"],\n strip_prefix = \"anyhow-1.0.104\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anyhow-1.0.104.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__argh-0.1.19\",\n sha256 = \"211818e820cda9ca6f167a64a5c808837366a6dfd807157c64c1304c486cd033\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/argh/0.1.19/download\"],\n strip_prefix = \"argh-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.argh-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__argh_derive-0.1.19\",\n sha256 = \"c442a9d18cef5dde467405d27d461d080d68972d6d0dfd0408265b6749ec427d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/argh_derive/0.1.19/download\"],\n strip_prefix = \"argh_derive-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.argh_derive-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__argh_shared-0.1.19\",\n sha256 = \"e5ade012bac4db278517a0132c8c10c6427025868dca16c801087c28d5a411f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/argh_shared/0.1.19/download\"],\n strip_prefix = \"argh_shared-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.argh_shared-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__arrayvec-0.7.8\",\n sha256 = \"d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arrayvec/0.7.8/download\"],\n strip_prefix = \"arrayvec-0.7.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.arrayvec-0.7.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__async-stream-0.3.6\",\n sha256 = \"0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream/0.3.6/download\"],\n strip_prefix = \"async-stream-0.3.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.async-stream-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__async-stream-impl-0.3.6\",\n sha256 = \"c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-stream-impl/0.3.6/download\"],\n strip_prefix = \"async-stream-impl-0.3.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.async-stream-impl-0.3.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__async-trait-0.1.92\",\n sha256 = \"82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/async-trait/0.1.92/download\"],\n strip_prefix = \"async-trait-0.1.92\",\n build_file = Label(\"@crate_index//crate_index:BUILD.async-trait-0.1.92.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__atomic-polyfill-1.0.3\",\n sha256 = \"8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-polyfill/1.0.3/download\"],\n strip_prefix = \"atomic-polyfill-1.0.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.atomic-polyfill-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__atomic-waker-1.1.2\",\n sha256 = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-waker/1.1.2/download\"],\n strip_prefix = \"atomic-waker-1.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.atomic-waker-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__axum-0.8.9\",\n sha256 = \"31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum/0.8.9/download\"],\n strip_prefix = \"axum-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.axum-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__axum-core-0.5.6\",\n sha256 = \"08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/axum-core/0.5.6/download\"],\n strip_prefix = \"axum-core-0.5.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.axum-core-0.5.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.bincode-1.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bindgen-0.69.5\",\n sha256 = \"271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bindgen/0.69.5/download\"],\n strip_prefix = \"bindgen-0.69.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bindgen-0.69.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bindgen-0.72.1\",\n sha256 = \"993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bindgen/0.72.1/download\"],\n strip_prefix = \"bindgen-0.72.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bindgen-0.72.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.bitflags-1.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bitflags-2.13.1\",\n sha256 = \"b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.13.1/download\"],\n strip_prefix = \"bitflags-2.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bitflags-2.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__block2-0.6.2\",\n sha256 = \"cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/block2/0.6.2/download\"],\n strip_prefix = \"block2-0.6.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.block2-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bumpalo-3.20.3\",\n sha256 = \"72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.20.3/download\"],\n strip_prefix = \"bumpalo-3.20.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bumpalo-3.20.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.byteorder-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bytes-1.12.1\",\n sha256 = \"fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.12.1/download\"],\n strip_prefix = \"bytes-1.12.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bytes-1.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cc-1.4.4\",\n sha256 = \"0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.4.4/download\"],\n strip_prefix = \"cc-1.4.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cc-1.4.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cdr-0.2.4\",\n sha256 = \"9617422bf43fde9280707a7e90f8f7494389c182f5c70b0f67592d0f06d41dfa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cdr/0.2.4/download\"],\n strip_prefix = \"cdr-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cdr-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cexpr-0.6.0\",\n sha256 = \"6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cexpr/0.6.0/download\"],\n strip_prefix = \"cexpr-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cexpr-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cfg-if-1.0.4\",\n sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n strip_prefix = \"cfg-if-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cfg-if-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cfg_aliases-0.2.2\",\n sha256 = \"f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg_aliases/0.2.2/download\"],\n strip_prefix = \"cfg_aliases-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cfg_aliases-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clang-sys-1.9.1\",\n sha256 = \"157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clang-sys/1.9.1/download\"],\n strip_prefix = \"clang-sys-1.9.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clang-sys-1.9.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap-4.6.6\",\n sha256 = \"473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.6.6/download\"],\n strip_prefix = \"clap-4.6.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap-4.6.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_builder-4.6.6\",\n sha256 = \"7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.6.6/download\"],\n strip_prefix = \"clap_builder-4.6.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_builder-4.6.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_derive-4.6.4\",\n sha256 = \"d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.6.4/download\"],\n strip_prefix = \"clap_derive-4.6.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_derive-4.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_lex-1.1.0\",\n sha256 = \"c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/1.1.0/download\"],\n strip_prefix = \"clap_lex-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_lex-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cliclack-0.3.8\",\n sha256 = \"aa510b739c618c679375ea9c5af44ce9f591289546e874ad5910e7ce7df79844\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cliclack/0.3.8/download\"],\n strip_prefix = \"cliclack-0.3.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cliclack-0.3.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cobs-0.3.0\",\n sha256 = \"0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cobs/0.3.0/download\"],\n strip_prefix = \"cobs-0.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cobs-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__colorchoice-1.0.5\",\n sha256 = \"1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/colorchoice/1.0.5/download\"],\n strip_prefix = \"colorchoice-1.0.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.colorchoice-1.0.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__console-0.15.11\",\n sha256 = \"054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.15.11/download\"],\n strip_prefix = \"console-0.15.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.console-0.15.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__console-0.16.4\",\n sha256 = \"4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.16.4/download\"],\n strip_prefix = \"console-0.16.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.console-0.16.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__critical-section-1.2.0\",\n sha256 = \"790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/critical-section/1.2.0/download\"],\n strip_prefix = \"critical-section-1.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.critical-section-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crossbeam-channel-0.5.16\",\n sha256 = \"d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-channel/0.5.16/download\"],\n strip_prefix = \"crossbeam-channel-0.5.16\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crossbeam-channel-0.5.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crossbeam-utils-0.8.22\",\n sha256 = \"61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crossbeam-utils/0.8.22/download\"],\n strip_prefix = \"crossbeam-utils-0.8.22\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crossbeam-utils-0.8.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ctrlc-3.5.2\",\n sha256 = \"e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ctrlc/3.5.2/download\"],\n strip_prefix = \"ctrlc-3.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ctrlc-3.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__defmt-1.1.1\",\n sha256 = \"e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defmt/1.1.1/download\"],\n strip_prefix = \"defmt-1.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.defmt-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__defmt-macros-1.1.1\",\n sha256 = \"bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defmt-macros/1.1.1/download\"],\n strip_prefix = \"defmt-macros-1.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.defmt-macros-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__defmt-parser-1.0.0\",\n sha256 = \"10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/defmt-parser/1.0.0/download\"],\n strip_prefix = \"defmt-parser-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.defmt-parser-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__deranged-0.5.8\",\n sha256 = \"7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.5.8/download\"],\n strip_prefix = \"deranged-0.5.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.deranged-0.5.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__dispatch2-0.3.1\",\n sha256 = \"1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dispatch2/0.3.1/download\"],\n strip_prefix = \"dispatch2-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.dispatch2-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__downcast-0.11.0\",\n sha256 = \"1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/downcast/0.11.0/download\"],\n strip_prefix = \"downcast-0.11.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.downcast-0.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__either-1.18.0\",\n sha256 = \"252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.18.0/download\"],\n strip_prefix = \"either-1.18.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.either-1.18.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-io-0.4.0\",\n sha256 = \"ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-io/0.4.0/download\"],\n strip_prefix = \"embedded-io-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-io-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-io-0.6.1\",\n sha256 = \"edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-io/0.6.1/download\"],\n strip_prefix = \"embedded-io-0.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-io-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__encode_unicode-1.0.0\",\n sha256 = \"34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encode_unicode/1.0.0/download\"],\n strip_prefix = \"encode_unicode-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.encode_unicode-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__enum-iterator-2.3.0\",\n sha256 = \"a4549325971814bda7a44061bf3fe7e487d447cba01e4220a4b454d630d7a016\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-iterator/2.3.0/download\"],\n strip_prefix = \"enum-iterator-2.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.enum-iterator-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__enum-iterator-derive-1.5.0\",\n sha256 = \"685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/enum-iterator-derive/1.5.0/download\"],\n strip_prefix = \"enum-iterator-derive-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.enum-iterator-derive-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_filter-2.0.0\",\n sha256 = \"900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_filter/2.0.0/download\"],\n strip_prefix = \"env_filter-2.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_filter-2.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_logger-0.11.11\",\n sha256 = \"de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_logger/0.11.11/download\"],\n strip_prefix = \"env_logger-0.11.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_logger-0.11.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__equivalent-1.0.2\",\n sha256 = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/equivalent/1.0.2/download\"],\n strip_prefix = \"equivalent-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.equivalent-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__errno-0.3.14\",\n sha256 = \"39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.14/download\"],\n strip_prefix = \"errno-0.3.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.errno-0.3.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fastrand-2.5.0\",\n sha256 = \"da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.5.0/download\"],\n strip_prefix = \"fastrand-2.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fastrand-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__filedesc-0.6.3\",\n sha256 = \"c4960c866d9cf4c48f64f11ef0020c98900d0cb32e9b019c000ed838470daa1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/filedesc/0.6.3/download\"],\n strip_prefix = \"filedesc-0.6.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.filedesc-0.6.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__find-msvc-tools-0.1.11\",\n sha256 = \"d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/find-msvc-tools/0.1.11/download\"],\n strip_prefix = \"find-msvc-tools-0.1.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.find-msvc-tools-0.1.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fixedbitset-0.5.7\",\n sha256 = \"1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fixedbitset/0.5.7/download\"],\n strip_prefix = \"fixedbitset-0.5.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fixedbitset-0.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foldhash-0.1.5\",\n sha256 = \"d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foldhash/0.1.5/download\"],\n strip_prefix = \"foldhash-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foldhash-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foldhash-0.2.0\",\n sha256 = \"77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foldhash/0.2.0/download\"],\n strip_prefix = \"foldhash-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foldhash-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fragile-2.1.0\",\n sha256 = \"8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fragile/2.1.0/download\"],\n strip_prefix = \"fragile-2.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fragile-2.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-0.3.34\",\n sha256 = \"9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures/0.3.34/download\"],\n strip_prefix = \"futures-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-channel-0.3.34\",\n sha256 = \"b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.34/download\"],\n strip_prefix = \"futures-channel-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-channel-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-core-0.3.34\",\n sha256 = \"92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.34/download\"],\n strip_prefix = \"futures-core-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-core-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-executor-0.3.34\",\n sha256 = \"031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-executor/0.3.34/download\"],\n strip_prefix = \"futures-executor-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-executor-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-io-0.3.34\",\n sha256 = \"53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.34/download\"],\n strip_prefix = \"futures-io-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-io-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-macro-0.3.34\",\n sha256 = \"9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-macro/0.3.34/download\"],\n strip_prefix = \"futures-macro-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-macro-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-sink-0.3.34\",\n sha256 = \"1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.34/download\"],\n strip_prefix = \"futures-sink-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-sink-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-task-0.3.34\",\n sha256 = \"cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.34/download\"],\n strip_prefix = \"futures-task-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-task-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-util-0.3.34\",\n sha256 = \"0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.34/download\"],\n strip_prefix = \"futures-util-0.3.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-util-0.3.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__generator-0.8.9\",\n sha256 = \"b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/generator/0.8.9/download\"],\n strip_prefix = \"generator-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.generator-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.2.17\",\n sha256 = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.17/download\"],\n strip_prefix = \"getrandom-0.2.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.3.4\",\n sha256 = \"899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.3.4/download\"],\n strip_prefix = \"getrandom-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.4.3\",\n sha256 = \"300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.4.3/download\"],\n strip_prefix = \"getrandom-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__glob-0.3.4\",\n sha256 = \"e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/glob/0.3.4/download\"],\n strip_prefix = \"glob-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.glob-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__h2-0.4.19\",\n sha256 = \"ef8e5e5a340588f4452631496976cf8636d4a7ecf600239fdc27615d2530bc16\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.4.19/download\"],\n strip_prefix = \"h2-0.4.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.h2-0.4.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hash32-0.2.1\",\n sha256 = \"b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hash32/0.2.1/download\"],\n strip_prefix = \"hash32-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hash32-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.15.5\",\n sha256 = \"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.15.5/download\"],\n strip_prefix = \"hashbrown-0.15.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.15.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.17.1\",\n sha256 = \"ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.17.1/download\"],\n strip_prefix = \"hashbrown-0.17.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.17.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__heapless-0.7.17\",\n sha256 = \"cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heapless/0.7.17/download\"],\n strip_prefix = \"heapless-0.7.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.heapless-0.7.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.heck-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__home-0.5.12\",\n sha256 = \"cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/home/0.5.12/download\"],\n strip_prefix = \"home-0.5.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.home-0.5.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-1.5.0\",\n sha256 = \"918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.5.0/download\"],\n strip_prefix = \"http-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-1.1.0\",\n sha256 = \"ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/1.1.0/download\"],\n strip_prefix = \"http-body-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-util-0.1.5\",\n sha256 = \"23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body-util/0.1.5/download\"],\n strip_prefix = \"http-body-util-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-util-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.httpdate-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__human_bytes-0.4.3\",\n sha256 = \"91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/human_bytes/0.4.3/download\"],\n strip_prefix = \"human_bytes-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.human_bytes-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-1.11.0\",\n sha256 = \"d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/1.11.0/download\"],\n strip_prefix = \"hyper-1.11.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-1.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-timeout-0.5.2\",\n sha256 = \"2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-timeout/0.5.2/download\"],\n strip_prefix = \"hyper-timeout-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-timeout-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-util-0.1.20\",\n sha256 = \"96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-util/0.1.20/download\"],\n strip_prefix = \"hyper-util-0.1.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-util-0.1.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-0.5.0\",\n sha256 = \"12c091b5786a230240f8f2691b9d29508ed0a02c025c254abaed8bc788a66bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2/0.5.0/download\"],\n strip_prefix = \"iceoryx2-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-container-0.5.0\",\n sha256 = \"fff9d75921f8ccd3e19261d72082b52ccc4704dcdd6930efe6c17b15693ab519\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-container/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-container-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-container-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-container-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-container-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/container\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-derive-macros-0.5.0\",\n sha256 = \"9257482fb822946bb3028225b6807350e3f815068961ff5bf683735ce01d59a4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-derive-macros/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-derive-macros-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-derive-macros-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-derive-macros-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n patches = [\n \"@@score_crates+//patches:iceoryx2_bb_derive_macros_readme.patch\",\n ],\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-derive-macros-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/derive-macros\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-elementary-0.5.0\",\n sha256 = \"38aae0237ff1575a7d9672c0202e5d313e7f674a635f6aaf619d2090fb7a12c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-elementary/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-elementary-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-elementary-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-elementary-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-elementary-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/elementary\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-elementary-traits-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-elementary-traits-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/elementary-traits\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-linux-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-linux-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/linux\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-lock-free-0.5.0\",\n sha256 = \"3ec3227a0c8b1d9e1ea4c61fa6a773e7c3b721fa3e2fd4363324f302b35ac85b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-lock-free/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-lock-free-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-lock-free-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-lock-free-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-lock-free-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/lock-free\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-log-0.5.0\",\n sha256 = \"07df5e6ff06cc2ffb0a86b67c7cd4be86b11264d5e83c02a52b384e2d5e6363a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-log/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-log-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-log-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-log-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-log-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/log\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-memory-0.5.0\",\n sha256 = \"55a4ae8856404b6e7eca567004673ca39109fc70fcf387b96ca6d6d27c61f31b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-memory/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-memory-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-memory-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-memory-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-memory-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/memory\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-posix-0.5.0\",\n sha256 = \"122ff88c452a3045a9de6db73d0429da736578f76eab75779dd0d3681de75d57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-posix/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-posix-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-posix-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-posix-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-posix-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/posix\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-bb-system-types-0.5.0\",\n sha256 = \"ac2fb11a94823c3b9117a5e14edf16fd467794cf5391738eb2d8b7fc8e9b04fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-bb-system-types/0.5.0/download\"],\n strip_prefix = \"iceoryx2-bb-system-types-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-system-types-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-system-types-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-system-types-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/system-types\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-testing-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-testing-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/testing\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-bb-threadsafe-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-bb-threadsafe-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-bb/threadsafe\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-cal-0.5.0\",\n sha256 = \"6c64b8eee1d57c4336d7df7d521671d8b76c72cac16af0db651e40f8c45f0946\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-cal/0.5.0/download\"],\n strip_prefix = \"iceoryx2-cal-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-cal-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-cal-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-cal-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-cal\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-pal-concurrency-sync-0.5.0\",\n sha256 = \"92dc4ec7c023819c41b5a14c9ca58e8dbb86476053321decda73ac440996f35f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-pal-concurrency-sync/0.5.0/download\"],\n strip_prefix = \"iceoryx2-pal-concurrency-sync-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-concurrency-sync-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-concurrency-sync-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-concurrency-sync-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/concurrency-sync\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-pal-configuration-0.5.0\",\n sha256 = \"d900aa8f9c5b661a9c5ddfbdc28eb87ac8c32be5375ca9b055b087d1c89c984d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-pal-configuration/0.5.0/download\"],\n strip_prefix = \"iceoryx2-pal-configuration-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-configuration-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-configuration-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-configuration-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/configuration\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-os-api-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-os-api-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/os-api\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iceoryx2-pal-posix-0.5.0\",\n sha256 = \"5789169791a6274b492561b95543e1c635285cb454d547f78e53cbc1acd9b3f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iceoryx2-pal-posix/0.5.0/download\"],\n strip_prefix = \"iceoryx2-pal-posix-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-posix-0.5.0.bazel\"),\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-posix-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n patches = [\n \"@@score_crates+//patches:qnx8_iceoryx2.patch\",\n ],\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-posix-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/posix\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-pal-testing-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-pal-testing-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2-pal/testing\",\n )\n\n maybe(\n new_git_repository,\n name = \"crate_index__iceoryx2-qnx8-0.7.0\",\n commit = \"9f5622f554de48a7a296e1a5a71200b01e35a502\",\n init_submodules = True,\n remote = \"https://github.com/qorix-group/iceoryx2.git\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iceoryx2-qnx8-0.7.0.bazel\"),\n strip_prefix = \"iceoryx2\",\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indexmap-2.14.0\",\n sha256 = \"d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.14.0/download\"],\n strip_prefix = \"indexmap-2.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indexmap-2.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indicatif-0.18.6\",\n sha256 = \"9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif/0.18.6/download\"],\n strip_prefix = \"indicatif-0.18.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indicatif-0.18.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indicatif-log-bridge-0.2.3\",\n sha256 = \"63703cf9069b85dbe6fe26e1c5230d013dee99d3559cd3d02ba39e099ef7ab02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif-log-bridge/0.2.3/download\"],\n strip_prefix = \"indicatif-log-bridge-0.2.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indicatif-log-bridge-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ipc-channel-0.20.2\",\n sha256 = \"f93600b5616c2d075f8af8dbd23c1d69278c5d24e4913d220cbc60b14c95c180\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipc-channel/0.20.2/download\"],\n strip_prefix = \"ipc-channel-0.20.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ipc-channel-0.20.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__is_terminal_polyfill-1.70.2\",\n sha256 = \"a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.2/download\"],\n strip_prefix = \"is_terminal_polyfill-1.70.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.is_terminal_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.itertools-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itertools-0.13.0\",\n sha256 = \"413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.13.0/download\"],\n strip_prefix = \"itertools-0.13.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itertools-0.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itertools-0.14.0\",\n sha256 = \"2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.14.0/download\"],\n strip_prefix = \"itertools-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itertools-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itoa-1.0.18\",\n sha256 = \"8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.18/download\"],\n strip_prefix = \"itoa-1.0.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itoa-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-0.2.35\",\n sha256 = \"668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff/0.2.35/download\"],\n strip_prefix = \"jiff-0.2.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-0.2.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-core-0.1.0\",\n sha256 = \"7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-core/0.1.0/download\"],\n strip_prefix = \"jiff-core-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-core-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-static-0.2.35\",\n sha256 = \"3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-static/0.2.35/download\"],\n strip_prefix = \"jiff-static-0.2.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-static-0.2.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__js-sys-0.3.104\",\n sha256 = \"0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.104/download\"],\n strip_prefix = \"js-sys-0.3.104\",\n build_file = Label(\"@crate_index//crate_index:BUILD.js-sys-0.3.104.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lazycell-1.3.0\",\n sha256 = \"830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazycell/1.3.0/download\"],\n strip_prefix = \"lazycell-1.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lazycell-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libc-0.2.186\",\n sha256 = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.186/download\"],\n strip_prefix = \"libc-0.2.186\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libc-0.2.186.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libloading-0.8.9\",\n sha256 = \"d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libloading/0.8.9/download\"],\n strip_prefix = \"libloading-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libloading-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__linux-raw-sys-0.12.1\",\n sha256 = \"32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.12.1/download\"],\n strip_prefix = \"linux-raw-sys-0.12.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.linux-raw-sys-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__linux-raw-sys-0.4.15\",\n sha256 = \"d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.4.15/download\"],\n strip_prefix = \"linux-raw-sys-0.4.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.linux-raw-sys-0.4.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lock_api-0.4.14\",\n sha256 = \"224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.14/download\"],\n strip_prefix = \"lock_api-0.4.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lock_api-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__log-0.4.34\",\n sha256 = \"f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.34/download\"],\n strip_prefix = \"log-0.4.34\",\n build_file = Label(\"@crate_index//crate_index:BUILD.log-0.4.34.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__loom-0.7.2\",\n sha256 = \"419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/loom/0.7.2/download\"],\n strip_prefix = \"loom-0.7.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.loom-0.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__matchers-0.2.0\",\n sha256 = \"d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchers/0.2.0/download\"],\n strip_prefix = \"matchers-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.matchers-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__matchit-0.8.4\",\n sha256 = \"47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/matchit/0.8.4/download\"],\n strip_prefix = \"matchit-0.8.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.matchit-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__memchr-2.8.3\",\n sha256 = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.3/download\"],\n strip_prefix = \"memchr-2.8.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.memchr-2.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__minimal-lexical-0.2.1\",\n sha256 = \"68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/minimal-lexical/0.2.1/download\"],\n strip_prefix = \"minimal-lexical-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.minimal-lexical-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mio-1.2.2\",\n sha256 = \"30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.2.2/download\"],\n strip_prefix = \"mio-1.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mio-1.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mockall-0.14.0\",\n sha256 = \"f58d964098a5f9c6b63d0798e5372fd04708193510a7af313c22e9f29b7b620b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mockall/0.14.0/download\"],\n strip_prefix = \"mockall-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mockall-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mockall_derive-0.14.0\",\n sha256 = \"ca41ce716dda6a9be188b385aa78ee5260fc25cd3802cb2a8afdc6afbe6b6dbf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mockall_derive/0.14.0/download\"],\n strip_prefix = \"mockall_derive-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mockall_derive-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__multimap-0.10.1\",\n sha256 = \"1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/multimap/0.10.1/download\"],\n strip_prefix = \"multimap-0.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.multimap-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nix-0.30.1\",\n sha256 = \"74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.30.1/download\"],\n strip_prefix = \"nix-0.30.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nix-0.30.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nix-0.31.3\",\n sha256 = \"cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.31.3/download\"],\n strip_prefix = \"nix-0.31.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nix-0.31.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nom-7.1.3\",\n sha256 = \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nom/7.1.3/download\"],\n strip_prefix = \"nom-7.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nom-7.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nu-ansi-term-0.50.3\",\n sha256 = \"7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nu-ansi-term/0.50.3/download\"],\n strip_prefix = \"nu-ansi-term-0.50.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nu-ansi-term-0.50.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-conv-0.2.2\",\n sha256 = \"521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.2.2/download\"],\n strip_prefix = \"num-conv-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-conv-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__objc2-0.6.4\",\n sha256 = \"3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/objc2/0.6.4/download\"],\n strip_prefix = \"objc2-0.6.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.objc2-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__objc2-encode-4.1.0\",\n sha256 = \"ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/objc2-encode/4.1.0/download\"],\n strip_prefix = \"objc2-encode-4.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.objc2-encode-4.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell-1.21.4\",\n sha256 = \"9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.4/download\"],\n strip_prefix = \"once_cell-1.21.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell-1.21.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell_polyfill-1.70.2\",\n sha256 = \"384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell_polyfill/1.70.2/download\"],\n strip_prefix = \"once_cell_polyfill-1.70.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell_polyfill-1.70.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ouroboros-0.18.5\",\n sha256 = \"1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ouroboros/0.18.5/download\"],\n strip_prefix = \"ouroboros-0.18.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ouroboros-0.18.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ouroboros_macro-0.18.5\",\n sha256 = \"3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ouroboros_macro/0.18.5/download\"],\n strip_prefix = \"ouroboros_macro-0.18.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ouroboros_macro-0.18.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pastey-0.2.3\",\n sha256 = \"2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pastey/0.2.3/download\"],\n strip_prefix = \"pastey-0.2.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pastey-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__petgraph-0.7.1\",\n sha256 = \"3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/petgraph/0.7.1/download\"],\n strip_prefix = \"petgraph-0.7.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.petgraph-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__petgraph-0.8.3\",\n sha256 = \"8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/petgraph/0.8.3/download\"],\n strip_prefix = \"petgraph-0.8.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.petgraph-0.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pico-args-0.5.0\",\n sha256 = \"5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pico-args/0.5.0/download\"],\n strip_prefix = \"pico-args-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pico-args-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-1.1.13\",\n sha256 = \"2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project/1.1.13/download\"],\n strip_prefix = \"pin-project-1.1.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-1.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-internal-1.1.13\",\n sha256 = \"c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-internal/1.1.13/download\"],\n strip_prefix = \"pin-project-internal-1.1.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-internal-1.1.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-lite-0.2.17\",\n sha256 = \"a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.17/download\"],\n strip_prefix = \"pin-project-lite-0.2.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-lite-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-1.15.0\",\n sha256 = \"05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.15.0/download\"],\n strip_prefix = \"portable-atomic-1.15.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-1.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-util-0.2.7\",\n sha256 = \"c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic-util/0.2.7/download\"],\n strip_prefix = \"portable-atomic-util-0.2.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-util-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__postcard-1.1.3\",\n sha256 = \"6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/postcard/1.1.3/download\"],\n strip_prefix = \"postcard-1.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.postcard-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__postcard-derive-0.2.2\",\n sha256 = \"e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/postcard-derive/0.2.2/download\"],\n strip_prefix = \"postcard-derive-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.postcard-derive-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ppv-lite86-0.2.21\",\n sha256 = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.21/download\"],\n strip_prefix = \"ppv-lite86-0.2.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ppv-lite86-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__predicates-3.1.4\",\n sha256 = \"ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/predicates/3.1.4/download\"],\n strip_prefix = \"predicates-3.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.predicates-3.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__predicates-core-1.0.10\",\n sha256 = \"cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/predicates-core/1.0.10/download\"],\n strip_prefix = \"predicates-core-1.0.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.predicates-core-1.0.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__predicates-tree-1.0.13\",\n sha256 = \"d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/predicates-tree/1.0.13/download\"],\n strip_prefix = \"predicates-tree-1.0.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.predicates-tree-1.0.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prettyplease-0.2.37\",\n sha256 = \"479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prettyplease/0.2.37/download\"],\n strip_prefix = \"prettyplease-0.2.37\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prettyplease-0.2.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__proc-macro2-1.0.107\",\n sha256 = \"985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.107/download\"],\n strip_prefix = \"proc-macro2-1.0.107\",\n build_file = Label(\"@crate_index//crate_index:BUILD.proc-macro2-1.0.107.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__proc-macro2-diagnostics-0.10.1\",\n sha256 = \"af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2-diagnostics/0.10.1/download\"],\n strip_prefix = \"proc-macro2-diagnostics-0.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.proc-macro2-diagnostics-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-0.13.5\",\n sha256 = \"2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost/0.13.5/download\"],\n strip_prefix = \"prost-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-0.14.4\",\n sha256 = \"528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost/0.14.4/download\"],\n strip_prefix = \"prost-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-build-0.13.5\",\n sha256 = \"be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-build/0.13.5/download\"],\n strip_prefix = \"prost-build-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-build-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-build-0.14.4\",\n sha256 = \"03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-build/0.14.4/download\"],\n strip_prefix = \"prost-build-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-build-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-derive-0.13.5\",\n sha256 = \"8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-derive/0.13.5/download\"],\n strip_prefix = \"prost-derive-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-derive-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-derive-0.14.4\",\n sha256 = \"b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-derive/0.14.4/download\"],\n strip_prefix = \"prost-derive-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-derive-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-types-0.13.5\",\n sha256 = \"52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-types/0.13.5/download\"],\n strip_prefix = \"prost-types-0.13.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-types-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__prost-types-0.14.4\",\n sha256 = \"f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/prost-types/0.14.4/download\"],\n strip_prefix = \"prost-types-0.14.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.prost-types-0.14.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__protoc-gen-prost-0.4.0\",\n sha256 = \"77eb17a7657a703f30cb9b7ba4d981e4037b8af2d819ab0077514b0bef537406\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protoc-gen-prost/0.4.0/download\"],\n strip_prefix = \"protoc-gen-prost-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.protoc-gen-prost-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__protoc-gen-tonic-0.4.1\",\n sha256 = \"6ab6a0d73a0914752ed8fd7cc51afe169e28da87be3efef292de5676cc527634\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/protoc-gen-tonic/0.4.1/download\"],\n strip_prefix = \"protoc-gen-tonic-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.protoc-gen-tonic-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__quote-1.0.47\",\n sha256 = \"1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.47/download\"],\n strip_prefix = \"quote-1.0.47\",\n build_file = Label(\"@crate_index//crate_index:BUILD.quote-1.0.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__r-efi-5.3.0\",\n sha256 = \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/5.3.0/download\"],\n strip_prefix = \"r-efi-5.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.r-efi-5.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__r-efi-6.0.0\",\n sha256 = \"f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/6.0.0/download\"],\n strip_prefix = \"r-efi-6.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.r-efi-6.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand-0.9.5\",\n sha256 = \"b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.9.5/download\"],\n strip_prefix = \"rand-0.9.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_chacha-0.9.0\",\n sha256 = \"d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.9.0/download\"],\n strip_prefix = \"rand_chacha-0.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_chacha-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_core-0.9.5\",\n sha256 = \"76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.9.5/download\"],\n strip_prefix = \"rand_core-0.9.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_core-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-1.13.1\",\n sha256 = \"f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.13.1/download\"],\n strip_prefix = \"regex-1.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-automata-0.4.18\",\n sha256 = \"ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.18/download\"],\n strip_prefix = \"regex-automata-0.4.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-automata-0.4.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-syntax-0.8.11\",\n sha256 = \"d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.11/download\"],\n strip_prefix = \"regex-syntax-0.8.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-syntax-0.8.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustc-hash-1.1.0\",\n sha256 = \"08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-hash/1.1.0/download\"],\n strip_prefix = \"rustc-hash-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustc-hash-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustc-hash-2.1.3\",\n sha256 = \"6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-hash/2.1.3/download\"],\n strip_prefix = \"rustc-hash-2.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustc-hash-2.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.rustc_version-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustix-0.38.44\",\n sha256 = \"fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/0.38.44/download\"],\n strip_prefix = \"rustix-0.38.44\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustix-0.38.44.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustix-1.1.4\",\n sha256 = \"b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/1.1.4/download\"],\n strip_prefix = \"rustix-1.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustix-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustversion-1.0.23\",\n sha256 = \"cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.23/download\"],\n strip_prefix = \"rustversion-1.0.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustversion-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.scoped-tls-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sem_safe-0.2.1\",\n sha256 = \"be9665e92f9b596cf2b20a8c0f55126cfee3514307740a859f1b25bc929e4947\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sem_safe/0.2.1/download\"],\n strip_prefix = \"sem_safe-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sem_safe-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__semver-1.0.28\",\n sha256 = \"8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.28/download\"],\n strip_prefix = \"semver-1.0.28\",\n build_file = Label(\"@crate_index//crate_index:BUILD.semver-1.0.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde-1.0.229\",\n sha256 = \"4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.229/download\"],\n strip_prefix = \"serde-1.0.229\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde-1.0.229.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_core-1.0.229\",\n sha256 = \"67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_core/1.0.229/download\"],\n strip_prefix = \"serde_core-1.0.229\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_core-1.0.229.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_derive-1.0.229\",\n sha256 = \"e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.229/download\"],\n strip_prefix = \"serde_derive-1.0.229\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_derive-1.0.229.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_json-1.0.151\",\n sha256 = \"c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.151/download\"],\n strip_prefix = \"serde_json-1.0.151\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_json-1.0.151.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_spanned-0.6.9\",\n sha256 = \"bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_spanned/0.6.9/download\"],\n strip_prefix = \"serde_spanned-0.6.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_spanned-0.6.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.sha1_smol-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.sharded-slab-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__shlex-2.0.1\",\n sha256 = \"f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/2.0.1/download\"],\n strip_prefix = \"shlex-2.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.shlex-2.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signal-hook-0.3.18\",\n sha256 = \"d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook/0.3.18/download\"],\n strip_prefix = \"signal-hook-0.3.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signal-hook-0.3.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signal-hook-registry-1.4.8\",\n sha256 = \"c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.8/download\"],\n strip_prefix = \"signal-hook-registry-1.4.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signal-hook-registry-1.4.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__slab-0.4.12\",\n sha256 = \"0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.12/download\"],\n strip_prefix = \"slab-0.4.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.slab-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__smallvec-1.15.2\",\n sha256 = \"8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.15.2/download\"],\n strip_prefix = \"smallvec-1.15.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.smallvec-1.15.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__smawk-0.3.3\",\n sha256 = \"e8e2fb0f499abb4d162f2bedad68f5ef91a1682b5a03596ddb67efd37768d100\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smawk/0.3.3/download\"],\n strip_prefix = \"smawk-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.smawk-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__socket2-0.6.5\",\n sha256 = \"c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.6.5/download\"],\n strip_prefix = \"socket2-0.6.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.socket2-0.6.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__spin-0.9.9\",\n sha256 = \"3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.9/download\"],\n strip_prefix = \"spin-0.9.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.spin-0.9.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__stable_deref_trait-1.2.1\",\n sha256 = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/stable_deref_trait/1.2.1/download\"],\n strip_prefix = \"stable_deref_trait-1.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.stable_deref_trait-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__static_assertions-1.1.0\",\n sha256 = \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/static_assertions/1.1.0/download\"],\n strip_prefix = \"static_assertions-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.static_assertions-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__syn-2.0.119\",\n sha256 = \"872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.119/download\"],\n strip_prefix = \"syn-2.0.119\",\n build_file = Label(\"@crate_index//crate_index:BUILD.syn-2.0.119.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__syn-3.0.4\",\n sha256 = \"e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/3.0.4/download\"],\n strip_prefix = \"syn-3.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.syn-3.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sync_wrapper-1.0.2\",\n sha256 = \"0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/1.0.2/download\"],\n strip_prefix = \"sync_wrapper-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sync_wrapper-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tempfile-3.27.0\",\n sha256 = \"32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.27.0/download\"],\n strip_prefix = \"tempfile-3.27.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tempfile-3.27.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__termsize-0.1.9\",\n sha256 = \"6f11ff5c25c172608d5b85e2fb43ee9a6d683a7f4ab7f96ae07b3d8b590368fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/termsize/0.1.9/download\"],\n strip_prefix = \"termsize-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.termsize-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__termtree-0.5.1\",\n sha256 = \"8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/termtree/0.5.1/download\"],\n strip_prefix = \"termtree-0.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.termtree-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__textwrap-0.16.2\",\n sha256 = \"c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/textwrap/0.16.2/download\"],\n strip_prefix = \"textwrap-0.16.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.textwrap-0.16.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-2.0.20\",\n sha256 = \"ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/2.0.20/download\"],\n strip_prefix = \"thiserror-2.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-2.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-impl-2.0.20\",\n sha256 = \"bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/2.0.20/download\"],\n strip_prefix = \"thiserror-impl-2.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-impl-2.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thread_local-1.1.10\",\n sha256 = \"1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thread_local/1.1.10/download\"],\n strip_prefix = \"thread_local-1.1.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thread_local-1.1.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-0.3.55\",\n sha256 = \"cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.55/download\"],\n strip_prefix = \"time-0.3.55\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-0.3.55.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-core-0.1.9\",\n sha256 = \"9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.9/download\"],\n strip_prefix = \"time-core-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-core-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-macros-0.2.32\",\n sha256 = \"7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.32/download\"],\n strip_prefix = \"time-macros-0.2.32\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-macros-0.2.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tiny-fn-0.1.9\",\n sha256 = \"9659b108631d1e1cf3e8e489f894bee40bc9d68fd6cc67ec4d4ce9b72d565228\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tiny-fn/0.1.9/download\"],\n strip_prefix = \"tiny-fn-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tiny-fn-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tinyjson-2.5.1\",\n sha256 = \"9ab95735ea2c8fd51154d01e39cf13912a78071c2d89abc49a7ef102a7dd725a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinyjson/2.5.1/download\"],\n strip_prefix = \"tinyjson-2.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tinyjson-2.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-1.53.1\",\n sha256 = \"202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.53.1/download\"],\n strip_prefix = \"tokio-1.53.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-1.53.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-macros-2.7.2\",\n sha256 = \"78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.7.2/download\"],\n strip_prefix = \"tokio-macros-2.7.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-macros-2.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-seqpacket-0.8.2\",\n sha256 = \"24d1294c36e418ee280e57ba514cc260c0c80c69571abf44109eef2823a1c1c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-seqpacket/0.8.2/download\"],\n strip_prefix = \"tokio-seqpacket-0.8.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-seqpacket-0.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-stream-0.1.19\",\n sha256 = \"a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-stream/0.1.19/download\"],\n strip_prefix = \"tokio-stream-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-stream-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-util-0.7.19\",\n sha256 = \"494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.19/download\"],\n strip_prefix = \"tokio-util-0.7.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-util-0.7.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml-0.8.23\",\n sha256 = \"dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml/0.8.23/download\"],\n strip_prefix = \"toml-0.8.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml-0.8.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml_datetime-0.6.11\",\n sha256 = \"22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_datetime/0.6.11/download\"],\n strip_prefix = \"toml_datetime-0.6.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml_datetime-0.6.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml_edit-0.22.27\",\n sha256 = \"41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_edit/0.22.27/download\"],\n strip_prefix = \"toml_edit-0.22.27\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml_edit-0.22.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__toml_write-0.1.2\",\n sha256 = \"5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/toml_write/0.1.2/download\"],\n strip_prefix = \"toml_write-0.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.toml_write-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tonic-0.14.6\",\n sha256 = \"ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic/0.14.6/download\"],\n strip_prefix = \"tonic-0.14.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tonic-0.14.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tonic-build-0.12.3\",\n sha256 = \"9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tonic-build/0.12.3/download\"],\n strip_prefix = \"tonic-build-0.12.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tonic-build-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-0.5.3\",\n sha256 = \"ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.5.3/download\"],\n strip_prefix = \"tower-0.5.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-0.5.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-0.1.44\",\n sha256 = \"63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.44/download\"],\n strip_prefix = \"tracing-0.1.44\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-0.1.44.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-attributes-0.1.31\",\n sha256 = \"7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-attributes/0.1.31/download\"],\n strip_prefix = \"tracing-attributes-0.1.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-attributes-0.1.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-core-0.1.36\",\n sha256 = \"db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.36/download\"],\n strip_prefix = \"tracing-core-0.1.36\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-core-0.1.36.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.tracing-log-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-serde-0.2.0\",\n sha256 = \"704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-serde/0.2.0/download\"],\n strip_prefix = \"tracing-serde-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-serde-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-subscriber-0.3.23\",\n sha256 = \"cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-subscriber/0.3.23/download\"],\n strip_prefix = \"tracing-subscriber-0.3.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-subscriber-0.3.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-ident-1.0.24\",\n sha256 = \"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.24/download\"],\n strip_prefix = \"unicode-ident-1.0.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-ident-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-linebreak-0.1.5\",\n sha256 = \"3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-linebreak/0.1.5/download\"],\n strip_prefix = \"unicode-linebreak-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-linebreak-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-width-0.2.2\",\n sha256 = \"b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-width/0.2.2/download\"],\n strip_prefix = \"unicode-width-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-width-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unit-prefix-0.5.2\",\n sha256 = \"81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unit-prefix/0.5.2/download\"],\n strip_prefix = \"unit-prefix-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unit-prefix-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__uuid-1.26.0\",\n sha256 = \"b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/uuid/1.26.0/download\"],\n strip_prefix = \"uuid-1.26.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.uuid-1.26.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__valuable-0.1.1\",\n sha256 = \"ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/valuable/0.1.1/download\"],\n strip_prefix = \"valuable-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.valuable-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasip2-1.0.4-wasi-0.2.12\",\n sha256 = \"b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasip2/1.0.4+wasi-0.2.12/download\"],\n strip_prefix = \"wasip2-1.0.4+wasi-0.2.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasip2-1.0.4+wasi-0.2.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-0.2.127\",\n sha256 = \"1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-0.2.127\",\n sha256 = \"77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-support-0.2.127\",\n sha256 = \"e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-support-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-shared-0.2.127\",\n sha256 = \"7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.127/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.127\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-shared-0.2.127.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__web-time-1.1.0\",\n sha256 = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-time/1.1.0/download\"],\n strip_prefix = \"web-time-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.web-time-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__which-4.4.2\",\n sha256 = \"87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/which/4.4.2/download\"],\n strip_prefix = \"which-4.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.which-4.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.winapi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-0.61.3\",\n sha256 = \"9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows/0.61.3/download\"],\n strip_prefix = \"windows-0.61.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-0.61.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-collections-0.2.0\",\n sha256 = \"3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-collections/0.2.0/download\"],\n strip_prefix = \"windows-collections-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-collections-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-core-0.61.2\",\n sha256 = \"c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.61.2/download\"],\n strip_prefix = \"windows-core-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-core-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-future-0.2.1\",\n sha256 = \"fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-future/0.2.1/download\"],\n strip_prefix = \"windows-future-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-future-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-implement-0.60.2\",\n sha256 = \"053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-implement/0.60.2/download\"],\n strip_prefix = \"windows-implement-0.60.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-implement-0.60.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-interface-0.59.3\",\n sha256 = \"3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-interface/0.59.3/download\"],\n strip_prefix = \"windows-interface-0.59.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-interface-0.59.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.1.3\",\n sha256 = \"5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.1.3/download\"],\n strip_prefix = \"windows-link-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.2.1\",\n sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n strip_prefix = \"windows-link-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-numerics-0.2.0\",\n sha256 = \"9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-numerics/0.2.0/download\"],\n strip_prefix = \"windows-numerics-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-numerics-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.3.4\",\n sha256 = \"56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.3.4/download\"],\n strip_prefix = \"windows-result-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.4.1\",\n sha256 = \"7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.4.1/download\"],\n strip_prefix = \"windows-result-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-strings-0.4.2\",\n sha256 = \"56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-strings/0.4.2/download\"],\n strip_prefix = \"windows-strings-0.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-strings-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-sys-0.48.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-sys-0.59.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.61.2\",\n sha256 = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.61.2/download\"],\n strip_prefix = \"windows-sys-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-targets-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-threading-0.1.0\",\n sha256 = \"b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-threading/0.1.0/download\"],\n strip_prefix = \"windows-threading-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-threading-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.48.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__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(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winnow-0.7.15\",\n sha256 = \"df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winnow/0.7.15/download\"],\n strip_prefix = \"winnow-0.7.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winnow-0.7.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wit-bindgen-0.57.1\",\n sha256 = \"1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen/0.57.1/download\"],\n strip_prefix = \"wit-bindgen-0.57.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wit-bindgen-0.57.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__yansi-1.0.1\",\n sha256 = \"cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yansi/1.0.1/download\"],\n strip_prefix = \"yansi-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.yansi-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-0.8.56\",\n sha256 = \"556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy/0.8.56/download\"],\n strip_prefix = \"zerocopy-0.8.56\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-0.8.56.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-derive-0.8.56\",\n sha256 = \"f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy-derive/0.8.56/download\"],\n strip_prefix = \"zerocopy-derive-0.8.56\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-derive-0.8.56.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize-1.9.0\",\n sha256 = \"e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.9.0/download\"],\n strip_prefix = \"zeroize-1.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize-1.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize_derive-1.5.0\",\n sha256 = \"3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize_derive/1.5.0/download\"],\n strip_prefix = \"zeroize_derive-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize_derive-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zmij-1.0.23\",\n sha256 = \"29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zmij/1.0.23/download\"],\n strip_prefix = \"zmij-1.0.23\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zmij-1.0.23.bazel\"),\n )\n\n return [\n struct(repo=\"crate_index__adler32-1.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__anyhow-1.0.104\", is_dev_dep = False),\n struct(repo=\"crate_index__argh-0.1.19\", is_dev_dep = False),\n struct(repo=\"crate_index__arrayvec-0.7.8\", is_dev_dep = False),\n struct(repo=\"crate_index__async-stream-0.3.6\", is_dev_dep = False),\n struct(repo=\"crate_index__bytes-1.12.1\", is_dev_dep = False),\n struct(repo=\"crate_index__cc-1.4.4\", is_dev_dep = False),\n struct(repo=\"crate_index__clap-4.6.6\", is_dev_dep = False),\n struct(repo=\"crate_index__cliclack-0.3.8\", is_dev_dep = False),\n struct(repo=\"crate_index__console-0.16.4\", is_dev_dep = False),\n struct(repo=\"crate_index__ctrlc-3.5.2\", is_dev_dep = False),\n struct(repo=\"crate_index__env_logger-0.11.11\", is_dev_dep = False),\n struct(repo=\"crate_index__equivalent-1.0.2\", is_dev_dep = False),\n struct(repo=\"crate_index__foldhash-0.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__futures-0.3.34\", is_dev_dep = False),\n struct(repo=\"crate_index__hashbrown-0.17.1\", is_dev_dep = False),\n struct(repo=\"crate_index__human_bytes-0.4.3\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-container-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-derive-macros-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-elementary-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-elementary-traits-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-lock-free-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-memory-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-posix-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-system-types-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-testing-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-bb-threadsafe-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-cal-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-pal-concurrency-sync-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__iceoryx2-qnx8-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__indexmap-2.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__indicatif-0.18.6\", is_dev_dep = False),\n struct(repo=\"crate_index__indicatif-log-bridge-0.2.3\", is_dev_dep = False),\n struct(repo=\"crate_index__ipc-channel-0.20.2\", is_dev_dep = False),\n struct(repo=\"crate_index__libc-0.2.186\", is_dev_dep = False),\n struct(repo=\"crate_index__log-0.4.34\", is_dev_dep = False),\n struct(repo=\"crate_index__loom-0.7.2\", is_dev_dep = False),\n struct(repo=\"crate_index__mio-1.2.2\", is_dev_dep = False),\n struct(repo=\"crate_index__mockall-0.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__nix-0.30.1\", is_dev_dep = False),\n struct(repo=\"crate_index__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crate_index__pastey-0.2.3\", is_dev_dep = False),\n struct(repo=\"crate_index__pico-args-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__postcard-1.1.3\", is_dev_dep = False),\n struct(repo=\"crate_index__proc-macro2-1.0.107\", is_dev_dep = False),\n struct(repo=\"crate_index__prost-0.14.4\", is_dev_dep = False),\n struct(repo=\"crate_index__prost-build-0.14.4\", is_dev_dep = False),\n struct(repo=\"crate_index__prost-types-0.14.4\", is_dev_dep = False),\n struct(repo=\"crate_index__protoc-gen-prost-0.4.0\", is_dev_dep = False),\n struct(repo=\"crate_index__protoc-gen-tonic-0.4.1\", is_dev_dep = False),\n struct(repo=\"crate_index__quote-1.0.47\", is_dev_dep = False),\n struct(repo=\"crate_index__rand-0.9.5\", is_dev_dep = False),\n struct(repo=\"crate_index__rustversion-1.0.23\", is_dev_dep = False),\n struct(repo=\"crate_index__sem_safe-0.2.1\", is_dev_dep = False),\n struct(repo=\"crate_index__serde-1.0.229\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_core-1.0.229\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_json-1.0.151\", is_dev_dep = False),\n struct(repo=\"crate_index__signal-hook-0.3.18\", is_dev_dep = False),\n struct(repo=\"crate_index__socket2-0.6.5\", is_dev_dep = False),\n struct(repo=\"crate_index__syn-2.0.119\", is_dev_dep = False),\n struct(repo=\"crate_index__tempfile-3.27.0\", is_dev_dep = False),\n struct(repo=\"crate_index__thiserror-2.0.20\", is_dev_dep = False),\n struct(repo=\"crate_index__time-0.3.55\", is_dev_dep = False),\n struct(repo=\"crate_index__tinyjson-2.5.1\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-1.53.1\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-seqpacket-0.8.2\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-util-0.7.19\", is_dev_dep = False),\n struct(repo=\"crate_index__tonic-0.14.6\", is_dev_dep = False),\n struct(repo=\"crate_index__tracing-0.1.44\", is_dev_dep = False),\n struct(repo=\"crate_index__tracing-subscriber-0.3.23\", is_dev_dep = False),\n ]\n" } } }, @@ -6279,7 +6199,7 @@ "https://static.crates.io/crates/ipc-channel/0.20.2/download" ], "strip_prefix": "ipc-channel-0.20.2", - "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 'score_crates'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\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\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"ipc_channel\",\n deps = [\n \"@crate_index__bincode-1.3.3//:bincode\",\n \"@crate_index__crossbeam-channel-0.5.16//:crossbeam_channel\",\n \"@crate_index__fnv-1.0.7//:fnv\",\n \"@crate_index__libc-0.2.186//:libc\",\n \"@crate_index__serde-1.0.229//:serde\",\n \"@crate_index__uuid-1.25.0//:uuid\",\n ] + select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"@crate_index__mio-1.2.2//:mio\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\n \"@crate_index__tempfile-3.27.0//:tempfile\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__mio-1.2.2//:mio\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\n \"@crate_index__tempfile-3.27.0//:tempfile\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\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_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\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=ipc-channel\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.20.2\",\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 'score_crates'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\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\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"ipc_channel\",\n deps = [\n \"@crate_index__bincode-1.3.3//:bincode\",\n \"@crate_index__crossbeam-channel-0.5.16//:crossbeam_channel\",\n \"@crate_index__fnv-1.0.7//:fnv\",\n \"@crate_index__libc-0.2.186//:libc\",\n \"@crate_index__serde-1.0.229//:serde\",\n \"@crate_index__uuid-1.26.0//:uuid\",\n ] + select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"@crate_index__mio-1.2.2//:mio\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\n \"@crate_index__tempfile-3.27.0//:tempfile\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__mio-1.2.2//:mio\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\n \"@crate_index__tempfile-3.27.0//:tempfile\", # cfg(any(target_os = \"linux\", target_os = \"openbsd\", target_os = \"freebsd\", target_os = \"illumos\"))\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_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\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=ipc-channel\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.20.2\",\n)\n" } }, "crate_index__is_terminal_polyfill-1.70.2": { @@ -8650,20 +8570,20 @@ "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 'score_crates'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\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\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"utf8parse\",\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_env_files = [\n \":cargo_toml_env_vars\",\n ],\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=utf8parse\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.2\",\n)\n" } }, - "crate_index__uuid-1.25.0": { + "crate_index__uuid-1.26.0": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc", + "sha256": "b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/uuid/1.25.0/download" + "https://static.crates.io/crates/uuid/1.26.0/download" ], - "strip_prefix": "uuid-1.25.0", - "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 'score_crates'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\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\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"uuid\",\n deps = [\n \"@crate_index__getrandom-0.4.3//:getrandom\",\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 \"rng\",\n \"std\",\n \"v4\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\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=uuid\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.25.0\",\n)\n" + "strip_prefix": "uuid-1.26.0", + "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 'score_crates'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\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\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"uuid\",\n deps = [\n \"@crate_index__getrandom-0.4.3//:getrandom\",\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 \"rng\",\n \"std\",\n \"v4\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\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=uuid\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-pc-nto-qnx710\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-none\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.26.0\",\n)\n" } }, "crate_index__valuable-0.1.1": { diff --git a/Notes.md b/Notes.md new file mode 100644 index 0000000000..796c8a6632 --- /dev/null +++ b/Notes.md @@ -0,0 +1,269 @@ +# Notes + +## Findings + +### `dependable_element_bitmanipulation` angelegt — baut, Lobster-Test war erwartbar rot, jetzt behoben (siehe Finding weiter unten) + +**Kontext:** `dependable_element(name="dependable_element_bitmanipulation", assumptions_of_use=[":aous_bitmanipulation"], +requirements=["@score_platform//docs/features/baselibs/requirements:feat_req_baselibs"], +architectural_design=[":arch_design_bitmanipulation"], dependability_analysis=[], components=[":component_bitmanipulation"], +tests=[], integrity_level="B")` in `score/bitmanipulation/BUILD` angelegt. + +**Zwei neue, bisher unbekannte Stolperfallen bis der Build lief:** +1. **`unit().scope` braucht absolute Labels, keine relativen.** `dependable_element`s "Certified + Scope"-Check verlangt, dass jedes `unit()`, dessen `implementation`-Target selbst (nicht nur + dessen transitive Abhängigkeiten!) im Scope steht — sonst Fehler "Not in certified scope + @@//score/bitmanipulation:bitmanipulation, stopping at score". `scope = [":bitmanipulation"]` + (relatives Label) schlägt fehl, weil `Label(str)` in `dependable_element.bzl` relative Strings + relativ zum **Paket der .bzl-Datei selbst** auflöst, nicht relativ zur aufrufenden BUILD-Datei. + Fix: immer volle Labels verwenden, z. B. `scope = ["//score/bitmanipulation:bitmanipulation"]` + (siehe auch die Beispiele in `tooling/.../examples/seooc/unit_1/BUILD`, die dasselbe Muster + zeigen). +2. **PlantUML-Paket-Alias muss exakt dem `dependable_element`-Target-Namen entsprechen.** Die + `validation_cli`-Architekturprüfung verlangt ein Top-Level-`package "..." as <>` im `architectural_design`-PlantUML. Unser `static_design.puml` hatte + `as bitmanipulation`, musste zu `as dependable_element_bitmanipulation` umbenannt werden (Alias, + nicht der Anzeigename). +3. **Systemabhängigkeit fehlte:** Der allererste Build eines `dependable_element`-Targets in diesem + Workspace hat eine neue Pip-Wheel-Auflösung (`pycairo`, für den Sphinx/Graphviz-Doku-Stack) + ausgelöst, die ohne `pkg-config`/`libcairo2-dev` fehlschlägt ("Dependency lookup for cairo ... + failed"). Einmalig behoben via `apt-get install -y pkg-config libcairo2-dev` (root im Container, + kein Workspace-Zustand). + +**`bazel build //score/bitmanipulation:dependable_element_bitmanipulation`: SUCCESS** (HTML-Doku + +Lobster-Report werden erzeugt). + +**`bazel test //score/bitmanipulation:dependable_element_bitmanipulation`: war zunächst FAIL** — 13 +von 14 `feat_req_baselibs`-Einträgen bekamen "lobster error: missing reference to Component +Requirements". Das war die direkte Konsequenz der ursprünglich pragmatischen Entscheidung weiter +unten (`feat_req_baselibs` komplett statt eines schlanken `feat_req_bitmanipulation_only`): nur +`feat_req__baselibs__bitmanipulation` hatte ein zurückverweisendes `comp_req`; die anderen 13 +(unrelated) Feature Requirements des `baselibs`-Moduls hatten keins und ließen den +Lobster-Traceability-Test am `dependable_element`-Level (Feature Req ↔ Component Req) +fehlschlagen. **GELÖST** — siehe Finding "dependable_element.requirements zieht immer die komplette +RST-Quelldatei mit" weiter unten: die zuvor verworfene Alternative (schlankes, +bitmanipulation-only Feature-Requirements-Target) wurde doch noch umgesetzt. + +### `assumptions_of_use()` für `bitmanipulation`: gleiche `index.rst` wie `comp_req`, dank `only_types`-Patch + +**Kontext:** `docs/requirements/index.rst` (bitmanipulation) enthält bereits sowohl die +`comp_req`- als auch die `aou_req`-Direktiven (Abschnitt "Assumptions of Use (AoU)"). Ziel: diese +per `assumptions_of_use(name="aous_bitmanipulation", srcs=["docs/requirements/index.rst"], +requirements=[":comp_req_bitmanipulation"])` verwenden — **ohne** eine zweite/duplizierte RST-Datei +anzulegen (AoU-Ebene bewusst auf **Component**, nicht Feature: passt zur eclipse-score-Konvention +"AoUs zählen zu Component Requirements", siehe `reference_integration`-Repo). + +**Zwei Probleme, beide durch kleine, gezielte Patches im lokalen `score_tooling`-Fork gelöst:** +1. `rst_to_trlc`s `declare_file(..., sibling = src)` erzeugte für zwei Rules (`component_requirements` + und `assumptions_of_use`), die dieselbe `.rst`-Datei referenzieren, denselben Output-Pfad → + "conflicting actions". Fix: Output wird jetzt unter `ctx.label.name` (statt `sibling = src`) + deklariert (`rst_to_trlc.bzl`), wodurch jede Rule ihren eigenen, eindeutigen Output-Pfad bekommt. +2. `parse_directives()`/`render_trlc()` konvertierten bislang **alle** in `DIRECTIVE_TO_TRLC` + bekannten Direktiven einer Datei, unabhängig davon, welche Rule sie aufgerufen hat — d.h. + `assumptions_of_use()` hätte versehentlich auch die `comp_req`-Einträge (samt ungelöstem + `derived_from` → `TODO_PACKAGE`-Fehler) mit in sein TRLC-Package gezogen, und umgekehrt. Fix: + neuer optionaler `only_types`-Parameter (durchgereicht via CLI `--only-types` in + `rst_to_trlc.py`, Attribut in der `rst_to_trlc`-Rule, `rst_srcs_to_trlc()`-Helper). Anhand von + `req_kind` (`"assumed_system"`, `"feature"`, `"component"`) wird in `requirements.bzl`s neuer + `_REQ_KIND_TO_DIRECTIVES`-Map automatisch die passende Direktivenmenge gewählt (`"assumed_system"` + akzeptiert sowohl `assumed_system_req` als auch `stkh_req`, siehe Finding weiter unten); + `assumptions_of_use()` verwendet fest `only_types=["aou_req"]`. + +**Verifiziert:** `bazel build //score/bitmanipulation:aous_bitmanipulation +//score/bitmanipulation:comp_req_bitmanipulation //score/bitmanipulation:component_bitmanipulation` +läuft durch; generiertes `.trlc` von `aous_bitmanipulation` enthält exakt die 3 `ScoreReq.AoU`-Records, +das von `comp_req_bitmanipulation` exakt die 5 `ScoreReq.CompReq`-Records (keine Vermischung mehr). +`bazel run //:docs_check`/`//:live_preview` (baselibs) laufen fehlerfrei durch. + +**Nebenbei behoben:** `comp_arc_sta__baselibs__bitmanipulation_component` (ID aus der früheren +`comp_arc_sta`-Architekturarbeit) überschritt mit 49 Zeichen das von `score_metamodel` erzwungene +45-Zeichen-Limit für `.id`-Felder — das war die eigentliche Ursache für den `Exit Code 3` bei +`bazel run //:live_preview`, unabhängig von der AoU-Arbeit. Umbenannt zu +`comp_arc_sta__baselibs__bitmanip_static` (39 Zeichen). + +### ~~`assumed_system_req` bricht `bazel build //:docs` / `//:live_preview`~~ — GELÖST + +**Ursprüngliches Problem:** Um `assumed_system_requirements()` (neue Rule im lokalen +`score_tooling`-Fork) zu testen, wurde in `score_platform` (`../score`) eine **neu erfundene** +RST-Datei `assumed_system_requirements.rst` mit einer **neuen, selbst ausgedachten** +sphinx-needs-Direktive `.. assumed_system_req::` angelegt und zusätzlich per `docs_bundle` in die +normale HTML-Doku eingespeist. Das brach `bazel build //:docs` / `//:live_preview` mit +`ERROR: Unknown directive type "assumed_system_req"`, weil `score_docs_as_code`s (Registry-Version) +`metamodel.yaml` diesen Typ nicht kennt (`needs_types`: nur `std_req, gd_req, stkh_req, feat_req, +comp_req, tool_req, aou_req`). + +**Fehler in der ursprünglichen Analyse:** Das war der falsche Ansatz — es gibt bereits einen +validen, registrierten sphinx-needs-Typ für genau diesen Zweck: `stkh_req` (Stakeholder +Requirements, `score/docs/requirements/stakeholder/index.rst`). Es musste also **kein** neuer +Direktiv-Typ erfunden und **kein** `score_docs_as_code`/Metamodel-Patch vorgenommen werden. + +**Tatsächliche Lösung (minimal-invasiv, nur in unserem `score_tooling`-Fork):** +1. In `tooling/bazel/rules/rules_score/src/rst_to_trlc.py`s `DIRECTIVE_TO_TRLC`-Mapping einen + zusätzlichen Eintrag ergänzt: `"stkh_req": "ScoreReq.AssumedSystemReq"`. Die + RST→TRLC-Konvertierung schaut nur nach, welche Direktiven-Namen (unabhängig von der + aufrufenden Rule) in der übergebenen Quelldatei vorkommen — es gibt keine req_kind-spezifische + Einschränkung. +2. `assumed_system_requirements()` zeigt jetzt direkt auf die echte, unveränderte + `docs/requirements/stakeholder/index.rst` (kein Duplikat/Fake-RST mehr nötig). Da + `ctx.actions.declare_file(..., sibling = src)` verlangt, dass Output-Datei und Quelle im + selben Bazel-Package liegen, musste dafür ein neues, eigenes `BUILD` in + `score/docs/requirements/stakeholder/` angelegt werden (Target `asr_req_stakeholder`, + `package = "StakeholderRequirements"`), analog zum bereits bestehenden Muster bei + `feat_req_baselibs` (eigenes `BUILD` + `docs_bundle`-Rückmount in `//BUILD`s `bundles`, damit + das Toctree weiter auflöst). +3. `feat_req_baselibs`s `deps`/`ref_package` zeigen jetzt auf `asr_req_stakeholder` / + `"StakeholderRequirements"`; die erfundene `assumed_system_requirements.rst` wurde gelöscht; + `derived_from` in `docs/features/baselibs/requirements/index.rst` wieder auf die + ursprünglichen, echten `stkh_req__...`-IDs zurückgesetzt (kein Umbenennen mehr auf der + RST-Seite — das "Umtaufen" zu `AssumedSystemReq` passiert jetzt ausschließlich in Schritt 1, + also erst beim TRLC-Export). + +**Tradeoff (bewusst akzeptiert, analog zum `feat_req_baselibs`-Finding weiter unten):** Die +Stakeholder-Datei enthält 97 `stkh_req`-Einträge insgesamt, aber nur 4 eindeutige IDs werden von +`feat_req_baselibs` tatsächlich referenziert — es werden trotzdem alle 97 zu +`AssumedSystemReq`-TRLC-Records konvertiert (ungenutzter, aber harmloser Ballast). + +**Verifiziert:** `bazel build //docs/requirements/stakeholder:asr_req_stakeholder`, +`//docs/features/baselibs/requirements:feat_req_baselibs`, `//:docs` und `LC_ALL=C.UTF-8 bazel run +//:docs_check` laufen alle fehlerfrei durch (`build succeeded`, 0 Schema-Warnungen). + +### dependable_element.requirements zieht immer die komplette RST-Quelldatei mit — GELÖST + +**Kontext:** Aufbau eines `dependable_element` für `bitmanipulation` als eigenständiges SEooC +(`components = [":component_bitmanipulation"]`, `integrity_level = "B"`). + +**Beobachtung:** Das `requirements`-Attribut von `dependable_element` verlangt Targets mit +`FeatureRequirementsInfo` oder `AssumedSystemRequirementsInfo` (siehe +`providers = [[FeatureRequirementsInfo], [AssumedSystemRequirementsInfo]]` in +`dependable_element.bzl`). `comp_req_bitmanipulation` (nur `ComponentRequirementsInfo`) passt hier +nicht rein – Component Requirements kommen indirekt über `components` mit rein (das +`component()`-Target kennt sie bereits über sein eigenes `requirements`-Attribut). + +**Problem:** `_process_artifact_files()` (in `dependable_element.bzl`) symlinkt die komplette +RST-Quelldatei eines `requirements`-Targets 1:1 in die generierte Doku (kein Filtern einzelner +Requirements innerhalb einer Datei möglich). `feat_req_baselibs` enthält aber **alle 14 +Feature Requirements** von `baselibs` (u. a. `json_library`, `flatbuffers_library`, +`static_reflection_library`, …), nicht nur `feat_req__baselibs__bitmanipulation`. Das führte auch +zum Lobster-Testfehler oben: die 13 fachfremden Requirements haben kein zurückverweisendes +`comp_req` und lassen den Traceability-Test fehlschlagen. + +**Ursprüngliche Entscheidung (2026-08-26, inzwischen überholt):** Zunächst pragmatisch +`feat_req_baselibs` unverändert als `requirements`-Target verwendet, Test-Fail als bekannter Mangel +akzeptiert. Verworfene Alternative war ein separates, schlankes `feat_req_bitmanipulation_only`-Target. + +**Tatsächlich umgesetzte Lösung:** Die verworfene Alternative doch umgesetzt, indem die +`feat_req__baselibs__bitmanipulation`-Direktive aus `score/docs/features/baselibs/requirements/index.rst` +in eine eigene Datei `bitmanipulation.rst` (gleiches Verzeichnis) extrahiert und in `index.rst` per +`.. include:: bitmanipulation.rst` wieder eingebunden wurde (Doku/Toctree bleibt unverändert +gerendert). `rst_to_trlc.py` ist ein reiner Regex/Zeilen-Parser ohne Sphinx-Include-Auflösung — ein +`.. include::` in der Rohtextdatei ist für ihn unsichtbar, d. h. es gibt **kein** Duplizierungsrisiko +zwischen den beiden `.rst`-Dateien auf TRLC-Ebene, solange jede Datei nur dort explizit als `srcs` +gelistet wird, wo ihr Inhalt tatsächlich konvertiert werden soll. + +Zwei neue Bazel-Targets in `score/docs/features/baselibs/requirements/BUILD`: +- `feat_req_baselibs`: `srcs = ["index.rst", "bitmanipulation.rst"]` (weiterhin alle 14 Requirements, + jetzt aus zwei Quelldateien statt einer — `rst_srcs_to_trlc()` konvertiert jede `.rst`-Datei in + `srcs` unabhängig und mergt die Ergebnisse, das war schon vorher so und brauchte keine + Code-Änderung im `tooling`-Repo). +- `feat_req_bitmanipulation` (neu): `srcs = ["bitmanipulation.rst"]`, liefert nur das eine relevante + Feature Requirement, TRLC-Package-Name default-abgeleitet vom Dateinamen-Stem: `Bitmanipulation`. + +In `baselibs/score/bitmanipulation/BUILD` verweisen jetzt `comp_req_bitmanipulation` (`deps` + +`ref_package="Bitmanipulation"`), `component_bitmanipulation` (`requirements`-Liste) und +`dependable_element_bitmanipulation` (`requirements`) auf `feat_req_bitmanipulation` statt +`feat_req_baselibs` — vollständige Entkopplung von den 13 fachfremden Requirements. + +**Zusätzlich nötiger Fix in `score/docs/conf.py`:** Ohne weitere Maßnahme behandelte Sphinx +`bitmanipulation.rst` zusätzlich als eigenständiges Dokument (weil es im gemounteten `docs`-Baum +liegt), was zu `needs.duplicate_id` (Need doppelt registriert: einmal via `include`, einmal als +eigenes Dokument) und `toc.not_included` (Orphan-Warnung) führte. Behoben durch +`exclude_patterns = ["features/baselibs/requirements/bitmanipulation.rst"]` in `conf.py` — die Datei +wird dadurch nur noch über das `include` gerendert, nie als eigenständiges Sphinx-Dokument. + +**Verifiziert:** `bazel build` + `bazel test //score/bitmanipulation:dependable_element_bitmanipulation` +(1/1 PASSED, keine Lobster-Fehler mehr) und `LC_ALL=C.UTF-8 bazel run //:docs_check` (baselibs) laufen +beide fehlerfrei durch. + +### Lobster-Traceability: Unit Tests sind aktuell nicht mit Requirements verknüpft + +**Komponente:** `//score/bitmanipulation:component_bitmanipulation` + +**Beobachtung:** Im generierten Lobster-Report (`bazel-bin/score/bitmanipulation/component_bitmanipulation_report.json`) +gibt es 4 Traceability-Ebenen: `Feature Requirements` → `Component Requirements` → `Architecture` → `Unit Test`. +Die Kette wird aber nur teilweise geprüft: + +- **`Architecture ↔ Component Requirements`** wird von Lobster tatsächlich erzwungen + (`needs_tracing_up`/`needs_tracing_down` in der Policy des Reports). +- **`Unit Test`** ist dagegen komplett von der Prüfung ausgenommen + (`needs_tracing_up: false`, `needs_tracing_down: false` für das Level "Unit Test"). +- Keiner der 43 GoogleTest-Testfälle in `bit_manipulation_test.cpp` / `bitmask_operators_test.cpp` + deklariert eine Verknüpfung zu einem Requirement. Das zugehörige `.lobster`-Item + (`component_bitmanipulation.lobster`) hat für jeden Test kein `refs`-Feld. + +**Konsequenz (Stand vor der Behebung):** Es war **keine einzige Component- oder +Feature-Requirement-Anforderung tatsächlich durch einen Unit-Test nachweisbar abgedeckt** – der +Build/Test war trotzdem grün, weil diese Verknüpfung von der aktuellen Lobster-Policy nicht +verlangt wird. + +**✅ Behoben:** Alle 43 Testfälle in `bit_manipulation_test.cpp` (32) und +`bitmask_operators_test.cpp` (11) sind jetzt instrumentiert (best-guess Mapping auf Basis der +`comp_req`-Beschreibungstexte in `score/bitmanipulation/docs/requirements/index.rst`). Dabei +wurden **zwei unabhängige Traceability-Mechanismen** identifiziert und beide bedient: + +1. **Lobster (`lobster-gtest`)** – erkennt ausschließlich die Property `lobster-tracing` + (Format `"."`, hier `"CompReqBitmanipulation.comp_req__bitmanipulation__"`). + Verifiziert über direkte Inspektion von `component_bitmanipulation.lobster`: alle 43 Items + haben jetzt ein korrektes `refs`-Feld. `dependable_element_bitmanipulation`-Test bleibt grün. +2. **`score_docs_as_code`'s `score_source_code_linker`-Extension** (Sphinx-needs-basierte + Testfall↔Requirement-Verlinkung für die Docs/Traceability-Metrics-Ansicht, unabhängig von + Lobster) – verlangt eigene Properties: `TestType`, `DerivationTechnique`, sowie + `PartiallyVerifies`/`FullyVerifies` (Wert = **roher** `comp_req__...`-Id ohne Namespace-Prefix, + im Gegensatz zum `lobster-tracing`-Tag). Genau das entspricht der im Skill + `.agents/skills/requirements-management-skill/test-to-requirement-linking.md` dokumentierten + Konvention. Optional `Description` (wird von diesem Parser zwar ignoriert, aber laut Skill + trotzdem empfohlen und wurde ergänzt). + + `bazel run //:docs_check` zeigte nach dem reinen `lobster-tracing`-Zusatz neue Warnungen + ("Tests missing some properties: ...") für genau diese 43 Tests, weil sie zwar Properties + hatten, aber nicht das von diesem zweiten Mechanismus erwartete Schema erfüllten. Nach + Ergänzung von `TestType`/`DerivationTechnique`/`PartiallyVerifies`/`Description` sind diese + Warnungen verschwunden (`docs_check` meldet "Saving 43 parsed testcases..." ohne + "missing some properties" für bitmanipulation-Tests; die zwei übrig bleibenden + "missing all properties"-Meldungen betreffen nur die (unveränderten, unabhängigen) + `..._lobster_ci_test_executable` / `..._lobster_test`-Wrapper-Targets, nicht die eigentlichen + Unit-Tests). + +**Wie es (laut Tooling) eigentlich vorgesehen ist:** `lobster-gtest` unterstützt +`::testing::Test::RecordProperty("lobster-tracing", "")` innerhalb eines Testfalls, um +ihn explizit einem Requirement-Tag zuzuordnen. Beispiel aus dem `score_tooling`-Fixture +(`tooling/bazel/rules/rules_score/test/fixtures/test_binary_unit_test.cc`): + +```cpp +TEST(BinaryUnitTest, MockFunction1ReturnsExpectedValue) { + ::testing::Test::RecordProperty("lobster-tracing", "TestComponent.REQ_COMP_TEST_001"); + EXPECT_EQ(mock_function_1(), 42); +} +``` + +Für `bitmanipulation` wäre das analog z. B.: + +```cpp +TEST(SetBit, WithUInt8) { + ::testing::Test::RecordProperty("lobster-tracing", + "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); + ... +} +``` + +**Offene Punkte / mögliche nächste Schritte:** +1. ~~Testfälle in `bitmanipulation` mit `RecordProperty("lobster-tracing", ...)` versehen, + um eine echte Abdeckung zu deklarieren.~~ ✅ Erledigt (siehe oben, inkl. zweitem Mechanismus). +2. Klären, ob/wie die Lobster-Policy (`needs_tracing_up`/`needs_tracing_down` für "Unit Test") + angepasst werden kann/soll, damit fehlende Testabdeckung tatsächlich einen Build-Fehler auslöst + (aktuell rein informativ). — weiterhin offen. + +*(Quelle: Analyse von `component_bitmanipulation_report.json`, `comp_req_bitmanipulation.lobster`, +`component_bitmanipulation_architecture.lobster`, `component_bitmanipulation.lobster` und +`arch_to_reqs_from_lobster.py` im lokalen `score_tooling`-Checkout, Stand 2026-08-26. Zweiter +Mechanismus (`score_source_code_linker`) analysiert direkt im vendored +`external/score_docs_as_code+/src/extensions/score_source_code_linker/{xml_parser.py,testlink.py}`.)* diff --git a/bazel/toolchains/BUILD b/bazel/toolchains/BUILD new file mode 100644 index 0000000000..c56a688a96 --- /dev/null +++ b/bazel/toolchains/BUILD @@ -0,0 +1,34 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +# score_tooling's unit()/component() macros run a libclang-based C++ parser +# (see @score_tooling//cpp/libclang) but deliberately don't register a +# libclang toolchain themselves, so every consuming repository must register +# its own (see @score_tooling//cpp/libclang:libclang_toolchain.bzl docstring). +# We wrap the LLVM distribution already pulled in via the "llvm" module +# extension in //MODULE.bazel (@llvm_toolchain_llvm). +load("@score_tooling//cpp/libclang:libclang_toolchain.bzl", "libclang_toolchain") + +libclang_toolchain( + name = "baselibs_libclang", + cc_toolchain = "@llvm_toolchain//:cc-clang-x86_64-linux", + libclang = "@llvm_toolchain_llvm//:lib/libclang.so", + visibility = ["//visibility:public"], +) + +toolchain( + name = "baselibs_libclang_toolchain", + toolchain = ":baselibs_libclang", + toolchain_type = "@score_tooling//cpp/libclang:libclang_toolchain_type", + visibility = ["//visibility:public"], +) diff --git a/docs/index.rst b/docs/index.rst index b2967c2f55..9f97dcb5b8 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -43,6 +43,7 @@ The Module documentation covers the module-level view, including architecture, s module/index verification_report/module_verification_report + verification_report/lobster_traceability_report Component Documentation diff --git a/docs/verification_report/lobster_traceability_report.rst b/docs/verification_report/lobster_traceability_report.rst new file mode 100644 index 0000000000..381a6eca9d --- /dev/null +++ b/docs/verification_report/lobster_traceability_report.rst @@ -0,0 +1,30 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Lobster Traceability Report +############################ + +This page renders the Lobster traceability report generated by +``dependable_element_baselibs``: feature and component requirements linked +to their GoogleTest unit tests, the architecture/public API, and the safety +analysis (failure modes, control measures and their FTA root causes). +Currently this only covers ``component_bitmanipulation``; as more baselibs +components are wired into ``dependable_element_baselibs`` (see //BUILD), +this report grows to cover them too. +The report is a plain build artifact read from disk; build it first with:: + + bazel build //:dependable_element_baselibs + +.. lobster-traceability-report:: + bazel-bin/dependable_element_baselibs_index_report.json diff --git a/score/bitmanipulation/BUILD b/score/bitmanipulation/BUILD index 34ca4f193b..44f72a0a40 100644 --- a/score/bitmanipulation/BUILD +++ b/score/bitmanipulation/BUILD @@ -15,6 +15,56 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") load("@score_baselibs//:bazel/unit_tests.bzl", "cc_unit_test_suites_for_host_and_qnx") load("@score_baselibs//score/language/safecpp:toolchain_features.bzl", "COMPILER_WARNING_FEATURES") load("@score_docs_as_code//:docs.bzl", "docs_bundle") +load("@score_tooling//bazel/rules/rules_score:rules_score.bzl", "architectural_design", "assumptions_of_use", "component", "component_requirements", "dependability_analysis", "fmea", "unit") + +# Exposes the raw RST source containing the comp_req directives, e.g. for +# other consumers that don't need TrlcProviderInfo. +filegroup( + name = "comp_req_bitmanipulation_rst", + srcs = ["docs/requirements/component_requirements.rst"], + visibility = ["//visibility:public"], +) + +# Converts the comp_req directives to TRLC. derived_from references in the +# RST point to feat_req__baselibs__bitmanipulation, which lives in the +# feat_req_baselibs target of the score checkout (see git_override for +# score_platform in //MODULE.bazel) - this converts all 14 baselibs feature +# requirements (bitmanipulation.rst was merged back into index.rst, so there +# is no narrower per-feature target anymore). +# ref_package must match the TRLC package name that target's RST conversion +# produces (default-derived from its "index.rst" filename stem: "Index"). +# package is set explicitly to "CompReqBitmanipulation" (requires the local +# ../tooling checkout's package= override, not present in registry +# score_tooling 2.2.1) since the lobster-tracing RecordProperty tags in the +# unit tests below are written as "CompReqBitmanipulation." and +# must match this package name. +component_requirements( + name = "comp_req_bitmanipulation", + srcs = ["docs/requirements/component_requirements.rst"], + deps = ["@score_platform//docs/features/baselibs/requirements:feat_req_baselibs"], + package = "CompReqBitmanipulation", + ref_package = "Index", + visibility = ["//visibility:public"], +) + +# The aou_req directives (Assumptions of Use) live in their own +# assumptions_of_use.rst file, referenced (not included) from +# docs/requirements/index.rst via a hidden toctree, so it renders as its own +# page instead of inline prose - this also means it no longer needs a +# colocated .ignore file to keep sphinx_mounts from discovering it a second +# time (there is nothing left to "discover twice": toctree, unlike include, +# doesn't create a second registration of the same content). Keeping this as +# its own file also remains required regardless of Sphinx rendering: rst_to_trlc +# converts one .rst file into one .trlc output (declared as a sibling of the +# source file), so sharing one file between comp_req_bitmanipulation and +# aous_bitmanipulation would make both targets produce the exact same +# generated .trlc path. None of the AoUs use :derived_from:/:satisfies:, so no +# ref_package is required here. +assumptions_of_use( + name = "aous_bitmanipulation", + srcs = ["docs/requirements/assumptions_of_use.rst"], + visibility = ["//visibility:public"], +) cc_test( name = "bit_manipulation_test", @@ -81,6 +131,105 @@ cc_unit_test_suites_for_host_and_qnx( ], ) +# design/README.md explains that no detailed design is provided for this +# library (it just aggregates small, uncoupled utility functions), so both +# units are defined without unit_design content. +unit( + name = "bit_manipulation", + unit_design = [], + implementation = [":bitmanipulation"], + scope = ["//score/bitmanipulation:bitmanipulation"], + tests = [":bit_manipulation_test"], + visibility = ["//visibility:public"], +) + +unit( + name = "bitmask", + unit_design = [], + implementation = [":bitmask_operators"], + scope = ["//score/bitmanipulation:bitmask_operators"], + tests = [":bitmask_operators_test"], + visibility = ["//visibility:public"], +) + +component( + name = "component_bitmanipulation", + components = [ + ":bit_manipulation", + ":bitmask", + ], + # feat_req_baselibs is listed alongside comp_req_bitmanipulation + # (not just in comp_req_bitmanipulation's own `deps`) so its .lobster file + # is available to the component rule's lobster report generation, which + # otherwise can't resolve comp_req_bitmanipulation's derived_from + # reference to it ("unknown tracing target"). See component()'s + # docstring in //../tooling (local score_tooling checkout). + requirements = [ + ":comp_req_bitmanipulation", + "@score_platform//docs/features/baselibs/requirements:feat_req_baselibs", + ], + visibility = ["//visibility:public"], +) + +# Static architecture diagram (SEooC -> component_bitmanipulation -> its 2 +# units). Validated at build time against the actual unit()/component() +# structure below; the build fails if they drift apart. +# +# public_api documents the free functions in bit_manipulation.h as a single +# aggregate "BitOperations" interface item. FailureMode.interface (see +# docs/safety_analysis/trlc/failuremodes.trlc) references it by its TRLC-style +# alias "BitmanipulationAPI.BitOperations", which is what lets the +# dependability_analysis() traceability test resolve the "Failure Modes -> +# Architecture" up-reference (see arch_design wiring on +# dependability_analysis_bitmanipulation below). +architectural_design( + name = "arch_design_bitmanipulation", + static = ["docs/architecture/static_design.puml"], + public_api = ["docs/architecture/public_api.puml"], + visibility = ["//visibility:public"], +) + +# TRLC re-expression of the failure modes/control measures already analysed as +# prose in docs/safety_analysis/fmea.rst, for the dependable_element()-flavoured +# fmea()/dependability_analysis() pipeline (renders its own fmea.rst page + +# FailureMode/ControlMeasure lobster traceability). root_causes links each +# failure mode down to its control measure via one FTA diagram per failure +# mode (TopEvent/BasicEvent alias == TRLC fully-qualified record name), which +# is what the dependability_analysis() traceability test (bazel test) checks. +fmea( + name = "fmea_bitmanipulation", + arch_design = ":arch_design_bitmanipulation", + controlmeasures = ["docs/safety_analysis/trlc/controlmeasures.trlc"], + failuremodes = ["docs/safety_analysis/trlc/failuremodes.trlc"], + root_causes = [ + "docs/safety_analysis/trlc/fta_constraint_violation.puml", + "docs/safety_analysis/trlc/fta_late_return.puml", + "docs/safety_analysis/trlc/fta_no_return.puml", + "docs/safety_analysis/trlc/fta_wrong_input.puml", + ], + visibility = ["//visibility:public"], +) + +# arch_design (not fmea()'s own same-named attribute, which is currently +# unused by the fmea rule implementation) is what actually feeds the +# architectural_design target's public_api into the combined lobster +# traceability report as the "Architecture" pool that "Failure Modes" must +# trace up to. +dependability_analysis( + name = "dependability_analysis_bitmanipulation", + fmea = [":fmea_bitmanipulation"], + arch_design = ":arch_design_bitmanipulation", + visibility = ["//visibility:public"], +) + +# Complete SEooC for bitmanipulation, assembling requirements, AoUs, +# architecture and the implementing component into a single certifiable +# dependable element. Defined in the root //BUILD as +# `dependable_element_baselibs` (this is baselibs' single, repo-wide +# dependable element - not scoped per component - so its Bazel package is +# the repo root, not this component's package); see that target's own +# comment for the full rationale. + docs_bundle( name = "docs", source_dir = "docs", diff --git a/score/bitmanipulation/bit_manipulation_test.cpp b/score/bitmanipulation/bit_manipulation_test.cpp index a3ef3e55a6..aa91d3fdb2 100644 --- a/score/bitmanipulation/bit_manipulation_test.cpp +++ b/score/bitmanipulation/bit_manipulation_test.cpp @@ -29,6 +29,7 @@ using ::testing::Eq; TEST(HalfByte, CanBeConstructedFromUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a HalfByte can be constructed from a uint8_t value within its 4-bit range."); RecordProperty("TestType", "requirements-based"); @@ -42,6 +43,7 @@ TEST(HalfByte, CanBeConstructedFromUInt8) TEST(HalfByte, CanBeConstructedFromUInt16IfInRange) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a HalfByte can be constructed from a uint16_t value that fits within its 4-bit range."); RecordProperty("TestType", "requirements-based"); @@ -55,6 +57,7 @@ TEST(HalfByte, CanBeConstructedFromUInt16IfInRange) TEST(HalfByte, CanBeConstructedFromBigUInt8ButUpperHalfIsDropped) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that constructing a HalfByte from a uint8_t value larger than 4 bits drops the upper bits " "and keeps only the lower nibble."); @@ -69,6 +72,7 @@ TEST(HalfByte, CanBeConstructedFromBigUInt8ButUpperHalfIsDropped) TEST(Byte, CanBeConstructedFromUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a Byte can be constructed directly from a uint8_t value."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -81,6 +85,7 @@ TEST(Byte, CanBeConstructedFromUInt8) TEST(Byte, CanBeConstructedFromUInt16IfInRange) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a Byte can be constructed from a uint16_t value that fits within a single byte."); RecordProperty("TestType", "requirements-based"); @@ -94,6 +99,7 @@ TEST(Byte, CanBeConstructedFromUInt16IfInRange) TEST(Byte, CanBeConstructedFromTwoHalfBytes) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a Byte constructed from an upper and lower HalfByte concatenates them into the expected " "combined value."); @@ -111,6 +117,7 @@ TEST(Byte, CanBeConstructedFromTwoHalfBytes) TEST(Byte, CanBeConstructedFromTwoBigHalfBytes) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that constructing a Byte from HalfBytes built from oversized values still yields the correct " "combined byte, since only the lower nibble of each half is kept."); @@ -128,6 +135,7 @@ TEST(Byte, CanBeConstructedFromTwoBigHalfBytes) TEST(Byte, CanBeConstructedFromTwoZeroHalfBytes) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a Byte constructed from two zero HalfBytes results in the value zero."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); @@ -143,6 +151,7 @@ TEST(Byte, CanBeConstructedFromTwoZeroHalfBytes) TEST(Byte, CanBeConstructedFromTwoHalfBytesWithMaxValue) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a Byte constructed from two max-value HalfBytes results in the value 255."); RecordProperty("TestType", "requirements-based"); @@ -158,6 +167,7 @@ TEST(Byte, CanBeConstructedFromTwoHalfBytesWithMaxValue) TEST(Extract, UpperHalfByteFromAByte) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that UpperHalfByte extracts the upper nibble of a Byte."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -172,6 +182,7 @@ TEST(Extract, UpperHalfByteFromAByte) TEST(Extract, LowerHalfByteFromAByte) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that LowerHalfByte extracts the lower nibble of a Byte."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -186,6 +197,7 @@ TEST(Extract, LowerHalfByteFromAByte) TEST(Extract, LowerHalfByteFromAByteCanBeConvertedToUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_operations"); RecordProperty("Description", "Check that a HalfByte extracted from a Byte converts implicitly to its underlying uint8_t value."); RecordProperty("TestType", "interface-test"); @@ -201,6 +213,7 @@ TEST(Extract, LowerHalfByteFromAByteCanBeConvertedToUInt8) TEST(SetBit, WithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty("Description", "Check that SetBit sets the requested bit of a uint8_t value and returns true."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -216,6 +229,7 @@ TEST(SetBit, WithUInt8) TEST(SetBit, WithUInt64) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty( "Description", "Check that SetBit sets the requested bit of a uint64_t value, supporting integral types up to 64 bits."); @@ -235,6 +249,7 @@ TEST(SetBit, WithUInt64) TEST(SetBit, WithNegativeInt32) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty("Description", "Check that SetBit sets the requested bit of a negative (sign-bit-set) int32_t value, i.e. " "the internal unsigned promotion and narrowing back to a signed type do not corrupt the result."); @@ -252,6 +267,7 @@ TEST(SetBit, WithNegativeInt32) TEST(SetBit, OverflowWithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bounds_safety"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bounds_safety"); RecordProperty("Description", "Check that SetBit returns false and leaves the value unmodified when the bit position exceeds " "the width of a uint8_t value."); @@ -271,6 +287,7 @@ TEST(SetBit, OverflowWithUInt8) TEST(ClearBit, WithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty("Description", "Check that ClearBit clears the requested bit of a uint8_t value and returns true."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -286,6 +303,7 @@ TEST(ClearBit, WithUInt8) TEST(ClearBit, WithUInt64) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty( "Description", "Check that ClearBit clears the requested bit of a uint64_t value, supporting integral types up to 64 bits."); @@ -305,6 +323,7 @@ TEST(ClearBit, WithUInt64) TEST(ClearBit, OverflowWithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bounds_safety"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bounds_safety"); RecordProperty("Description", "Check that ClearBit returns false and leaves the value unmodified when the bit position exceeds " "the width of a uint8_t value."); @@ -324,6 +343,7 @@ TEST(ClearBit, OverflowWithUInt8) TEST(ToggleBit, WithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty("Description", "Check that ToggleBit flips the requested bits of a uint8_t value and returns true."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -340,6 +360,7 @@ TEST(ToggleBit, WithUInt8) TEST(ToggleBit, WithUInt64) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty( "Description", "Check that ToggleBit flips the requested bits of a uint64_t value, supporting integral types up to 64 bits."); @@ -360,6 +381,7 @@ TEST(ToggleBit, WithUInt64) TEST(ToggleBit, OverflowWithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bounds_safety"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bounds_safety"); RecordProperty("Description", "Check that ToggleBit returns false and leaves the value unmodified when the bit position exceeds " "the width of a uint8_t value."); @@ -379,6 +401,7 @@ TEST(ToggleBit, OverflowWithUInt8) TEST(CheckBit, WithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty("Description", "Check that CheckBit reports the correct set/unset state of bits in a uint8_t value."); RecordProperty("TestType", "requirements-based"); @@ -393,6 +416,7 @@ TEST(CheckBit, WithUInt8) TEST(CheckBit, WithUInt64) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bit_operations"); RecordProperty("Description", "Check that CheckBit reports the correct set/unset state of bits in a uint64_t value, supporting " "integral types up to 64 bits."); @@ -409,6 +433,7 @@ TEST(CheckBit, WithUInt64) TEST(CheckBit, OverflowWithUInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bounds_safety"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bounds_safety"); RecordProperty("Description", "Check that CheckBit returns false when the bit position exceeds the width of a uint8_t value."); RecordProperty("TestType", "requirements-based"); @@ -423,6 +448,7 @@ TEST(CheckBit, OverflowWithUInt8) TEST(GetByte, FromUint8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the single byte of a uint8_t value unchanged."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -435,6 +461,7 @@ TEST(GetByte, FromUint8) TEST(GetByte, FromInt8) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the single byte of a signed int8_t value unchanged."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "equivalence-classes"); @@ -447,6 +474,7 @@ TEST(GetByte, FromInt8) TEST(GetByte, FromUint16) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the correct byte at each position of a uint16_t value."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "equivalence-classes"); @@ -460,6 +488,7 @@ TEST(GetByte, FromUint16) TEST(GetByte, FromInt16) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the correct byte at each position of a signed int16_t value."); RecordProperty("TestType", "requirements-based"); @@ -474,6 +503,7 @@ TEST(GetByte, FromInt16) TEST(GetByte, FromUint32) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the correct byte at each position of a uint32_t value."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "equivalence-classes"); @@ -489,6 +519,7 @@ TEST(GetByte, FromUint32) TEST(GetByte, FromInt32) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the correct byte at each position of a signed int32_t value."); RecordProperty("TestType", "requirements-based"); @@ -505,6 +536,7 @@ TEST(GetByte, FromInt32) TEST(GetByte, FromUint64) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the correct byte at each position of a uint64_t value, the widest " "supported integral type."); @@ -526,6 +558,7 @@ TEST(GetByte, FromUint64) TEST(GetByte, FromInt64) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_extraction"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__byte_extraction"); RecordProperty("Description", "Check that GetByte extracts the correct byte at each position of a signed int64_t value, the " "widest supported integral type."); diff --git a/score/bitmanipulation/bitmask_operators_test.cpp b/score/bitmanipulation/bitmask_operators_test.cpp index 77132e09d2..038129970c 100644 --- a/score/bitmanipulation/bitmask_operators_test.cpp +++ b/score/bitmanipulation/bitmask_operators_test.cpp @@ -45,6 +45,7 @@ using UnderlyingType = std::underlying_type_t; TEST(MyBitmask, SupportsOperatorOr) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator| combines two bitmask enumerators into their bitwise union."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -58,6 +59,7 @@ TEST(MyBitmask, SupportsOperatorOr) TEST(MyBitmask, SupportsOperatorAnd) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator& reports whether each queried bit is present in a combined bitmask."); RecordProperty("TestType", "requirements-based"); @@ -75,6 +77,7 @@ TEST(MyBitmask, SupportsOperatorAnd) TEST(MyBitmask, SupportsOperatorXor) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator^ combines two bitmask enumerators into their bitwise exclusive-or."); RecordProperty("TestType", "requirements-based"); @@ -89,6 +92,7 @@ TEST(MyBitmask, SupportsOperatorXor) TEST(MyBitmask, SupportsOperatorNot) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator~ inverts all bits of a bitmask enumerator."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -104,6 +108,7 @@ TEST(MyBitmask, SupportsOperatorNot) TEST(MyBitmask, SupportsAssignOperatorAnd) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator&= clears bits of a bitmask that are not present in the right-hand operand."); RecordProperty("TestType", "requirements-based"); @@ -119,6 +124,7 @@ TEST(MyBitmask, SupportsAssignOperatorAnd) TEST(MyBitmask, SupportsAssignOperatorAndMatching) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty( "Description", "Check that operator&= leaves a bitmask unchanged when the right-hand operand matches the same bit."); @@ -135,6 +141,7 @@ TEST(MyBitmask, SupportsAssignOperatorAndMatching) TEST(MyBitmask, SupportsAssignOperatorOr) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator|= sets additional bits of a bitmask from the right-hand operand."); RecordProperty("TestType", "requirements-based"); @@ -150,6 +157,7 @@ TEST(MyBitmask, SupportsAssignOperatorOr) TEST(MyBitmask, SupportsAssignOperatorOrMatching) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty( "Description", "Check that operator|= leaves a bitmask unchanged when the right-hand operand matches an already-set bit."); @@ -166,6 +174,7 @@ TEST(MyBitmask, SupportsAssignOperatorOrMatching) TEST(MyBitmask, SupportsAssignOperatorXOr) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator^= toggles bits of a bitmask from the right-hand operand."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "requirements-analysis"); @@ -180,6 +189,7 @@ TEST(MyBitmask, SupportsAssignOperatorXOr) TEST(MyBitmask, SupportsAssignOperatorXOrMatching) { RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); + RecordProperty("lobster-tracing", "CompReqBitmanipulation.comp_req__bitmanipulation__bitmask_operators"); RecordProperty("Description", "Check that operator^= clears a bitmask to zero when XOR-ed with itself."); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); diff --git a/score/bitmanipulation/docs/architecture/index.rst b/score/bitmanipulation/docs/architecture/index.rst index 1e2b3b1e9b..eaac8a7f4c 100644 --- a/score/bitmanipulation/docs/architecture/index.rst +++ b/score/bitmanipulation/docs/architecture/index.rst @@ -62,6 +62,29 @@ Static Architecture {{ draw_component(need(), needs) }} +.. comp_arc_sta:: Bitmanipulation Component Static View (PlantUML) + :id: comp_arc_sta__baselibs__bitmanip_static + :security: NO + :safety: ASIL_B + :status: valid + :version: 1 + :fulfils: comp_req__bitmanipulation__bit_operations[version==1],comp_req__bitmanipulation__byte_operations[version==2],comp_req__bitmanipulation__bitmask_operators[version==1],comp_req__bitmanipulation__bounds_safety[version==1],comp_req__bitmanipulation__header_only[version==1] + :belongs_to: comp__baselibs_bit_manipulation[version==1] + + Component-level view, authored as PlantUML (``static_design.puml``) rather + than derived from need metadata. This is the same source that feeds the + ``architectural_design`` Bazel target (``arch_design_bitmanipulation``), so + it is validated at build time against the actual ``component()``/``unit()`` + structure declared in the ``BUILD`` file and cannot drift from the real + Bazel target graph: the SEooC ``Bitmanipulation`` contains + ``component_bitmanipulation``, which in turn contains the two units + ``bit_manipulation`` and ``bitmask``. + + .. uml:: static_design.puml + :align: center + :alt: Bitmanipulation static architecture (SEooC -> component -> units) + :width: 100% + Interfaces ---------- diff --git a/score/bitmanipulation/docs/architecture/public_api.puml b/score/bitmanipulation/docs/architecture/public_api.puml new file mode 100644 index 0000000000..e732c6bf7b --- /dev/null +++ b/score/bitmanipulation/docs/architecture/public_api.puml @@ -0,0 +1,27 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + +' Public interface surface of bit_manipulation.h (SetBit/ClearBit/ToggleBit/ +' CheckBit), referenced by FailureMode.interface in +' ../safety_analysis/trlc/failuremodes.trlc. All four failure modes there are +' generic HAZOP fault models that apply equally to every free function, so +' they all reference this single, aggregate "BitOperations" interface rather +' than one interface item per function. + +@startuml public_api + +package "BitmanipulationAPI" as BitmanipulationAPI { + interface "BitOperations" as BitOperations +} + +@enduml diff --git a/score/bitmanipulation/docs/architecture/static_design.puml b/score/bitmanipulation/docs/architecture/static_design.puml new file mode 100644 index 0000000000..392daa3ed8 --- /dev/null +++ b/score/bitmanipulation/docs/architecture/static_design.puml @@ -0,0 +1,23 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + +@startuml static_design + +package "Baselibs" as dependable_element_baselibs <> { + component "component_bitmanipulation" as component_bitmanipulation <> { + component "bit_manipulation" as bit_manipulation <> + component "bitmask" as bitmask <> + } +} + +@enduml diff --git a/score/bitmanipulation/docs/requirements/assumptions_of_use.rst b/score/bitmanipulation/docs/requirements/assumptions_of_use.rst new file mode 100644 index 0000000000..9e7a55ed43 --- /dev/null +++ b/score/bitmanipulation/docs/requirements/assumptions_of_use.rst @@ -0,0 +1,56 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025-2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Assumptions of Use (AoU) +======================== + +.. aou_req:: Integral Type Constraints + :id: aou_req__bitmanipulation__type_constraints + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :version: 1 + :tags: inspected + + The user shall use bit manipulation functions only with integral types (integers, enumerations) as specified in the library's type constraints. + + Note: Operations on floating-point or non-integral types are not supported. + +.. aou_req:: Bitmask Enum Value Constraints + :id: aou_req__bitmanipulation__enum_constraints + :reqtype: Functional + :security: NO + :safety: ASIL_B + :status: valid + :version: 1 + :tags: inspected + + The user shall use scoped enumeration types (enum class) whose enumerators are defined as non-zero power-of-two values. + +.. aou_req:: External Synchronization Required for Concurrent Access + :id: aou_req__bitmanipulation__concurrent_access + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :status: valid + :version: 1 + :tags: inspected + + The user shall implement external synchronization mechanisms (e.g., mutexes, atomic operations, or locks) when accessing or modifying the same integral value from multiple threads concurrently. + + Note: The library provides no internal thread safety guarantees. + +.. needextend:: c.this_doc() and (type == "aou_req") + :+tags: baselibs, bitmanipulation diff --git a/score/bitmanipulation/docs/requirements/component_requirements.rst b/score/bitmanipulation/docs/requirements/component_requirements.rst new file mode 100644 index 0000000000..232af59db0 --- /dev/null +++ b/score/bitmanipulation/docs/requirements/component_requirements.rst @@ -0,0 +1,101 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025-2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Component Requirements +====================== + +Functional Requirements +----------------------- + +.. comp_req:: Support for Bit Operations + :id: comp_req__bitmanipulation__bit_operations + :reqtype: Functional + :security: YES + :safety: ASIL_B + :derived_from: feat_req__baselibs__bitmanipulation[version==2] + :status: valid + :version: 1 + :satisfied_by: comp__baselibs_bit_manipulation[version==1] + :tags: inspected + + The bit manipulation component shall provide an API for setting, clearing, toggling, and checking individual bits for any integral type up to 64 bits, returning boolean success status. + +.. comp_req:: Support for Byte and Half-Byte Types + :id: comp_req__bitmanipulation__byte_operations + :reqtype: Functional + :security: YES + :safety: ASIL_B + :derived_from: feat_req__baselibs__bitmanipulation[version==2] + :status: valid + :version: 2 + :satisfied_by: comp__baselibs_bit_manipulation[version==1] + + The bit manipulation component shall provide byte and half-byte types, with a byte composable from and decomposable into two half-bytes. + +.. comp_req:: Support for Byte Extraction + :id: comp_req__bitmanipulation__byte_extraction + :reqtype: Functional + :security: YES + :safety: ASIL_B + :derived_from: feat_req__baselibs__bitmanipulation[version==2] + :status: valid + :version: 1 + :satisfied_by: comp__baselibs_bit_manipulation[version==1] + + The bit manipulation component shall provide an API to extract the byte at a given position from any integral type up to 64 bits. + +.. comp_req:: Support for Bitmask Operators for Enum Classes + :id: comp_req__bitmanipulation__bitmask_operators + :reqtype: Functional + :security: YES + :safety: ASIL_B + :derived_from: feat_req__baselibs__bitmanipulation[version==2] + :status: valid + :version: 1 + :satisfied_by: comp__baselibs_bit_manipulation[version==1] + :tags: inspected + + The bit manipulation library shall provide type-safe bitmask operations for scoped enumeration types. + +.. comp_req:: Bounds and Safety Checks + :id: comp_req__bitmanipulation__bounds_safety + :reqtype: Functional + :security: YES + :safety: ASIL_B + :derived_from: feat_req__baselibs__bitmanipulation[version==2] + :status: valid + :version: 1 + :satisfied_by: comp__baselibs_bit_manipulation[version==1] + :tags: inspected + + The bit manipulation functions shall validate input parameters against bounds and, on out-of-bounds access, shall leave the target value unmodified and return false. + +Non-Functional Requirements +--------------------------- + +.. comp_req:: Header-only API + :id: comp_req__bitmanipulation__header_only + :reqtype: Non-Functional + :security: NO + :safety: ASIL_B + :derived_from: feat_req__baselibs__bitmanipulation[version==2] + :status: valid + :version: 1 + :satisfied_by: comp__baselibs_bit_manipulation[version==1] + :tags: inspected + + The bit manipulation API shall be header-only and not require external dependencies. + +.. needextend:: c.this_doc() and (type == "comp_req") + :+tags: baselibs, bitmanipulation diff --git a/score/bitmanipulation/docs/requirements/index.rst b/score/bitmanipulation/docs/requirements/index.rst index 964c01961a..b8a4ca8deb 100644 --- a/score/bitmanipulation/docs/requirements/index.rst +++ b/score/bitmanipulation/docs/requirements/index.rst @@ -27,127 +27,8 @@ Requirements :realizes: wp__requirements_comp[version==1] :tags: requirements, bitmanipulation -Functional Requirements -======================= +.. toctree:: + :hidden: -.. comp_req:: Support for Bit Operations - :id: comp_req__bitmanipulation__bit_operations - :reqtype: Functional - :security: YES - :safety: ASIL_B - :derived_from: feat_req__baselibs__bitmanipulation[version==2] - :status: valid - :version: 1 - :satisfied_by: comp__baselibs_bit_manipulation[version==1] - :tags: inspected - - The bit manipulation component shall provide an API for setting, clearing, toggling, and checking individual bits for any integral type up to 64 bits, returning boolean success status. - -.. comp_req:: Support for Byte and Half-Byte Types - :id: comp_req__bitmanipulation__byte_operations - :reqtype: Functional - :security: YES - :safety: ASIL_B - :derived_from: feat_req__baselibs__bitmanipulation[version==2] - :status: valid - :version: 2 - :satisfied_by: comp__baselibs_bit_manipulation[version==1] - - The bit manipulation component shall provide byte and half-byte types, with a byte composable from and decomposable into two half-bytes. - -.. comp_req:: Support for Byte Extraction - :id: comp_req__bitmanipulation__byte_extraction - :reqtype: Functional - :security: YES - :safety: ASIL_B - :derived_from: feat_req__baselibs__bitmanipulation[version==2] - :status: valid - :version: 1 - :satisfied_by: comp__baselibs_bit_manipulation[version==1] - - The bit manipulation component shall provide an API to extract the byte at a given position from any integral type up to 64 bits. - -.. comp_req:: Support for Bitmask Operators for Enum Classes - :id: comp_req__bitmanipulation__bitmask_operators - :reqtype: Functional - :security: YES - :safety: ASIL_B - :derived_from: feat_req__baselibs__bitmanipulation[version==2] - :status: valid - :version: 1 - :satisfied_by: comp__baselibs_bit_manipulation[version==1] - :tags: inspected - - The bit manipulation library shall provide type-safe bitmask operations for scoped enumeration types. - -.. comp_req:: Bounds and Safety Checks - :id: comp_req__bitmanipulation__bounds_safety - :reqtype: Functional - :security: YES - :safety: ASIL_B - :derived_from: feat_req__baselibs__bitmanipulation[version==2] - :status: valid - :version: 1 - :satisfied_by: comp__baselibs_bit_manipulation[version==1] - :tags: inspected - - The bit manipulation functions shall validate input parameters against bounds and, on out-of-bounds access, shall leave the target value unmodified and return false. - -Non-Functional Requirements -=========================== - -.. comp_req:: Header-only API - :id: comp_req__bitmanipulation__header_only - :reqtype: Non-Functional - :security: NO - :safety: ASIL_B - :derived_from: feat_req__baselibs__bitmanipulation[version==2] - :status: valid - :version: 1 - :satisfied_by: comp__baselibs_bit_manipulation[version==1] - :tags: inspected - - The bit manipulation API shall be header-only and not require external dependencies. - -Assumptions of Use (AoU) -======================== - -.. aou_req:: Integral Type Constraints - :id: aou_req__bitmanipulation__type_constraints - :reqtype: Functional - :security: NO - :safety: ASIL_B - :status: valid - :version: 1 - :tags: inspected - - The user shall use bit manipulation functions only with integral types (integers, enumerations) as specified in the library's type constraints. - - Note: Operations on floating-point or non-integral types are not supported. - -.. aou_req:: Bitmask Enum Value Constraints - :id: aou_req__bitmanipulation__enum_constraints - :reqtype: Functional - :security: NO - :safety: ASIL_B - :status: valid - :version: 1 - :tags: inspected - - The user shall use scoped enumeration types (enum class) whose enumerators are defined as non-zero power-of-two values. - -.. aou_req:: External Synchronization Required for Concurrent Access - :id: aou_req__bitmanipulation__concurrent_access - :reqtype: Non-Functional - :security: NO - :safety: ASIL_B - :status: valid - :version: 1 - :tags: inspected - - The user shall implement external synchronization mechanisms (e.g., mutexes, atomic operations, or locks) when accessing or modifying the same integral value from multiple threads concurrently. - - Note: The library provides no internal thread safety guarantees. - -.. needextend:: c.this_doc() and (type == "comp_req" or type == "aou_req") - :+tags: baselibs, bitmanipulation + component_requirements + assumptions_of_use diff --git a/score/bitmanipulation/docs/safety_analysis/trlc/controlmeasures.trlc b/score/bitmanipulation/docs/safety_analysis/trlc/controlmeasures.trlc new file mode 100644 index 0000000000..e0ec9fe0aa --- /dev/null +++ b/score/bitmanipulation/docs/safety_analysis/trlc/controlmeasures.trlc @@ -0,0 +1,52 @@ +/******************************************************************************** + * Copyright (c) 2026 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +// Control measures already referenced (as prose, ":mitigated_by:") in +// ../fmea.rst, re-expressed for the TRLC-based fmea() Bazel rule. Each +// measure names, in "mitigates", the FailureMode record it addresses (no FTA +// diagram is wired here, so this is informational only; without a +// ``root_causes`` fault tree the fmea() rule renders failure modes and +// control measures as independent "Unlinked ..." sections rather than paired +// per-chain sections). + +package BitmanipulationSafetyAnalysis + +import ScoreReq + +ScoreReq.ControlMeasure PlatformErrorReactionAoU { + description = "Platform-level AoU requiring users to check and react to Bitmanipulation's return value (aou_req__platform__error_reaction)." + mitigates = "BitmanipulationSafetyAnalysis.BitmanipulationNoReturn" + safety = ScoreReq.Asil.B + version = 1 +} + +ScoreReq.ControlMeasure PlatformFlowMonitoringAoU { + description = "Platform-level AoU requiring users to apply program flow monitoring (aou_req__platform__flow_monitoring)." + mitigates = "BitmanipulationSafetyAnalysis.BitmanipulationLateReturn" + safety = ScoreReq.Asil.B + version = 1 +} + +ScoreReq.ControlMeasure BitmanipulationBoundsSafetyCheck { + description = "Bitmanipulation checks bit-position/field bounds before applying an operation (comp_req__bitmanipulation__bounds_safety)." + mitigates = "BitmanipulationSafetyAnalysis.BitmanipulationConstraintViolation" + safety = ScoreReq.Asil.B + version = 1 +} + +ScoreReq.ControlMeasure BitmanipulationEnumConstraintsAoU { + description = "Component-level AoU requiring enum values describing bit positions to be correctly defined by the caller (aou_req__bitmanipulation__enum_constraints)." + mitigates = "BitmanipulationSafetyAnalysis.BitmanipulationWrongInput" + safety = ScoreReq.Asil.B + version = 1 +} diff --git a/score/bitmanipulation/docs/safety_analysis/trlc/failuremodes.trlc b/score/bitmanipulation/docs/safety_analysis/trlc/failuremodes.trlc new file mode 100644 index 0000000000..d719858872 --- /dev/null +++ b/score/bitmanipulation/docs/safety_analysis/trlc/failuremodes.trlc @@ -0,0 +1,62 @@ +/******************************************************************************** + * Copyright (c) 2026 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +// TRLC re-expression of the failure modes already analysed (as prose, +// ".. comp_saf_fmea::" directives) in ../fmea.rst, for use with the +// dependable_element()-flavoured fmea() Bazel rule. See +// ../../safety_analysis/fmea.rst for the original fault-model rationale +// (MF_01_xx / CO_01_xx / EX_01_xx) this file is derived from. + +package BitmanipulationSafetyAnalysis + +import ScoreReq + +ScoreReq.FailureMode BitmanipulationNoReturn { + guidewords = [ScoreReq.Guideword.LossOfFunction] + description = "Bitmanipulation does not return / execute: a request is not received, not sent, or execution is lost." + failureeffect = "Bitmanipulation is not executed; if a safety function relies on its result, this may violate the containing safety requirements." + rationale = "Covers MF_01_01 (message not received), MF_01_06 (message not sent) and EX_01_04 (loss of execution)." + safety = ScoreReq.Asil.B + interface = "BitmanipulationAPI.BitOperations" + version = 1 +} + +ScoreReq.FailureMode BitmanipulationLateReturn { + guidewords = [ScoreReq.Guideword.TooLate, ScoreReq.Guideword.PartialFunction] + description = "Bitmanipulation returns too late or stalls before completing." + failureeffect = "Bitmanipulation is executed too late or stalls, so its safety requirements may be violated." + rationale = "Covers MF_01_02 (message received too late) and EX_01_06 (processing not complete / infinite loop)." + safety = ScoreReq.Asil.B + interface = "BitmanipulationAPI.BitOperations" + version = 1 +} + +ScoreReq.FailureMode BitmanipulationConstraintViolation { + guidewords = [ScoreReq.Guideword.TooEarly, ScoreReq.Guideword.TooLate] + description = "A bit-position or field constraint boundary (minimum or maximum) is violated by the caller-supplied input." + failureeffect = "If constraints are violated there may be out-of-bounds memory corruption." + rationale = "Covers CO_01_01 (minimum constraint boundary violated) and CO_01_02 (maximum constraint boundary violated)." + safety = ScoreReq.Asil.B + interface = "BitmanipulationAPI.BitOperations" + version = 1 +} + +ScoreReq.FailureMode BitmanipulationWrongInput { + guidewords = [ScoreReq.Guideword.Corrupted] + description = "Enum values describing bit positions are wrongly defined by the caller, so the expected bit(s) are not the ones actually acted upon." + failureeffect = "If enums are wrongly defined, the expectation of what bit(s) are set will not be met." + rationale = "Covers MF_01_05 (message / input is corrupted)." + safety = ScoreReq.Asil.B + interface = "BitmanipulationAPI.BitOperations" + version = 1 +} diff --git a/score/bitmanipulation/docs/safety_analysis/trlc/fta_constraint_violation.puml b/score/bitmanipulation/docs/safety_analysis/trlc/fta_constraint_violation.puml new file mode 100644 index 0000000000..ca8ec93914 --- /dev/null +++ b/score/bitmanipulation/docs/safety_analysis/trlc/fta_constraint_violation.puml @@ -0,0 +1,26 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + +@startuml + +!include fta_metamodel.puml + +' Top level (skeleton) +$TopEvent("Bit-position / field constraint boundary violated", "BitmanipulationSafetyAnalysis.BitmanipulationConstraintViolation") + +' 2nd level gate and basic event +$OrGate("OG1", "BitmanipulationSafetyAnalysis.BitmanipulationConstraintViolation") + +$BasicEvent("Bounds not checked before applying the operation", "BitmanipulationSafetyAnalysis.BitmanipulationBoundsSafetyCheck", "OG1") + +@enduml diff --git a/score/bitmanipulation/docs/safety_analysis/trlc/fta_late_return.puml b/score/bitmanipulation/docs/safety_analysis/trlc/fta_late_return.puml new file mode 100644 index 0000000000..517214a02b --- /dev/null +++ b/score/bitmanipulation/docs/safety_analysis/trlc/fta_late_return.puml @@ -0,0 +1,26 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + +@startuml + +!include fta_metamodel.puml + +' Top level (skeleton) +$TopEvent("Bitmanipulation returns too late or stalls", "BitmanipulationSafetyAnalysis.BitmanipulationLateReturn") + +' 2nd level gate and basic event +$OrGate("OG1", "BitmanipulationSafetyAnalysis.BitmanipulationLateReturn") + +$BasicEvent("Caller does not apply program flow monitoring", "BitmanipulationSafetyAnalysis.PlatformFlowMonitoringAoU", "OG1") + +@enduml diff --git a/score/bitmanipulation/docs/safety_analysis/trlc/fta_no_return.puml b/score/bitmanipulation/docs/safety_analysis/trlc/fta_no_return.puml new file mode 100644 index 0000000000..87f313eebc --- /dev/null +++ b/score/bitmanipulation/docs/safety_analysis/trlc/fta_no_return.puml @@ -0,0 +1,26 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + +@startuml + +!include fta_metamodel.puml + +' Top level (skeleton) +$TopEvent("Bitmanipulation does not return / execute", "BitmanipulationSafetyAnalysis.BitmanipulationNoReturn") + +' 2nd level gate and basic event +$OrGate("OG1", "BitmanipulationSafetyAnalysis.BitmanipulationNoReturn") + +$BasicEvent("Caller does not check/react to return value", "BitmanipulationSafetyAnalysis.PlatformErrorReactionAoU", "OG1") + +@enduml diff --git a/score/bitmanipulation/docs/safety_analysis/trlc/fta_wrong_input.puml b/score/bitmanipulation/docs/safety_analysis/trlc/fta_wrong_input.puml new file mode 100644 index 0000000000..2d5173f5b8 --- /dev/null +++ b/score/bitmanipulation/docs/safety_analysis/trlc/fta_wrong_input.puml @@ -0,0 +1,26 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + +@startuml + +!include fta_metamodel.puml + +' Top level (skeleton) +$TopEvent("Wrongly defined enum values describing bit positions", "BitmanipulationSafetyAnalysis.BitmanipulationWrongInput") + +' 2nd level gate and basic event +$OrGate("OG1", "BitmanipulationSafetyAnalysis.BitmanipulationWrongInput") + +$BasicEvent("Enum constraints not correctly defined by the caller", "BitmanipulationSafetyAnalysis.BitmanipulationEnumConstraintsAoU", "OG1") + +@enduml