diff --git a/.bazelrc b/.bazelrc index 5c13677..303f08e 100644 --- a/.bazelrc +++ b/.bazelrc @@ -138,14 +138,6 @@ build:remote-cache --remote_cache_compression=true # of the configs above without touching the committed file. try-import %workspace%/.bazelrc.user -# Differential Fuzzing Configuration -build:fuzzer --config=clang -build:fuzzer --copt=-fsanitize=fuzzer-no-link,address -build:fuzzer --linkopt=-fsanitize=fuzzer-no-link,address -build:fuzzer --linkopt=-rtlib=compiler-rt -build:fuzzer --copt=-fno-omit-frame-pointer -build:fuzzer --copt=-O2 - # BuildBuddy Remote Cache Configuration build:buildbuddy --bes_results_url=https://app.buildbuddy.io/invocation/ build:buildbuddy --bes_backend=grpcs://remote.buildbuddy.io diff --git a/.github/Dockerfile.ci b/.github/Dockerfile.ci index 52a65b7..1789740 100644 --- a/.github/Dockerfile.ci +++ b/.github/Dockerfile.ci @@ -33,7 +33,7 @@ RUN apt-get update && apt-get install -y \ ninja-build \ libc++-18-dev \ libc++abi-18-dev \ - openjdk-21-jre-headless \ + openjdk-21-jdk-headless \ && rm -rf /var/lib/apt/lists/* # clang-tidy-21 and clang-format-21 from apt.llvm.org. We keep the diff --git a/.github/scripts/run-bazel-in-docker.sh b/.github/scripts/run-bazel-in-docker.sh index 02b2947..e00a84a 100755 --- a/.github/scripts/run-bazel-in-docker.sh +++ b/.github/scripts/run-bazel-in-docker.sh @@ -80,8 +80,17 @@ DOCKER_OPTS+=(--user "$(id -u):$(id -g)") DOCKER_OPTS+=(-e HOME=/tmp) DOCKER_OPTS+=(-e USER=zetasketch-cpp) DOCKER_OPTS+=(-v "$WORKSPACE_DIR:/workspace") -mkdir -p "$WORKSPACE_DIR/.bazel-cache" -DOCKER_OPTS+=(-v "$WORKSPACE_DIR/.bazel-cache:/tmp/bazel-cache") +if [ "${GITHUB_ACTIONS:-}" = "true" ]; then + mkdir -p "$WORKSPACE_DIR/.bazel-cache" + DOCKER_OPTS+=(-v "$WORKSPACE_DIR/.bazel-cache:/tmp/bazel-cache") +else + mkdir -p "$HOME/.cache/bazel" + DOCKER_OPTS+=(-v "$HOME/.cache/bazel:/tmp/bazel-cache") + if [ -f "$WORKSPACE_DIR/.local_docker_opts.sh" ]; then + # shellcheck disable=SC1091 + source "$WORKSPACE_DIR/.local_docker_opts.sh" + fi +fi DOCKER_OPTS+=(-w /workspace) BAZEL_OPTS=() diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml deleted file mode 100644 index fbbafb8..0000000 --- a/.github/workflows/fuzzing.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Differential Fuzzing - -on: - push: - pull_request: - branches: [main] - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} - cancel-in-progress: true - -jobs: - fuzzing: - name: Differential Fuzzing - ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-24.04, ubuntu-24.04-arm] - runs-on: ${{ matrix.os }} - timeout-minutes: 60 - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build CI Docker image - uses: docker/build-push-action@v6 - with: - context: . - file: .github/Dockerfile.ci - tags: zetasketch-cpp-ci - load: true - cache-from: type=gha,scope=${{ github.workflow }}-${{ matrix.os }} - cache-to: type=gha,mode=min,scope=${{ github.workflow }}-${{ matrix.os }} - - - - name: Cache Bazel state - uses: actions/cache@v4 - with: - path: .bazel-cache - key: bazel-cache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.os }}-${{ github.workflow }}-${{ github.sha }} - restore-keys: | - bazel-cache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.os }}-${{ github.workflow }}- - bazel-cache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.os }}- - - - name: Ensure Bazel cache directory exists - run: mkdir -p .bazel-cache - - - name: Execute differential fuzzing regimen - env: - BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }} - run: | - BAZEL_FLAGS="" - if [ -n "$BUILDBUDDY_API_KEY" ]; then - BAZEL_FLAGS="--config=buildbuddy --remote_header=x-buildbuddy-api-key=$BUILDBUDDY_API_KEY --disk_cache=" - fi - .github/scripts/run-bazel-in-docker.sh fuzzer test $BAZEL_FLAGS diff --git a/.gitignore b/.gitignore index 350a60f..5605032 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ bazel-* scratch/ ai/ + +# Local developer overrides +.local_docker_opts.sh diff --git a/MODULE.bazel b/MODULE.bazel index e3d70c5..6280976 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -15,3 +15,14 @@ git_repository( bazel_dep(name = "rules_cc", version = "0.0.9") bazel_dep(name = "protobuf", version = "27.2") bazel_dep(name = "googletest", version = "1.14.0") +bazel_dep(name = "rules_jvm_external", version = "6.1") +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + artifacts = [ + "com.google.zetasketch:zetasketch:0.1.0", + ], + repositories = [ + "https://repo1.maven.org/maven2", + ], +) +use_repo(maven, "maven") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index f86bccf..3ddd31a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -16,6 +16,7 @@ "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749", "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", @@ -37,6 +38,8 @@ "https://bcr.bazel.build/modules/protobuf/27.2/source.json": "37722548d44c5f3e81dc6a3d1dfb49868aee80cc63db90d843fcefbe3fd220af", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", @@ -45,11 +48,18 @@ "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d", "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", - "https://bcr.bazel.build/modules/rules_jvm_external/5.1/source.json": "5abb45cc9beb27b77aec6a65a11855ef2b55d95dfdc358e9f312b78ae0ba32d5", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/source.json": "a09b21cd4478cdeec7153220fdc3b0c7118445beb6881ee8b17cb6aa9acd8947", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/source.json": "e4e8566acbfc02cc701c169d756ee99bca1c395a0d1dc69293a21a5ef14cac43", "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a", @@ -60,11 +70,13 @@ "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9", "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", - "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.23.1/source.json": "a6d9965700e3bd75df4e19140c0e651851bb720d8b9eb280ecd1ee44b92d7646", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", - "https://bcr.bazel.build/modules/stardoc/0.5.3/source.json": "cd53fe968dc8cd98197c052db3db6d82562960c87b61e7a90ee96f8e4e0dda97", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.5.6/source.json": "956954c9c45ef492ea4001ce579dc40431fbd75090151e8f9eadf9ed6377a108", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", @@ -117,6 +129,3581 @@ }, "recordedRepoMappingEntries": [] } + }, + "@@rules_jvm_external~//:extensions.bzl%maven": { + "general": { + "bzlTransitiveDigest": "4L7YRynE4zcTB6RPlab541vr6GFUTj56QEQlfU6KpVI=", + "usagesDigest": "+VtRjERJxNqLbaD97zbaXSvKDJv2275bYmbDjnawkac=", + "recordedFileInputs": { + "@@rules_jvm_external~//rules_jvm_external_deps_install.json": "0bfbc915d9155df44d7a3b216e8f3c1fbcd110e358dd07637dc393583a5227e8" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "maven": { + "bzlFile": "@@rules_jvm_external~//:coursier.bzl", + "ruleClassName": "coursier_fetch", + "attributes": { + "user_provided_name": "maven", + "repositories": [ + "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }" + ], + "artifacts": [ + "{ \"group\": \"com.google.zetasketch\", \"artifact\": \"zetasketch\", \"version\": \"0.1.0\" }" + ], + "fail_on_missing_checksum": true, + "fetch_sources": false, + "fetch_javadoc": false, + "excluded_artifacts": [], + "generate_compat_repositories": false, + "version_conflict_policy": "default", + "override_targets": {}, + "strict_visibility": false, + "strict_visibility_value": [ + "@@//visibility:private" + ], + "use_credentials_from_home_netrc_file": false, + "resolve_timeout": 600, + "use_starlark_android_rules": false, + "aar_import_bzl_label": "@build_bazel_rules_android//android:rules.bzl", + "duplicate_version_warning": "warn", + "ignore_empty_files": false + } + }, + "unpinned_rules_jvm_external_deps": { + "bzlFile": "@@rules_jvm_external~//:coursier.bzl", + "ruleClassName": "coursier_fetch", + "attributes": { + "user_provided_name": "rules_jvm_external_deps", + "repositories": [ + "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }" + ], + "artifacts": [ + "{ \"group\": \"com.google.auth\", \"artifact\": \"google-auth-library-credentials\", \"version\": \"1.23.0\" }", + "{ \"group\": \"com.google.auth\", \"artifact\": \"google-auth-library-oauth2-http\", \"version\": \"1.23.0\" }", + "{ \"group\": \"com.google.cloud\", \"artifact\": \"google-cloud-core\", \"version\": \"2.36.1\" }", + "{ \"group\": \"com.google.cloud\", \"artifact\": \"google-cloud-storage\", \"version\": \"2.36.1\" }", + "{ \"group\": \"com.google.code.gson\", \"artifact\": \"gson\", \"version\": \"2.10.1\" }", + "{ \"group\": \"com.google.googlejavaformat\", \"artifact\": \"google-java-format\", \"version\": \"1.22.0\" }", + "{ \"group\": \"com.google.guava\", \"artifact\": \"guava\", \"version\": \"33.1.0-jre\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-artifact\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-core\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-model\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-model-builder\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-settings\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-settings-builder\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-resolver-provider\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-api\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-impl\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-connector-basic\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-spi\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-transport-file\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-transport-http\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-util\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.codehaus.plexus\", \"artifact\": \"plexus-cipher\", \"version\": \"2.1.0\" }", + "{ \"group\": \"org.codehaus.plexus\", \"artifact\": \"plexus-sec-dispatcher\", \"version\": \"2.0\" }", + "{ \"group\": \"org.fusesource.jansi\", \"artifact\": \"jansi\", \"version\": \"2.4.1\" }", + "{ \"group\": \"org.slf4j\", \"artifact\": \"jul-to-slf4j\", \"version\": \"2.0.12\" }", + "{ \"group\": \"org.slf4j\", \"artifact\": \"log4j-over-slf4j\", \"version\": \"2.0.12\" }", + "{ \"group\": \"org.slf4j\", \"artifact\": \"slf4j-simple\", \"version\": \"2.0.12\" }", + "{ \"group\": \"software.amazon.awssdk\", \"artifact\": \"s3\", \"version\": \"2.25.23\" }" + ], + "fail_on_missing_checksum": true, + "fetch_sources": true, + "fetch_javadoc": false, + "excluded_artifacts": [], + "generate_compat_repositories": false, + "version_conflict_policy": "default", + "override_targets": {}, + "strict_visibility": false, + "strict_visibility_value": [ + "@@//visibility:private" + ], + "use_credentials_from_home_netrc_file": false, + "maven_install_json": "@@rules_jvm_external~//:rules_jvm_external_deps_install.json", + "resolve_timeout": 600, + "use_starlark_android_rules": false, + "aar_import_bzl_label": "@build_bazel_rules_android//android:rules.bzl", + "duplicate_version_warning": "warn", + "ignore_empty_files": false + } + }, + "aopalliance_aopalliance_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08", + "urls": [ + "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" + ], + "downloaded_file_path": "v1/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" + } + }, + "aopalliance_aopalliance_jar_sources_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e6ef91d439ada9045f419c77543ebe0416c3cdfc5b063448343417a3e4a72123", + "urls": [ + "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar" + ], + "downloaded_file_path": "v1/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar" + } + }, + "com_fasterxml_jackson_core_jackson_core_2_17_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "55be130f6a68038088a261856c4e383ce79957a0fc1a29ecb213a9efd6ef4389", + "urls": [ + "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0.jar" + ], + "downloaded_file_path": "v1/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0.jar" + } + }, + "com_fasterxml_jackson_core_jackson_core_jar_sources_2_17_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "97f4f4a85bf4da59174dde187130bddb927ac31320b385ed8ef1439c00df00f2", + "urls": [ + "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0-sources.jar" + ], + "downloaded_file_path": "v1/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0-sources.jar" + } + }, + "com_google_android_annotations_4_1_1_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15", + "urls": [ + "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar" + ], + "downloaded_file_path": "v1/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar" + } + }, + "com_google_android_annotations_jar_sources_4_1_1_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e9b667aa958df78ea1ad115f7bbac18a5869c3128b1d5043feb360b0cfce9d40", + "urls": [ + "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4-sources.jar" + ], + "downloaded_file_path": "v1/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4-sources.jar" + } + }, + "com_google_api_client_google_api_client_2_4_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "bc49da07c0bf1866edcbff16723b926b781f18be720549c826016dc2a74c965f", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api-client/google-api-client/2.4.0/google-api-client-2.4.0.jar" + ], + "downloaded_file_path": "v1/com/google/api-client/google-api-client/2.4.0/google-api-client-2.4.0.jar" + } + }, + "com_google_api_client_google_api_client_jar_sources_2_4_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0284c39fbd0492566c7f99606a957e27b25262ec93dbedf664155caea30cffec", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api-client/google-api-client/2.4.0/google-api-client-2.4.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api-client/google-api-client/2.4.0/google-api-client-2.4.0-sources.jar" + } + }, + "com_google_api_grpc_gapic_google_cloud_storage_v2_2_36_1_alpha": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0546afcc2291e4e8d44f4b9594b1f7571a4ff1ba5c56aa20af9fa68f427c185b", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/gapic-google-cloud-storage-v2/2.36.1-alpha/gapic-google-cloud-storage-v2-2.36.1-alpha.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/gapic-google-cloud-storage-v2/2.36.1-alpha/gapic-google-cloud-storage-v2-2.36.1-alpha.jar" + } + }, + "com_google_api_grpc_gapic_google_cloud_storage_v2_jar_sources_2_36_1_alpha": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f40e61b46a25435e9e0732a0379eb918addde373155f72085c7e84f626de674d", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/gapic-google-cloud-storage-v2/2.36.1-alpha/gapic-google-cloud-storage-v2-2.36.1-alpha-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/gapic-google-cloud-storage-v2/2.36.1-alpha/gapic-google-cloud-storage-v2-2.36.1-alpha-sources.jar" + } + }, + "com_google_api_grpc_grpc_google_cloud_storage_v2_2_36_1_alpha": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9c16332994197720ab2f4b0a081dc55d1ff8c695316fa441f11163865d2908f3", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/grpc-google-cloud-storage-v2/2.36.1-alpha/grpc-google-cloud-storage-v2-2.36.1-alpha.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/grpc-google-cloud-storage-v2/2.36.1-alpha/grpc-google-cloud-storage-v2-2.36.1-alpha.jar" + } + }, + "com_google_api_grpc_grpc_google_cloud_storage_v2_jar_sources_2_36_1_alpha": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "51371f18058458ff78103a18154869f8808d788334f6a0a0d6dc5405e9699098", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/grpc-google-cloud-storage-v2/2.36.1-alpha/grpc-google-cloud-storage-v2-2.36.1-alpha-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/grpc-google-cloud-storage-v2/2.36.1-alpha/grpc-google-cloud-storage-v2-2.36.1-alpha-sources.jar" + } + }, + "com_google_api_grpc_proto_google_cloud_storage_v2_2_36_1_alpha": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b48e6af4a23f84f183a3a4240f7a80beb75b9046b75f88f1cc83db02c795a508", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-storage-v2/2.36.1-alpha/proto-google-cloud-storage-v2-2.36.1-alpha.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/proto-google-cloud-storage-v2/2.36.1-alpha/proto-google-cloud-storage-v2-2.36.1-alpha.jar" + } + }, + "com_google_api_grpc_proto_google_cloud_storage_v2_jar_sources_2_36_1_alpha": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2a968879ada88202ccad834e38e415787575e0254d0d0d60d59291a2dbfbfd9c", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-storage-v2/2.36.1-alpha/proto-google-cloud-storage-v2-2.36.1-alpha-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/proto-google-cloud-storage-v2/2.36.1-alpha/proto-google-cloud-storage-v2-2.36.1-alpha-sources.jar" + } + }, + "com_google_api_grpc_proto_google_common_protos_2_37_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "82ddc900e5edc7c64632ad360889698ec6c6cdc824570b3bf20a84409e0626b7", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.37.1/proto-google-common-protos-2.37.1.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/proto-google-common-protos/2.37.1/proto-google-common-protos-2.37.1.jar" + } + }, + "com_google_api_grpc_proto_google_common_protos_jar_sources_2_37_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "105b17df77d2a9c82cab25549135bd0479c7995e0e958d957fe1d4e74623061d", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.37.1/proto-google-common-protos-2.37.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/proto-google-common-protos/2.37.1/proto-google-common-protos-2.37.1-sources.jar" + } + }, + "com_google_api_grpc_proto_google_iam_v1_1_32_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a3003e417eedab199cd7f5a5ebb818033c446ba8455822623eb781184a1d5811", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-iam-v1/1.32.1/proto-google-iam-v1-1.32.1.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/proto-google-iam-v1/1.32.1/proto-google-iam-v1-1.32.1.jar" + } + }, + "com_google_api_grpc_proto_google_iam_v1_jar_sources_1_32_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e0332e83c302f5ac09176a3a579ef334369b54b5443feaf6890f11fba5a9d033", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-iam-v1/1.32.1/proto-google-iam-v1-1.32.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/grpc/proto-google-iam-v1/1.32.1/proto-google-iam-v1-1.32.1-sources.jar" + } + }, + "com_google_api_api_common_2_29_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4b0946af6fe72ac37eaa315a471043670b1903382b9b2ca357878216e056d207", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/api-common/2.29.1/api-common-2.29.1.jar" + ], + "downloaded_file_path": "v1/com/google/api/api-common/2.29.1/api-common-2.29.1.jar" + } + }, + "com_google_api_api_common_jar_sources_2_29_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9419948ee1251ae05936f8a20750a06966802736367eab9dbf35975998016b7d", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/api-common/2.29.1/api-common-2.29.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/api-common/2.29.1/api-common-2.29.1-sources.jar" + } + }, + "com_google_api_gax_2_46_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "00f7aa774b0dc038bc5b796d98ffe25b4db7319d3a69f1f39f1b80f0d0fe4bf6", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/gax/2.46.1/gax-2.46.1.jar" + ], + "downloaded_file_path": "v1/com/google/api/gax/2.46.1/gax-2.46.1.jar" + } + }, + "com_google_api_gax_jar_sources_2_46_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "181eba94d89c674013abb17a8804f894959f94c469efb131232b3cf3469e9f89", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/gax/2.46.1/gax-2.46.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/gax/2.46.1/gax-2.46.1-sources.jar" + } + }, + "com_google_api_gax_grpc_2_46_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "287d0d383e2ca288344a5db74a29e0c018e9c6111400bcaadbe9d4aeb8d09bb0", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/gax-grpc/2.46.1/gax-grpc-2.46.1.jar" + ], + "downloaded_file_path": "v1/com/google/api/gax-grpc/2.46.1/gax-grpc-2.46.1.jar" + } + }, + "com_google_api_gax_grpc_jar_sources_2_46_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4b148a01ad1df4a8e9828eb241a5f829dec489eff2d5f200f6dbda02bded05d4", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/gax-grpc/2.46.1/gax-grpc-2.46.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/gax-grpc/2.46.1/gax-grpc-2.46.1-sources.jar" + } + }, + "com_google_api_gax_httpjson_2_46_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a61afd8c02412f466d003ce44bb4f6a5473c18be09c3d9c55feca987b2b132bf", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/gax-httpjson/2.46.1/gax-httpjson-2.46.1.jar" + ], + "downloaded_file_path": "v1/com/google/api/gax-httpjson/2.46.1/gax-httpjson-2.46.1.jar" + } + }, + "com_google_api_gax_httpjson_jar_sources_2_46_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "48c50e2c9beb9525ab93dc58faee51653575053170708e8d49ef8cb11ecd4c20", + "urls": [ + "https://repo1.maven.org/maven2/com/google/api/gax-httpjson/2.46.1/gax-httpjson-2.46.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/api/gax-httpjson/2.46.1/gax-httpjson-2.46.1-sources.jar" + } + }, + "com_google_apis_google_api_services_storage_v1_rev20240311_2_0_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a64cf8402d01dad7a1ba875dd3a92248cfd2f537beee246e9a3cae2abe78ec1c", + "urls": [ + "https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage/v1-rev20240311-2.0.0/google-api-services-storage-v1-rev20240311-2.0.0.jar" + ], + "downloaded_file_path": "v1/com/google/apis/google-api-services-storage/v1-rev20240311-2.0.0/google-api-services-storage-v1-rev20240311-2.0.0.jar" + } + }, + "com_google_apis_google_api_services_storage_jar_sources_v1_rev20240311_2_0_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c94067a58e89cf568d5b8ef13c2a94e133d2fdb2d5af7d65641860e9660b540b", + "urls": [ + "https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage/v1-rev20240311-2.0.0/google-api-services-storage-v1-rev20240311-2.0.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/apis/google-api-services-storage/v1-rev20240311-2.0.0/google-api-services-storage-v1-rev20240311-2.0.0-sources.jar" + } + }, + "com_google_auth_google_auth_library_credentials_1_23_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d982eda20835e301dcbeec4d083289a44fdd06e9a35ce18449054f4ffd3f099f", + "urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.23.0/google-auth-library-credentials-1.23.0.jar" + ], + "downloaded_file_path": "v1/com/google/auth/google-auth-library-credentials/1.23.0/google-auth-library-credentials-1.23.0.jar" + } + }, + "com_google_auth_google_auth_library_credentials_jar_sources_1_23_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6151c76a0d9ef7bebe621370bbd812e927300bbfe5b11417c09bd29a1c54509b", + "urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.23.0/google-auth-library-credentials-1.23.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/auth/google-auth-library-credentials/1.23.0/google-auth-library-credentials-1.23.0-sources.jar" + } + }, + "com_google_auth_google_auth_library_oauth2_http_1_23_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f2bf739509b5f3697cb1bf33ff9dc27e8fc886cedb2f6376a458263f793ed133", + "urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.23.0/google-auth-library-oauth2-http-1.23.0.jar" + ], + "downloaded_file_path": "v1/com/google/auth/google-auth-library-oauth2-http/1.23.0/google-auth-library-oauth2-http-1.23.0.jar" + } + }, + "com_google_auth_google_auth_library_oauth2_http_jar_sources_1_23_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f4c00cac4c72cd39d0957dffad5d19c4ad63185e4fbec3d6211fb0cf3f5fdb6f", + "urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.23.0/google-auth-library-oauth2-http-1.23.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/auth/google-auth-library-oauth2-http/1.23.0/google-auth-library-oauth2-http-1.23.0-sources.jar" + } + }, + "com_google_auto_value_auto_value_annotations_1_10_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e1c45e6beadaef9797cb0d9afd5a45621ad061cd8632012f85582853a3887825", + "urls": [ + "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.10.4/auto-value-annotations-1.10.4.jar" + ], + "downloaded_file_path": "v1/com/google/auto/value/auto-value-annotations/1.10.4/auto-value-annotations-1.10.4.jar" + } + }, + "com_google_auto_value_auto_value_annotations_jar_sources_1_10_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "61a433f015b12a6cf4ecff227c7748486ff8f294ffe9d39827b382ade0514d0a", + "urls": [ + "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.10.4/auto-value-annotations-1.10.4-sources.jar" + ], + "downloaded_file_path": "v1/com/google/auto/value/auto-value-annotations/1.10.4/auto-value-annotations-1.10.4-sources.jar" + } + }, + "com_google_cloud_google_cloud_core_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6257aa0793381fd7e322f85742756b57d4cd2dcb2a67b307b18f0060f68291a7", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core/2.36.1/google-cloud-core-2.36.1.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-core/2.36.1/google-cloud-core-2.36.1.jar" + } + }, + "com_google_cloud_google_cloud_core_jar_sources_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2a2391e3c39119cb37bb52b9968fe9abefcbc551ae23d23b0c0049c1790eec41", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core/2.36.1/google-cloud-core-2.36.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-core/2.36.1/google-cloud-core-2.36.1-sources.jar" + } + }, + "com_google_cloud_google_cloud_core_grpc_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "217cc57fda52315f6393c4edaf82d16bc808150d7f22709600387c63331dfbdc", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core-grpc/2.36.1/google-cloud-core-grpc-2.36.1.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-core-grpc/2.36.1/google-cloud-core-grpc-2.36.1.jar" + } + }, + "com_google_cloud_google_cloud_core_grpc_jar_sources_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8e53871bd79a78de970da0e1808c1cc84d4019088a52f5c989bf1960a6b443be", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core-grpc/2.36.1/google-cloud-core-grpc-2.36.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-core-grpc/2.36.1/google-cloud-core-grpc-2.36.1-sources.jar" + } + }, + "com_google_cloud_google_cloud_core_http_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "647644ba9d8beeb593b6a2c594787bb8695789f97b920bceb809d39b601b1353", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core-http/2.36.1/google-cloud-core-http-2.36.1.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-core-http/2.36.1/google-cloud-core-http-2.36.1.jar" + } + }, + "com_google_cloud_google_cloud_core_http_jar_sources_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ffdc9cb19884749b062a59b0483dfef18b336a55d06fec7b4524dc2b60d80438", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core-http/2.36.1/google-cloud-core-http-2.36.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-core-http/2.36.1/google-cloud-core-http-2.36.1-sources.jar" + } + }, + "com_google_cloud_google_cloud_storage_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "7f6b69365ef113d69211b05287f27d2b85b60c81d269f5684c47f8ab90cc00b9", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/2.36.1/google-cloud-storage-2.36.1.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-storage/2.36.1/google-cloud-storage-2.36.1.jar" + } + }, + "com_google_cloud_google_cloud_storage_jar_sources_2_36_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "55f73e37be389375d4873a91b816913134fadb3042471dc3c9c4b3efd1ae242b", + "urls": [ + "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/2.36.1/google-cloud-storage-2.36.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/cloud/google-cloud-storage/2.36.1/google-cloud-storage-2.36.1-sources.jar" + } + }, + "com_google_code_findbugs_jsr305_3_0_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7", + "urls": [ + "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" + ], + "downloaded_file_path": "v1/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" + } + }, + "com_google_code_findbugs_jsr305_jar_sources_3_0_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1c9e85e272d0708c6a591dc74828c71603053b48cc75ae83cce56912a2aa063b", + "urls": [ + "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar" + ], + "downloaded_file_path": "v1/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar" + } + }, + "com_google_code_gson_gson_2_10_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4241c14a7727c34feea6507ec801318a3d4a90f070e4525681079fb94ee4c593", + "urls": [ + "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar" + ], + "downloaded_file_path": "v1/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar" + } + }, + "com_google_code_gson_gson_jar_sources_2_10_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "eee1cc5c1f4267ee194cc245777e68084738ef390acd763354ce0ff6bfb7bcc1", + "urls": [ + "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/code/gson/gson/2.10.1/gson-2.10.1-sources.jar" + } + }, + "com_google_errorprone_error_prone_annotations_2_26_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "de25f2d9a2156529bd765f51d8efdfc0dfa7301e04efb9cc75b7f10cf5d0e0fb", + "urls": [ + "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.26.1/error_prone_annotations-2.26.1.jar" + ], + "downloaded_file_path": "v1/com/google/errorprone/error_prone_annotations/2.26.1/error_prone_annotations-2.26.1.jar" + } + }, + "com_google_errorprone_error_prone_annotations_jar_sources_2_26_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "32b1720fa97a3d7f24fc017014e285d812ff66a5b6c5c1819e165bfe6fdc2110", + "urls": [ + "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.26.1/error_prone_annotations-2.26.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/errorprone/error_prone_annotations/2.26.1/error_prone_annotations-2.26.1-sources.jar" + } + }, + "com_google_googlejavaformat_google_java_format_1_22_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4f4bdba0f2a3d7e84be47683a0c2a4ba69024d29d906d09784181f68f04af792", + "urls": [ + "https://repo1.maven.org/maven2/com/google/googlejavaformat/google-java-format/1.22.0/google-java-format-1.22.0.jar" + ], + "downloaded_file_path": "v1/com/google/googlejavaformat/google-java-format/1.22.0/google-java-format-1.22.0.jar" + } + }, + "com_google_googlejavaformat_google_java_format_jar_sources_1_22_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8ca9810fbf8a542b812e3e3111bae2b534f415bbec8219f6b69764af8ba19d11", + "urls": [ + "https://repo1.maven.org/maven2/com/google/googlejavaformat/google-java-format/1.22.0/google-java-format-1.22.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/googlejavaformat/google-java-format/1.22.0/google-java-format-1.22.0-sources.jar" + } + }, + "com_google_guava_failureaccess_1_0_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064", + "urls": [ + "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar" + ], + "downloaded_file_path": "v1/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar" + } + }, + "com_google_guava_failureaccess_jar_sources_1_0_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "dd3bfa5e2ec5bc5397efb2c3cef044c192313ff77089573667ff97a60c6978e0", + "urls": [ + "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2-sources.jar" + ], + "downloaded_file_path": "v1/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2-sources.jar" + } + }, + "com_google_guava_guava_33_1_0_jre": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "346aec0eb8c8987360c8a264e70ff10c2fba760446eb27e8ab07e78e787a75fe", + "urls": [ + "https://repo1.maven.org/maven2/com/google/guava/guava/33.1.0-jre/guava-33.1.0-jre.jar" + ], + "downloaded_file_path": "v1/com/google/guava/guava/33.1.0-jre/guava-33.1.0-jre.jar" + } + }, + "com_google_guava_guava_jar_sources_33_1_0_jre": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fe357db754046d94b79a0392c523c44671e71c1ac7b6e289bc0382a06bd5cd51", + "urls": [ + "https://repo1.maven.org/maven2/com/google/guava/guava/33.1.0-jre/guava-33.1.0-jre-sources.jar" + ], + "downloaded_file_path": "v1/com/google/guava/guava/33.1.0-jre/guava-33.1.0-jre-sources.jar" + } + }, + "com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99", + "urls": [ + "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" + ], + "downloaded_file_path": "v1/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" + } + }, + "com_google_http_client_google_http_client_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f3fd3fc971425659d6f78a853381de590279f191fdae63bd31c5a21382441023", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.44.1/google-http-client-1.44.1.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client/1.44.1/google-http-client-1.44.1.jar" + } + }, + "com_google_http_client_google_http_client_jar_sources_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a4145e5e0193930ee7e87ebbb79d2e95f176551bb9e008b70c9c18ed3b0580eb", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.44.1/google-http-client-1.44.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client/1.44.1/google-http-client-1.44.1-sources.jar" + } + }, + "com_google_http_client_google_http_client_apache_v2_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e6fda556571428e1d14e159d02ff6a0696b27864ab48ff92c6337e4e97fe1985", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-apache-v2/1.44.1/google-http-client-apache-v2-1.44.1.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-apache-v2/1.44.1/google-http-client-apache-v2-1.44.1.jar" + } + }, + "com_google_http_client_google_http_client_apache_v2_jar_sources_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8e0ce02afaa550eec2a0e85af0b274107cd0a5fd81be223f4013d0d5cf491cb1", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-apache-v2/1.44.1/google-http-client-apache-v2-1.44.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-apache-v2/1.44.1/google-http-client-apache-v2-1.44.1-sources.jar" + } + }, + "com_google_http_client_google_http_client_appengine_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "43bdbd1d138d91a238f36ba50ca53d7fb5816ae804ad13546d71d1f6b0fee759", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-appengine/1.44.1/google-http-client-appengine-1.44.1.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-appengine/1.44.1/google-http-client-appengine-1.44.1.jar" + } + }, + "com_google_http_client_google_http_client_appengine_jar_sources_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fb10bdd40d396b81289f0ad18ddb9b2e659431b44cd95915686a3d7b87ac2ad1", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-appengine/1.44.1/google-http-client-appengine-1.44.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-appengine/1.44.1/google-http-client-appengine-1.44.1-sources.jar" + } + }, + "com_google_http_client_google_http_client_gson_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b1133c57ac842e1d22d423a6c0efbfafde074d984dd82fda1f6eb69500e42dfd", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.44.1/google-http-client-gson-1.44.1.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-gson/1.44.1/google-http-client-gson-1.44.1.jar" + } + }, + "com_google_http_client_google_http_client_gson_jar_sources_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "cdf5a5723a3df947d2dcae9b2b4aa546c9e10907fc35961a0b147f6103a7f65f", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.44.1/google-http-client-gson-1.44.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-gson/1.44.1/google-http-client-gson-1.44.1-sources.jar" + } + }, + "com_google_http_client_google_http_client_jackson2_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6390ef5cf64c0ec091f1a59494f56267a2f7419ec7bcf363b448fb4e1d31b090", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.44.1/google-http-client-jackson2-1.44.1.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-jackson2/1.44.1/google-http-client-jackson2-1.44.1.jar" + } + }, + "com_google_http_client_google_http_client_jackson2_jar_sources_1_44_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a600ad48bab4e57d0240f5f0480dbd6da8de79f8d89e774bbb6358cb93618553", + "urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.44.1/google-http-client-jackson2-1.44.1-sources.jar" + ], + "downloaded_file_path": "v1/com/google/http-client/google-http-client-jackson2/1.44.1/google-http-client-jackson2-1.44.1-sources.jar" + } + }, + "com_google_inject_guice_5_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4130e50bfac48099c860f0d903b91860c81a249c90f38245f8fed58fc817bc26", + "urls": [ + "https://repo1.maven.org/maven2/com/google/inject/guice/5.1.0/guice-5.1.0.jar" + ], + "downloaded_file_path": "v1/com/google/inject/guice/5.1.0/guice-5.1.0.jar" + } + }, + "com_google_inject_guice_jar_sources_5_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "79484227656350f8ea315198ed2ebdc8583e7ba42ecd90d367d66a7e491de52e", + "urls": [ + "https://repo1.maven.org/maven2/com/google/inject/guice/5.1.0/guice-5.1.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/inject/guice/5.1.0/guice-5.1.0-sources.jar" + } + }, + "com_google_j2objc_j2objc_annotations_3_0_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "88241573467ddca44ffd4d74aa04c2bbfd11bf7c17e0c342c94c9de7a70a7c64", + "urls": [ + "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/3.0.0/j2objc-annotations-3.0.0.jar" + ], + "downloaded_file_path": "v1/com/google/j2objc/j2objc-annotations/3.0.0/j2objc-annotations-3.0.0.jar" + } + }, + "com_google_j2objc_j2objc_annotations_jar_sources_3_0_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "bd60019a0423c3a025ef6ab24fe0761f5f45ffb48a8cca74a01b678de1105d38", + "urls": [ + "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/3.0.0/j2objc-annotations-3.0.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/j2objc/j2objc-annotations/3.0.0/j2objc-annotations-3.0.0-sources.jar" + } + }, + "com_google_oauth_client_google_oauth_client_1_35_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2f11345608d5537c8d1791cf8724268396e21149f3a2f9c35f0739438f262d40", + "urls": [ + "https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client/1.35.0/google-oauth-client-1.35.0.jar" + ], + "downloaded_file_path": "v1/com/google/oauth-client/google-oauth-client/1.35.0/google-oauth-client-1.35.0.jar" + } + }, + "com_google_oauth_client_google_oauth_client_jar_sources_1_35_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "dbf5851352a4a805e192f16c2a3d9f829f3f22283ca07638f1d502c339c8c27b", + "urls": [ + "https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client/1.35.0/google-oauth-client-1.35.0-sources.jar" + ], + "downloaded_file_path": "v1/com/google/oauth-client/google-oauth-client/1.35.0/google-oauth-client-1.35.0-sources.jar" + } + }, + "com_google_protobuf_protobuf_java_3_25_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "cabe49981b86f5913b7fd130b4628e6ee11586e28ca069815d9744f929271902", + "urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.25.2/protobuf-java-3.25.2.jar" + ], + "downloaded_file_path": "v1/com/google/protobuf/protobuf-java/3.25.2/protobuf-java-3.25.2.jar" + } + }, + "com_google_protobuf_protobuf_java_jar_sources_3_25_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "cd428d36566e75c8d6079f70e0f3741eb12c33204fba732669669627e20d2ec7", + "urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.25.2/protobuf-java-3.25.2-sources.jar" + ], + "downloaded_file_path": "v1/com/google/protobuf/protobuf-java/3.25.2/protobuf-java-3.25.2-sources.jar" + } + }, + "com_google_protobuf_protobuf_java_util_3_25_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "31201154684b0981c2481e147dcd176d37c4d34e09c13e2939e58bc1a64655ce", + "urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.25.2/protobuf-java-util-3.25.2.jar" + ], + "downloaded_file_path": "v1/com/google/protobuf/protobuf-java-util/3.25.2/protobuf-java-util-3.25.2.jar" + } + }, + "com_google_protobuf_protobuf_java_util_jar_sources_3_25_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "74f4ac3788114a63a6deffb209fd20504bc03cb8796531ab80e5991b1afc2013", + "urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.25.2/protobuf-java-util-3.25.2-sources.jar" + ], + "downloaded_file_path": "v1/com/google/protobuf/protobuf-java-util/3.25.2/protobuf-java-util-3.25.2-sources.jar" + } + }, + "com_google_re2j_re2j_1_7": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4f657af51ab8bb0909bcc3eb40862d26125af8cbcf92aaaba595fed77f947bc0", + "urls": [ + "https://repo1.maven.org/maven2/com/google/re2j/re2j/1.7/re2j-1.7.jar" + ], + "downloaded_file_path": "v1/com/google/re2j/re2j/1.7/re2j-1.7.jar" + } + }, + "com_google_re2j_re2j_jar_sources_1_7": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ddc3b47bb1e556ac4c0d02c9d8ff18f3260198b76b720567a70eed0a03d3fed6", + "urls": [ + "https://repo1.maven.org/maven2/com/google/re2j/re2j/1.7/re2j-1.7-sources.jar" + ], + "downloaded_file_path": "v1/com/google/re2j/re2j/1.7/re2j-1.7-sources.jar" + } + }, + "commons_codec_commons_codec_1_16_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ec87bfb55f22cbd1b21e2190eeda28b2b312ed2a431ee49fbdcc01812d04a5e4", + "urls": [ + "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.16.1/commons-codec-1.16.1.jar" + ], + "downloaded_file_path": "v1/commons-codec/commons-codec/1.16.1/commons-codec-1.16.1.jar" + } + }, + "commons_codec_commons_codec_jar_sources_1_16_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1b9d7336bef950cd45dbefd5351222ee88e4efde09a9454e851a458c34f813be", + "urls": [ + "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.16.1/commons-codec-1.16.1-sources.jar" + ], + "downloaded_file_path": "v1/commons-codec/commons-codec/1.16.1/commons-codec-1.16.1-sources.jar" + } + }, + "commons_logging_commons_logging_1_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636", + "urls": [ + "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" + ], + "downloaded_file_path": "v1/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" + } + }, + "commons_logging_commons_logging_jar_sources_1_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "44347acfe5860461728e9cb33251e97345be36f8a0dfd5c5130c172559455f41", + "urls": [ + "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar" + ], + "downloaded_file_path": "v1/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar" + } + }, + "io_grpc_grpc_alts_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8c36fc921f18813a2f82e9f70211718c82280341c3822ab9d1782eaec2a8882a", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-alts/1.62.2/grpc-alts-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-alts/1.62.2/grpc-alts-1.62.2.jar" + } + }, + "io_grpc_grpc_alts_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "33e6302db01aed6ddd1403509aa516c4acc94d55667104f0a5dfe81ee00f8d61", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-alts/1.62.2/grpc-alts-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-alts/1.62.2/grpc-alts-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_api_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2e896944cf513e0e5cfd32bcd72c89601a27c6ca56916f84b20f3a13bacf1b1f", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.62.2/grpc-api-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-api/1.62.2/grpc-api-1.62.2.jar" + } + }, + "io_grpc_grpc_api_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "aa2974982805cc998f79e7c4d5d536744fd5520b56eb15b0179f9331c1edb3b7", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.62.2/grpc-api-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-api/1.62.2/grpc-api-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_auth_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6a16c43d956c79190486d3d0b951836a6706b3282b5d275a9bc4d33eb79d5618", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.62.2/grpc-auth-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-auth/1.62.2/grpc-auth-1.62.2.jar" + } + }, + "io_grpc_grpc_auth_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ceeb29d4bd28f678a6ecdd8f417e4c43b44eb2a1e307b130f18b78b8d9bd65f3", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.62.2/grpc-auth-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-auth/1.62.2/grpc-auth-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_context_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9959747df6a753119e1c1a3dff01aa766d2455f5e4860acaa305359e1d533a05", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.62.2/grpc-context-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-context/1.62.2/grpc-context-1.62.2.jar" + } + }, + "io_grpc_grpc_context_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c656b874e58c84ca975c3708f2e001dba76233385b6a5b7cb098868bd6ce38b1", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.62.2/grpc-context-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-context/1.62.2/grpc-context-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_core_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "18439902c473a2c1511e517d13b8ae796378850a8eda43787c6ba778fa90fcc5", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.62.2/grpc-core-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-core/1.62.2/grpc-core-1.62.2.jar" + } + }, + "io_grpc_grpc_core_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "351325425f07abc1d274d5afea1a3b8f48cf49b6f07a128ebe7e71a732188f92", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.62.2/grpc-core-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-core/1.62.2/grpc-core-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_googleapis_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0b8350c417dd5757056d97be671de360d91d6327d8de5871f8f4a556a12564f5", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-googleapis/1.62.2/grpc-googleapis-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-googleapis/1.62.2/grpc-googleapis-1.62.2.jar" + } + }, + "io_grpc_grpc_googleapis_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c54bb67b01f75ba743402120129cf79b0b7af1d2cff7b09a69343e369269c17b", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-googleapis/1.62.2/grpc-googleapis-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-googleapis/1.62.2/grpc-googleapis-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_grpclb_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "49ed5d4b35e8d0b4f9b6f39fef774fc2a5927eeaeca7f54610e1b7fa0dc31f5a", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.62.2/grpc-grpclb-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-grpclb/1.62.2/grpc-grpclb-1.62.2.jar" + } + }, + "io_grpc_grpc_grpclb_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1034584c8675456ecc2dd641dabd8e30377897cc1e68cadb512b1658d47772e8", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.62.2/grpc-grpclb-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-grpclb/1.62.2/grpc-grpclb-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_inprocess_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f3c28a9d7f13fa995e4dd89e4f6aa08fa3b383665314fdfccb9f87f346625df7", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-inprocess/1.62.2/grpc-inprocess-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-inprocess/1.62.2/grpc-inprocess-1.62.2.jar" + } + }, + "io_grpc_grpc_inprocess_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "85eb82961732f483d8ad831f96f90993bd5a3b80923b5ceb8e0be1dd3c6b4289", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-inprocess/1.62.2/grpc-inprocess-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-inprocess/1.62.2/grpc-inprocess-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_netty_shaded_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b3f1823ef30ca02ac721020f4b6492248efdbd0548c78e893d5d245cbca2cc60", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.62.2/grpc-netty-shaded-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-netty-shaded/1.62.2/grpc-netty-shaded-1.62.2.jar" + } + }, + "io_grpc_grpc_netty_shaded_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c656b874e58c84ca975c3708f2e001dba76233385b6a5b7cb098868bd6ce38b1", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.62.2/grpc-netty-shaded-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-netty-shaded/1.62.2/grpc-netty-shaded-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_protobuf_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "66a0b196318bdfd817d965d2d82b9c81dfced8eb08c0f7510fcb728d2994237a", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.62.2/grpc-protobuf-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-protobuf/1.62.2/grpc-protobuf-1.62.2.jar" + } + }, + "io_grpc_grpc_protobuf_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4020d5c7485d6dd261f07b3deeabfe1d06fcd13e8a20fc147683926a03c38ef1", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.62.2/grpc-protobuf-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-protobuf/1.62.2/grpc-protobuf-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_protobuf_lite_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "79997989a8c2b5bf4dd18182a2df2e2f668703d68ba7c317e7a07809d33f91f4", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.62.2/grpc-protobuf-lite-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-protobuf-lite/1.62.2/grpc-protobuf-lite-1.62.2.jar" + } + }, + "io_grpc_grpc_protobuf_lite_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fd38569d1c610d12e0844873ea18542503334b5f4db8c2239b68553ccc58942b", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.62.2/grpc-protobuf-lite-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-protobuf-lite/1.62.2/grpc-protobuf-lite-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_rls_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2fa8cb6cc22d28080b30f9ff0c6143c180017ae64a51a61828432ff48813cc88", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-rls/1.62.2/grpc-rls-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-rls/1.62.2/grpc-rls-1.62.2.jar" + } + }, + "io_grpc_grpc_rls_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b298e51cbf6f71f66e8dae848c16a7764becb02b010feedd5810dfe0812017fd", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-rls/1.62.2/grpc-rls-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-rls/1.62.2/grpc-rls-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_services_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "72f6eba0670184b634e7dcde0b97cde378a7cd74cdf63300f453d15c23bbbb6a", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.62.2/grpc-services-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-services/1.62.2/grpc-services-1.62.2.jar" + } + }, + "io_grpc_grpc_services_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e0fe73139c7399bd435c6a5c7ec01d3d04fc0993f72e1fa58865415b83b5ebf8", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.62.2/grpc-services-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-services/1.62.2/grpc-services-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_stub_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fb4ca679a4214143406c65ac4167b2b5e2ee2cab1fc101566bb1c4695d105e36", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.62.2/grpc-stub-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-stub/1.62.2/grpc-stub-1.62.2.jar" + } + }, + "io_grpc_grpc_stub_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "da613a25d08f3915ab1d54634c6dc4ffa7441fea74d53fcd46e68afe53b1b29a", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.62.2/grpc-stub-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-stub/1.62.2/grpc-stub-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_util_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3c7103e6f3738571e3aeda420fe2a6ac68e354534d8b66f41897b6755b48b735", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-util/1.62.2/grpc-util-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-util/1.62.2/grpc-util-1.62.2.jar" + } + }, + "io_grpc_grpc_util_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "eea606bb4b3b6df7863604fd82321f8713bc1e13e8d124c8ae1374fba174052e", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-util/1.62.2/grpc-util-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-util/1.62.2/grpc-util-1.62.2-sources.jar" + } + }, + "io_grpc_grpc_xds_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4da41475d04e82c414ceb957e744f5bf99d80c846d5c5eb504c085c563b28b2d", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-xds/1.62.2/grpc-xds-1.62.2.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-xds/1.62.2/grpc-xds-1.62.2.jar" + } + }, + "io_grpc_grpc_xds_jar_sources_1_62_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "eede613eb4461d1fb98e9f0de3b37b64fd926b37e85176884bfc05029997c3dd", + "urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-xds/1.62.2/grpc-xds-1.62.2-sources.jar" + ], + "downloaded_file_path": "v1/io/grpc/grpc-xds/1.62.2/grpc-xds-1.62.2-sources.jar" + } + }, + "io_netty_netty_buffer_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "348e3ff64c7129ca661bc09d4bdda09c824474cfd1f5918368bdc56f5ee17f79", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.108.Final/netty-buffer-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-buffer/4.1.108.Final/netty-buffer-4.1.108.Final.jar" + } + }, + "io_netty_netty_buffer_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d0d090b39bba11f5ceb61f00147a92fbe6785b89a9991f6e2f6eee7e1c2de386", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.108.Final/netty-buffer-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-buffer/4.1.108.Final/netty-buffer-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_codec_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "32c220dea93756fba28f9302481bc657738cc40d07440daa985a2ba21df226f1", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.108.Final/netty-codec-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-codec/4.1.108.Final/netty-codec-4.1.108.Final.jar" + } + }, + "io_netty_netty_codec_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0d08bc0933beba1d0fab7e39624b6c3e8c05b6458c7a82e7ea77d9d4d7277ef4", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.108.Final/netty-codec-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-codec/4.1.108.Final/netty-codec-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_codec_http_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2bdb276d40c2293014638a7e065bea977b574fb6a978e1197f514f2e13b695a6", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.108.Final/netty-codec-http-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-codec-http/4.1.108.Final/netty-codec-http-4.1.108.Final.jar" + } + }, + "io_netty_netty_codec_http_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c6afefd3666f4476f1ad042fcfe689be4fd25e6f8ff452234e8f53a8d2254a6c", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.108.Final/netty-codec-http-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-codec-http/4.1.108.Final/netty-codec-http-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_codec_http2_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a813e1810f7c1959b90fc7f221e03ce15e66005ee56e29cd0d68312b9679c772", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.108.Final/netty-codec-http2-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-codec-http2/4.1.108.Final/netty-codec-http2-4.1.108.Final.jar" + } + }, + "io_netty_netty_codec_http2_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4bac91d9d56373576eb5e02b94fba41e5a276448a4f31762e419a5d11710e9d3", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.108.Final/netty-codec-http2-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-codec-http2/4.1.108.Final/netty-codec-http2-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_common_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8e3649fc6bab84a88ad47af82e38f9c36ab3725de478632c8a59e4bd74d16e08", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.108.Final/netty-common-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-common/4.1.108.Final/netty-common-4.1.108.Final.jar" + } + }, + "io_netty_netty_common_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4104a190511c03cfadefe6e05d0c13d5d297e087e0a2eca417ca265f2bb90c18", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.108.Final/netty-common-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-common/4.1.108.Final/netty-common-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_handler_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "55b2458011527d94abc868086afd039cd00cc3a547e7322569e0fb4f906d9d80", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.108.Final/netty-handler-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-handler/4.1.108.Final/netty-handler-4.1.108.Final.jar" + } + }, + "io_netty_netty_handler_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "85e3a994544dbd5c4eb5b8c7708fb47f66277afd4ee9855a7e931703fe034c2c", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.108.Final/netty-handler-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-handler/4.1.108.Final/netty-handler-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_resolver_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "55279fdcf6c0e1819b6561cc70b0eb2de1b1cf1ef5635fc46334d7e06faa9dd9", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.108.Final/netty-resolver-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-resolver/4.1.108.Final/netty-resolver-4.1.108.Final.jar" + } + }, + "io_netty_netty_resolver_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "60b7eab02a29079044bde0eb4129a8f039b746659bf387b5ca2b0d70c21854b5", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.108.Final/netty-resolver-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-resolver/4.1.108.Final/netty-resolver-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_transport_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fef2ec66fe01aa89734db40f292676719da3985786512fc31a9efe1ca4d2e0ff", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.108.Final/netty-transport-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-transport/4.1.108.Final/netty-transport-4.1.108.Final.jar" + } + }, + "io_netty_netty_transport_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "494f8ccdd2c892cfe590ff39c1c35822d50228657fd598890e7450d66994b0a4", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.108.Final/netty-transport-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-transport/4.1.108.Final/netty-transport-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_transport_classes_epoll_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "5959715036c1dfc1b5a41a6b8518762f43b99c9f6f45e5c80543550cb4773c88", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.108.Final/netty-transport-classes-epoll-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-transport-classes-epoll/4.1.108.Final/netty-transport-classes-epoll-4.1.108.Final.jar" + } + }, + "io_netty_netty_transport_classes_epoll_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2c827a992165201801376a39468bfc71112d3f4a681f12566781995fd3292204", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.108.Final/netty-transport-classes-epoll-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-transport-classes-epoll/4.1.108.Final/netty-transport-classes-epoll-4.1.108.Final-sources.jar" + } + }, + "io_netty_netty_transport_native_unix_common_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c3f324a6f526313e432235bf1a3a12e3db283e3b8669e02f26f569c421036bcb", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.108.Final/netty-transport-native-unix-common-4.1.108.Final.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-transport-native-unix-common/4.1.108.Final/netty-transport-native-unix-common-4.1.108.Final.jar" + } + }, + "io_netty_netty_transport_native_unix_common_jar_sources_4_1_108_Final": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b8f2463e6f7b135c9a89c8875fb4ffdbeece230b713c34a4aeb619081e9b18ff", + "urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.108.Final/netty-transport-native-unix-common-4.1.108.Final-sources.jar" + ], + "downloaded_file_path": "v1/io/netty/netty-transport-native-unix-common/4.1.108.Final/netty-transport-native-unix-common-4.1.108.Final-sources.jar" + } + }, + "io_opencensus_opencensus_api_0_31_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f1474d47f4b6b001558ad27b952e35eda5cc7146788877fc52938c6eba24b382", + "urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.31.1/opencensus-api-0.31.1.jar" + ], + "downloaded_file_path": "v1/io/opencensus/opencensus-api/0.31.1/opencensus-api-0.31.1.jar" + } + }, + "io_opencensus_opencensus_api_jar_sources_0_31_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6748d57aaae81995514ad3e2fb11a95aa88e158b3f93450288018eaccf31e86b", + "urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.31.1/opencensus-api-0.31.1-sources.jar" + ], + "downloaded_file_path": "v1/io/opencensus/opencensus-api/0.31.1/opencensus-api-0.31.1-sources.jar" + } + }, + "io_opencensus_opencensus_contrib_http_util_0_31_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3ea995b55a4068be22989b70cc29a4d788c2d328d1d50613a7a9afd13fdd2d0a", + "urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.31.1/opencensus-contrib-http-util-0.31.1.jar" + ], + "downloaded_file_path": "v1/io/opencensus/opencensus-contrib-http-util/0.31.1/opencensus-contrib-http-util-0.31.1.jar" + } + }, + "io_opencensus_opencensus_contrib_http_util_jar_sources_0_31_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d55afd5f96dc724bd903a77a38b0a344d0e59f02a64b9ab2f32618bc582ea924", + "urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.31.1/opencensus-contrib-http-util-0.31.1-sources.jar" + ], + "downloaded_file_path": "v1/io/opencensus/opencensus-contrib-http-util/0.31.1/opencensus-contrib-http-util-0.31.1-sources.jar" + } + }, + "io_opencensus_opencensus_proto_0_2_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0c192d451e9dd74e98721b27d02f0e2b6bca44b51563b5dabf2e211f7a3ebf13", + "urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0.jar" + ], + "downloaded_file_path": "v1/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0.jar" + } + }, + "io_opencensus_opencensus_proto_jar_sources_0_2_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "7f077c177e1241e3afec0b42d7f64b89b18c2ef37a29651fc6d2a46315a3ca42", + "urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0-sources.jar" + ], + "downloaded_file_path": "v1/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0-sources.jar" + } + }, + "io_opentelemetry_opentelemetry_api_1_36_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a5873dc1f6cf36a098dfdb50a11974527a9e253e2ae08b1b23975eb6c59b9837", + "urls": [ + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.36.0/opentelemetry-api-1.36.0.jar" + ], + "downloaded_file_path": "v1/io/opentelemetry/opentelemetry-api/1.36.0/opentelemetry-api-1.36.0.jar" + } + }, + "io_opentelemetry_opentelemetry_api_jar_sources_1_36_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3921744942d746fd4e6131dd4db1c37cb754af39d525e9196c077445a5071c85", + "urls": [ + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/1.36.0/opentelemetry-api-1.36.0-sources.jar" + ], + "downloaded_file_path": "v1/io/opentelemetry/opentelemetry-api/1.36.0/opentelemetry-api-1.36.0-sources.jar" + } + }, + "io_opentelemetry_opentelemetry_context_1_36_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a31b52203341dafae2d9b5502e3a11eb28a3297d3540be8262d6d9ed2a8d70ab", + "urls": [ + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.36.0/opentelemetry-context-1.36.0.jar" + ], + "downloaded_file_path": "v1/io/opentelemetry/opentelemetry-context/1.36.0/opentelemetry-context-1.36.0.jar" + } + }, + "io_opentelemetry_opentelemetry_context_jar_sources_1_36_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d126c982465b883e0c3898b915f056b44c76850cfc789630c25c843418678050", + "urls": [ + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/1.36.0/opentelemetry-context-1.36.0-sources.jar" + ], + "downloaded_file_path": "v1/io/opentelemetry/opentelemetry-context/1.36.0/opentelemetry-context-1.36.0-sources.jar" + } + }, + "io_perfmark_perfmark_api_0_27_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c7b478503ec524e55df19b424d46d27c8a68aeb801664fadd4f069b71f52d0f6", + "urls": [ + "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.27.0/perfmark-api-0.27.0.jar" + ], + "downloaded_file_path": "v1/io/perfmark/perfmark-api/0.27.0/perfmark-api-0.27.0.jar" + } + }, + "io_perfmark_perfmark_api_jar_sources_0_27_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "311551ab29cf51e5a8abee6a019e88dee47d1ea71deb9fcd3649db9c51b237bc", + "urls": [ + "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.27.0/perfmark-api-0.27.0-sources.jar" + ], + "downloaded_file_path": "v1/io/perfmark/perfmark-api/0.27.0/perfmark-api-0.27.0-sources.jar" + } + }, + "javax_annotation_javax_annotation_api_1_3_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b", + "urls": [ + "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" + ], + "downloaded_file_path": "v1/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" + } + }, + "javax_annotation_javax_annotation_api_jar_sources_1_3_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "128971e52e0d84a66e3b6e049dab8ad7b2c58b7e1ad37fa2debd3d40c2947b95", + "urls": [ + "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2-sources.jar" + ], + "downloaded_file_path": "v1/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2-sources.jar" + } + }, + "javax_inject_javax_inject_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff", + "urls": [ + "https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar" + ], + "downloaded_file_path": "v1/javax/inject/javax.inject/1/javax.inject-1.jar" + } + }, + "javax_inject_javax_inject_jar_sources_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c4b87ee2911c139c3daf498a781967f1eb2e75bc1a8529a2e7b328a15d0e433e", + "urls": [ + "https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1-sources.jar" + ], + "downloaded_file_path": "v1/javax/inject/javax.inject/1/javax.inject-1-sources.jar" + } + }, + "org_apache_commons_commons_lang3_3_12_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d919d904486c037f8d193412da0c92e22a9fa24230b9d67a57855c5c31c7e94e", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar" + ], + "downloaded_file_path": "v1/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar" + } + }, + "org_apache_commons_commons_lang3_jar_sources_3_12_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "325a4551eee7d99f7616aa05b00ee3ca9d0cdc8face1b252a9864f2d945c58b3", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0-sources.jar" + } + }, + "org_apache_httpcomponents_httpclient_4_5_14": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c8bc7e1c51a6d4ce72f40d2ebbabf1c4b68bfe76e732104b04381b493478e9d6", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar" + ], + "downloaded_file_path": "v1/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar" + } + }, + "org_apache_httpcomponents_httpclient_jar_sources_4_5_14": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "55b01f9f4cbec9ac646866a4b64b176570d79e293a556796b5b0263d047ef8e6", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14-sources.jar" + } + }, + "org_apache_httpcomponents_httpcore_4_4_16": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6c9b3dd142a09dc468e23ad39aad6f75a0f2b85125104469f026e52a474e464f", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar" + ], + "downloaded_file_path": "v1/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar" + } + }, + "org_apache_httpcomponents_httpcore_jar_sources_4_4_16": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "705f8cf3671093b6c1db16bbf6971a7ef400e3819784f1af53e5bc3e67b5a9a0", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_api_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ebfb9e1dfeea3c2017905184581e007874b4eaac9d28bfffcfe5133d70ac6339", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_api_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0db90119179e13f900b705d664713e8d8bea04b879d95b6e8cb43e2bf6b1a07f", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_connector_basic_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f88d97d0f18571a675e73b45d6a9384b00322c9fae514ad6761d65b729a4e82a", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_connector_basic_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0dd578a67892b65b7c611717812bc78bf47ae689ce340ae1ae1ecededddabc51", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_impl_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6bb9c90d007098004749c867da2eaf5785fc1139907718749c1097bdb2929bf8", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_impl_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0f01d87f9985afb3fd98aedf50e3177e22001d4015189a98063c6747e34fef0d", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_named_locks_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "098de7bbc5b0b26c3eff74ac30ffba6680fdab9bf4aebab95c3f5e2fe9eaeea8", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_named_locks_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a91e1133dc800b42627fe51f21ed54c076bad26f508abe2573f7a88c139fecf9", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_spi_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d364fce9a17b0e0b073c26efa92af95b29c00c42943dced4a1168a7923fd3fe1", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_spi_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "eee663e95cb0402217f51bf9599b81bd0debab179fbc3be8b089ce1718e60c6b", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_transport_file_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9bbb55dd10c31d474caa6558ec304f862877027db31bc13a7352149f8f3224e5", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-transport-file/1.9.18/maven-resolver-transport-file-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-transport-file/1.9.18/maven-resolver-transport-file-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_transport_file_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "92ae9fef50476930dbbdc7fdfc3e144a8223d890ca61d8bfcfb813cafe906e66", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-transport-file/1.9.18/maven-resolver-transport-file-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-transport-file/1.9.18/maven-resolver-transport-file-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_transport_http_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1fa02272da7a604718f22e2bc9775f14350487548ffc30a2ffaae1c2d1d1a58a", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_transport_http_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "5f89ef4669cfb3a7adc41f293956b8f4537e1d80bc0a5d075d1e4dc2e59f5fa0", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18-sources.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_util_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2eb0ea667bc489384478231dda7516407d4b5b22a138077229871de9362a7ae2", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.jar" + } + }, + "org_apache_maven_resolver_maven_resolver_util_jar_sources_1_9_18": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "892f60c6694dfd1f17590773e8f05b8475da560d50f233df7e3fc2a51a97dfe2", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18-sources.jar" + } + }, + "org_apache_maven_shared_maven_shared_utils_3_3_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "7925d9c5a0e2040d24b8fae3f612eb399cbffe5838b33ba368777dc7bddf6dda", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.jar" + } + }, + "org_apache_maven_shared_maven_shared_utils_jar_sources_3_3_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c4895943fa19896e7004fececba0b658b6afb4f311986e1f809a8fa54ae126aa", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4-sources.jar" + } + }, + "org_apache_maven_maven_artifact_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ad7a0fb408f8e47585ccc0d0011e0b501d93bfc9888d369bbd4a043d19475073", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6.jar" + } + }, + "org_apache_maven_maven_artifact_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "153d66a7440369ece8fdd196ee57948614d2a5863c43f456ddf1f6ba751d234e", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_builder_support_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e1f4d2784459ce8a34b9dae1829a1999b569e483e21ee9faa7368691e729296e", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6.jar" + } + }, + "org_apache_maven_maven_builder_support_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f22639e6e1cb3cd950dee1abe48280726808f94f5052bdf796faacdd88ddea9c", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_core_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c1327590398759da1918dbf356eb6d63f8fce7192a805cb3c8e336fbb1155dc0", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-core/3.9.6/maven-core-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-core/3.9.6/maven-core-3.9.6.jar" + } + }, + "org_apache_maven_maven_core_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f1c40a4c2fa9f37518604b12ef40a2a8f8bf8747f5cb9c0e84725c7b8d6cf434", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-core/3.9.6/maven-core-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-core/3.9.6/maven-core-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_model_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4f8f07fdb6b8701fa89a23a2edf830808fd65892d90cce40c0e6df7c8f2fcb62", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6.jar" + } + }, + "org_apache_maven_maven_model_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a35a34dda93220632a6d12efd696a8e6cbe9680fe31ff864b544ce7503cb5f88", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_model_builder_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "5f96dafbc411ee4b1e8426368d0d31d05ab5a4dace69808143142a0017598721", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6.jar" + } + }, + "org_apache_maven_maven_model_builder_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1c77607c8fe54c4aa12b376bacfbb5700c85bb5bb361c563a6a927f27d6b34bf", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_plugin_api_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3fd664f7e511463561bc343822347618b8ca0952db85da785809166f0a762411", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/3.9.6/maven-plugin-api-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-plugin-api/3.9.6/maven-plugin-api-3.9.6.jar" + } + }, + "org_apache_maven_maven_plugin_api_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "edb25b1d583da26d59eedb921b3c6cebdc4a424d5fab3ebeeb05fdcc63a7d3cb", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/3.9.6/maven-plugin-api-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-plugin-api/3.9.6/maven-plugin-api-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_repository_metadata_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e047a67b204c434994253e2ab5bdff5fe8cb7ada9316ac3e754c39f900ea847b", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6.jar" + } + }, + "org_apache_maven_maven_repository_metadata_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "396ba360bba71fe5a091dd5b843c5479622f537f8fdd948a5dd1011137ab9046", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_resolver_provider_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "73b00b244b7b9e285654a45e765892bf5d369da77d42b5b4b5429122ed198a33", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6.jar" + } + }, + "org_apache_maven_maven_resolver_provider_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4418ef63344cf6c4dd85b336122dc0eae209fa03b92e32b929f60f10b9cb1677", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_settings_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0d200fd3b354d653d2a02cdba6a39b6dc2744a8539ff36ea423fe62cac736799", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-settings/3.9.6/maven-settings-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-settings/3.9.6/maven-settings-3.9.6.jar" + } + }, + "org_apache_maven_maven_settings_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8ff8b350a17e9c476a8d69bf2d60ec09ec81cac0837d4b97441b199b14e43c87", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-settings/3.9.6/maven-settings-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-settings/3.9.6/maven-settings-3.9.6-sources.jar" + } + }, + "org_apache_maven_maven_settings_builder_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e97cc245e4ef833c589fce0b5a8a4d77e3a0e01e619c57b5342c5e16d37a791d", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-settings-builder/3.9.6/maven-settings-builder-3.9.6.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-settings-builder/3.9.6/maven-settings-builder-3.9.6.jar" + } + }, + "org_apache_maven_maven_settings_builder_jar_sources_3_9_6": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fc6b0a0cafc626264011516a8e6c182e6e0c9a252a80403fa401dcb0a0a6c300", + "urls": [ + "https://repo1.maven.org/maven2/org/apache/maven/maven-settings-builder/3.9.6/maven-settings-builder-3.9.6-sources.jar" + ], + "downloaded_file_path": "v1/org/apache/maven/maven-settings-builder/3.9.6/maven-settings-builder-3.9.6-sources.jar" + } + }, + "org_checkerframework_checker_qual_3_42_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ccaedd33af0b7894d9f2f3b644f4d19e43928e32902e61ac4d10777830f5aac7", + "urls": [ + "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar" + ], + "downloaded_file_path": "v1/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar" + } + }, + "org_checkerframework_checker_qual_jar_sources_3_42_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "efb65eb479f61f53c6dcafbd42ed59dad09b0a0d5a7f44b7bc68df25c2dcf8fd", + "urls": [ + "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0-sources.jar" + ], + "downloaded_file_path": "v1/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0-sources.jar" + } + }, + "org_codehaus_mojo_animal_sniffer_annotations_1_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9ffe526bf43a6348e9d8b33b9cd6f580a7f5eed0cf055913007eda263de974d0", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23.jar" + ], + "downloaded_file_path": "v1/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23.jar" + } + }, + "org_codehaus_mojo_animal_sniffer_annotations_jar_sources_1_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4878fcc6808dbc88085a4622db670e703867754bc4bc40312c52bf3a3510d019", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23-sources.jar" + } + }, + "org_codehaus_plexus_plexus_cipher_2_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ae34b6dcf0641a8bf5592244aeeeea49b6aa457f1889a68dd98a00a08cf1f38c", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-cipher/2.1.0/plexus-cipher-2.1.0.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-cipher/2.1.0/plexus-cipher-2.1.0.jar" + } + }, + "org_codehaus_plexus_plexus_cipher_jar_sources_2_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9a05e2b3b472fcd1ab252270465dec441258736ae6737a70b9730518bb39bee9", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-cipher/2.1.0/plexus-cipher-2.1.0-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-cipher/2.1.0/plexus-cipher-2.1.0-sources.jar" + } + }, + "org_codehaus_plexus_plexus_classworlds_2_7_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c60ae538ba66adbc06aae205fbe2306211d3d213ab6df3239ec03cdde2458ad6", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-classworlds/2.7.0/plexus-classworlds-2.7.0.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-classworlds/2.7.0/plexus-classworlds-2.7.0.jar" + } + }, + "org_codehaus_plexus_plexus_classworlds_jar_sources_2_7_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "64baec90c74f76500c556b800dd596481115fe4e7d33b5b06ed13cc0bb06af47", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-classworlds/2.7.0/plexus-classworlds-2.7.0-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-classworlds/2.7.0/plexus-classworlds-2.7.0-sources.jar" + } + }, + "org_codehaus_plexus_plexus_component_annotations_2_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "bde3617ce9b5bcf9584126046080043af6a4b3baea40a3b153f02e7bbc32acac", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0.jar" + } + }, + "org_codehaus_plexus_plexus_component_annotations_jar_sources_2_1_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3896689e1df0a4e2707ecdce4946e37c3037fbebbb3d730873c4d9dfb6d25174", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0-sources.jar" + } + }, + "org_codehaus_plexus_plexus_interpolation_1_26": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b3b5412ce17889103ea564bcdfcf9fb3dfa540344ffeac6b538a73c9d7182662", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.jar" + } + }, + "org_codehaus_plexus_plexus_interpolation_jar_sources_1_26": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "048ec9a9ae5fffbe8fa463824b852ea60d9cebd7397446f6a516fcde05863366", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26-sources.jar" + } + }, + "org_codehaus_plexus_plexus_sec_dispatcher_2_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "873139960c4c780176dda580b003a2c4bf82188bdce5bb99234e224ef7acfceb", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-sec-dispatcher/2.0/plexus-sec-dispatcher-2.0.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-sec-dispatcher/2.0/plexus-sec-dispatcher-2.0.jar" + } + }, + "org_codehaus_plexus_plexus_sec_dispatcher_jar_sources_2_0": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ba4508f478d47717c8aeb41cf0ad9bc67e3c6bc7bf8f8bded2ca77b5885435a2", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-sec-dispatcher/2.0/plexus-sec-dispatcher-2.0-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-sec-dispatcher/2.0/plexus-sec-dispatcher-2.0-sources.jar" + } + }, + "org_codehaus_plexus_plexus_utils_3_5_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "86e0255d4c879c61b4833ed7f13124e8bb679df47debb127326e7db7dd49a07b", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar" + } + }, + "org_codehaus_plexus_plexus_utils_jar_sources_3_5_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "11b9ff95f1ade7cff0a45cf483c7cd84a8f8a542275a3d612779fffacdf43f00", + "urls": [ + "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1-sources.jar" + ], + "downloaded_file_path": "v1/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1-sources.jar" + } + }, + "org_conscrypt_conscrypt_openjdk_uber_2_5_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "eaf537d98e033d0f0451cd1b8cc74e02d7b55ec882da63c88060d806ba89c348", + "urls": [ + "https://repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2.jar" + ], + "downloaded_file_path": "v1/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2.jar" + } + }, + "org_conscrypt_conscrypt_openjdk_uber_jar_sources_2_5_2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "aa1d02e65351e202e83ece0614bce1022aa1da6e77313ef7c7663ab45fa9e3a5", + "urls": [ + "https://repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2-sources.jar" + ], + "downloaded_file_path": "v1/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2-sources.jar" + } + }, + "org_eclipse_sisu_org_eclipse_sisu_inject_0_9_0_M2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9b62bcfc352a2ec87da8b01e37c952a54d358bbb1af3f212648aeafe7ab2dbb5", + "urls": [ + "https://repo1.maven.org/maven2/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2.jar" + ], + "downloaded_file_path": "v1/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2.jar" + } + }, + "org_eclipse_sisu_org_eclipse_sisu_inject_jar_sources_0_9_0_M2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "071d842e8e51fb889a19997b414eff75ebb06f6d4dc79d3f062c03dc5cd2bd51", + "urls": [ + "https://repo1.maven.org/maven2/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2-sources.jar" + ], + "downloaded_file_path": "v1/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2-sources.jar" + } + }, + "org_eclipse_sisu_org_eclipse_sisu_plexus_0_9_0_M2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9500d303ce467e26d129dda8559c3f3a91277d41ab49d2c4b4a5779536a62fc1", + "urls": [ + "https://repo1.maven.org/maven2/org/eclipse/sisu/org.eclipse.sisu.plexus/0.9.0.M2/org.eclipse.sisu.plexus-0.9.0.M2.jar" + ], + "downloaded_file_path": "v1/org/eclipse/sisu/org.eclipse.sisu.plexus/0.9.0.M2/org.eclipse.sisu.plexus-0.9.0.M2.jar" + } + }, + "org_eclipse_sisu_org_eclipse_sisu_plexus_jar_sources_0_9_0_M2": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c4dd6836110ee23aef5a5af0d0c9315782d707734aa799e8e3f3735e35bd8974", + "urls": [ + "https://repo1.maven.org/maven2/org/eclipse/sisu/org.eclipse.sisu.plexus/0.9.0.M2/org.eclipse.sisu.plexus-0.9.0.M2-sources.jar" + ], + "downloaded_file_path": "v1/org/eclipse/sisu/org.eclipse.sisu.plexus/0.9.0.M2/org.eclipse.sisu.plexus-0.9.0.M2-sources.jar" + } + }, + "org_fusesource_jansi_jansi_2_4_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2e5e775a9dc58ffa6bbd6aa6f099d62f8b62dcdeb4c3c3bbbe5cf2301bc2dcc1", + "urls": [ + "https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.jar" + ], + "downloaded_file_path": "v1/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.jar" + } + }, + "org_fusesource_jansi_jansi_jar_sources_2_4_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f707511567a13ebf8c51164133770eb5a8e023e1d391bfbc6e7a0591c71729b8", + "urls": [ + "https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1-sources.jar" + ], + "downloaded_file_path": "v1/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1-sources.jar" + } + }, + "org_reactivestreams_reactive_streams_1_0_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f75ca597789b3dac58f61857b9ac2e1034a68fa672db35055a8fb4509e325f28", + "urls": [ + "https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar" + ], + "downloaded_file_path": "v1/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar" + } + }, + "org_reactivestreams_reactive_streams_jar_sources_1_0_4": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "5a7a36ae9536698c434ebe119feb374d721210fee68eb821a37ef3859b64b708", + "urls": [ + "https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4-sources.jar" + ], + "downloaded_file_path": "v1/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4-sources.jar" + } + }, + "org_slf4j_jcl_over_slf4j_1_7_36": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ab57ca8fd223772c17365d121f59e94ecbf0ae59d08c03a3cb5b81071c019195", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar" + ], + "downloaded_file_path": "v1/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar" + } + }, + "org_slf4j_jcl_over_slf4j_jar_sources_1_7_36": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "aa7a3dc5ff8fd8ca2e8b305d54442a99a722af90777227eb3ce4226c2ba47037", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36-sources.jar" + ], + "downloaded_file_path": "v1/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36-sources.jar" + } + }, + "org_slf4j_jul_to_slf4j_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "84f02864cab866ffb196ed2022b1b8da682ea6fb3d4a161069429e8391ee2979", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/jul-to-slf4j/2.0.12/jul-to-slf4j-2.0.12.jar" + ], + "downloaded_file_path": "v1/org/slf4j/jul-to-slf4j/2.0.12/jul-to-slf4j-2.0.12.jar" + } + }, + "org_slf4j_jul_to_slf4j_jar_sources_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "62702e12ff5af75f4125c76403ffb577b54972478e83a1ae075bc5a38db233f7", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/jul-to-slf4j/2.0.12/jul-to-slf4j-2.0.12-sources.jar" + ], + "downloaded_file_path": "v1/org/slf4j/jul-to-slf4j/2.0.12/jul-to-slf4j-2.0.12-sources.jar" + } + }, + "org_slf4j_log4j_over_slf4j_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6271f07eeab8f14321dcdfed8d1de9458198eaa3320174923d1ef3ace9048efa", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/log4j-over-slf4j/2.0.12/log4j-over-slf4j-2.0.12.jar" + ], + "downloaded_file_path": "v1/org/slf4j/log4j-over-slf4j/2.0.12/log4j-over-slf4j-2.0.12.jar" + } + }, + "org_slf4j_log4j_over_slf4j_jar_sources_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "77ff3d616f87fa07545753e3ed767f0d338a8bd4398598e43d8ce09314edcb15", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/log4j-over-slf4j/2.0.12/log4j-over-slf4j-2.0.12-sources.jar" + ], + "downloaded_file_path": "v1/org/slf4j/log4j-over-slf4j/2.0.12/log4j-over-slf4j-2.0.12-sources.jar" + } + }, + "org_slf4j_slf4j_api_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a79502b8abdfbd722846a27691226a4088682d6d35654f9b80e2a9ccacf7ed47", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.12/slf4j-api-2.0.12.jar" + ], + "downloaded_file_path": "v1/org/slf4j/slf4j-api/2.0.12/slf4j-api-2.0.12.jar" + } + }, + "org_slf4j_slf4j_api_jar_sources_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f05052e5924887edee5ba8228d210e763f85032e2b58245a37fa71e049950787", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.12/slf4j-api-2.0.12-sources.jar" + ], + "downloaded_file_path": "v1/org/slf4j/slf4j-api/2.0.12/slf4j-api-2.0.12-sources.jar" + } + }, + "org_slf4j_slf4j_simple_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4cd8f3d6236044600e7054da7c124c6d2e9f45eb43c77d4e9b093fe1095edc85", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/2.0.12/slf4j-simple-2.0.12.jar" + ], + "downloaded_file_path": "v1/org/slf4j/slf4j-simple/2.0.12/slf4j-simple-2.0.12.jar" + } + }, + "org_slf4j_slf4j_simple_jar_sources_2_0_12": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "b4fca032b643ed51876cc2b3d3acc3a6526558273f6157abc4831f8aed9bea60", + "urls": [ + "https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/2.0.12/slf4j-simple-2.0.12-sources.jar" + ], + "downloaded_file_path": "v1/org/slf4j/slf4j-simple/2.0.12/slf4j-simple-2.0.12-sources.jar" + } + }, + "org_threeten_threetenbp_1_6_8": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "e4b1eb3d90c38a54c7f3384fda957e0b5bf0b41b40672a44ae8b03cb6c87ce06", + "urls": [ + "https://repo1.maven.org/maven2/org/threeten/threetenbp/1.6.8/threetenbp-1.6.8.jar" + ], + "downloaded_file_path": "v1/org/threeten/threetenbp/1.6.8/threetenbp-1.6.8.jar" + } + }, + "org_threeten_threetenbp_jar_sources_1_6_8": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6b68e90399fd0d97ee7abbe3918c87a236d52a3fb3c434359a11942f9a1abc59", + "urls": [ + "https://repo1.maven.org/maven2/org/threeten/threetenbp/1.6.8/threetenbp-1.6.8-sources.jar" + ], + "downloaded_file_path": "v1/org/threeten/threetenbp/1.6.8/threetenbp-1.6.8-sources.jar" + } + }, + "software_amazon_awssdk_annotations_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "926835f6817027b108f039a4e8d3817a7ee085207af31361ada56b75173f17f8", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/annotations/2.25.23/annotations-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/annotations/2.25.23/annotations-2.25.23.jar" + } + }, + "software_amazon_awssdk_annotations_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a0875200c3a48b18d53350d57919cd3c3b341a28da7bbeaacfcdb435beb40086", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/annotations/2.25.23/annotations-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/annotations/2.25.23/annotations-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_apache_client_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f21200b038951f66a46774028212082a64fd34bbcfbe3b5574733cbeaf369762", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/apache-client/2.25.23/apache-client-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/apache-client/2.25.23/apache-client-2.25.23.jar" + } + }, + "software_amazon_awssdk_apache_client_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2ef61c3ead2f07aa356301347ab342811cd7dcc53cde74b8ba0f2ae4bd4cceeb", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/apache-client/2.25.23/apache-client-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/apache-client/2.25.23/apache-client-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_arns_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "adf0c6fe326cb287847346a29fc0fa7d27533af73f7214dc5e2ddedf70fad383", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/arns/2.25.23/arns-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/arns/2.25.23/arns-2.25.23.jar" + } + }, + "software_amazon_awssdk_arns_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3d58689fda719b1f86ee6485c49042b98bb736322c877f6947972c0ceb30e1c6", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/arns/2.25.23/arns-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/arns/2.25.23/arns-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_auth_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "afc5f8ce61d9696e9eaca690641f24d3206bcb122c5600d6570fa10409d762c9", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/auth/2.25.23/auth-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/auth/2.25.23/auth-2.25.23.jar" + } + }, + "software_amazon_awssdk_auth_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "630a65c3ef573e937a527feddb42153cc96dc6bb9f75c07076239c0776e50d7b", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/auth/2.25.23/auth-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/auth/2.25.23/auth-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_aws_core_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ea979175c1388a098edc622fe8174fad09c95b67cfd5257f2fb8ab8d0e0694e0", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-core/2.25.23/aws-core-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/aws-core/2.25.23/aws-core-2.25.23.jar" + } + }, + "software_amazon_awssdk_aws_core_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1cd263aeb9f97625f9071f67a07cbbde2f31730e2937fa1bfefb28cf07a7c0a7", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-core/2.25.23/aws-core-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/aws-core/2.25.23/aws-core-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_aws_query_protocol_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "993b4db1a2c73ba63b30580b40b92f11109ef96d9595721f463acd9b2b36d53c", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-query-protocol/2.25.23/aws-query-protocol-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/aws-query-protocol/2.25.23/aws-query-protocol-2.25.23.jar" + } + }, + "software_amazon_awssdk_aws_query_protocol_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3038faf258cacc5266024cc9c822647e6f13f1bfe1dc9f72dfd48fefd98098ba", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-query-protocol/2.25.23/aws-query-protocol-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/aws-query-protocol/2.25.23/aws-query-protocol-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_aws_xml_protocol_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c925176fb347e84b600c4c6943742cd4998a2e48384e04fef9572a1fb878e965", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-xml-protocol/2.25.23/aws-xml-protocol-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/aws-xml-protocol/2.25.23/aws-xml-protocol-2.25.23.jar" + } + }, + "software_amazon_awssdk_aws_xml_protocol_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "c9078a7dcc854220bcfce7592d4a16ec9dabd892deccf5cc6b042961a90559cb", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-xml-protocol/2.25.23/aws-xml-protocol-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/aws-xml-protocol/2.25.23/aws-xml-protocol-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_checksums_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "7b5046deeac9c67de543211362c9bb9896c98780e264c8d428d0cfb6ba1992c8", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/checksums/2.25.23/checksums-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/checksums/2.25.23/checksums-2.25.23.jar" + } + }, + "software_amazon_awssdk_checksums_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "5eadd42e3448d1f9bc90a419b928c748312c1b258f1423ddcca65626101b8ac0", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/checksums/2.25.23/checksums-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/checksums/2.25.23/checksums-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_checksums_spi_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "a70bef295ec4c776585a871b76bc103a0204d732b42c4bfb0fe4d206befcef49", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/checksums-spi/2.25.23/checksums-spi-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/checksums-spi/2.25.23/checksums-spi-2.25.23.jar" + } + }, + "software_amazon_awssdk_checksums_spi_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "1fbb05b1975401ce6676ee7db5325cc0f8c989d51e3062f2afff2933cd057928", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/checksums-spi/2.25.23/checksums-spi-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/checksums-spi/2.25.23/checksums-spi-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_crt_core_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "134086983f8877a404ff7f83b7d17e2a25c85c7b6932dd414b560f0a27a7490d", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/crt-core/2.25.23/crt-core-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/crt-core/2.25.23/crt-core-2.25.23.jar" + } + }, + "software_amazon_awssdk_crt_core_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "eef4c82653094816c7e7d2117d487638e5ae17135b3a62e346c8486b81715411", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/crt-core/2.25.23/crt-core-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/crt-core/2.25.23/crt-core-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_endpoints_spi_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "900a9927e924d0fab40ad196d1fa49db7e984474b9608777ac8b5086cd654dea", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/endpoints-spi/2.25.23/endpoints-spi-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/endpoints-spi/2.25.23/endpoints-spi-2.25.23.jar" + } + }, + "software_amazon_awssdk_endpoints_spi_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fc03d7c1c59a549e8956fe96d8a8a696ccbba883b108447c214e84f9b9ba5bdc", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/endpoints-spi/2.25.23/endpoints-spi-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/endpoints-spi/2.25.23/endpoints-spi-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_http_auth_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4b57b3a2aaca457016a004ed6f554990893376e9730d5654f8677e11d503565a", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-auth/2.25.23/http-auth-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-auth/2.25.23/http-auth-2.25.23.jar" + } + }, + "software_amazon_awssdk_http_auth_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "14a956d6fe6fc3c2ee4acc1fcc30b898f878a8c11879c85782d929c8f58fba48", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-auth/2.25.23/http-auth-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-auth/2.25.23/http-auth-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_http_auth_aws_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "daf69735d412430478dbd644a6bf1667436f529975da9d60f6ce2eb6f0e98083", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-auth-aws/2.25.23/http-auth-aws-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-auth-aws/2.25.23/http-auth-aws-2.25.23.jar" + } + }, + "software_amazon_awssdk_http_auth_aws_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2a4773bd2f314b1fec1792fa99b36550a8550024f944584fdae8fddada862906", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-auth-aws/2.25.23/http-auth-aws-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-auth-aws/2.25.23/http-auth-aws-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_http_auth_spi_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "233810a9a2b7d173e73173906784a8f47862a60b19efd07ae31d3b475fc91d59", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-auth-spi/2.25.23/http-auth-spi-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-auth-spi/2.25.23/http-auth-spi-2.25.23.jar" + } + }, + "software_amazon_awssdk_http_auth_spi_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6efb4d99f9accff4e8cf52fa1d2e5f05ad48319f704f0c522df61bae20c29704", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-auth-spi/2.25.23/http-auth-spi-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-auth-spi/2.25.23/http-auth-spi-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_http_client_spi_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3bcd60828dc07b0b1df5d50ec30785770a25d66a1792eab361202fe67faed55d", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-client-spi/2.25.23/http-client-spi-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-client-spi/2.25.23/http-client-spi-2.25.23.jar" + } + }, + "software_amazon_awssdk_http_client_spi_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "96ba2da82d5ba290c49952977f5d487025d2e1267f8005d26db1a12708266a46", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/http-client-spi/2.25.23/http-client-spi-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/http-client-spi/2.25.23/http-client-spi-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_identity_spi_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "05ea356492f5c01e7f7168e5e9bbe80fdf666eaf02c835296c2f9815d9974c45", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/identity-spi/2.25.23/identity-spi-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/identity-spi/2.25.23/identity-spi-2.25.23.jar" + } + }, + "software_amazon_awssdk_identity_spi_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "344642bcdfa2cd82ac617279219d06c4f6cd2d0901ebb2c03af1fe94bff19442", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/identity-spi/2.25.23/identity-spi-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/identity-spi/2.25.23/identity-spi-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_json_utils_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ed44bbd8e66984d165bac01b7f91bf993d09dd208ff4d0cf3affe91da44e37fc", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/json-utils/2.25.23/json-utils-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/json-utils/2.25.23/json-utils-2.25.23.jar" + } + }, + "software_amazon_awssdk_json_utils_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d2801ab158e94cc3c6fff8e8fee80af60c2c0187e6cbe7f14ae2cb13e0cb2e19", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/json-utils/2.25.23/json-utils-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/json-utils/2.25.23/json-utils-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_metrics_spi_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ac0ba656208cf6907a5fe5fec61045211ba7bad0cf4eb1646ba5b34274349e5e", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/metrics-spi/2.25.23/metrics-spi-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/metrics-spi/2.25.23/metrics-spi-2.25.23.jar" + } + }, + "software_amazon_awssdk_metrics_spi_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "4fdb8d634aeab2b263d493244b89538d52e9862077063c4e0fa0a78b1043e2e1", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/metrics-spi/2.25.23/metrics-spi-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/metrics-spi/2.25.23/metrics-spi-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_netty_nio_client_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "9f13494aa56f8b1dad4bbcf92912ac671b909981a3bc83b8f2378fcf2312921d", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/netty-nio-client/2.25.23/netty-nio-client-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/netty-nio-client/2.25.23/netty-nio-client-2.25.23.jar" + } + }, + "software_amazon_awssdk_netty_nio_client_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6e1ed30d033a0b9a68e141235f3c35d58ad8e83a1869e2b29e2b47fd03c991b9", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/netty-nio-client/2.25.23/netty-nio-client-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/netty-nio-client/2.25.23/netty-nio-client-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_profiles_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "ab60908ca539447f31997a2ea64ffe9f4d06a4e9507ecebd40c41c40993a4841", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/profiles/2.25.23/profiles-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/profiles/2.25.23/profiles-2.25.23.jar" + } + }, + "software_amazon_awssdk_profiles_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "5c5b723139a590e3011141ef1cd746ea66d7813c688b6ce9927fd3c552934c24", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/profiles/2.25.23/profiles-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/profiles/2.25.23/profiles-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_protocol_core_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "3c10559c976b945ace5a568325bf47fd7438186e79e96161e5ed5d80df1ad99a", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/protocol-core/2.25.23/protocol-core-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/protocol-core/2.25.23/protocol-core-2.25.23.jar" + } + }, + "software_amazon_awssdk_protocol_core_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "fa1d1c28df81fce630a7499ef680fd352bcc206c9cfb99878cb32825f015ec0d", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/protocol-core/2.25.23/protocol-core-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/protocol-core/2.25.23/protocol-core-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_regions_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "6825d754345f2947de041c9c4126d12cef62bc15239c9b07d1e68694fb2edbc7", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/regions/2.25.23/regions-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/regions/2.25.23/regions-2.25.23.jar" + } + }, + "software_amazon_awssdk_regions_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "49d9babed7db2e96ed287e6dcf415a5281a22ce1f7c652945d7e9f8e3c27e63c", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/regions/2.25.23/regions-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/regions/2.25.23/regions-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_s3_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "d4ecd8477d9c1a3fc36fb74b846a2e515b5dd1ba85d546de7b2fb5a7ac72381a", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/s3/2.25.23/s3-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/s3/2.25.23/s3-2.25.23.jar" + } + }, + "software_amazon_awssdk_s3_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "7ed9322e30b90cbda48a9ef6e070c3b7a7b5310d81f345ab14f01cb575c9c728", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/s3/2.25.23/s3-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/s3/2.25.23/s3-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_sdk_core_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "f7c3dfcc3a1771bd04edb699f20f46be9b8b9822106c920264addaf005b120ff", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/sdk-core/2.25.23/sdk-core-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/sdk-core/2.25.23/sdk-core-2.25.23.jar" + } + }, + "software_amazon_awssdk_sdk_core_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "32b6a04aef6585ac025c5ec653321dae5b947f59b43cb6f8769ac9c3c71a77c7", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/sdk-core/2.25.23/sdk-core-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/sdk-core/2.25.23/sdk-core-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_third_party_jackson_core_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "65f323196fa89c53cc391f0341bd17cec6ce4f5eaa0b109bc716f31236a5baea", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/third-party-jackson-core/2.25.23/third-party-jackson-core-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/third-party-jackson-core/2.25.23/third-party-jackson-core-2.25.23.jar" + } + }, + "software_amazon_awssdk_third_party_jackson_core_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "15d1ab23b335a1a5852f4bfafdb18d233a37946b04c118c065bc21595f8aa0d7", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/third-party-jackson-core/2.25.23/third-party-jackson-core-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/third-party-jackson-core/2.25.23/third-party-jackson-core-2.25.23-sources.jar" + } + }, + "software_amazon_awssdk_utils_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "85e15844be1276ebc705f210e22d6ea6d05f773762022bbcf95c4547a55af322", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/utils/2.25.23/utils-2.25.23.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/utils/2.25.23/utils-2.25.23.jar" + } + }, + "software_amazon_awssdk_utils_jar_sources_2_25_23": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "025a9b9670c5a7908c611a3125741c232916777b702e7eba7fc7ab4a02d8af2e", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/awssdk/utils/2.25.23/utils-2.25.23-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/awssdk/utils/2.25.23/utils-2.25.23-sources.jar" + } + }, + "software_amazon_eventstream_eventstream_1_0_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "0c37d8e696117f02c302191b8110b0d0eb20fa412fce34c3a269ec73c16ce822", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/eventstream/eventstream/1.0.1/eventstream-1.0.1.jar" + ], + "downloaded_file_path": "v1/software/amazon/eventstream/eventstream/1.0.1/eventstream-1.0.1.jar" + } + }, + "software_amazon_eventstream_eventstream_jar_sources_1_0_1": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "8953ddf1af1680008d7ae96877df9fcfff9b8d909998d5c52519dbd583215636", + "urls": [ + "https://repo1.maven.org/maven2/software/amazon/eventstream/eventstream/1.0.1/eventstream-1.0.1-sources.jar" + ], + "downloaded_file_path": "v1/software/amazon/eventstream/eventstream/1.0.1/eventstream-1.0.1-sources.jar" + } + }, + "rules_jvm_external_deps": { + "bzlFile": "@@rules_jvm_external~//:coursier.bzl", + "ruleClassName": "pinned_coursier_fetch", + "attributes": { + "user_provided_name": "rules_jvm_external_deps", + "repositories": [ + "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }" + ], + "boms": [], + "artifacts": [ + "{ \"group\": \"com.google.auth\", \"artifact\": \"google-auth-library-credentials\", \"version\": \"1.23.0\" }", + "{ \"group\": \"com.google.auth\", \"artifact\": \"google-auth-library-oauth2-http\", \"version\": \"1.23.0\" }", + "{ \"group\": \"com.google.cloud\", \"artifact\": \"google-cloud-core\", \"version\": \"2.36.1\" }", + "{ \"group\": \"com.google.cloud\", \"artifact\": \"google-cloud-storage\", \"version\": \"2.36.1\" }", + "{ \"group\": \"com.google.code.gson\", \"artifact\": \"gson\", \"version\": \"2.10.1\" }", + "{ \"group\": \"com.google.googlejavaformat\", \"artifact\": \"google-java-format\", \"version\": \"1.22.0\" }", + "{ \"group\": \"com.google.guava\", \"artifact\": \"guava\", \"version\": \"33.1.0-jre\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-artifact\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-core\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-model\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-model-builder\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-settings\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-settings-builder\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven\", \"artifact\": \"maven-resolver-provider\", \"version\": \"3.9.6\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-api\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-impl\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-connector-basic\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-spi\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-transport-file\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-transport-http\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.apache.maven.resolver\", \"artifact\": \"maven-resolver-util\", \"version\": \"1.9.18\" }", + "{ \"group\": \"org.codehaus.plexus\", \"artifact\": \"plexus-cipher\", \"version\": \"2.1.0\" }", + "{ \"group\": \"org.codehaus.plexus\", \"artifact\": \"plexus-sec-dispatcher\", \"version\": \"2.0\" }", + "{ \"group\": \"org.fusesource.jansi\", \"artifact\": \"jansi\", \"version\": \"2.4.1\" }", + "{ \"group\": \"org.slf4j\", \"artifact\": \"jul-to-slf4j\", \"version\": \"2.0.12\" }", + "{ \"group\": \"org.slf4j\", \"artifact\": \"log4j-over-slf4j\", \"version\": \"2.0.12\" }", + "{ \"group\": \"org.slf4j\", \"artifact\": \"slf4j-simple\", \"version\": \"2.0.12\" }", + "{ \"group\": \"software.amazon.awssdk\", \"artifact\": \"s3\", \"version\": \"2.25.23\" }" + ], + "fetch_sources": true, + "fetch_javadoc": false, + "resolver": "coursier", + "generate_compat_repositories": false, + "maven_install_json": "@@rules_jvm_external~//:rules_jvm_external_deps_install.json", + "override_targets": {}, + "strict_visibility": false, + "strict_visibility_value": [ + "@@//visibility:private" + ], + "additional_netrc_lines": [], + "use_credentials_from_home_netrc_file": false, + "fail_if_repin_required": false, + "use_starlark_android_rules": false, + "aar_import_bzl_label": "@build_bazel_rules_android//android:rules.bzl", + "duplicate_version_warning": "warn", + "excluded_artifacts": [], + "repin_instructions": "" + } + }, + "kotlin_rules_maven": { + "bzlFile": "@@rules_jvm_external~//:coursier.bzl", + "ruleClassName": "coursier_fetch", + "attributes": { + "user_provided_name": "kotlin_rules_maven", + "repositories": [ + "{ \"repo_url\": \"https://maven-central.storage.googleapis.com/repos/central/data/\" }", + "{ \"repo_url\": \"https://maven.google.com\" }", + "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }" + ], + "artifacts": [ + "{ \"group\": \"com.google.code.findbugs\", \"artifact\": \"jsr305\", \"version\": \"3.0.2\" }", + "{ \"group\": \"junit\", \"artifact\": \"junit\", \"version\": \"4.13-beta-3\" }", + "{ \"group\": \"com.google.protobuf\", \"artifact\": \"protobuf-java\", \"version\": \"3.6.0\" }", + "{ \"group\": \"com.google.protobuf\", \"artifact\": \"protobuf-java-util\", \"version\": \"3.6.0\" }", + "{ \"group\": \"com.google.guava\", \"artifact\": \"guava\", \"version\": \"27.1-jre\" }", + "{ \"group\": \"com.google.truth\", \"artifact\": \"truth\", \"version\": \"0.45\" }", + "{ \"group\": \"com.google.auto.service\", \"artifact\": \"auto-service\", \"version\": \"1.0.1\" }", + "{ \"group\": \"com.google.auto.service\", \"artifact\": \"auto-service-annotations\", \"version\": \"1.0.1\" }", + "{ \"group\": \"com.google.auto.value\", \"artifact\": \"auto-value\", \"version\": \"1.10.1\" }", + "{ \"group\": \"com.google.auto.value\", \"artifact\": \"auto-value-annotations\", \"version\": \"1.10.1\" }", + "{ \"group\": \"com.google.dagger\", \"artifact\": \"dagger\", \"version\": \"2.43.2\" }", + "{ \"group\": \"com.google.dagger\", \"artifact\": \"dagger-compiler\", \"version\": \"2.43.2\" }", + "{ \"group\": \"com.google.dagger\", \"artifact\": \"dagger-producers\", \"version\": \"2.43.2\" }", + "{ \"group\": \"javax.annotation\", \"artifact\": \"javax.annotation-api\", \"version\": \"1.3.2\" }", + "{ \"group\": \"javax.inject\", \"artifact\": \"javax.inject\", \"version\": \"1\" }", + "{ \"group\": \"org.pantsbuild\", \"artifact\": \"jarjar\", \"version\": \"1.7.2\" }", + "{ \"group\": \"org.jetbrains.kotlinx\", \"artifact\": \"atomicfu-js\", \"version\": \"0.15.2\" }", + "{ \"group\": \"org.jetbrains.kotlinx\", \"artifact\": \"kotlinx-serialization-runtime\", \"version\": \"1.0-M1-1.4.0-rc\" }" + ], + "fail_on_missing_checksum": true, + "fetch_sources": true, + "fetch_javadoc": false, + "excluded_artifacts": [], + "generate_compat_repositories": false, + "version_conflict_policy": "default", + "override_targets": {}, + "strict_visibility": false, + "strict_visibility_value": [ + "@@//visibility:private" + ], + "use_credentials_from_home_netrc_file": false, + "resolve_timeout": 600, + "use_starlark_android_rules": false, + "aar_import_bzl_label": "@build_bazel_rules_android//android:rules.bzl", + "duplicate_version_warning": "warn", + "ignore_empty_files": false + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_jvm_external~", + "", + "" + ], + [ + "rules_jvm_external~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin~//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "6/ftZj7oq4BTOll6YT4cDgIdEVMheBJQNspfK2KyhDo=", + "usagesDigest": "TCGFGGWWnmIwucEumGKaMX37MbtfTqv+jk8tgewRnAY=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin": { + "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl", + "ruleClassName": "kotlin_compiler_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.10/kotlin-compiler-1.9.10.zip" + ], + "sha256": "7d74863deecf8e0f28ea54c3735feab003d0eac67e8d3a791254b16889c20342", + "compiler_version": "1.9.10" + } + }, + "com_github_google_ksp": { + "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:ksp.bzl", + "ruleClassName": "ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.10-1.0.13/artifacts.zip" + ], + "sha256": "5b0b1179e8af40877d9d5929ec0260afb104956eabf2f23bb5568cfd6c20b37b", + "strip_version": "1.9.10-1.0.13" + } + }, + "kt_java_stub_template": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "urls": [ + "https://raw.githubusercontent.com/bazelbuild/bazel/6.2.1/src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt" + ], + "sha256": "78e29525872594ffc783c825f428b3e61d4f3e632f46eaa64f004b2814c4a612" + } + }, + "com_github_pinterest_ktlint": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "2b3f6f674a944d25bb8d283c3539947bbe86074793012909a55de4b771f74bcc", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/0.49.1/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + }, + "buildkite_config": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://storage.googleapis.com/rbe-toolchain/bazel-configs/rbe-ubuntu1604/latest/rbe_default.tar" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python~//python/extensions:python.bzl%python": { + "general": { + "bzlTransitiveDigest": "l7SEKGzdShn1GH45yoD3IEBi5SxT+5WsAq/OlHiiuiw=", + "usagesDigest": "YiLsNY5r63HmlgMVyESsQgfKVj6Ky/w9Zozdju6rXl4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "python_3_11_aarch64-apple-darwin": { + "bzlFile": "@@rules_python~//python:repositories.bzl", + "ruleClassName": "python_repository", + "attributes": { + "sha256": "4918cdf1cab742a90f85318f88b8122aeaa2d04705803c7b6e78e81a3dd40f80", + "patches": [], + "platform": "aarch64-apple-darwin", + "python_version": "3.11.1", + "release_filename": "20230116/cpython-3.11.1+20230116-aarch64-apple-darwin-install_only.tar.gz", + "urls": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-aarch64-apple-darwin-install_only.tar.gz" + ], + "distutils_content": "", + "strip_prefix": "python", + "ignore_root_user_error": false + } + }, + "python_3_11_aarch64-unknown-linux-gnu": { + "bzlFile": "@@rules_python~//python:repositories.bzl", + "ruleClassName": "python_repository", + "attributes": { + "sha256": "debf15783bdcb5530504f533d33fda75a7b905cec5361ae8f33da5ba6599f8b4", + "patches": [], + "platform": "aarch64-unknown-linux-gnu", + "python_version": "3.11.1", + "release_filename": "20230116/cpython-3.11.1+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz", + "urls": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz" + ], + "distutils_content": "", + "strip_prefix": "python", + "ignore_root_user_error": false + } + }, + "python_3_11_x86_64-apple-darwin": { + "bzlFile": "@@rules_python~//python:repositories.bzl", + "ruleClassName": "python_repository", + "attributes": { + "sha256": "20a4203d069dc9b710f70b09e7da2ce6f473d6b1110f9535fb6f4c469ed54733", + "patches": [], + "platform": "x86_64-apple-darwin", + "python_version": "3.11.1", + "release_filename": "20230116/cpython-3.11.1+20230116-x86_64-apple-darwin-install_only.tar.gz", + "urls": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64-apple-darwin-install_only.tar.gz" + ], + "distutils_content": "", + "strip_prefix": "python", + "ignore_root_user_error": false + } + }, + "python_3_11_x86_64-pc-windows-msvc": { + "bzlFile": "@@rules_python~//python:repositories.bzl", + "ruleClassName": "python_repository", + "attributes": { + "sha256": "edc08979cb0666a597466176511529c049a6f0bba8adf70df441708f766de5bf", + "patches": [], + "platform": "x86_64-pc-windows-msvc", + "python_version": "3.11.1", + "release_filename": "20230116/cpython-3.11.1+20230116-x86_64-pc-windows-msvc-shared-install_only.tar.gz", + "urls": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64-pc-windows-msvc-shared-install_only.tar.gz" + ], + "distutils_content": "", + "strip_prefix": "python", + "ignore_root_user_error": false + } + }, + "python_3_11_x86_64-unknown-linux-gnu": { + "bzlFile": "@@rules_python~//python:repositories.bzl", + "ruleClassName": "python_repository", + "attributes": { + "sha256": "02a551fefab3750effd0e156c25446547c238688a32fabde2995c941c03a6423", + "patches": [], + "platform": "x86_64-unknown-linux-gnu", + "python_version": "3.11.1", + "release_filename": "20230116/cpython-3.11.1+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz", + "urls": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz" + ], + "distutils_content": "", + "strip_prefix": "python", + "ignore_root_user_error": false + } + }, + "python_3_11": { + "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl", + "ruleClassName": "toolchain_aliases", + "attributes": { + "python_version": "3.11.1", + "user_repository_name": "python_3_11" + } + }, + "pythons_hub": { + "bzlFile": "@@rules_python~//python/extensions/private:pythons_hub.bzl", + "ruleClassName": "hub_repo", + "attributes": { + "toolchain_prefixes": [ + "_0000_python_3_11_" + ], + "toolchain_python_versions": [ + "3.11" + ], + "toolchain_set_python_version_constraints": [ + "False" + ], + "toolchain_user_repository_names": [ + "python_3_11" + ] + } + }, + "python_aliases": { + "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl", + "ruleClassName": "multi_toolchain_aliases", + "attributes": { + "python_versions": { + "3.11": "python_3_11" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python~", + "bazel_tools", + "bazel_tools" + ] + ] + } } } } diff --git a/README.md b/README.md index 3b2a4f1..78dd827 100644 --- a/README.md +++ b/README.md @@ -3,86 +3,123 @@ [![Build and Test][build-badge]][build-link] [![Static Analysis][static-badge]][static-link] [![Sanitizers][sanitizer-badge]][sanitizer-link] -[![Differential Fuzzing][fuzzing-badge]][fuzzing-link] [![Code Coverage][coverage-badge]][coverage-link] [![codecov][codecov-badge]][codecov-link] [![arm64][arm64-badge]][arm64-link] -The purpose of this repository is to provide a standalone, modern, and rigorous -C++ implementation of Google's ZetaSketch format, which is the foundational -serialization schema used for HyperLogLog++ aggregate mutations within Cloud -Bigtable and BigQuery. +The purpose of this repository is to provide a standalone C++ implementation +of Google's ZetaSketch format. This format is the serialization schema used +for HyperLogLog++ aggregate mutations within Cloud Bigtable and BigQuery. -It is a well-established fact that Google relies extensively upon C++ internally -for these operations; however, the open-source community has hitherto been -provided only with a Java implementation. The absence of a native C++ library -has compelled developers into awkward compromises. This project remedies that -deficiency by providing an implementation that is entirely written in safe, -modern, and performant C++23. +Google utilizes C++ internally for these operations; however, the open-source +community is provided with a Java implementation. The absence of a native C++ +library requires developers to utilize cross-language bindings. This project +provides an implementation written in C++23. -## Architectural Design and Precision +## Verification of Bit-Exactness of Output Compared to Google's Zetasketch -The primary objective of this project is to achieve precise byte-identical -serialization with the original Java implementation. Any discrepancy in the -serialized byte array, however minor, would render the output incompatible with -the existing Cloud Bigtable ecosystem. To ensure this strict conformity, our -architectural strategy avoids unnecessary reinvention. - -Instead of attempting to reverse-engineer the serialization logic, we rely upon -direct integration. We have incorporated the exact Protocol Buffer definitions -(`hllplusplus.proto`) directly from Google's repository. We compile these -definitions using the `protoc` compiler, thereby ensuring that the structural -encoding remains accurate. Furthermore, the hashing algorithm is not merely an -imitation; we have copied the exact `farmhash.cc` and `farmhash.h` source files -from Google's FarmHash repository. This guarantees that the `Fingerprint64` -hashing operations produce results identical to the original implementation. - -For the internal state machine, which governs the complex transitions between -sparse and dense representations, we have executed an idiomatic translation of -the `zetasketch-rs` Rust codebase. The Rust language, with its emphasis on -deterministic memory management and strict typological control, provided a -superior template for translation into modern C++ than the original, -inheritance-heavy Java architecture. +The implementation is verified against the upstream Java reference library +([google/zetasketch](https://github.com/google/zetasketch)) to ensure exact +byte-for-byte serialization compatibility. The testing apparatus utilizes the +following methodologies: + +### 1. Corpus Size and Dimensionality +The validation regimen consists of two components: a static golden corpus +and a dynamic differential fuzzer. +* **Static Golden Corpus (`golden_corpus.tsv`)**: Contains exactly 61 + pre-computed test vectors generated by the upstream Java ZetaSketch library. + These vectors scale from 0 elements up to 100,000 elements. +* **Dynamic Differential Fuzzer (`differential_fuzzer_test.cpp`)**: A native + C++ `cc_test` that dynamically generates randomized string data, processes + it simultaneously through both the C++ architecture and the Java ZetaSketch + reference, and asserts strict serialization parity. It executes 16 distinct + `CREATE` operations (yielding 16 sketches) and 12 distinct `MERGE` + operations (yielding an additional 64 intermediate sketches). + +### 2. Configuration Diversity +The testing matrix iterates over four structural configurations, defined by +the Normal Precision (NP) and Sparse Precision (SP): +* `NP=15, SP=20`: High precision, large sparse mode capacity. +* `NP=10, SP=15`: Low precision, standard sparse mode capacity. +* `NP=15, SP=0`: Sparse mode explicitly disabled (forces immediate dense + allocation). +* `NP=10, SP=0`: Low precision, sparse mode disabled. + +The element populations injected into these configurations are `[10, 100, 1000, +5000]`, with the golden corpus extending to `10000` and `100000`. + +### 3. API Functions Exercised +The testing framework explicitly invokes and asserts the results of the +following C++ API methods against the Java equivalents: +* `HyperLogLogPlusPlus::Create(normal_precision, sparse_precision)` +* `HyperLogLogPlusPlus::Add(std::string_view)` +* `HyperLogLogPlusPlus::FromBytes(std::span)` +* `HyperLogLogPlusPlus::Merge(HyperLogLogPlusPlus&&)` +* `HyperLogLogPlusPlus::Serialize()` +* `HyperLogLogPlusPlus::Result()` (Cardinality estimation parity verified in + `golden_corpus_test.cpp`). + +### 4. State Machine Cartesian Product Coverage +The `HyperLogLog++` architecture transitions between `SparseRepresentation` and +`NormalRepresentation`. The `Merge` function uses `std::visit` to handle the +Cartesian product of these representations. The testing regimen explicitly +targets all edges of this state machine: + +* **Sparse + Sparse**: Merging multiple small sketches keeps the state + below the SP thresholds. +* **Sparse + Sparse -> Promotion to Normal**: Triggered by merging multiple + sparse sketches whose combined unique elements exceed the maximum sparse + threshold during the merge operation. +* **Normal + Normal**: Merging sketches initialized with large element counts + forces early promotion to the normal representation prior to the merge. +* **Sparse + Normal / Normal + Sparse**: Merging sketches sitting near the + capacity threshold. Across multiple sketches, variations in hash collisions + result in a mix of sparse and normal structures, forcing the cross-mode + variant visitation branches. +* **Edge Cases**: The static corpus explicitly verifies `POP0` (completely + empty initialization states) and configurations with `SP=0` (which entirely + bypass the sparse state machine and initialize as normal). + +### 5. Endianness Validation +Dedicated unit tests confirm that the integrated FarmHash implementation +produces outputs identical to the Java reference across differing hardware +architectures, including x86_64 and ARM64. -## Performance and Code Hygiene +## Architectural Design and Precision -We have designed this library with a strict adherence to the performance -constraints required by RowKeyDB. Most notably, there is zero memory allocation -on the hot path. We avoid dynamic allocation during active sketch mutations, -relying instead upon pre-allocated, fixed-capacity arrays managed exclusively -through Resource Acquisition Is Initialization (RAII). +The primary objective of this project is to achieve byte-identical +serialization with the original Java implementation. Discrepancies in the +serialized byte array render the output incompatible with the existing Cloud +Bigtable ecosystem. To ensure this conformity, our architectural strategy +integrates existing reference logic. + +We have incorporated the exact Protocol Buffer definitions (`hllplusplus.proto`) +directly from Google's repository. We compile these definitions using the +`protoc` compiler, ensuring that the structural encoding remains accurate. +Furthermore, we have copied the exact `farmhash.cc` and `farmhash.h` source +files from Google's FarmHash repository. This guarantees that the +`Fingerprint64` hashing operations produce results identical to the original +implementation. + +For the internal state machine, which governs the transitions between sparse +and dense representations, we translated the logic from the `zetasketch-rs` +Rust codebase. The Rust implementation uses explicit memory management and +type systems that map directly to C++ constructs, whereas the original Java +architecture utilizes class inheritance. -The repository maintains a high standard of code hygiene. Our continuous -integration pipeline executes hermetic builds within Docker containers, ensuring -determinism across all environments. The code is subjected to rigorous cross- -translation-unit (CTU) static analysis using `clang-tidy`, and it is -continuously monitored by an array of runtime sanitizers (Address, Memory, -Thread, and Undefined Behavior). +## Performance and Code Hygiene -## Verification of Bit-Exactness of Output Compared to Google's Zetasketch +We have designed this library in adherence to the performance constraints +required by RowKeyDB. There is zero memory allocation on the hot path. We +avoid dynamic allocation during active sketch mutations, relying upon +pre-allocated, fixed-capacity arrays managed through Resource Acquisition Is +Initialization (RAII). -The implementation is verified against the upstream Java reference library -([google/zetasketch](https://github.com/google/zetasketch)) to ensure exact -byte-for-byte serialization compatibility. The testing apparatus utilizes the -following specific methodologies: - -* **Endianness Validation:** Dedicated unit tests confirm that the integrated - FarmHash implementation produces outputs identical to the Java reference - across differing hardware architectures, including x86_64 and ARM64. -* **Golden File Verification:** Binary Protocol Buffer files generated by the - Java library serve as the baseline. The C++ output is subjected to an exact - byte-wise comparison against these files across defined operational states: - * Sparse structures prior to the transition threshold. - * The integer boundary marking the sparse-to-dense transition. - * Dense structures following the transition. - * Merged outputs of distinct combinations (Sparse-Sparse, Sparse-Dense, - and Dense-Dense). - * The correct enforcement of Protocol Buffers explicit-set semantics, - verifying that explicitly assigned zero values are not omitted. -* **Differential Fuzzing:** The testing matrix generates randomized string - inputs, processes them simultaneously through both the C++ architecture and - the Java ZetaSketch command-line interface, and asserts strict parity to - identify deviations during dynamic state transitions. +The repository continuous integration pipeline executes hermetic builds within +Docker containers, ensuring determinism across environments. The code is +subjected to cross-translation-unit (CTU) static analysis using `clang-tidy`, +and it is continuously monitored by an array of runtime sanitizers (Address, +Memory, Thread, and Undefined Behavior). ## License and Copyright @@ -100,8 +137,6 @@ RowKeyDB (2026). [static-link]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/static_analysis.yml [sanitizer-badge]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/sanitizers.yml/badge.svg [sanitizer-link]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/sanitizers.yml -[fuzzing-badge]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/fuzzing.yml/badge.svg -[fuzzing-link]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/fuzzing.yml [coverage-badge]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/coverage.yml/badge.svg [coverage-link]: https://github.com/rowkeydb-com/zetasketch-cpp/actions/workflows/coverage.yml [codecov-badge]: https://codecov.io/gh/rowkeydb-com/zetasketch-cpp/graph/badge.svg diff --git a/src/hyperloglogplusplus.cc b/src/hyperloglogplusplus.cc index 1db47d2..ed1108c 100644 --- a/src/hyperloglogplusplus.cc +++ b/src/hyperloglogplusplus.cc @@ -17,6 +17,7 @@ #include "zetasketch/hll/sparse_representation.h" #include "zetasketch/hll/state.h" #include "zetasketch/utils/buffer_traits.h" +#include "src/farmhash/fingerprint2011.h" namespace zetasketch { @@ -24,6 +25,8 @@ std::expected HyperLogLogPlusPlus::Create( int32_t normal_precision, int32_t sparse_precision) { hll::State state; state.type = HYPERLOGLOG_PLUS_UNIQUE; + state.encoding_version = 2; + state.value_type = hll::ValueType::kBytesOrUtf8String; state.precision = normal_precision; state.sparse_precision = sparse_precision; @@ -40,10 +43,11 @@ std::expected HyperLogLogPlusPlus::Create( // NOLINTNEXTLINE(readability-convert-member-functions-to-static) void HyperLogLogPlusPlus::Add(std::string_view value) { - (void)value; - // Stub for now. Hashing is usually done via FarmHash. - // Not strictly needed to test serialization round-tripping if we use - // Add(int64_t). + const uint64_t hash = Fingerprint2011(value.data(), value.size()); + auto res = AddHash(hash); + if (!res.has_value()) { + // Ignore error for now, as in original stub + } } // NOLINTNEXTLINE(readability-convert-member-functions-to-static) diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index e40fbe5..4035844 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -82,20 +82,42 @@ cc_test( ], ) -cc_binary( - name = "fuzzer_cli", - srcs = ["fuzzer_cli.cpp"], +cc_test( + name = "golden_corpus_test", + srcs = ["golden_corpus_test.cpp"], + data = ["golden_corpus.tsv"], deps = [ "//:zetasketch-cpp", + "@googletest//:gtest_main", + ], +) + +java_binary( + name = "ZetaSketchCli", + srcs = ["ZetaSketchCli.java"], + main_class = "ZetaSketchCli", + deps = [ + "@maven//:com_google_zetasketch_zetasketch", ], ) cc_test( - name = "golden_corpus_test", - srcs = ["golden_corpus_test.cpp"], - data = ["golden_corpus.tsv"], + name = "differential_fuzzer", + srcs = ["differential_fuzzer_test.cpp"], + data = [":ZetaSketchCli"], + args = ["--java_cli=tests/ZetaSketchCli"], + deps = [ + "//:zetasketch-cpp", + "@googletest//:gtest", + ], +) + +cc_test( + name = "error_handling_test", + srcs = ["error_handling_test.cpp"], deps = [ "//:zetasketch-cpp", "@googletest//:gtest_main", ], ) + diff --git a/tests/ZetaSketchCli.java b/tests/ZetaSketchCli.java new file mode 100644 index 0000000..4c23158 --- /dev/null +++ b/tests/ZetaSketchCli.java @@ -0,0 +1,70 @@ +import com.google.zetasketch.HyperLogLogPlusPlus; +import java.util.Base64; +import java.util.Scanner; + +public class ZetaSketchCli { + public static void main(String[] args) throws Exception { + if (args.length == 0) { + System.err.println("Usage: ZetaSketchCli [normal_precision sparse_precision]"); + System.exit(1); + } + + String mode = args[0]; + if ("CREATE".equals(mode)) { + int normalPrecision = Integer.parseInt(args[1]); + int sparsePrecision = Integer.parseInt(args[2]); + + HyperLogLogPlusPlus.Builder builder = + new HyperLogLogPlusPlus.Builder().normalPrecision(normalPrecision); + if (sparsePrecision == 0) { + builder.noSparseMode(); + } else { + builder.sparsePrecision(sparsePrecision); + } + + HyperLogLogPlusPlus hll = builder.buildForStrings(); + + Scanner scanner = new Scanner(System.in); + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + if (!line.isEmpty()) { + hll.add(line); + } + } + byte[] serialized = hll.serializeToByteArray(); + StringBuilder sb = new StringBuilder(); + for (byte b : serialized) { + sb.append(String.format("%02x", b)); + } + System.out.println(sb.toString()); + } else if ("MERGE".equals(mode)) { + Scanner scanner = new Scanner(System.in); + HyperLogLogPlusPlus hll = null; + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + if (line.isEmpty()) + continue; + // Parse hex + byte[] bytes = new byte[line.length() / 2]; + for (int i = 0; i < bytes.length; i++) { + bytes[i] = (byte) Integer.parseInt(line.substring(2 * i, 2 * i + 2), 16); + } + HyperLogLogPlusPlus other = + (HyperLogLogPlusPlus) HyperLogLogPlusPlus.forProto(bytes); + if (hll == null) { + hll = other; + } else { + hll.merge(other); + } + } + if (hll != null) { + byte[] serialized = hll.serializeToByteArray(); + StringBuilder sb = new StringBuilder(); + for (byte b : serialized) { + sb.append(String.format("%02x", b)); + } + System.out.println(sb.toString()); + } + } + } +} diff --git a/tests/differential_fuzzer.py b/tests/differential_fuzzer.py deleted file mode 100644 index b2215f2..0000000 --- a/tests/differential_fuzzer.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env python3 -import subprocess -import sys - -def run_cmd(cmd, input_data): - process = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) - out, err = process.communicate(input_data + "\n") - if process.returncode != 0: - print(f"Error running {' '.join(cmd)}: {err}", file=sys.stderr) - sys.exit(1) - return out - -def fuzz_create(cpp_bin, java_bin, np, sp, num): - print(f"Testing Create NP={np}, SP={sp}, Elements={num}...", end="", flush=True) - items = [f"item_{i}" for i in range(num)] - input_data = "\n".join(items) - - java_out = run_cmd([java_bin, "CREATE", str(np), str(sp)], input_data).strip() - cpp_out = run_cmd([cpp_bin, "CREATE", str(np), str(sp)], input_data).strip() - - if java_out != cpp_out: - print(" FAILED!") - print(f"Mismatch for Create NP={np}, SP={sp}, Elements={num}") - print(f"Java: {java_out[:100]}...") - print(f"C++ : {cpp_out[:100]}...") - sys.exit(1) - print(" OK") - -def fuzz_merge(cpp_bin, java_bin, np, sp, num_sketches, items_per_sketch): - print(f"Testing Merge NP={np}, SP={sp}, {num_sketches} sketches of {items_per_sketch} items...", end="", flush=True) - - java_hexes = [] - cpp_hexes = [] - for i in range(num_sketches): - input_data = "\n".join([f"test_{i}_{j}" for j in range(items_per_sketch)]) - - java_out = run_cmd([java_bin, "CREATE", str(np), str(sp)], input_data) - cpp_out = run_cmd([cpp_bin, "CREATE", str(np), str(sp)], input_data) - - java_hexes.append(java_out.strip()) - cpp_hexes.append(cpp_out.strip()) - - java_merge_in = "\n".join(java_hexes) - cpp_merge_in = "\n".join(cpp_hexes) - - java_merged = run_cmd([java_bin, "MERGE", str(np), str(sp)], java_merge_in).strip() - cpp_merged = run_cmd([cpp_bin, "MERGE", str(np), str(sp)], cpp_merge_in).strip() - - if java_merged != cpp_merged: - print(" FAILED!") - print(f"Mismatch for Merge NP={np}, SP={sp}") - print(f"Java: {java_merged}") - print(f"C++ : {cpp_merged}") - sys.exit(1) - print(" OK") - -def main(): - if len(sys.argv) != 3: - print("Usage: differential_fuzzer.py ") - sys.exit(1) - - cpp_bin = sys.argv[1] - java_bin = sys.argv[2] - - print("Starting Differential Fuzzer...") - - configs = [ - (15, 20), - (10, 15), - (15, 0), - (10, 0) - ] - - elements = [10, 100, 1000, 5000] - - for np, sp in configs: - for num in elements: - fuzz_create(cpp_bin, java_bin, np, sp, num) - - print("Testing Merges...") - for np, sp in configs: - fuzz_merge(cpp_bin, java_bin, np, sp, 3, 100) # Merge 3 sparse sketches - fuzz_merge(cpp_bin, java_bin, np, sp, 3, 2000) # Merge 3 normal sketches - fuzz_merge(cpp_bin, java_bin, np, sp, 10, 200) # Mixed combinations - - print("All differential fuzzing tests passed.") - -if __name__ == "__main__": - main() diff --git a/tests/differential_fuzzer_test.cpp b/tests/differential_fuzzer_test.cpp new file mode 100644 index 0000000..f2caa66 --- /dev/null +++ b/tests/differential_fuzzer_test.cpp @@ -0,0 +1,279 @@ +#include +#include +#include +#include +#include +#include +#include +// NOLINTNEXTLINE(misc-include-cleaner) +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// NOLINTBEGIN(readability-magic-numbers,cppcoreguidelines-avoid-magic-numbers) + +#include +#include "zetasketch/hyperloglogplusplus.h" + +namespace { + +using zetasketch::HyperLogLogPlusPlus; + +// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables,fuchsia-statically-constructed-objects) +std::string g_java_cli; + +std::string PrintHex(const std::vector& data) { + std::ostringstream oss; + for (const uint8_t byte : data) { + oss << std::hex << std::setw(2) << std::setfill('0') + << static_cast(byte); + } + return oss.str(); +} + +uint8_t ParseHexByte(std::string_view hex_byte) { + uint32_t val = 0; + constexpr uint32_t kHexAlphaOffset = 10; + for (const char c : hex_byte) { + val <<= 4U; + if (c >= '0' && c <= '9') { + val += static_cast(c - '0'); + } else if (c >= 'a' && c <= 'f') { + val += static_cast(c - 'a') + kHexAlphaOffset; + } else if (c >= 'A' && c <= 'F') { + val += static_cast(c - 'A') + kHexAlphaOffset; + } + } + return static_cast(val); +} + +std::string RunJava(const std::string& mode, int np, int sp, + const std::string& input_data) { + if (g_java_cli.empty()) { + ADD_FAILURE() << "JAVA_CLI path is empty"; + return ""; + } + + std::array pipefd{}; + if (pipe(pipefd.data()) == -1) { + ADD_FAILURE() << "pipe failed: " << errno; + return ""; + } + + std::array outpipefd{}; + if (pipe(outpipefd.data()) == -1) { + ADD_FAILURE() << "outpipe failed: " << errno; + return ""; + } + + const pid_t pid = fork(); + if (pid == -1) { + ADD_FAILURE() << "fork failed: " << errno; + return ""; + } + + if (pid == 0) { + // Child process + close(pipefd[1]); + if (dup2(pipefd[0], STDIN_FILENO) == -1) _exit(1); + close(pipefd[0]); + + close(outpipefd[0]); + if (dup2(outpipefd[1], STDOUT_FILENO) == -1) _exit(1); + close(outpipefd[1]); + + const std::string np_str = std::to_string(np); + const std::string sp_str = std::to_string(sp); + + std::vector args; + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast) + args.push_back(const_cast(g_java_cli.c_str())); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast) + args.push_back(const_cast(mode.c_str())); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast) + args.push_back(const_cast(np_str.c_str())); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast) + args.push_back(const_cast(sp_str.c_str())); + args.push_back(nullptr); + + execv(g_java_cli.c_str(), args.data()); + std::cerr << "execv failed: " << errno << "\n"; + _exit(1); + } + + // Parent process + close(pipefd[0]); + close(outpipefd[1]); + + const ssize_t written = + write(pipefd[1], input_data.data(), input_data.size()); + if (std::cmp_not_equal(written, input_data.size())) { + ADD_FAILURE() << "Failed to write entire input to child process"; + } + close(pipefd[1]); + + std::string result; + std::array buffer{}; + while (true) { + const ssize_t bytes_read = read(outpipefd[0], buffer.data(), buffer.size()); + if (bytes_read > 0) { + result.append(buffer.data(), bytes_read); + } else if (bytes_read == 0) { + break; + } else { + if (errno == EINTR) continue; + ADD_FAILURE() << "read failed: " << errno; + break; + } + } + close(outpipefd[0]); + + int wstatus = 0; + waitpid(pid, &wstatus, 0); + + // NOLINTNEXTLINE(misc-include-cleaner) + if (!WIFEXITED(wstatus) || WEXITSTATUS(wstatus) != 0) { + ADD_FAILURE() << "Java process exited with error"; + } + + while (!result.empty() && (result.back() == '\n' || result.back() == '\r')) { + result.pop_back(); + } + return result; +} + +std::string CppCreate(int np, int sp, const std::vector& items) { + auto hll_res = HyperLogLogPlusPlus::Create(np, sp); + EXPECT_TRUE(hll_res.has_value()); + auto hll = std::move(hll_res.value()); + for (const auto& item : items) { + hll.Add(item); + } + auto ser = hll.Serialize(); + EXPECT_TRUE(ser.has_value()); + return PrintHex(ser.value()); +} + +std::string CppMerge(int np, int sp, + const std::vector& hex_sketches) { + auto hll_res = HyperLogLogPlusPlus::Create(np, sp); + EXPECT_TRUE(hll_res.has_value()); + auto hll = std::move(hll_res.value()); + + for (const auto& line : hex_sketches) { + std::vector data; + data.reserve(line.length() / 2); + for (size_t i = 0; i < line.length(); i += 2) { + data.push_back(ParseHexByte(std::string_view(line).substr(i, 2))); + } + auto other_res = HyperLogLogPlusPlus::FromBytes(data); + EXPECT_TRUE(other_res.has_value()); + auto merge_res = hll.Merge(std::move(other_res.value())); + EXPECT_TRUE(merge_res.has_value()); + } + auto ser = hll.Serialize(); + EXPECT_TRUE(ser.has_value()); + return PrintHex(ser.value()); +} + +class DifferentialFuzzerTest + : public ::testing::TestWithParam> { + protected: + static std::pair, std::string> GenerateTestItems( + const std::string& prefix, int count) { + std::vector items; + items.reserve(count); + std::string input_data; + for (int i = 0; i < count; ++i) { + const std::string item = prefix + std::to_string(i); + items.push_back(item); + input_data += item + "\n"; + } + return {items, input_data}; + } +}; + +TEST_P(DifferentialFuzzerTest, Create) { + const int np = GetParam().first; + const int sp = GetParam().second; + + const std::vector counts = {10, 100, 1000, 5000}; + for (const int num : counts) { + auto [items, input_data] = GenerateTestItems("item_", num); + + const std::string cpp_out = CppCreate(np, sp, items); + const std::string java_out = RunJava("CREATE", np, sp, input_data); + EXPECT_EQ(cpp_out, java_out) + << "Mismatch at NP=" << np << " SP=" << sp << " Elements=" << num; + } +} + +TEST_P(DifferentialFuzzerTest, Merge) { + const int np = GetParam().first; + const int sp = GetParam().second; + + const std::vector> merge_configs = { + {3, 100}, // sparse + {3, 2000}, // normal + {10, 200} // mixed + }; + + for (const auto& config : merge_configs) { + const int num_sketches = config.first; + const int items_per_sketch = config.second; + + std::vector cpp_hexes; + std::string java_merge_in; + + for (int i = 0; i < num_sketches; ++i) { + const std::string prefix = "test_" + std::to_string(i) + "_"; + auto [items, input_data] = GenerateTestItems(prefix, items_per_sketch); + + cpp_hexes.push_back(CppCreate(np, sp, items)); + java_merge_in += RunJava("CREATE", np, sp, input_data) + "\n"; + } + + const std::string cpp_merged = CppMerge(np, sp, cpp_hexes); + const std::string java_merged = RunJava("MERGE", np, sp, java_merge_in); + + EXPECT_EQ(cpp_merged, java_merged) + << "Mismatch at Merge NP=" << np << " SP=" << sp; + } +} + +INSTANTIATE_TEST_SUITE_P(Configs, DifferentialFuzzerTest, + ::testing::Values(std::make_pair(15, 20), + std::make_pair(10, 15), + std::make_pair(15, 0), + std::make_pair(10, 0))); + +} // namespace + +// NOLINTEND(readability-magic-numbers,cppcoreguidelines-avoid-magic-numbers) + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + + constexpr std::string_view kFlag = "--java_cli="; + + const std::span args_span(argv, argc); + for (size_t i = 1; i < args_span.size(); ++i) { + const std::string_view arg = args_span[i]; + if (arg.starts_with(kFlag)) { + g_java_cli = arg.substr(kFlag.length()); + } + } + + if (g_java_cli.empty()) { + std::cerr << "Error: --java_cli= flag is required\n"; + return 1; + } + return RUN_ALL_TESTS(); +} diff --git a/tests/error_handling_test.cpp b/tests/error_handling_test.cpp new file mode 100644 index 0000000..e62a265 --- /dev/null +++ b/tests/error_handling_test.cpp @@ -0,0 +1,129 @@ +#include +#include +// NOLINTBEGIN(readability-magic-numbers,cppcoreguidelines-avoid-magic-numbers) +#include +#include +#include "zetasketch/hll/encoding.h" +#include "zetasketch/hll/normal_representation.h" +#include "zetasketch/hll/sparse_representation.h" +#include "zetasketch/hll/state.h" +#include "zetasketch/hyperloglogplusplus.h" +#include "zetasketch/utils/buffer_traits.h" + +namespace { + +using zetasketch::HyperLogLogPlusPlus; +using zetasketch::hll::NormalRepresentation; +using zetasketch::hll::SparseRepresentation; +using zetasketch::hll::State; + +auto CreateNormalRepresentation(int precision, int sparse_precision, + int data_size) { + State state; + state.precision = precision; + state.sparse_precision = sparse_precision; + state.data = std::vector(data_size, 0); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif + return NormalRepresentation::Create(std::move(state)); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif +} + +TEST(ErrorHandlingTest, HllMergeIncompatiblePrecision) { + auto hll1 = HyperLogLogPlusPlus::Create(10, 15).value(); + auto hll2 = HyperLogLogPlusPlus::Create(12, 15).value(); + + auto res = hll1.Merge(std::move(hll2)); + EXPECT_FALSE(res.has_value()); + EXPECT_EQ(res.error().code, + zetasketch::utils::ErrorCode::kIncompatiblePrecision); +} + +TEST(ErrorHandlingTest, NormalCreateInvalidDataLength) { + State state; + state.precision = 10; + state.sparse_precision = 15; + state.data = std::vector(500, 0); + + auto res = NormalRepresentation::Create(std::move(state)); + EXPECT_FALSE(res.has_value()); + EXPECT_EQ(res.error().code, zetasketch::utils::ErrorCode::kInvalidState); +} + +TEST(ErrorHandlingTest, NormalMergeDowngradePath) { + auto res1 = CreateNormalRepresentation(10, 15, 1024); + ASSERT_TRUE(res1.has_value()); + auto norm1 = std::move(res1.value()); + + State state2; + state2.precision = 12; + state2.sparse_precision = 15; + state2.data = std::vector(4096, 0); + state2.data.value()[1000] = 5; + state2.data.value()[3000] = 10; + auto res2 = NormalRepresentation::Create(std::move(state2)); + ASSERT_TRUE(res2.has_value()); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif + auto norm2 = std::move(res2.value()); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif + + auto res = norm1.MergeFromNormal(std::move(norm2)); + EXPECT_TRUE(res.has_value()); +} + +TEST(ErrorHandlingTest, NormalAddSparseValueOutOfBounds) { + auto res1 = CreateNormalRepresentation(10, 15, 1024); + ASSERT_TRUE(res1.has_value()); + auto norm1 = std::move(res1.value()); + + auto sparse_enc = zetasketch::hll::encoding::Sparse::Create(10, 15).value(); + auto add_res = norm1.AddSparseValue(sparse_enc, 0xFFFFFFFF); + EXPECT_FALSE(add_res.has_value()); +} + +TEST(ErrorHandlingTest, HllFromBytesInvalidData) { + std::vector bad_bytes = {0x00, 0xFF, 0x11, 0x22}; + auto res = HyperLogLogPlusPlus::FromBytes(bad_bytes); + EXPECT_FALSE(res.has_value()); +} + +TEST(ErrorHandlingTest, SparseNormalizeInvalidSparseIndex) { + State state; + state.precision = 10; + state.sparse_precision = 15; + state.sparse_data = std::vector(); + // Push varint for a huge index difference to exceed bounds (e.g., 0xFFFFFFFF) + state.sparse_data->push_back(0xFF); + state.sparse_data->push_back(0xFF); + state.sparse_data->push_back(0xFF); + state.sparse_data->push_back(0xFF); + state.sparse_data->push_back(0x0F); + + auto res = SparseRepresentation::Create(std::move(state)); + ASSERT_TRUE(res.has_value()); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif + auto norm_res = std::move(res.value()).Normalize(); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif + EXPECT_FALSE(norm_res.has_value()); + if (!norm_res.has_value()) { + EXPECT_EQ(norm_res.error().code, + zetasketch::utils::ErrorCode::kInvalidState); + } +} + +} // namespace +// NOLINTEND(readability-magic-numbers,cppcoreguidelines-avoid-magic-numbers) diff --git a/tests/fuzzer_cli.cpp b/tests/fuzzer_cli.cpp deleted file mode 100644 index e2fac1b..0000000 --- a/tests/fuzzer_cli.cpp +++ /dev/null @@ -1,116 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "zetasketch/hyperloglogplusplus.h" - -namespace { - -using zetasketch::HyperLogLogPlusPlus; - -void PrintHex(const std::vector& data) { - for (const uint8_t byte : data) { - std::cout << std::hex << std::setw(2) << std::setfill('0') - << static_cast(byte); - } - std::cout << std::endl; -} - -uint8_t ParseHexByte(std::string_view hex_byte) { - uint32_t val = 0; - constexpr uint32_t kHexAlphaOffset = 10; - for (const char c : hex_byte) { - val <<= 4U; - if (c >= '0' && c <= '9') { - val += static_cast(c - '0'); - } else if (c >= 'a' && c <= 'f') { - val += static_cast(c - 'a') + kHexAlphaOffset; - } else if (c >= 'A' && c <= 'F') { - val += static_cast(c - 'A') + kHexAlphaOffset; - } - } - return static_cast(val); -} - -} // namespace - -int main(int argc, char** argv) { - const std::span args(argv, static_cast(argc)); - if (args.size() < 2) return 1; - const std::string mode = args[1]; - - if (mode == "CREATE") { - // We expect at least normal_precision and sparse_precision - if (args.size() < 4) return 1; - const int normal_precision = std::stoi(args[2]); - const int sparse_precision = std::stoi(args[3]); - - auto hll_res = - HyperLogLogPlusPlus::Create(normal_precision, sparse_precision); - if (!hll_res.has_value()) return 1; - - auto hll = std::move(hll_res.value()); - - std::string line; - while (std::getline(std::cin, line)) { - if (!line.empty()) { - hll.Add(line); - } - } - - auto ser = hll.Serialize(); - if (!ser.has_value()) { - std::cerr << "Serialize failed: " << ser.error().message << std::endl; - return 1; - } - - PrintHex(ser.value()); - } else if (mode == "MERGE") { - // We expect at least normal_precision and sparse_precision - if (args.size() < 4) return 1; - const int normal_precision = std::stoi(args[2]); - const int sparse_precision = std::stoi(args[3]); - - auto hll_res = - HyperLogLogPlusPlus::Create(normal_precision, sparse_precision); - if (!hll_res.has_value()) return 1; - - auto hll = std::move(hll_res.value()); - - std::string line; - while (std::getline(std::cin, line)) { - if (line.empty()) continue; - - std::vector data; - data.reserve(line.length() / 2); - - for (size_t i = 0; i < line.length(); i += 2) { - data.push_back(ParseHexByte(std::string_view(line).substr(i, 2))); - } - - auto other_res = HyperLogLogPlusPlus::FromBytes(data); - if (!other_res.has_value()) { - std::cerr << "FromBytes failed" << std::endl; - return 1; - } - - auto merge_res = hll.Merge(std::move(other_res.value())); - if (!merge_res.has_value()) { - std::cerr << "Merge failed: " << merge_res.error().message << std::endl; - return 1; - } - } - - auto ser = hll.Serialize(); - if (!ser.has_value()) return 1; - - PrintHex(ser.value()); - } - - return 0; -}