diff --git a/.arclint b/.arclint index 560c165400b..22d5a76bbae 100644 --- a/.arclint +++ b/.arclint @@ -23,8 +23,16 @@ "(^src/stirling/bpf_tools/bcc_bpf/system-headers)", "(^src/stirling/mysql/testing/.*\\.json$)", "(^src/stirling/obj_tools/testdata/go/test_go_binary.go)", + "(^src/stirling/offsetgen_offsets.json$)", "(^src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_client/main.go$)", "(^src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server/main.go$)", + "(^src/stirling/source_connectors/socket_tracer/protocols/http2/testing/go_grpc_server/main.go$)", + "(^src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.mod$)", + "(^src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.sum$)", + "(^src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server.go$)", + "(^src/stirling/testing/demo_apps/go_https/server/go.mod$)", + "(^src/stirling/testing/demo_apps/go_https/server/go.sum$)", + "(^src/stirling/testing/demo_apps/go_https/server/https_server.go$)", "(^src/stirling/utils/testdata/config$)", "(^src/ui/\\.pnp.*)", "(^src/ui/\\.yarn/)", diff --git a/bazel/container_images.bzl b/bazel/container_images.bzl index 435336460be..6fc74721496 100644 --- a/bazel/container_images.bzl +++ b/bazel/container_images.bzl @@ -287,3 +287,16 @@ def stirling_test_images(): repository = "mongo", digest = "sha256:19b2e5c91f92c7b18113a1501c5a5fe52b71a6c6d2a5232eeebb4f2abacae04a", ) + + container_pull( + name = "golang_1_23_https_server_with_buildinfo", + digest = "sha256:84120192f05cc2d809360e8876eafafa9e08cc848c188e2be0112a8b3cd2ec19", + registry = "docker.io", + repository = "ddelnano/go_https_with_mod_info", + ) + container_pull( + name = "go_1_23_grpc_server_with_mod_info", + digest = "sha256:a06b8f280a37e671f64a93d534ca35d0ac495f5f3b8adb6e623a765fc6e9a1f5", + registry = "docker.io", + repository = "ddelnano/go_1_23_grpc_server_with_mod_info", + ) diff --git a/src/stirling/BUILD.bazel b/src/stirling/BUILD.bazel index 281236e5dea..14b6a0d042f 100644 --- a/src/stirling/BUILD.bazel +++ b/src/stirling/BUILD.bazel @@ -95,6 +95,14 @@ stirling_ctrl = [ stirling_collateral = [":stirling_linux_timeconst_files"] + stirling_ctrl + stirling_java_profiling_tools +filegroup( + name = "offsetgen_offsets", + srcs = [ + "offsetgen_offsets.json", + ], + visibility = ["//visibility:public"], +) + container_layer( name = "bpf_layer", directory = "/px", diff --git a/src/stirling/binaries/go_binary_parse_profiling.cc b/src/stirling/binaries/go_binary_parse_profiling.cc index a7476ab62e5..0d9ad3028d5 100644 --- a/src/stirling/binaries/go_binary_parse_profiling.cc +++ b/src/stirling/binaries/go_binary_parse_profiling.cc @@ -21,9 +21,11 @@ #include "src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.h" using px::StatusOr; +using px::stirling::GoOffsetLocator; using px::stirling::PopulateGoTLSDebugSymbols; using px::stirling::obj_tools::DwarfReader; using px::stirling::obj_tools::ElfReader; +using px::stirling::obj_tools::ReadGoBuildInfo; //----------------------------------------------------------------------------- // This utility is designed to isolate parsing the debug symbols of a Go binary. This @@ -62,8 +64,13 @@ int main(int argc, char** argv) { } std::unique_ptr dwarf_reader = dwarf_reader_status.ConsumeValueOrDie(); + auto build_info_s = ReadGoBuildInfo(elf_reader.get()); + const auto& [go_version, build_info] = build_info_s.ConsumeValueOrDie(); + std::unique_ptr go_offset_locator = + std::make_unique(dwarf_reader.get(), build_info, go_version); + struct go_tls_symaddrs_t symaddrs; - auto status = PopulateGoTLSDebugSymbols(elf_reader.get(), dwarf_reader.get(), &symaddrs); + auto status = PopulateGoTLSDebugSymbols(go_offset_locator.get(), &symaddrs); if (!status.ok()) { LOG(ERROR) << absl::Substitute("debug symbol parsing failed with: $0", status.msg()); diff --git a/src/stirling/offsetgen_offsets.json b/src/stirling/offsetgen_offsets.json new file mode 100644 index 00000000000..cc4aa062882 --- /dev/null +++ b/src/stirling/offsetgen_offsets.json @@ -0,0 +1,15000 @@ +{ + "structs": { + "golang.org/x/net/http2.DataFrame": { + "data": { + "0.1.0": 16, + "0.2.0": 16, + "0.3.0": 16, + "0.4.0": 16, + "0.5.0": 16, + "0.6.0": 16, + "0.7.0": 16, + "0.8.0": 16, + "0.9.0": 16, + "0.10.0": 16, + "0.11.0": 16, + "0.12.0": 16, + "0.13.0": 16, + "0.14.0": 16, + "0.15.0": 16, + "0.16.0": 16, + "0.17.0": 16, + "0.18.0": 16, + "0.19.0": 16, + "0.20.0": 16, + "0.21.0": 16, + "0.22.0": 16, + "0.23.0": 16, + "0.24.0": 16, + "0.25.0": 16, + "0.26.0": 16, + "0.27.0": 16, + "0.28.0": 16, + "0.29.0": 16, + "0.30.0": 16, + "0.31.0": 16, + "0.32.0": 16, + "0.33.0": 16, + "0.34.0": 16, + "0.35.0": 16, + "0.36.0": 16, + "0.37.0": 16, + "0.38.0": 16, + "0.39.0": 16, + "0.40.0": 16 + } + }, + "golang.org/x/net/http2.FrameHeader": { + "Flags": { + "0.1.0": 2, + "0.2.0": 2, + "0.3.0": 2, + "0.4.0": 2, + "0.5.0": 2, + "0.6.0": 2, + "0.7.0": 2, + "0.8.0": 2, + "0.9.0": 2, + "0.10.0": 2, + "0.11.0": 2, + "0.12.0": 2, + "0.13.0": 2, + "0.14.0": 2, + "0.15.0": 2, + "0.16.0": 2, + "0.17.0": 2, + "0.18.0": 2, + "0.19.0": 2, + "0.20.0": 2, + "0.21.0": 2, + "0.22.0": 2, + "0.23.0": 2, + "0.24.0": 2, + "0.25.0": 2, + "0.26.0": 2, + "0.27.0": 2, + "0.28.0": 2, + "0.29.0": 2, + "0.30.0": 2, + "0.31.0": 2, + "0.32.0": 2, + "0.33.0": 2, + "0.34.0": 2, + "0.35.0": 2, + "0.36.0": 2, + "0.37.0": 2, + "0.38.0": 2, + "0.39.0": 2, + "0.40.0": 2 + }, + "StreamID": { + "0.1.0": 8, + "0.2.0": 8, + "0.3.0": 8, + "0.4.0": 8, + "0.5.0": 8, + "0.6.0": 8, + "0.7.0": 8, + "0.8.0": 8, + "0.9.0": 8, + "0.10.0": 8, + "0.11.0": 8, + "0.12.0": 8, + "0.13.0": 8, + "0.14.0": 8, + "0.15.0": 8, + "0.16.0": 8, + "0.17.0": 8, + "0.18.0": 8, + "0.19.0": 8, + "0.20.0": 8, + "0.21.0": 8, + "0.22.0": 8, + "0.23.0": 8, + "0.24.0": 8, + "0.25.0": 8, + "0.26.0": 8, + "0.27.0": 8, + "0.28.0": 8, + "0.29.0": 8, + "0.30.0": 8, + "0.31.0": 8, + "0.32.0": 8, + "0.33.0": 8, + "0.34.0": 8, + "0.35.0": 8, + "0.36.0": 8, + "0.37.0": 8, + "0.38.0": 8, + "0.39.0": 8, + "0.40.0": 8 + }, + "Type": { + "0.1.0": 1, + "0.2.0": 1, + "0.3.0": 1, + "0.4.0": 1, + "0.5.0": 1, + "0.6.0": 1, + "0.7.0": 1, + "0.8.0": 1, + "0.9.0": 1, + "0.10.0": 1, + "0.11.0": 1, + "0.12.0": 1, + "0.13.0": 1, + "0.14.0": 1, + "0.15.0": 1, + "0.16.0": 1, + "0.17.0": 1, + "0.18.0": 1, + "0.19.0": 1, + "0.20.0": 1, + "0.21.0": 1, + "0.22.0": 1, + "0.23.0": 1, + "0.24.0": 1, + "0.25.0": 1, + "0.26.0": 1, + "0.27.0": 1, + "0.28.0": 1, + "0.29.0": 1, + "0.30.0": 1, + "0.31.0": 1, + "0.32.0": 1, + "0.33.0": 1, + "0.34.0": 1, + "0.35.0": 1, + "0.36.0": 1, + "0.37.0": 1, + "0.38.0": 1, + "0.39.0": 1, + "0.40.0": 1 + } + }, + "golang.org/x/net/http2.Framer": { + "w": { + "0.1.0": 120, + "0.2.0": 120, + "0.3.0": 120, + "0.4.0": 120, + "0.5.0": 120, + "0.6.0": 120, + "0.7.0": 120, + "0.8.0": 120, + "0.9.0": 120, + "0.10.0": 120, + "0.11.0": 120, + "0.12.0": 120, + "0.13.0": 120, + "0.14.0": 120, + "0.15.0": 120, + "0.16.0": 120, + "0.17.0": 120, + "0.18.0": 120, + "0.19.0": 120, + "0.20.0": 120, + "0.21.0": 120, + "0.22.0": 120, + "0.23.0": 120, + "0.24.0": 120, + "0.25.0": 120, + "0.26.0": 120, + "0.27.0": 120, + "0.28.0": 120, + "0.29.0": 120, + "0.30.0": 120, + "0.31.0": 120, + "0.32.0": 120, + "0.33.0": 120, + "0.34.0": 120, + "0.35.0": 120, + "0.36.0": 120, + "0.37.0": 120, + "0.38.0": 120, + "0.39.0": 120, + "0.40.0": 120 + } + }, + "golang.org/x/net/http2.HeadersFrame": { + "FrameHeader": { + "0.1.0": 0, + "0.2.0": 0, + "0.3.0": 0, + "0.4.0": 0, + "0.5.0": 0, + "0.6.0": 0, + "0.7.0": 0, + "0.8.0": 0, + "0.9.0": 0, + "0.10.0": 0, + "0.11.0": 0, + "0.12.0": 0, + "0.13.0": 0, + "0.14.0": 0, + "0.15.0": 0, + "0.16.0": 0, + "0.17.0": 0, + "0.18.0": 0, + "0.19.0": 0, + "0.20.0": 0, + "0.21.0": 0, + "0.22.0": 0, + "0.23.0": 0, + "0.24.0": 0, + "0.25.0": 0, + "0.26.0": 0, + "0.27.0": 0, + "0.28.0": 0, + "0.29.0": 0, + "0.30.0": 0, + "0.31.0": 0, + "0.32.0": 0, + "0.33.0": 0, + "0.34.0": 0, + "0.35.0": 0, + "0.36.0": 0, + "0.37.0": 0, + "0.38.0": 0, + "0.39.0": 0, + "0.40.0": 0 + } + }, + "golang.org/x/net/http2.MetaHeadersFrame": { + "Fields": { + "0.1.0": 8, + "0.2.0": 8, + "0.3.0": 8, + "0.4.0": 8, + "0.5.0": 8, + "0.6.0": 8, + "0.7.0": 8, + "0.8.0": 8, + "0.9.0": 8, + "0.10.0": 8, + "0.11.0": 8, + "0.12.0": 8, + "0.13.0": 8, + "0.14.0": 8, + "0.15.0": 8, + "0.16.0": 8, + "0.17.0": 8, + "0.18.0": 8, + "0.19.0": 8, + "0.20.0": 8, + "0.21.0": 8, + "0.22.0": 8, + "0.23.0": 8, + "0.24.0": 8, + "0.25.0": 8, + "0.26.0": 8, + "0.27.0": 8, + "0.28.0": 8, + "0.29.0": 8, + "0.30.0": 8, + "0.31.0": 8, + "0.32.0": 8, + "0.33.0": 8, + "0.34.0": 8, + "0.35.0": 8, + "0.36.0": 8, + "0.37.0": 8, + "0.38.0": 8, + "0.39.0": 8, + "0.40.0": 8 + }, + "HeadersFrame": { + "0.1.0": 0, + "0.2.0": 0, + "0.3.0": 0, + "0.4.0": 0, + "0.5.0": 0, + "0.6.0": 0, + "0.7.0": 0, + "0.8.0": 0, + "0.9.0": 0, + "0.10.0": 0, + "0.11.0": 0, + "0.12.0": 0, + "0.13.0": 0, + "0.14.0": 0, + "0.15.0": 0, + "0.16.0": 0, + "0.17.0": 0, + "0.18.0": 0, + "0.19.0": 0, + "0.20.0": 0, + "0.21.0": 0, + "0.22.0": 0, + "0.23.0": 0, + "0.24.0": 0, + "0.25.0": 0, + "0.26.0": 0, + "0.27.0": 0, + "0.28.0": 0, + "0.29.0": 0, + "0.30.0": 0, + "0.31.0": 0, + "0.32.0": 0, + "0.33.0": 0, + "0.34.0": 0, + "0.35.0": 0, + "0.36.0": 0, + "0.37.0": 0, + "0.38.0": 0, + "0.39.0": 0, + "0.40.0": 0 + } + }, + "golang.org/x/net/http2/hpack.HeaderField": { + "Name": { + "0.1.0": 0, + "0.2.0": 0, + "0.3.0": 0, + "0.4.0": 0, + "0.5.0": 0, + "0.6.0": 0, + "0.7.0": 0, + "0.8.0": 0, + "0.9.0": 0, + "0.10.0": 0, + "0.11.0": 0, + "0.12.0": 0, + "0.13.0": 0, + "0.14.0": 0, + "0.15.0": 0, + "0.16.0": 0, + "0.17.0": 0, + "0.18.0": 0, + "0.19.0": 0, + "0.20.0": 0, + "0.21.0": 0, + "0.22.0": 0, + "0.23.0": 0, + "0.24.0": 0, + "0.25.0": 0, + "0.26.0": 0, + "0.27.0": 0, + "0.28.0": 0, + "0.29.0": 0, + "0.30.0": 0, + "0.31.0": 0, + "0.32.0": 0, + "0.33.0": 0, + "0.34.0": 0, + "0.35.0": 0, + "0.36.0": 0, + "0.37.0": 0, + "0.38.0": 0, + "0.39.0": 0, + "0.40.0": 0 + }, + "Value": { + "0.1.0": 16, + "0.2.0": 16, + "0.3.0": 16, + "0.4.0": 16, + "0.5.0": 16, + "0.6.0": 16, + "0.7.0": 16, + "0.8.0": 16, + "0.9.0": 16, + "0.10.0": 16, + "0.11.0": 16, + "0.12.0": 16, + "0.13.0": 16, + "0.14.0": 16, + "0.15.0": 16, + "0.16.0": 16, + "0.17.0": 16, + "0.18.0": 16, + "0.19.0": 16, + "0.20.0": 16, + "0.21.0": 16, + "0.22.0": 16, + "0.23.0": 16, + "0.24.0": 16, + "0.25.0": 16, + "0.26.0": 16, + "0.27.0": 16, + "0.28.0": 16, + "0.29.0": 16, + "0.30.0": 16, + "0.31.0": 16, + "0.32.0": 16, + "0.33.0": 16, + "0.34.0": 16, + "0.35.0": 16, + "0.36.0": 16, + "0.37.0": 16, + "0.38.0": 16, + "0.39.0": 16, + "0.40.0": 16 + } + }, + "google.golang.org/grpc/credentials/internal.syscallConn": { + "conn": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": null, + "1.15.0": null, + "1.16.0": null, + "1.17.0": null, + "1.18.0": null, + "1.18.1": null, + "1.19.0": null, + "1.19.1": null, + "1.20.0": null, + "1.20.1": null, + "1.21.0": null, + "1.21.1": null, + "1.21.2": null, + "1.21.3": null, + "1.21.4": null, + "1.22.0": null, + "1.22.1": null, + "1.22.2": null, + "1.22.3": null, + "1.23.0": null, + "1.23.1": null, + "1.24.0": null, + "1.25.0": null, + "1.25.1": null, + "1.26.0": null, + "1.27.0-pre": null, + "1.27.0": null, + "1.27.1": null, + "1.28.0-pre": null, + "1.28.0": null, + "1.28.1": null, + "1.29.0-dev": null, + "1.29.0": null, + "1.29.1": null, + "1.30.0-dev": null, + "1.30.0-dev.1": null, + "1.30.0": null, + "1.30.1": null, + "1.31.0-dev": null, + "1.31.0": null, + "1.31.1": null, + "1.32.0-dev": null, + "1.32.0": null, + "1.33.0-dev": null, + "1.33.0": null, + "1.33.1": null, + "1.33.2": null, + "1.33.3": null, + "1.34.0-dev": null, + "1.34.0": null, + "1.34.1": null, + "1.34.2": null, + "1.35.0-dev": null, + "1.35.0": null, + "1.35.1": null, + "1.36.0-dev": null, + "1.36.0": null, + "1.36.1": null, + "1.37.0-dev": null, + "1.37.0": null, + "1.37.1": null, + "1.38.0-dev": null, + "1.38.0": null, + "1.38.1": null, + "1.39.0-dev": null, + "1.39.0": null, + "1.39.1": null, + "1.40.0-dev": null, + "1.40.0": null, + "1.40.1": null, + "1.41.0-dev": null, + "1.41.0": null, + "1.41.1": null, + "1.42.0-dev": null, + "1.42.0": null, + "1.43.0-dev": null, + "1.43.0": null, + "1.44.0-dev": null, + "1.44.0": null, + "1.45.0-dev": null, + "1.45.0": null, + "1.46.0-dev": null, + "1.46.0": null, + "1.46.1": null, + "1.46.2": null, + "1.47.0-dev": null, + "1.47.0": null, + "1.48.0-dev": null, + "1.48.0": null, + "1.49.0-dev": null, + "1.49.0": null, + "1.50.0-dev": null, + "1.50.0": null, + "1.50.1": null, + "1.51.0-dev": null, + "1.51.0": null, + "1.52.0-dev": null, + "1.52.0": null, + "1.52.1": null, + "1.52.3": null, + "1.53.0-dev": null, + "1.53.0": null, + "1.54.0": null, + "1.54.1": null, + "1.55.0-dev": null, + "1.55.0": null, + "1.55.1": null, + "1.56.0-dev": null, + "1.56.0": null, + "1.56.1": null, + "1.56.2": null, + "1.56.3": null, + "1.57.0-dev": null, + "1.57.0": null, + "1.57.1": null, + "1.57.2": null, + "1.58.0-dev": null, + "1.58.0": null, + "1.58.1": null, + "1.58.2": null, + "1.58.3": null, + "1.59.0-dev": null, + "1.59.0": null, + "1.60.0-dev": null, + "1.60.0": null, + "1.60.1": null, + "1.61.0-dev": null, + "1.61.0": null, + "1.61.1": null, + "1.61.2": null, + "1.62.0": null, + "1.62.1": null, + "1.62.2": null, + "1.63.0": null, + "1.63.1": null, + "1.63.2": null, + "1.63.3": null, + "1.64.0": null, + "1.64.1": null, + "1.65.0-dev": null, + "1.65.0": null, + "1.65.1": null, + "1.66.0-dev": null, + "1.66.0": null, + "1.66.1": null, + "1.66.2": null, + "1.66.3": null, + "1.67.0-dev": null, + "1.67.0": null, + "1.67.1": null, + "1.67.2": null, + "1.67.3": null, + "1.68.0-dev": null, + "1.68.0": null, + "1.68.1": null, + "1.68.2": null, + "1.69.0-dev": null, + "1.69.0": null, + "1.69.2": null, + "1.69.4": null, + "1.70.0-dev": null, + "1.70.0": null, + "1.71.0-dev": null, + "1.71.0": null, + "1.71.1": null, + "1.71.2": null, + "1.71.3": null, + "1.72.0-dev": null, + "1.72.0": null, + "1.72.1": null, + "1.72.2": null, + "1.73.0-dev": null, + "1.74.0-dev": null + } + }, + "google.golang.org/grpc/internal/transport.bufWriter": { + "conn": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": 40, + "1.15.0": 40, + "1.16.0": 40, + "1.17.0": 40, + "1.18.0": 40, + "1.18.1": 40, + "1.19.0": 40, + "1.19.1": 40, + "1.20.0": 40, + "1.20.1": 40, + "1.21.0": 40, + "1.21.1": 40, + "1.21.2": 40, + "1.21.3": 40, + "1.21.4": 40, + "1.22.0": 40, + "1.22.1": 40, + "1.22.2": 40, + "1.22.3": 40, + "1.23.0": 40, + "1.23.1": 40, + "1.24.0": 40, + "1.25.0": 40, + "1.25.1": 40, + "1.26.0": 40, + "1.27.0-pre": 40, + "1.27.0": 40, + "1.27.1": 40, + "1.28.0-pre": 40, + "1.28.0": 40, + "1.28.1": 40, + "1.29.0-dev": 40, + "1.29.0": 40, + "1.29.1": 40, + "1.30.0-dev": 40, + "1.30.0-dev.1": 40, + "1.30.0": 40, + "1.30.1": 40, + "1.31.0-dev": 40, + "1.31.0": 40, + "1.31.1": 40, + "1.32.0-dev": 40, + "1.32.0": 40, + "1.33.0-dev": 40, + "1.33.0": 40, + "1.33.1": 40, + "1.33.2": 40, + "1.33.3": 40, + "1.34.0-dev": 40, + "1.34.0": 40, + "1.34.1": 40, + "1.34.2": 40, + "1.35.0-dev": 40, + "1.35.0": 40, + "1.35.1": 40, + "1.36.0-dev": 40, + "1.36.0": 40, + "1.36.1": 40, + "1.37.0-dev": 40, + "1.37.0": 40, + "1.37.1": 40, + "1.38.0-dev": 40, + "1.38.0": 40, + "1.38.1": 40, + "1.39.0-dev": 40, + "1.39.0": 40, + "1.39.1": 40, + "1.40.0-dev": 40, + "1.40.0": 40, + "1.40.1": 40, + "1.41.0-dev": 40, + "1.41.0": 40, + "1.41.1": 40, + "1.42.0-dev": 40, + "1.42.0": 40, + "1.43.0-dev": 40, + "1.43.0": 40, + "1.44.0-dev": 40, + "1.44.0": 40, + "1.45.0-dev": 40, + "1.45.0": 40, + "1.46.0-dev": 40, + "1.46.0": 40, + "1.46.1": 40, + "1.46.2": 40, + "1.47.0-dev": 40, + "1.47.0": 40, + "1.48.0-dev": 40, + "1.48.0": 40, + "1.49.0-dev": 40, + "1.49.0": 40, + "1.50.0-dev": 40, + "1.50.0": 40, + "1.50.1": 40, + "1.51.0-dev": 40, + "1.51.0": 40, + "1.52.0-dev": 40, + "1.52.0": 40, + "1.52.1": 40, + "1.52.3": 40, + "1.53.0-dev": 40, + "1.53.0": 40, + "1.54.0": 40, + "1.54.1": 40, + "1.55.0-dev": 40, + "1.55.0": 40, + "1.55.1": 40, + "1.56.0-dev": 40, + "1.56.0": 40, + "1.56.1": 40, + "1.56.2": 40, + "1.56.3": 40, + "1.57.0-dev": 40, + "1.57.0": 40, + "1.57.1": 40, + "1.57.2": 40, + "1.58.0-dev": 40, + "1.58.0": 48, + "1.58.1": 48, + "1.58.2": 48, + "1.58.3": 48, + "1.59.0-dev": 48, + "1.59.0": 48, + "1.60.0-dev": 48, + "1.60.0": 48, + "1.60.1": 48, + "1.61.0-dev": 48, + "1.61.0": 48, + "1.61.1": 48, + "1.61.2": 48, + "1.62.0": 48, + "1.62.1": 48, + "1.62.2": 48, + "1.63.0": 48, + "1.63.1": 48, + "1.63.2": 48, + "1.63.3": 48, + "1.64.0": 48, + "1.64.1": 48, + "1.65.0-dev": 48, + "1.65.0": 48, + "1.65.1": 48, + "1.66.0-dev": 48, + "1.66.0": 48, + "1.66.1": 48, + "1.66.2": 48, + "1.66.3": 48, + "1.67.0-dev": 48, + "1.67.0": 48, + "1.67.1": 48, + "1.67.2": 48, + "1.67.3": 48, + "1.68.0-dev": 48, + "1.68.0": 48, + "1.68.1": 48, + "1.68.2": 48, + "1.69.0-dev": 48, + "1.69.0": 48, + "1.69.2": 48, + "1.69.4": 48, + "1.70.0-dev": 48, + "1.70.0": 48, + "1.71.0-dev": 48, + "1.71.0": 48, + "1.71.1": 48, + "1.71.2": 48, + "1.71.3": 48, + "1.72.0-dev": 48, + "1.72.0": 48, + "1.72.1": 48, + "1.72.2": 48, + "1.73.0-dev": 48, + "1.74.0-dev": 48 + } + }, + "google.golang.org/grpc/internal/transport.http2Client": { + "conn": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": 64, + "1.15.0": 64, + "1.16.0": 64, + "1.17.0": 64, + "1.18.0": 64, + "1.18.1": 64, + "1.19.0": 64, + "1.19.1": 64, + "1.20.0": 64, + "1.20.1": 64, + "1.21.0": 64, + "1.21.1": 64, + "1.21.2": 64, + "1.21.3": 64, + "1.21.4": 64, + "1.22.0": 64, + "1.22.1": 64, + "1.22.2": 64, + "1.22.3": 64, + "1.23.0": 64, + "1.23.1": 64, + "1.24.0": 64, + "1.35.0": 64, + "1.35.1": 64, + "1.36.0-dev": 64, + "1.36.0": 64, + "1.36.1": 64, + "1.37.0-dev": 64, + "1.37.0": 64, + "1.37.1": 64, + "1.38.0-dev": 64, + "1.38.0": 64, + "1.38.1": 64, + "1.39.0-dev": 64, + "1.39.0": 64, + "1.39.1": 64, + "1.40.0-dev": 64, + "1.40.0": 64, + "1.40.1": 64, + "1.41.0-dev": 64, + "1.41.0": 64, + "1.41.1": 64, + "1.42.0-dev": 64, + "1.42.0": 64, + "1.43.0-dev": 64, + "1.43.0": 64, + "1.44.0-dev": 64, + "1.44.0": 64, + "1.45.0-dev": 64, + "1.45.0": 64, + "1.46.0-dev": 64, + "1.46.0": 64, + "1.46.1": 64, + "1.46.2": 64, + "1.47.0-dev": 64, + "1.47.0": 64, + "1.48.0-dev": 64, + "1.48.0": 64, + "1.49.0-dev": 64, + "1.49.0": 64, + "1.50.0-dev": 64, + "1.50.0": 64, + "1.50.1": 64, + "1.51.0-dev": 64, + "1.51.0": 64, + "1.52.0-dev": 64, + "1.25.0": 72, + "1.25.1": 72, + "1.26.0": 72, + "1.27.0-pre": 72, + "1.27.0": 72, + "1.27.1": 72, + "1.28.0-pre": 72, + "1.28.0": 72, + "1.28.1": 72, + "1.29.0-dev": 72, + "1.29.0": 72, + "1.29.1": 72, + "1.30.0-dev": 72, + "1.30.0-dev.1": 72, + "1.30.0": 72, + "1.30.1": 72, + "1.31.0-dev": 72, + "1.31.0": 72, + "1.31.1": 72, + "1.32.0-dev": 72, + "1.32.0": 72, + "1.33.0-dev": 72, + "1.33.0": 72, + "1.33.1": 72, + "1.33.2": 72, + "1.33.3": 72, + "1.34.0-dev": 72, + "1.34.0": 72, + "1.34.1": 72, + "1.34.2": 72, + "1.35.0-dev": 72, + "1.58.0": 128, + "1.58.1": 128, + "1.58.2": 128, + "1.58.3": 128, + "1.59.0-dev": 128, + "1.59.0": 128, + "1.60.0-dev": 128, + "1.60.0": 128, + "1.60.1": 128, + "1.61.0-dev": 128, + "1.61.0": 128, + "1.61.1": 128, + "1.61.2": 128, + "1.62.0": 128, + "1.62.1": 128, + "1.62.2": 128, + "1.63.0": 128, + "1.63.1": 128, + "1.63.2": 128, + "1.63.3": 128, + "1.64.0": 128, + "1.64.1": 128, + "1.65.0-dev": 128, + "1.65.0": 128, + "1.65.1": 128, + "1.66.0-dev": 128, + "1.66.0": 128, + "1.66.1": 128, + "1.66.2": 128, + "1.66.3": 128, + "1.67.0-dev": 128, + "1.67.0": 128, + "1.67.1": 128, + "1.67.2": 128, + "1.67.3": 128, + "1.68.0-dev": 128, + "1.68.0": 128, + "1.68.1": 128, + "1.68.2": 128, + "1.69.0-dev": 128, + "1.69.0": 128, + "1.69.2": 128, + "1.69.4": 128, + "1.70.0-dev": 128, + "1.70.0": 128, + "1.71.0-dev": 128, + "1.71.0": 128, + "1.71.1": 128, + "1.71.2": 128, + "1.71.3": 128, + "1.72.0-dev": 128, + "1.72.0": 128, + "1.72.1": 128, + "1.72.2": 128, + "1.73.0-dev": 128, + "1.74.0-dev": 128, + "1.52.0": 136, + "1.52.1": 136, + "1.52.3": 136, + "1.53.0-dev": 136, + "1.53.0": 136, + "1.54.0": 136, + "1.54.1": 136, + "1.55.0-dev": 136, + "1.55.0": 136, + "1.55.1": 136, + "1.56.0-dev": 136, + "1.56.0": 136, + "1.56.1": 136, + "1.56.2": 136, + "1.56.3": 136, + "1.57.0-dev": 136, + "1.57.0": 136, + "1.57.1": 136, + "1.57.2": 136, + "1.58.0-dev": 136 + } + }, + "google.golang.org/grpc/internal/transport.http2Server": { + "conn": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.60.0": 16, + "1.60.1": 16, + "1.61.0-dev": 16, + "1.61.0": 16, + "1.61.1": 16, + "1.61.2": 16, + "1.62.0": 16, + "1.62.1": 16, + "1.62.2": 16, + "1.63.0": 16, + "1.63.1": 16, + "1.63.2": 16, + "1.63.3": 16, + "1.64.0": 16, + "1.64.1": 16, + "1.65.0-dev": 16, + "1.65.0": 16, + "1.65.1": 16, + "1.66.0-dev": 16, + "1.66.0": 16, + "1.66.1": 16, + "1.66.2": 16, + "1.66.3": 16, + "1.67.0-dev": 16, + "1.67.0": 16, + "1.67.1": 16, + "1.67.2": 16, + "1.67.3": 16, + "1.68.0-dev": 16, + "1.68.0": 16, + "1.68.1": 16, + "1.68.2": 16, + "1.69.0-dev": 16, + "1.69.0": 16, + "1.69.2": 16, + "1.69.4": 16, + "1.70.0-dev": 16, + "1.70.0": 16, + "1.71.0-dev": 16, + "1.71.0": 16, + "1.71.1": 16, + "1.71.2": 16, + "1.71.3": 16, + "1.72.0-dev": 16, + "1.72.0": 16, + "1.72.1": 16, + "1.72.2": 16, + "1.73.0-dev": 16, + "1.74.0-dev": 16, + "1.24.0": 24, + "1.25.0": 24, + "1.25.1": 24, + "1.14.0": 32, + "1.15.0": 32, + "1.16.0": 32, + "1.17.0": 32, + "1.18.0": 32, + "1.18.1": 32, + "1.19.0": 32, + "1.19.1": 32, + "1.20.0": 32, + "1.20.1": 32, + "1.21.0": 32, + "1.21.1": 32, + "1.21.2": 32, + "1.21.3": 32, + "1.21.4": 32, + "1.22.0": 32, + "1.22.1": 32, + "1.22.2": 32, + "1.22.3": 32, + "1.23.0": 32, + "1.23.1": 32, + "1.26.0": 32, + "1.27.0-pre": 32, + "1.27.0": 32, + "1.27.1": 32, + "1.28.0-pre": 32, + "1.28.0": 32, + "1.28.1": 32, + "1.29.0-dev": 32, + "1.29.0": 32, + "1.29.1": 32, + "1.30.0-dev": 32, + "1.30.0-dev.1": 32, + "1.30.0": 32, + "1.30.1": 32, + "1.31.0-dev": 32, + "1.31.0": 32, + "1.31.1": 32, + "1.32.0-dev": 32, + "1.32.0": 32, + "1.33.0-dev": 32, + "1.33.0": 32, + "1.33.1": 32, + "1.33.2": 32, + "1.33.3": 32, + "1.34.0-dev": 32, + "1.34.0": 32, + "1.34.1": 32, + "1.34.2": 32, + "1.35.0-dev": 32, + "1.35.0": 32, + "1.35.1": 32, + "1.36.0-dev": 32, + "1.36.0": 32, + "1.36.1": 32, + "1.37.0-dev": 32, + "1.37.0": 32, + "1.37.1": 32, + "1.38.0-dev": 32, + "1.38.0": 32, + "1.38.1": 32, + "1.39.0-dev": 32, + "1.39.0": 32, + "1.39.1": 32, + "1.40.0-dev": 32, + "1.40.0": 32, + "1.40.1": 32, + "1.41.0-dev": 32, + "1.41.0": 32, + "1.41.1": 32, + "1.42.0-dev": 32, + "1.42.0": 32, + "1.43.0-dev": 32, + "1.43.0": 32, + "1.44.0-dev": 32, + "1.44.0": 32, + "1.45.0-dev": 32, + "1.45.0": 32, + "1.46.0-dev": 32, + "1.46.0": 32, + "1.46.1": 32, + "1.46.2": 32, + "1.47.0-dev": 32, + "1.47.0": 32, + "1.48.0-dev": 32, + "1.48.0": 32, + "1.49.0-dev": 32, + "1.49.0": 32, + "1.50.0-dev": 32, + "1.50.0": 32, + "1.50.1": 32, + "1.51.0-dev": 32, + "1.51.0": 32, + "1.52.0-dev": 32, + "1.52.0": 32, + "1.52.1": 32, + "1.52.3": 32, + "1.53.0-dev": 32, + "1.53.0": 32, + "1.54.0": 32, + "1.54.1": 32, + "1.55.0-dev": 32, + "1.55.0": 32, + "1.55.1": 32, + "1.56.0-dev": 32, + "1.56.0": 32, + "1.56.1": 32, + "1.56.2": 32, + "1.56.3": 32, + "1.57.0-dev": 32, + "1.57.0": 32, + "1.57.1": 32, + "1.57.2": 32, + "1.58.0-dev": 32, + "1.58.0": 32, + "1.58.1": 32, + "1.58.2": 32, + "1.58.3": 32, + "1.59.0-dev": 32, + "1.59.0": 32, + "1.60.0-dev": 32 + } + }, + "google.golang.org/grpc/internal/transport.loopyWriter": { + "framer": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": 40, + "1.15.0": 40, + "1.16.0": 40, + "1.17.0": 40, + "1.18.0": 40, + "1.18.1": 40, + "1.19.0": 40, + "1.19.1": 40, + "1.20.0": 40, + "1.20.1": 40, + "1.21.0": 40, + "1.21.1": 40, + "1.21.2": 40, + "1.21.3": 40, + "1.21.4": 40, + "1.22.0": 40, + "1.22.1": 40, + "1.22.2": 40, + "1.22.3": 40, + "1.23.0": 40, + "1.23.1": 40, + "1.24.0": 40, + "1.25.0": 40, + "1.25.1": 40, + "1.26.0": 40, + "1.27.0-pre": 40, + "1.27.0": 40, + "1.27.1": 40, + "1.28.0-pre": 40, + "1.28.0": 40, + "1.28.1": 40, + "1.29.0-dev": 40, + "1.29.0": 40, + "1.29.1": 40, + "1.30.0-dev": 40, + "1.30.0-dev.1": 40, + "1.30.0": 40, + "1.30.1": 40, + "1.31.0-dev": 40, + "1.31.0": 40, + "1.31.1": 40, + "1.32.0-dev": 40, + "1.32.0": 40, + "1.33.0-dev": 40, + "1.33.0": 40, + "1.33.1": 40, + "1.33.2": 40, + "1.33.3": 40, + "1.34.0-dev": 40, + "1.34.0": 40, + "1.34.1": 40, + "1.34.2": 40, + "1.35.0-dev": 40, + "1.35.0": 40, + "1.35.1": 40, + "1.36.0-dev": 40, + "1.36.0": 40, + "1.36.1": 40, + "1.37.0-dev": 40, + "1.37.0": 40, + "1.37.1": 40, + "1.38.0-dev": 40, + "1.38.0": 40, + "1.38.1": 40, + "1.39.0-dev": 40, + "1.39.0": 40, + "1.39.1": 40, + "1.40.0-dev": 40, + "1.40.0": 40, + "1.40.1": 40, + "1.41.0-dev": 40, + "1.41.0": 40, + "1.41.1": 40, + "1.42.0-dev": 40, + "1.42.0": 40, + "1.43.0-dev": 40, + "1.43.0": 40, + "1.44.0-dev": 40, + "1.44.0": 40, + "1.45.0-dev": 40, + "1.45.0": 40, + "1.46.0-dev": 40, + "1.46.0": 40, + "1.46.1": 40, + "1.46.2": 40, + "1.47.0-dev": 40, + "1.47.0": 40, + "1.48.0-dev": 40, + "1.48.0": 40, + "1.49.0-dev": 40, + "1.49.0": 40, + "1.50.0-dev": 40, + "1.50.0": 40, + "1.50.1": 40, + "1.51.0-dev": 40, + "1.51.0": 40, + "1.52.0-dev": 40, + "1.52.0": 40, + "1.52.1": 40, + "1.52.3": 40, + "1.53.0-dev": 40, + "1.53.0": 40, + "1.54.0": 40, + "1.54.1": 40, + "1.55.0-dev": 40, + "1.55.0": 40, + "1.55.1": 40, + "1.56.0-dev": 40, + "1.56.0": 40, + "1.56.1": 40, + "1.56.2": 40, + "1.56.3": 40, + "1.57.0-dev": 40, + "1.57.0": 40, + "1.57.1": 40, + "1.57.2": 40, + "1.58.0-dev": 40, + "1.58.0": 40, + "1.58.1": 40, + "1.58.2": 40, + "1.58.3": 40, + "1.59.0-dev": 40, + "1.59.0": 40, + "1.60.0-dev": 40, + "1.60.0": 40, + "1.60.1": 40, + "1.61.0-dev": 40, + "1.61.0": 40, + "1.61.1": 40, + "1.61.2": 40, + "1.62.0": 40, + "1.62.1": 40, + "1.62.2": 40, + "1.63.0": 40, + "1.63.1": 40, + "1.63.2": 40, + "1.63.3": 40, + "1.64.0": 40, + "1.64.1": 40, + "1.65.0-dev": 40, + "1.65.0": 40, + "1.65.1": 40, + "1.66.0-dev": 40, + "1.66.0": 40, + "1.66.1": 40, + "1.66.2": 40, + "1.66.3": 40, + "1.67.0-dev": 40, + "1.67.0": 40, + "1.67.1": 40, + "1.67.2": 40, + "1.67.3": 40, + "1.68.0-dev": 40, + "1.68.0": 40, + "1.68.1": 40, + "1.68.2": 40, + "1.69.0-dev": 40, + "1.69.0": 40, + "1.69.2": 40, + "1.69.4": 40, + "1.70.0-dev": 40, + "1.70.0": 40, + "1.71.0-dev": 40, + "1.71.0": 40, + "1.71.1": 40, + "1.71.2": 40, + "1.71.3": 40, + "1.72.0-dev": 40, + "1.72.0": 40, + "1.72.1": 40, + "1.72.2": 40, + "1.73.0-dev": 40, + "1.74.0-dev": 40 + } + }, + "crypto/tls.Conn": { + "conn": { + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0, + "1.23.8": 0, + "1.23.9": 0, + "1.24.0": 0, + "1.24.1": 0, + "1.24.2": 0, + "1.24.3": 0 + } + }, + "internal/poll.FD": { + "Sysfd": { + "1.19.0": 16, + "1.19.1": 16, + "1.19.2": 16, + "1.19.3": 16, + "1.19.4": 16, + "1.19.5": 16, + "1.19.6": 16, + "1.19.7": 16, + "1.19.8": 16, + "1.19.9": 16, + "1.19.10": 16, + "1.19.11": 16, + "1.19.12": 16, + "1.19.13": 16, + "1.20.0": 16, + "1.20.1": 16, + "1.20.2": 16, + "1.20.3": 16, + "1.20.4": 16, + "1.20.5": 16, + "1.20.6": 16, + "1.20.7": 16, + "1.20.8": 16, + "1.20.9": 16, + "1.20.10": 16, + "1.20.11": 16, + "1.20.12": 16, + "1.20.13": 16, + "1.20.14": 16, + "1.21.0": 16, + "1.21.1": 16, + "1.21.2": 16, + "1.21.3": 16, + "1.21.4": 16, + "1.21.5": 16, + "1.21.6": 16, + "1.21.7": 16, + "1.21.8": 16, + "1.21.9": 16, + "1.21.10": 16, + "1.21.11": 16, + "1.21.12": 16, + "1.21.13": 16, + "1.22.0": 16, + "1.22.1": 16, + "1.22.2": 16, + "1.22.3": 16, + "1.22.4": 16, + "1.22.5": 16, + "1.22.6": 16, + "1.22.7": 16, + "1.22.8": 16, + "1.22.9": 16, + "1.22.10": 16, + "1.22.11": 16, + "1.22.12": 16, + "1.23.0": 16, + "1.23.1": 16, + "1.23.2": 16, + "1.23.3": 16, + "1.23.4": 16, + "1.23.5": 16, + "1.23.6": 16, + "1.23.7": 16, + "1.23.8": 16, + "1.23.9": 16, + "1.24.0": 16, + "1.24.1": 16, + "1.24.2": 16, + "1.24.3": 16 + } + }, + "net/http.http2DataFrame": { + "data": { + "1.19.0": 16, + "1.19.1": 16, + "1.19.2": 16, + "1.19.3": 16, + "1.19.4": 16, + "1.19.5": 16, + "1.19.6": 16, + "1.19.7": 16, + "1.19.8": 16, + "1.19.9": 16, + "1.19.10": 16, + "1.19.11": 16, + "1.19.12": 16, + "1.19.13": 16, + "1.20.0": 16, + "1.20.1": 16, + "1.20.2": 16, + "1.20.3": 16, + "1.20.4": 16, + "1.20.5": 16, + "1.20.6": 16, + "1.20.7": 16, + "1.20.8": 16, + "1.20.9": 16, + "1.20.10": 16, + "1.20.11": 16, + "1.20.12": 16, + "1.20.13": 16, + "1.20.14": 16, + "1.21.0": 16, + "1.21.1": 16, + "1.21.2": 16, + "1.21.3": 16, + "1.21.4": 16, + "1.21.5": 16, + "1.21.6": 16, + "1.21.7": 16, + "1.21.8": 16, + "1.21.9": 16, + "1.21.10": 16, + "1.21.11": 16, + "1.21.12": 16, + "1.21.13": 16, + "1.22.0": 16, + "1.22.1": 16, + "1.22.2": 16, + "1.22.3": 16, + "1.22.4": 16, + "1.22.5": 16, + "1.22.6": 16, + "1.22.7": 16, + "1.22.8": 16, + "1.22.9": 16, + "1.22.10": 16, + "1.22.11": 16, + "1.22.12": 16, + "1.23.0": 16, + "1.23.1": 16, + "1.23.2": 16, + "1.23.3": 16, + "1.23.4": 16, + "1.23.5": 16, + "1.23.6": 16, + "1.23.7": 16, + "1.23.8": 16, + "1.23.9": 16, + "1.24.0": 16, + "1.24.1": 16, + "1.24.2": 16, + "1.24.3": 16 + } + }, + "net/http.http2FrameHeader": { + "Flags": { + "1.19.0": 2, + "1.19.1": 2, + "1.19.2": 2, + "1.19.3": 2, + "1.19.4": 2, + "1.19.5": 2, + "1.19.6": 2, + "1.19.7": 2, + "1.19.8": 2, + "1.19.9": 2, + "1.19.10": 2, + "1.19.11": 2, + "1.19.12": 2, + "1.19.13": 2, + "1.20.0": 2, + "1.20.1": 2, + "1.20.2": 2, + "1.20.3": 2, + "1.20.4": 2, + "1.20.5": 2, + "1.20.6": 2, + "1.20.7": 2, + "1.20.8": 2, + "1.20.9": 2, + "1.20.10": 2, + "1.20.11": 2, + "1.20.12": 2, + "1.20.13": 2, + "1.20.14": 2, + "1.21.0": 2, + "1.21.1": 2, + "1.21.2": 2, + "1.21.3": 2, + "1.21.4": 2, + "1.21.5": 2, + "1.21.6": 2, + "1.21.7": 2, + "1.21.8": 2, + "1.21.9": 2, + "1.21.10": 2, + "1.21.11": 2, + "1.21.12": 2, + "1.21.13": 2, + "1.22.0": 2, + "1.22.1": 2, + "1.22.2": 2, + "1.22.3": 2, + "1.22.4": 2, + "1.22.5": 2, + "1.22.6": 2, + "1.22.7": 2, + "1.22.8": 2, + "1.22.9": 2, + "1.22.10": 2, + "1.22.11": 2, + "1.22.12": 2, + "1.23.0": 2, + "1.23.1": 2, + "1.23.2": 2, + "1.23.3": 2, + "1.23.4": 2, + "1.23.5": 2, + "1.23.6": 2, + "1.23.7": 2, + "1.23.8": 2, + "1.23.9": 2, + "1.24.0": 2, + "1.24.1": 2, + "1.24.2": 2, + "1.24.3": 2 + }, + "StreamID": { + "1.19.0": 8, + "1.19.1": 8, + "1.19.2": 8, + "1.19.3": 8, + "1.19.4": 8, + "1.19.5": 8, + "1.19.6": 8, + "1.19.7": 8, + "1.19.8": 8, + "1.19.9": 8, + "1.19.10": 8, + "1.19.11": 8, + "1.19.12": 8, + "1.19.13": 8, + "1.20.0": 8, + "1.20.1": 8, + "1.20.2": 8, + "1.20.3": 8, + "1.20.4": 8, + "1.20.5": 8, + "1.20.6": 8, + "1.20.7": 8, + "1.20.8": 8, + "1.20.9": 8, + "1.20.10": 8, + "1.20.11": 8, + "1.20.12": 8, + "1.20.13": 8, + "1.20.14": 8, + "1.21.0": 8, + "1.21.1": 8, + "1.21.2": 8, + "1.21.3": 8, + "1.21.4": 8, + "1.21.5": 8, + "1.21.6": 8, + "1.21.7": 8, + "1.21.8": 8, + "1.21.9": 8, + "1.21.10": 8, + "1.21.11": 8, + "1.21.12": 8, + "1.21.13": 8, + "1.22.0": 8, + "1.22.1": 8, + "1.22.2": 8, + "1.22.3": 8, + "1.22.4": 8, + "1.22.5": 8, + "1.22.6": 8, + "1.22.7": 8, + "1.22.8": 8, + "1.22.9": 8, + "1.22.10": 8, + "1.22.11": 8, + "1.22.12": 8, + "1.23.0": 8, + "1.23.1": 8, + "1.23.2": 8, + "1.23.3": 8, + "1.23.4": 8, + "1.23.5": 8, + "1.23.6": 8, + "1.23.7": 8, + "1.23.8": 8, + "1.23.9": 8, + "1.24.0": 8, + "1.24.1": 8, + "1.24.2": 8, + "1.24.3": 8 + }, + "Type": { + "1.19.0": 1, + "1.19.1": 1, + "1.19.2": 1, + "1.19.3": 1, + "1.19.4": 1, + "1.19.5": 1, + "1.19.6": 1, + "1.19.7": 1, + "1.19.8": 1, + "1.19.9": 1, + "1.19.10": 1, + "1.19.11": 1, + "1.19.12": 1, + "1.19.13": 1, + "1.20.0": 1, + "1.20.1": 1, + "1.20.2": 1, + "1.20.3": 1, + "1.20.4": 1, + "1.20.5": 1, + "1.20.6": 1, + "1.20.7": 1, + "1.20.8": 1, + "1.20.9": 1, + "1.20.10": 1, + "1.20.11": 1, + "1.20.12": 1, + "1.20.13": 1, + "1.20.14": 1, + "1.21.0": 1, + "1.21.1": 1, + "1.21.2": 1, + "1.21.3": 1, + "1.21.4": 1, + "1.21.5": 1, + "1.21.6": 1, + "1.21.7": 1, + "1.21.8": 1, + "1.21.9": 1, + "1.21.10": 1, + "1.21.11": 1, + "1.21.12": 1, + "1.21.13": 1, + "1.22.0": 1, + "1.22.1": 1, + "1.22.2": 1, + "1.22.3": 1, + "1.22.4": 1, + "1.22.5": 1, + "1.22.6": 1, + "1.22.7": 1, + "1.22.8": 1, + "1.22.9": 1, + "1.22.10": 1, + "1.22.11": 1, + "1.22.12": 1, + "1.23.0": 1, + "1.23.1": 1, + "1.23.2": 1, + "1.23.3": 1, + "1.23.4": 1, + "1.23.5": 1, + "1.23.6": 1, + "1.23.7": 1, + "1.23.8": 1, + "1.23.9": 1, + "1.24.0": 1, + "1.24.1": 1, + "1.24.2": 1, + "1.24.3": 1 + } + }, + "net/http.http2Framer": { + "w": { + "1.19.0": 120, + "1.19.1": 120, + "1.19.2": 120, + "1.19.3": 120, + "1.19.4": 120, + "1.19.5": 120, + "1.19.6": 120, + "1.19.7": 120, + "1.19.8": 120, + "1.19.9": 120, + "1.19.10": 120, + "1.19.11": 120, + "1.19.12": 120, + "1.19.13": 120, + "1.20.0": 120, + "1.20.1": 120, + "1.20.2": 120, + "1.20.3": 120, + "1.20.4": 120, + "1.20.5": 120, + "1.20.6": 120, + "1.20.7": 120, + "1.20.8": 120, + "1.20.9": 120, + "1.20.10": 120, + "1.20.11": 120, + "1.20.12": 120, + "1.20.13": 120, + "1.20.14": 120, + "1.21.0": 120, + "1.21.1": 120, + "1.21.2": 120, + "1.21.3": 120, + "1.21.4": 120, + "1.21.5": 120, + "1.21.6": 120, + "1.21.7": 120, + "1.21.8": 120, + "1.21.9": 120, + "1.21.10": 120, + "1.21.11": 120, + "1.21.12": 120, + "1.21.13": 120, + "1.22.0": 120, + "1.22.1": 120, + "1.22.2": 120, + "1.22.3": 120, + "1.22.4": 120, + "1.22.5": 120, + "1.22.6": 120, + "1.22.7": 120, + "1.22.8": 120, + "1.22.9": 120, + "1.22.10": 120, + "1.22.11": 120, + "1.22.12": 120, + "1.23.0": 120, + "1.23.1": 120, + "1.23.2": 120, + "1.23.3": 120, + "1.23.4": 120, + "1.23.5": 120, + "1.23.6": 120, + "1.23.7": 120, + "1.23.8": 120, + "1.23.9": 120, + "1.24.0": 120, + "1.24.1": 120, + "1.24.2": 120, + "1.24.3": 120 + } + }, + "net/http.http2HeadersFrame": { + "http2FrameHeader": { + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0, + "1.23.8": 0, + "1.23.9": 0, + "1.24.0": 0, + "1.24.1": 0, + "1.24.2": 0, + "1.24.3": 0 + } + }, + "net/http.http2MetaHeadersFrame": { + "Fields": { + "1.19.0": 8, + "1.19.1": 8, + "1.19.2": 8, + "1.19.3": 8, + "1.19.4": 8, + "1.19.5": 8, + "1.19.6": 8, + "1.19.7": 8, + "1.19.8": 8, + "1.19.9": 8, + "1.19.10": 8, + "1.19.11": 8, + "1.19.12": 8, + "1.19.13": 8, + "1.20.0": 8, + "1.20.1": 8, + "1.20.2": 8, + "1.20.3": 8, + "1.20.4": 8, + "1.20.5": 8, + "1.20.6": 8, + "1.20.7": 8, + "1.20.8": 8, + "1.20.9": 8, + "1.20.10": 8, + "1.20.11": 8, + "1.20.12": 8, + "1.20.13": 8, + "1.20.14": 8, + "1.21.0": 8, + "1.21.1": 8, + "1.21.2": 8, + "1.21.3": 8, + "1.21.4": 8, + "1.21.5": 8, + "1.21.6": 8, + "1.21.7": 8, + "1.21.8": 8, + "1.21.9": 8, + "1.21.10": 8, + "1.21.11": 8, + "1.21.12": 8, + "1.21.13": 8, + "1.22.0": 8, + "1.22.1": 8, + "1.22.2": 8, + "1.22.3": 8, + "1.22.4": 8, + "1.22.5": 8, + "1.22.6": 8, + "1.22.7": 8, + "1.22.8": 8, + "1.22.9": 8, + "1.22.10": 8, + "1.22.11": 8, + "1.22.12": 8, + "1.23.0": 8, + "1.23.1": 8, + "1.23.2": 8, + "1.23.3": 8, + "1.23.4": 8, + "1.23.5": 8, + "1.23.6": 8, + "1.23.7": 8, + "1.23.8": 8, + "1.23.9": 8, + "1.24.0": 8, + "1.24.1": 8, + "1.24.2": 8, + "1.24.3": 8 + }, + "http2HeadersFrame": { + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0, + "1.23.8": 0, + "1.23.9": 0, + "1.24.0": 0, + "1.24.1": 0, + "1.24.2": 0, + "1.24.3": 0 + } + }, + "net/http.http2bufferedWriter": { + "w": { + "1.24.0": null, + "1.24.1": null, + "1.24.2": null, + "1.24.3": null, + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0, + "1.23.8": 0, + "1.23.9": 0 + } + }, + "net/http.http2serverConn": { + "conn": { + "1.19.0": 16, + "1.19.1": 16, + "1.19.2": 16, + "1.19.3": 16, + "1.19.4": 16, + "1.19.5": 16, + "1.19.6": 16, + "1.19.7": 16, + "1.19.8": 16, + "1.19.9": 16, + "1.19.10": 16, + "1.19.11": 16, + "1.19.12": 16, + "1.19.13": 16, + "1.20.0": 16, + "1.20.1": 16, + "1.20.2": 16, + "1.20.3": 16, + "1.20.4": 16, + "1.20.5": 16, + "1.20.6": 16, + "1.20.7": 16, + "1.20.8": 16, + "1.20.9": 16, + "1.20.10": 16, + "1.20.11": 16, + "1.20.12": 16, + "1.20.13": 16, + "1.20.14": 16, + "1.21.0": 16, + "1.21.1": 16, + "1.21.2": 16, + "1.21.3": 16, + "1.21.4": 16, + "1.21.5": 16, + "1.21.6": 16, + "1.21.7": 16, + "1.21.8": 16, + "1.21.9": 16, + "1.21.10": 16, + "1.21.11": 16, + "1.21.12": 16, + "1.21.13": 16, + "1.22.0": 16, + "1.22.1": 16, + "1.22.2": 16, + "1.22.3": 16, + "1.22.4": 16, + "1.22.5": 16, + "1.22.6": 16, + "1.22.7": 16, + "1.22.8": 16, + "1.22.9": 16, + "1.22.10": 16, + "1.22.11": 16, + "1.22.12": 16, + "1.23.0": 16, + "1.23.1": 16, + "1.23.2": 16, + "1.23.3": 16, + "1.23.4": 16, + "1.23.5": 16, + "1.23.6": 16, + "1.23.7": 16, + "1.23.8": 16, + "1.23.9": 16, + "1.24.0": 16, + "1.24.1": 16, + "1.24.2": 16, + "1.24.3": 16 + }, + "hpackEncoder": { + "1.19.0": 360, + "1.19.1": 360, + "1.19.2": 360, + "1.19.3": 360, + "1.21.0": 360, + "1.21.1": 360, + "1.21.2": 360, + "1.19.4": 368, + "1.19.5": 368, + "1.19.6": 368, + "1.19.7": 368, + "1.19.8": 368, + "1.19.9": 368, + "1.19.10": 368, + "1.19.11": 368, + "1.19.12": 368, + "1.19.13": 368, + "1.20.0": 368, + "1.20.1": 368, + "1.20.2": 368, + "1.20.3": 368, + "1.20.4": 368, + "1.20.5": 368, + "1.20.6": 368, + "1.20.7": 368, + "1.20.8": 368, + "1.20.9": 368, + "1.21.3": 392, + "1.21.4": 392, + "1.21.5": 392, + "1.21.6": 392, + "1.21.7": 392, + "1.21.8": 392, + "1.21.9": 392, + "1.21.10": 392, + "1.21.11": 392, + "1.21.12": 392, + "1.21.13": 392, + "1.22.0": 392, + "1.22.1": 392, + "1.22.2": 392, + "1.22.3": 392, + "1.22.4": 392, + "1.22.5": 392, + "1.22.6": 392, + "1.22.7": 392, + "1.22.8": 392, + "1.22.9": 392, + "1.22.10": 392, + "1.22.11": 392, + "1.22.12": 392, + "1.20.10": 400, + "1.20.11": 400, + "1.20.12": 400, + "1.20.13": 400, + "1.20.14": 400, + "1.23.0": 408, + "1.23.1": 408, + "1.23.2": 408, + "1.23.3": 408, + "1.23.4": 408, + "1.23.5": 408, + "1.23.6": 408, + "1.23.7": 408, + "1.23.8": 408, + "1.23.9": 408, + "1.24.0": 456, + "1.24.1": 456, + "1.24.2": 456, + "1.24.3": 456 + } + }, + "net/http.http2writeResHeaders": { + "endStream": { + "1.19.0": 48, + "1.19.1": 48, + "1.19.2": 48, + "1.19.3": 48, + "1.19.4": 48, + "1.19.5": 48, + "1.19.6": 48, + "1.19.7": 48, + "1.19.8": 48, + "1.19.9": 48, + "1.19.10": 48, + "1.19.11": 48, + "1.19.12": 48, + "1.19.13": 48, + "1.20.0": 48, + "1.20.1": 48, + "1.20.2": 48, + "1.20.3": 48, + "1.20.4": 48, + "1.20.5": 48, + "1.20.6": 48, + "1.20.7": 48, + "1.20.8": 48, + "1.20.9": 48, + "1.20.10": 48, + "1.20.11": 48, + "1.20.12": 48, + "1.20.13": 48, + "1.20.14": 48, + "1.21.0": 48, + "1.21.1": 48, + "1.21.2": 48, + "1.21.3": 48, + "1.21.4": 48, + "1.21.5": 48, + "1.21.6": 48, + "1.21.7": 48, + "1.21.8": 48, + "1.21.9": 48, + "1.21.10": 48, + "1.21.11": 48, + "1.21.12": 48, + "1.21.13": 48, + "1.22.0": 48, + "1.22.1": 48, + "1.22.2": 48, + "1.22.3": 48, + "1.22.4": 48, + "1.22.5": 48, + "1.22.6": 48, + "1.22.7": 48, + "1.22.8": 48, + "1.22.9": 48, + "1.22.10": 48, + "1.22.11": 48, + "1.22.12": 48, + "1.23.0": 48, + "1.23.1": 48, + "1.23.2": 48, + "1.23.3": 48, + "1.23.4": 48, + "1.23.5": 48, + "1.23.6": 48, + "1.23.7": 48, + "1.23.8": 48, + "1.23.9": 48, + "1.24.0": 48, + "1.24.1": 48, + "1.24.2": 48, + "1.24.3": 48 + }, + "streamID": { + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0, + "1.23.8": 0, + "1.23.9": 0, + "1.24.0": 0, + "1.24.1": 0, + "1.24.2": 0, + "1.24.3": 0 + } + }, + "runtime.g": { + "goid": { + "1.19.0": 152, + "1.19.1": 152, + "1.19.2": 152, + "1.19.3": 152, + "1.19.4": 152, + "1.19.5": 152, + "1.19.6": 152, + "1.19.7": 152, + "1.19.8": 152, + "1.19.9": 152, + "1.19.10": 152, + "1.19.11": 152, + "1.19.12": 152, + "1.19.13": 152, + "1.20.0": 152, + "1.20.1": 152, + "1.20.2": 152, + "1.20.3": 152, + "1.20.4": 152, + "1.20.5": 152, + "1.20.6": 152, + "1.20.7": 152, + "1.20.8": 152, + "1.20.9": 152, + "1.20.10": 152, + "1.20.11": 152, + "1.20.12": 152, + "1.20.13": 152, + "1.20.14": 152, + "1.21.0": 152, + "1.21.1": 152, + "1.21.2": 152, + "1.21.3": 152, + "1.21.4": 152, + "1.21.5": 152, + "1.21.6": 152, + "1.21.7": 152, + "1.21.8": 152, + "1.21.9": 152, + "1.21.10": 152, + "1.21.11": 152, + "1.21.12": 152, + "1.21.13": 152, + "1.22.0": 152, + "1.22.1": 152, + "1.22.2": 152, + "1.22.3": 152, + "1.22.4": 152, + "1.22.5": 152, + "1.22.6": 152, + "1.22.7": 152, + "1.22.8": 152, + "1.22.9": 152, + "1.22.10": 152, + "1.22.11": 152, + "1.22.12": 152, + "1.23.0": 160, + "1.23.1": 160, + "1.23.2": 160, + "1.23.3": 160, + "1.23.4": 160, + "1.23.5": 160, + "1.23.6": 160, + "1.23.7": 160, + "1.23.8": 160, + "1.23.9": 160, + "1.24.0": 160, + "1.24.1": 160, + "1.24.2": 160, + "1.24.3": 160 + } + }, + "runtime.hmap": { + "buckets": { + "1.24.0": null, + "1.24.1": null, + "1.24.2": null, + "1.24.3": null, + "1.19.0": 16, + "1.19.1": 16, + "1.19.2": 16, + "1.19.3": 16, + "1.19.4": 16, + "1.19.5": 16, + "1.19.6": 16, + "1.19.7": 16, + "1.19.8": 16, + "1.19.9": 16, + "1.19.10": 16, + "1.19.11": 16, + "1.19.12": 16, + "1.19.13": 16, + "1.20.0": 16, + "1.20.1": 16, + "1.20.2": 16, + "1.20.3": 16, + "1.20.4": 16, + "1.20.5": 16, + "1.20.6": 16, + "1.20.7": 16, + "1.20.8": 16, + "1.20.9": 16, + "1.20.10": 16, + "1.20.11": 16, + "1.20.12": 16, + "1.20.13": 16, + "1.20.14": 16, + "1.21.0": 16, + "1.21.1": 16, + "1.21.2": 16, + "1.21.3": 16, + "1.21.4": 16, + "1.21.5": 16, + "1.21.6": 16, + "1.21.7": 16, + "1.21.8": 16, + "1.21.9": 16, + "1.21.10": 16, + "1.21.11": 16, + "1.21.12": 16, + "1.21.13": 16, + "1.22.0": 16, + "1.22.1": 16, + "1.22.2": 16, + "1.22.3": 16, + "1.22.4": 16, + "1.22.5": 16, + "1.22.6": 16, + "1.22.7": 16, + "1.22.8": 16, + "1.22.9": 16, + "1.22.10": 16, + "1.22.11": 16, + "1.22.12": 16, + "1.23.0": 16, + "1.23.1": 16, + "1.23.2": 16, + "1.23.3": 16, + "1.23.4": 16, + "1.23.5": 16, + "1.23.6": 16, + "1.23.7": 16, + "1.23.8": 16, + "1.23.9": 16 + } + } + }, + "funcs": { + "golang.org/x/net/http2.(*Framer).WriteDataPadded": { + "data": { + "0.1.0": { + "location": "registers", + "offset": 24 + }, + "0.2.0": { + "location": "registers", + "offset": 24 + }, + "0.3.0": { + "location": "registers", + "offset": 24 + }, + "0.4.0": { + "location": "registers", + "offset": 24 + }, + "0.5.0": { + "location": "registers", + "offset": 24 + }, + "0.6.0": { + "location": "registers", + "offset": 24 + }, + "0.7.0": { + "location": "registers", + "offset": 24 + }, + "0.8.0": { + "location": "registers", + "offset": 24 + }, + "0.9.0": { + "location": "registers", + "offset": 24 + }, + "0.10.0": { + "location": "registers", + "offset": 24 + }, + "0.11.0": { + "location": "registers", + "offset": 24 + }, + "0.12.0": { + "location": "registers", + "offset": 24 + }, + "0.13.0": { + "location": "registers", + "offset": 24 + }, + "0.14.0": { + "location": "registers", + "offset": 24 + }, + "0.15.0": { + "location": "registers", + "offset": 24 + }, + "0.16.0": { + "location": "registers", + "offset": 24 + }, + "0.17.0": { + "location": "registers", + "offset": 24 + }, + "0.18.0": { + "location": "registers", + "offset": 24 + }, + "0.19.0": { + "location": "registers", + "offset": 24 + }, + "0.20.0": { + "location": "registers", + "offset": 24 + }, + "0.21.0": { + "location": "registers", + "offset": 24 + }, + "0.22.0": { + "location": "registers", + "offset": 24 + }, + "0.23.0": { + "location": "registers", + "offset": 24 + }, + "0.24.0": { + "location": "registers", + "offset": 24 + }, + "0.25.0": { + "location": "registers", + "offset": 24 + }, + "0.26.0": { + "location": "registers", + "offset": 24 + }, + "0.27.0": { + "location": "registers", + "offset": 24 + }, + "0.28.0": { + "location": "registers", + "offset": 24 + }, + "0.29.0": { + "location": "registers", + "offset": 24 + }, + "0.30.0": { + "location": "registers", + "offset": 24 + }, + "0.31.0": { + "location": "registers", + "offset": 24 + }, + "0.32.0": { + "location": "registers", + "offset": 24 + }, + "0.33.0": { + "location": "registers", + "offset": 24 + }, + "0.34.0": { + "location": "registers", + "offset": 24 + }, + "0.35.0": { + "location": "registers", + "offset": 24 + }, + "0.36.0": { + "location": "registers", + "offset": 24 + }, + "0.37.0": { + "location": "registers", + "offset": 24 + }, + "0.38.0": { + "location": "registers", + "offset": 24 + }, + "0.39.0": { + "location": "registers", + "offset": 24 + }, + "0.40.0": { + "location": "registers", + "offset": 24 + } + }, + "endStream": { + "0.1.0": { + "location": "registers", + "offset": 16 + }, + "0.2.0": { + "location": "registers", + "offset": 16 + }, + "0.3.0": { + "location": "registers", + "offset": 16 + }, + "0.4.0": { + "location": "registers", + "offset": 16 + }, + "0.5.0": { + "location": "registers", + "offset": 16 + }, + "0.6.0": { + "location": "registers", + "offset": 16 + }, + "0.7.0": { + "location": "registers", + "offset": 16 + }, + "0.8.0": { + "location": "registers", + "offset": 16 + }, + "0.9.0": { + "location": "registers", + "offset": 16 + }, + "0.10.0": { + "location": "registers", + "offset": 16 + }, + "0.11.0": { + "location": "registers", + "offset": 16 + }, + "0.12.0": { + "location": "registers", + "offset": 16 + }, + "0.13.0": { + "location": "registers", + "offset": 16 + }, + "0.14.0": { + "location": "registers", + "offset": 16 + }, + "0.15.0": { + "location": "registers", + "offset": 16 + }, + "0.16.0": { + "location": "registers", + "offset": 16 + }, + "0.17.0": { + "location": "registers", + "offset": 16 + }, + "0.18.0": { + "location": "registers", + "offset": 16 + }, + "0.19.0": { + "location": "registers", + "offset": 16 + }, + "0.20.0": { + "location": "registers", + "offset": 16 + }, + "0.21.0": { + "location": "registers", + "offset": 16 + }, + "0.22.0": { + "location": "registers", + "offset": 16 + }, + "0.23.0": { + "location": "registers", + "offset": 16 + }, + "0.24.0": { + "location": "registers", + "offset": 16 + }, + "0.25.0": { + "location": "registers", + "offset": 16 + }, + "0.26.0": { + "location": "registers", + "offset": 16 + }, + "0.27.0": { + "location": "registers", + "offset": 16 + }, + "0.28.0": { + "location": "registers", + "offset": 16 + }, + "0.29.0": { + "location": "registers", + "offset": 16 + }, + "0.30.0": { + "location": "registers", + "offset": 16 + }, + "0.31.0": { + "location": "registers", + "offset": 16 + }, + "0.32.0": { + "location": "registers", + "offset": 16 + }, + "0.33.0": { + "location": "registers", + "offset": 16 + }, + "0.34.0": { + "location": "registers", + "offset": 16 + }, + "0.35.0": { + "location": "registers", + "offset": 16 + }, + "0.36.0": { + "location": "registers", + "offset": 16 + }, + "0.37.0": { + "location": "registers", + "offset": 16 + }, + "0.38.0": { + "location": "registers", + "offset": 16 + }, + "0.39.0": { + "location": "registers", + "offset": 16 + }, + "0.40.0": { + "location": "registers", + "offset": 16 + } + }, + "f": { + "0.1.0": { + "location": "registers", + "offset": 0 + }, + "0.2.0": { + "location": "registers", + "offset": 0 + }, + "0.3.0": { + "location": "registers", + "offset": 0 + }, + "0.4.0": { + "location": "registers", + "offset": 0 + }, + "0.5.0": { + "location": "registers", + "offset": 0 + }, + "0.6.0": { + "location": "registers", + "offset": 0 + }, + "0.7.0": { + "location": "registers", + "offset": 0 + }, + "0.8.0": { + "location": "registers", + "offset": 0 + }, + "0.9.0": { + "location": "registers", + "offset": 0 + }, + "0.10.0": { + "location": "registers", + "offset": 0 + }, + "0.11.0": { + "location": "registers", + "offset": 0 + }, + "0.12.0": { + "location": "registers", + "offset": 0 + }, + "0.13.0": { + "location": "registers", + "offset": 0 + }, + "0.14.0": { + "location": "registers", + "offset": 0 + }, + "0.15.0": { + "location": "registers", + "offset": 0 + }, + "0.16.0": { + "location": "registers", + "offset": 0 + }, + "0.17.0": { + "location": "registers", + "offset": 0 + }, + "0.18.0": { + "location": "registers", + "offset": 0 + }, + "0.19.0": { + "location": "registers", + "offset": 0 + }, + "0.20.0": { + "location": "registers", + "offset": 0 + }, + "0.21.0": { + "location": "registers", + "offset": 0 + }, + "0.22.0": { + "location": "registers", + "offset": 0 + }, + "0.23.0": { + "location": "registers", + "offset": 0 + }, + "0.24.0": { + "location": "registers", + "offset": 0 + }, + "0.25.0": { + "location": "registers", + "offset": 0 + }, + "0.26.0": { + "location": "registers", + "offset": 0 + }, + "0.27.0": { + "location": "registers", + "offset": 0 + }, + "0.28.0": { + "location": "registers", + "offset": 0 + }, + "0.29.0": { + "location": "registers", + "offset": 0 + }, + "0.30.0": { + "location": "registers", + "offset": 0 + }, + "0.31.0": { + "location": "registers", + "offset": 0 + }, + "0.32.0": { + "location": "registers", + "offset": 0 + }, + "0.33.0": { + "location": "registers", + "offset": 0 + }, + "0.34.0": { + "location": "registers", + "offset": 0 + }, + "0.35.0": { + "location": "registers", + "offset": 0 + }, + "0.36.0": { + "location": "registers", + "offset": 0 + }, + "0.37.0": { + "location": "registers", + "offset": 0 + }, + "0.38.0": { + "location": "registers", + "offset": 0 + }, + "0.39.0": { + "location": "registers", + "offset": 0 + }, + "0.40.0": { + "location": "registers", + "offset": 0 + } + }, + "streamID": { + "0.1.0": { + "location": "registers", + "offset": 8 + }, + "0.2.0": { + "location": "registers", + "offset": 8 + }, + "0.3.0": { + "location": "registers", + "offset": 8 + }, + "0.4.0": { + "location": "registers", + "offset": 8 + }, + "0.5.0": { + "location": "registers", + "offset": 8 + }, + "0.6.0": { + "location": "registers", + "offset": 8 + }, + "0.7.0": { + "location": "registers", + "offset": 8 + }, + "0.8.0": { + "location": "registers", + "offset": 8 + }, + "0.9.0": { + "location": "registers", + "offset": 8 + }, + "0.10.0": { + "location": "registers", + "offset": 8 + }, + "0.11.0": { + "location": "registers", + "offset": 8 + }, + "0.12.0": { + "location": "registers", + "offset": 8 + }, + "0.13.0": { + "location": "registers", + "offset": 8 + }, + "0.14.0": { + "location": "registers", + "offset": 8 + }, + "0.15.0": { + "location": "registers", + "offset": 8 + }, + "0.16.0": { + "location": "registers", + "offset": 8 + }, + "0.17.0": { + "location": "registers", + "offset": 8 + }, + "0.18.0": { + "location": "registers", + "offset": 8 + }, + "0.19.0": { + "location": "registers", + "offset": 8 + }, + "0.20.0": { + "location": "registers", + "offset": 8 + }, + "0.21.0": { + "location": "registers", + "offset": 8 + }, + "0.22.0": { + "location": "registers", + "offset": 8 + }, + "0.23.0": { + "location": "registers", + "offset": 8 + }, + "0.24.0": { + "location": "registers", + "offset": 8 + }, + "0.25.0": { + "location": "registers", + "offset": 8 + }, + "0.26.0": { + "location": "registers", + "offset": 8 + }, + "0.27.0": { + "location": "registers", + "offset": 8 + }, + "0.28.0": { + "location": "registers", + "offset": 8 + }, + "0.29.0": { + "location": "registers", + "offset": 8 + }, + "0.30.0": { + "location": "registers", + "offset": 8 + }, + "0.31.0": { + "location": "registers", + "offset": 8 + }, + "0.32.0": { + "location": "registers", + "offset": 8 + }, + "0.33.0": { + "location": "registers", + "offset": 8 + }, + "0.34.0": { + "location": "registers", + "offset": 8 + }, + "0.35.0": { + "location": "registers", + "offset": 8 + }, + "0.36.0": { + "location": "registers", + "offset": 8 + }, + "0.37.0": { + "location": "registers", + "offset": 8 + }, + "0.38.0": { + "location": "registers", + "offset": 8 + }, + "0.39.0": { + "location": "registers", + "offset": 8 + }, + "0.40.0": { + "location": "registers", + "offset": 8 + } + } + }, + "golang.org/x/net/http2.(*Framer).checkFrameOrder": { + "f": { + "0.1.0": { + "location": "registers", + "offset": 8 + }, + "0.2.0": { + "location": "registers", + "offset": 8 + }, + "0.3.0": { + "location": "registers", + "offset": 8 + }, + "0.4.0": { + "location": "registers", + "offset": 8 + }, + "0.5.0": { + "location": "registers", + "offset": 8 + }, + "0.6.0": { + "location": "registers", + "offset": 8 + }, + "0.7.0": { + "location": "registers", + "offset": 8 + }, + "0.8.0": { + "location": "registers", + "offset": 8 + }, + "0.9.0": { + "location": "registers", + "offset": 8 + }, + "0.10.0": { + "location": "registers", + "offset": 8 + }, + "0.11.0": { + "location": "registers", + "offset": 8 + }, + "0.12.0": { + "location": "registers", + "offset": 8 + }, + "0.13.0": { + "location": "registers", + "offset": 8 + }, + "0.14.0": { + "location": "registers", + "offset": 8 + }, + "0.15.0": { + "location": "registers", + "offset": 8 + }, + "0.16.0": { + "location": "registers", + "offset": 8 + }, + "0.17.0": { + "location": "registers", + "offset": 8 + }, + "0.18.0": { + "location": "registers", + "offset": 8 + }, + "0.19.0": { + "location": "registers", + "offset": 8 + }, + "0.20.0": { + "location": "registers", + "offset": 8 + }, + "0.21.0": { + "location": "registers", + "offset": 8 + }, + "0.22.0": { + "location": "registers", + "offset": 8 + }, + "0.23.0": { + "location": "registers", + "offset": 8 + }, + "0.24.0": { + "location": "registers", + "offset": 8 + }, + "0.25.0": { + "location": "registers", + "offset": 8 + }, + "0.26.0": { + "location": "registers", + "offset": 8 + }, + "0.27.0": { + "location": "registers", + "offset": 8 + }, + "0.28.0": { + "location": "registers", + "offset": 8 + }, + "0.29.0": { + "location": "registers", + "offset": 8 + }, + "0.30.0": { + "location": "registers", + "offset": 8 + }, + "0.31.0": { + "location": "registers", + "offset": 8 + }, + "0.32.0": { + "location": "registers", + "offset": 8 + }, + "0.33.0": { + "location": "registers", + "offset": 8 + }, + "0.34.0": { + "location": "registers", + "offset": 8 + }, + "0.35.0": { + "location": "registers", + "offset": 8 + }, + "0.36.0": { + "location": "registers", + "offset": 8 + }, + "0.37.0": { + "location": "registers", + "offset": 8 + }, + "0.38.0": { + "location": "registers", + "offset": 8 + }, + "0.39.0": { + "location": "registers", + "offset": 8 + }, + "0.40.0": { + "location": "registers", + "offset": 8 + } + }, + "fr": { + "0.1.0": { + "location": "registers", + "offset": 0 + }, + "0.2.0": { + "location": "registers", + "offset": 0 + }, + "0.3.0": { + "location": "registers", + "offset": 0 + }, + "0.4.0": { + "location": "registers", + "offset": 0 + }, + "0.5.0": { + "location": "registers", + "offset": 0 + }, + "0.6.0": { + "location": "registers", + "offset": 0 + }, + "0.7.0": { + "location": "registers", + "offset": 0 + }, + "0.8.0": { + "location": "registers", + "offset": 0 + }, + "0.9.0": { + "location": "registers", + "offset": 0 + }, + "0.10.0": { + "location": "registers", + "offset": 0 + }, + "0.11.0": { + "location": "registers", + "offset": 0 + }, + "0.12.0": { + "location": "registers", + "offset": 0 + }, + "0.13.0": { + "location": "registers", + "offset": 0 + }, + "0.14.0": { + "location": "registers", + "offset": 0 + }, + "0.15.0": { + "location": "registers", + "offset": 0 + }, + "0.16.0": { + "location": "registers", + "offset": 0 + }, + "0.17.0": { + "location": "registers", + "offset": 0 + }, + "0.18.0": { + "location": "registers", + "offset": 0 + }, + "0.19.0": { + "location": "registers", + "offset": 0 + }, + "0.20.0": { + "location": "registers", + "offset": 0 + }, + "0.21.0": { + "location": "registers", + "offset": 0 + }, + "0.22.0": { + "location": "registers", + "offset": 0 + }, + "0.23.0": { + "location": "registers", + "offset": 0 + }, + "0.24.0": { + "location": "registers", + "offset": 0 + }, + "0.25.0": { + "location": "registers", + "offset": 0 + }, + "0.26.0": { + "location": "registers", + "offset": 0 + }, + "0.27.0": { + "location": "registers", + "offset": 0 + }, + "0.28.0": { + "location": "registers", + "offset": 0 + }, + "0.29.0": { + "location": "registers", + "offset": 0 + }, + "0.30.0": { + "location": "registers", + "offset": 0 + }, + "0.31.0": { + "location": "registers", + "offset": 0 + }, + "0.32.0": { + "location": "registers", + "offset": 0 + }, + "0.33.0": { + "location": "registers", + "offset": 0 + }, + "0.34.0": { + "location": "registers", + "offset": 0 + }, + "0.35.0": { + "location": "registers", + "offset": 0 + }, + "0.36.0": { + "location": "registers", + "offset": 0 + }, + "0.37.0": { + "location": "registers", + "offset": 0 + }, + "0.38.0": { + "location": "registers", + "offset": 0 + }, + "0.39.0": { + "location": "registers", + "offset": 0 + }, + "0.40.0": { + "location": "registers", + "offset": 0 + } + } + }, + "golang.org/x/net/http2/hpack.(*Encoder).WriteField": { + "e": { + "0.1.0": { + "location": "registers", + "offset": 0 + }, + "0.2.0": { + "location": "registers", + "offset": 0 + }, + "0.3.0": { + "location": "registers", + "offset": 0 + }, + "0.4.0": { + "location": "registers", + "offset": 0 + }, + "0.5.0": { + "location": "registers", + "offset": 0 + }, + "0.6.0": { + "location": "registers", + "offset": 0 + }, + "0.7.0": { + "location": "registers", + "offset": 0 + }, + "0.8.0": { + "location": "registers", + "offset": 0 + }, + "0.9.0": { + "location": "registers", + "offset": 0 + }, + "0.10.0": { + "location": "registers", + "offset": 0 + }, + "0.11.0": { + "location": "registers", + "offset": 0 + }, + "0.12.0": { + "location": "registers", + "offset": 0 + }, + "0.13.0": { + "location": "registers", + "offset": 0 + }, + "0.14.0": { + "location": "registers", + "offset": 0 + }, + "0.15.0": { + "location": "registers", + "offset": 0 + }, + "0.16.0": { + "location": "registers", + "offset": 0 + }, + "0.17.0": { + "location": "registers", + "offset": 0 + }, + "0.18.0": { + "location": "registers", + "offset": 0 + }, + "0.19.0": { + "location": "registers", + "offset": 0 + }, + "0.20.0": { + "location": "registers", + "offset": 0 + }, + "0.21.0": { + "location": "registers", + "offset": 0 + }, + "0.22.0": { + "location": "registers", + "offset": 0 + }, + "0.23.0": { + "location": "registers", + "offset": 0 + }, + "0.24.0": { + "location": "registers", + "offset": 0 + }, + "0.25.0": { + "location": "registers", + "offset": 0 + }, + "0.26.0": { + "location": "registers", + "offset": 0 + }, + "0.27.0": { + "location": "registers", + "offset": 0 + }, + "0.28.0": { + "location": "registers", + "offset": 0 + }, + "0.29.0": { + "location": "registers", + "offset": 0 + }, + "0.30.0": { + "location": "registers", + "offset": 0 + }, + "0.31.0": { + "location": "registers", + "offset": 0 + }, + "0.32.0": { + "location": "registers", + "offset": 0 + }, + "0.33.0": { + "location": "registers", + "offset": 0 + }, + "0.34.0": { + "location": "registers", + "offset": 0 + }, + "0.35.0": { + "location": "registers", + "offset": 0 + }, + "0.36.0": { + "location": "registers", + "offset": 0 + }, + "0.37.0": { + "location": "registers", + "offset": 0 + }, + "0.38.0": { + "location": "registers", + "offset": 0 + }, + "0.39.0": { + "location": "registers", + "offset": 0 + }, + "0.40.0": { + "location": "registers", + "offset": 0 + } + }, + "f": { + "0.1.0": { + "location": "registers", + "offset": 8 + }, + "0.2.0": { + "location": "registers", + "offset": 8 + }, + "0.3.0": { + "location": "registers", + "offset": 8 + }, + "0.4.0": { + "location": "registers", + "offset": 8 + }, + "0.5.0": { + "location": "registers", + "offset": 8 + }, + "0.6.0": { + "location": "registers", + "offset": 8 + }, + "0.7.0": { + "location": "registers", + "offset": 8 + }, + "0.8.0": { + "location": "registers", + "offset": 8 + }, + "0.9.0": { + "location": "registers", + "offset": 8 + }, + "0.10.0": { + "location": "registers", + "offset": 8 + }, + "0.11.0": { + "location": "registers", + "offset": 8 + }, + "0.12.0": { + "location": "registers", + "offset": 8 + }, + "0.13.0": { + "location": "registers", + "offset": 8 + }, + "0.14.0": { + "location": "registers", + "offset": 8 + }, + "0.15.0": { + "location": "registers", + "offset": 8 + }, + "0.16.0": { + "location": "registers", + "offset": 8 + }, + "0.17.0": { + "location": "registers", + "offset": 8 + }, + "0.18.0": { + "location": "registers", + "offset": 8 + }, + "0.19.0": { + "location": "registers", + "offset": 8 + }, + "0.20.0": { + "location": "registers", + "offset": 8 + }, + "0.21.0": { + "location": "registers", + "offset": 8 + }, + "0.22.0": { + "location": "registers", + "offset": 8 + }, + "0.23.0": { + "location": "registers", + "offset": 8 + }, + "0.24.0": { + "location": "registers", + "offset": 8 + }, + "0.25.0": { + "location": "registers", + "offset": 8 + }, + "0.26.0": { + "location": "registers", + "offset": 8 + }, + "0.27.0": { + "location": "registers", + "offset": 8 + }, + "0.28.0": { + "location": "registers", + "offset": 8 + }, + "0.29.0": { + "location": "registers", + "offset": 8 + }, + "0.30.0": { + "location": "registers", + "offset": 8 + }, + "0.31.0": { + "location": "registers", + "offset": 8 + }, + "0.32.0": { + "location": "registers", + "offset": 8 + }, + "0.33.0": { + "location": "registers", + "offset": 8 + }, + "0.34.0": { + "location": "registers", + "offset": 8 + }, + "0.35.0": { + "location": "registers", + "offset": 8 + }, + "0.36.0": { + "location": "registers", + "offset": 8 + }, + "0.37.0": { + "location": "registers", + "offset": 8 + }, + "0.38.0": { + "location": "registers", + "offset": 8 + }, + "0.39.0": { + "location": "registers", + "offset": 8 + }, + "0.40.0": { + "location": "registers", + "offset": 8 + } + } + }, + "google.golang.org/grpc/internal/transport.(*http2Client).operateHeaders": { + "frame": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 8 + }, + "1.15.0": { + "location": "registers", + "offset": 8 + }, + "1.16.0": { + "location": "registers", + "offset": 8 + }, + "1.17.0": { + "location": "registers", + "offset": 8 + }, + "1.18.0": { + "location": "registers", + "offset": 8 + }, + "1.18.1": { + "location": "registers", + "offset": 8 + }, + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.25.0": { + "location": "registers", + "offset": 8 + }, + "1.25.1": { + "location": "registers", + "offset": 8 + }, + "1.26.0": { + "location": "registers", + "offset": 8 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 8 + }, + "1.27.0": { + "location": "registers", + "offset": 8 + }, + "1.27.1": { + "location": "registers", + "offset": 8 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 8 + }, + "1.28.0": { + "location": "registers", + "offset": 8 + }, + "1.28.1": { + "location": "registers", + "offset": 8 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.29.0": { + "location": "registers", + "offset": 8 + }, + "1.29.1": { + "location": "registers", + "offset": 8 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 8 + }, + "1.30.0": { + "location": "registers", + "offset": 8 + }, + "1.30.1": { + "location": "registers", + "offset": 8 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.31.0": { + "location": "registers", + "offset": 8 + }, + "1.31.1": { + "location": "registers", + "offset": 8 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.32.0": { + "location": "registers", + "offset": 8 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.33.0": { + "location": "registers", + "offset": 8 + }, + "1.33.1": { + "location": "registers", + "offset": 8 + }, + "1.33.2": { + "location": "registers", + "offset": 8 + }, + "1.33.3": { + "location": "registers", + "offset": 8 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.34.0": { + "location": "registers", + "offset": 8 + }, + "1.34.1": { + "location": "registers", + "offset": 8 + }, + "1.34.2": { + "location": "registers", + "offset": 8 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.35.0": { + "location": "registers", + "offset": 8 + }, + "1.35.1": { + "location": "registers", + "offset": 8 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.36.0": { + "location": "registers", + "offset": 8 + }, + "1.36.1": { + "location": "registers", + "offset": 8 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.37.0": { + "location": "registers", + "offset": 8 + }, + "1.37.1": { + "location": "registers", + "offset": 8 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.38.0": { + "location": "registers", + "offset": 8 + }, + "1.38.1": { + "location": "registers", + "offset": 8 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.39.0": { + "location": "registers", + "offset": 8 + }, + "1.39.1": { + "location": "registers", + "offset": 8 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.40.0": { + "location": "registers", + "offset": 8 + }, + "1.40.1": { + "location": "registers", + "offset": 8 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.41.0": { + "location": "registers", + "offset": 8 + }, + "1.41.1": { + "location": "registers", + "offset": 8 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.42.0": { + "location": "registers", + "offset": 8 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.43.0": { + "location": "registers", + "offset": 8 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.44.0": { + "location": "registers", + "offset": 8 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.45.0": { + "location": "registers", + "offset": 8 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.46.0": { + "location": "registers", + "offset": 8 + }, + "1.46.1": { + "location": "registers", + "offset": 8 + }, + "1.46.2": { + "location": "registers", + "offset": 8 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.47.0": { + "location": "registers", + "offset": 8 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.48.0": { + "location": "registers", + "offset": 8 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.49.0": { + "location": "registers", + "offset": 8 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.50.0": { + "location": "registers", + "offset": 8 + }, + "1.50.1": { + "location": "registers", + "offset": 8 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.51.0": { + "location": "registers", + "offset": 8 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.52.0": { + "location": "registers", + "offset": 8 + }, + "1.52.1": { + "location": "registers", + "offset": 8 + }, + "1.52.3": { + "location": "registers", + "offset": 8 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.53.0": { + "location": "registers", + "offset": 8 + }, + "1.54.0": { + "location": "registers", + "offset": 8 + }, + "1.54.1": { + "location": "registers", + "offset": 8 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.55.0": { + "location": "registers", + "offset": 8 + }, + "1.55.1": { + "location": "registers", + "offset": 8 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.56.0": { + "location": "registers", + "offset": 8 + }, + "1.56.1": { + "location": "registers", + "offset": 8 + }, + "1.56.2": { + "location": "registers", + "offset": 8 + }, + "1.56.3": { + "location": "registers", + "offset": 8 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.57.0": { + "location": "registers", + "offset": 8 + }, + "1.57.1": { + "location": "registers", + "offset": 8 + }, + "1.57.2": { + "location": "registers", + "offset": 8 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.58.0": { + "location": "registers", + "offset": 8 + }, + "1.58.1": { + "location": "registers", + "offset": 8 + }, + "1.58.2": { + "location": "registers", + "offset": 8 + }, + "1.58.3": { + "location": "registers", + "offset": 8 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.59.0": { + "location": "registers", + "offset": 8 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.60.0": { + "location": "registers", + "offset": 8 + }, + "1.60.1": { + "location": "registers", + "offset": 8 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.61.0": { + "location": "registers", + "offset": 8 + }, + "1.61.1": { + "location": "registers", + "offset": 8 + }, + "1.61.2": { + "location": "registers", + "offset": 8 + }, + "1.62.0": { + "location": "registers", + "offset": 8 + }, + "1.62.1": { + "location": "registers", + "offset": 8 + }, + "1.62.2": { + "location": "registers", + "offset": 8 + }, + "1.63.0": { + "location": "registers", + "offset": 8 + }, + "1.63.1": { + "location": "registers", + "offset": 8 + }, + "1.63.2": { + "location": "registers", + "offset": 8 + }, + "1.63.3": { + "location": "registers", + "offset": 8 + }, + "1.64.0": { + "location": "registers", + "offset": 8 + }, + "1.64.1": { + "location": "registers", + "offset": 8 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.65.0": { + "location": "registers", + "offset": 8 + }, + "1.65.1": { + "location": "registers", + "offset": 8 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.66.0": { + "location": "registers", + "offset": 8 + }, + "1.66.1": { + "location": "registers", + "offset": 8 + }, + "1.66.2": { + "location": "registers", + "offset": 8 + }, + "1.66.3": { + "location": "registers", + "offset": 8 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.67.0": { + "location": "registers", + "offset": 8 + }, + "1.67.1": { + "location": "registers", + "offset": 8 + }, + "1.67.2": { + "location": "registers", + "offset": 8 + }, + "1.67.3": { + "location": "registers", + "offset": 8 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.68.0": { + "location": "registers", + "offset": 8 + }, + "1.68.1": { + "location": "registers", + "offset": 8 + }, + "1.68.2": { + "location": "registers", + "offset": 8 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.69.0": { + "location": "registers", + "offset": 8 + }, + "1.69.2": { + "location": "registers", + "offset": 8 + }, + "1.69.4": { + "location": "registers", + "offset": 8 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.70.0": { + "location": "registers", + "offset": 8 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.71.0": { + "location": "registers", + "offset": 8 + }, + "1.71.1": { + "location": "registers", + "offset": 8 + }, + "1.71.2": { + "location": "registers", + "offset": 8 + }, + "1.71.3": { + "location": "registers", + "offset": 8 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.72.0": { + "location": "registers", + "offset": 8 + }, + "1.72.1": { + "location": "registers", + "offset": 8 + }, + "1.72.2": { + "location": "registers", + "offset": 8 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 8 + } + }, + "t": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 0 + }, + "1.15.0": { + "location": "registers", + "offset": 0 + }, + "1.16.0": { + "location": "registers", + "offset": 0 + }, + "1.17.0": { + "location": "registers", + "offset": 0 + }, + "1.18.0": { + "location": "registers", + "offset": 0 + }, + "1.18.1": { + "location": "registers", + "offset": 0 + }, + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.25.0": { + "location": "registers", + "offset": 0 + }, + "1.25.1": { + "location": "registers", + "offset": 0 + }, + "1.26.0": { + "location": "registers", + "offset": 0 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 0 + }, + "1.27.0": { + "location": "registers", + "offset": 0 + }, + "1.27.1": { + "location": "registers", + "offset": 0 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 0 + }, + "1.28.0": { + "location": "registers", + "offset": 0 + }, + "1.28.1": { + "location": "registers", + "offset": 0 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.29.0": { + "location": "registers", + "offset": 0 + }, + "1.29.1": { + "location": "registers", + "offset": 0 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 0 + }, + "1.30.0": { + "location": "registers", + "offset": 0 + }, + "1.30.1": { + "location": "registers", + "offset": 0 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.31.0": { + "location": "registers", + "offset": 0 + }, + "1.31.1": { + "location": "registers", + "offset": 0 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.32.0": { + "location": "registers", + "offset": 0 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.33.0": { + "location": "registers", + "offset": 0 + }, + "1.33.1": { + "location": "registers", + "offset": 0 + }, + "1.33.2": { + "location": "registers", + "offset": 0 + }, + "1.33.3": { + "location": "registers", + "offset": 0 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.34.0": { + "location": "registers", + "offset": 0 + }, + "1.34.1": { + "location": "registers", + "offset": 0 + }, + "1.34.2": { + "location": "registers", + "offset": 0 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.35.0": { + "location": "registers", + "offset": 0 + }, + "1.35.1": { + "location": "registers", + "offset": 0 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.36.0": { + "location": "registers", + "offset": 0 + }, + "1.36.1": { + "location": "registers", + "offset": 0 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.37.0": { + "location": "registers", + "offset": 0 + }, + "1.37.1": { + "location": "registers", + "offset": 0 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.38.0": { + "location": "registers", + "offset": 0 + }, + "1.38.1": { + "location": "registers", + "offset": 0 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.39.0": { + "location": "registers", + "offset": 0 + }, + "1.39.1": { + "location": "registers", + "offset": 0 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.40.0": { + "location": "registers", + "offset": 0 + }, + "1.40.1": { + "location": "registers", + "offset": 0 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.41.0": { + "location": "registers", + "offset": 0 + }, + "1.41.1": { + "location": "registers", + "offset": 0 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.42.0": { + "location": "registers", + "offset": 0 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.43.0": { + "location": "registers", + "offset": 0 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.44.0": { + "location": "registers", + "offset": 0 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.45.0": { + "location": "registers", + "offset": 0 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.46.0": { + "location": "registers", + "offset": 0 + }, + "1.46.1": { + "location": "registers", + "offset": 0 + }, + "1.46.2": { + "location": "registers", + "offset": 0 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.47.0": { + "location": "registers", + "offset": 0 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.48.0": { + "location": "registers", + "offset": 0 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.49.0": { + "location": "registers", + "offset": 0 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.50.0": { + "location": "registers", + "offset": 0 + }, + "1.50.1": { + "location": "registers", + "offset": 0 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.51.0": { + "location": "registers", + "offset": 0 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.52.0": { + "location": "registers", + "offset": 0 + }, + "1.52.1": { + "location": "registers", + "offset": 0 + }, + "1.52.3": { + "location": "registers", + "offset": 0 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.53.0": { + "location": "registers", + "offset": 0 + }, + "1.54.0": { + "location": "registers", + "offset": 0 + }, + "1.54.1": { + "location": "registers", + "offset": 0 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.55.0": { + "location": "registers", + "offset": 0 + }, + "1.55.1": { + "location": "registers", + "offset": 0 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.56.0": { + "location": "registers", + "offset": 0 + }, + "1.56.1": { + "location": "registers", + "offset": 0 + }, + "1.56.2": { + "location": "registers", + "offset": 0 + }, + "1.56.3": { + "location": "registers", + "offset": 0 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.57.0": { + "location": "registers", + "offset": 0 + }, + "1.57.1": { + "location": "registers", + "offset": 0 + }, + "1.57.2": { + "location": "registers", + "offset": 0 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.58.0": { + "location": "registers", + "offset": 0 + }, + "1.58.1": { + "location": "registers", + "offset": 0 + }, + "1.58.2": { + "location": "registers", + "offset": 0 + }, + "1.58.3": { + "location": "registers", + "offset": 0 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.59.0": { + "location": "registers", + "offset": 0 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.60.0": { + "location": "registers", + "offset": 0 + }, + "1.60.1": { + "location": "registers", + "offset": 0 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.61.0": { + "location": "registers", + "offset": 0 + }, + "1.61.1": { + "location": "registers", + "offset": 0 + }, + "1.61.2": { + "location": "registers", + "offset": 0 + }, + "1.62.0": { + "location": "registers", + "offset": 0 + }, + "1.62.1": { + "location": "registers", + "offset": 0 + }, + "1.62.2": { + "location": "registers", + "offset": 0 + }, + "1.63.0": { + "location": "registers", + "offset": 0 + }, + "1.63.1": { + "location": "registers", + "offset": 0 + }, + "1.63.2": { + "location": "registers", + "offset": 0 + }, + "1.63.3": { + "location": "registers", + "offset": 0 + }, + "1.64.0": { + "location": "registers", + "offset": 0 + }, + "1.64.1": { + "location": "registers", + "offset": 0 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.65.0": { + "location": "registers", + "offset": 0 + }, + "1.65.1": { + "location": "registers", + "offset": 0 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.66.0": { + "location": "registers", + "offset": 0 + }, + "1.66.1": { + "location": "registers", + "offset": 0 + }, + "1.66.2": { + "location": "registers", + "offset": 0 + }, + "1.66.3": { + "location": "registers", + "offset": 0 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.67.0": { + "location": "registers", + "offset": 0 + }, + "1.67.1": { + "location": "registers", + "offset": 0 + }, + "1.67.2": { + "location": "registers", + "offset": 0 + }, + "1.67.3": { + "location": "registers", + "offset": 0 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.68.0": { + "location": "registers", + "offset": 0 + }, + "1.68.1": { + "location": "registers", + "offset": 0 + }, + "1.68.2": { + "location": "registers", + "offset": 0 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.69.0": { + "location": "registers", + "offset": 0 + }, + "1.69.2": { + "location": "registers", + "offset": 0 + }, + "1.69.4": { + "location": "registers", + "offset": 0 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.70.0": { + "location": "registers", + "offset": 0 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.71.0": { + "location": "registers", + "offset": 0 + }, + "1.71.1": { + "location": "registers", + "offset": 0 + }, + "1.71.2": { + "location": "registers", + "offset": 0 + }, + "1.71.3": { + "location": "registers", + "offset": 0 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.72.0": { + "location": "registers", + "offset": 0 + }, + "1.72.1": { + "location": "registers", + "offset": 0 + }, + "1.72.2": { + "location": "registers", + "offset": 0 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 0 + } + } + }, + "google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders": { + "frame": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 8 + }, + "1.15.0": { + "location": "registers", + "offset": 8 + }, + "1.16.0": { + "location": "registers", + "offset": 8 + }, + "1.17.0": { + "location": "registers", + "offset": 8 + }, + "1.18.0": { + "location": "registers", + "offset": 8 + }, + "1.18.1": { + "location": "registers", + "offset": 8 + }, + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.25.0": { + "location": "registers", + "offset": 8 + }, + "1.25.1": { + "location": "registers", + "offset": 8 + }, + "1.26.0": { + "location": "registers", + "offset": 8 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 8 + }, + "1.27.0": { + "location": "registers", + "offset": 8 + }, + "1.27.1": { + "location": "registers", + "offset": 8 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 8 + }, + "1.28.0": { + "location": "registers", + "offset": 8 + }, + "1.28.1": { + "location": "registers", + "offset": 8 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.29.0": { + "location": "registers", + "offset": 8 + }, + "1.29.1": { + "location": "registers", + "offset": 8 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 8 + }, + "1.30.0": { + "location": "registers", + "offset": 8 + }, + "1.30.1": { + "location": "registers", + "offset": 8 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.31.0": { + "location": "registers", + "offset": 8 + }, + "1.31.1": { + "location": "registers", + "offset": 8 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.32.0": { + "location": "registers", + "offset": 8 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.33.0": { + "location": "registers", + "offset": 8 + }, + "1.33.1": { + "location": "registers", + "offset": 8 + }, + "1.33.2": { + "location": "registers", + "offset": 8 + }, + "1.33.3": { + "location": "registers", + "offset": 8 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.34.0": { + "location": "registers", + "offset": 8 + }, + "1.34.1": { + "location": "registers", + "offset": 8 + }, + "1.34.2": { + "location": "registers", + "offset": 8 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.35.0": { + "location": "registers", + "offset": 8 + }, + "1.35.1": { + "location": "registers", + "offset": 8 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.36.0": { + "location": "registers", + "offset": 8 + }, + "1.36.1": { + "location": "registers", + "offset": 8 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.37.0": { + "location": "registers", + "offset": 8 + }, + "1.37.1": { + "location": "registers", + "offset": 8 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.38.0": { + "location": "registers", + "offset": 8 + }, + "1.38.1": { + "location": "registers", + "offset": 8 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.39.0": { + "location": "registers", + "offset": 8 + }, + "1.39.1": { + "location": "registers", + "offset": 8 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.40.0": { + "location": "registers", + "offset": 8 + }, + "1.40.1": { + "location": "registers", + "offset": 8 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.41.0": { + "location": "registers", + "offset": 8 + }, + "1.41.1": { + "location": "registers", + "offset": 8 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.42.0": { + "location": "registers", + "offset": 8 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.43.0": { + "location": "registers", + "offset": 8 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.44.0": { + "location": "registers", + "offset": 8 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.45.0": { + "location": "registers", + "offset": 8 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.46.0": { + "location": "registers", + "offset": 8 + }, + "1.46.1": { + "location": "registers", + "offset": 8 + }, + "1.46.2": { + "location": "registers", + "offset": 8 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.47.0": { + "location": "registers", + "offset": 8 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.48.0": { + "location": "registers", + "offset": 8 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.49.0": { + "location": "registers", + "offset": 8 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.50.0": { + "location": "registers", + "offset": 8 + }, + "1.50.1": { + "location": "registers", + "offset": 8 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.51.0": { + "location": "registers", + "offset": 8 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.52.0": { + "location": "registers", + "offset": 8 + }, + "1.52.1": { + "location": "registers", + "offset": 8 + }, + "1.52.3": { + "location": "registers", + "offset": 8 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.53.0": { + "location": "registers", + "offset": 8 + }, + "1.54.0": { + "location": "registers", + "offset": 8 + }, + "1.54.1": { + "location": "registers", + "offset": 8 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.55.0": { + "location": "registers", + "offset": 8 + }, + "1.55.1": { + "location": "registers", + "offset": 8 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.56.0": { + "location": "registers", + "offset": 8 + }, + "1.56.1": { + "location": "registers", + "offset": 8 + }, + "1.56.2": { + "location": "registers", + "offset": 8 + }, + "1.56.3": { + "location": "registers", + "offset": 8 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.57.0": { + "location": "registers", + "offset": 8 + }, + "1.57.1": { + "location": "registers", + "offset": 8 + }, + "1.57.2": { + "location": "registers", + "offset": 8 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.58.0": { + "location": "registers", + "offset": 8 + }, + "1.58.1": { + "location": "registers", + "offset": 8 + }, + "1.58.2": { + "location": "registers", + "offset": 8 + }, + "1.58.3": { + "location": "registers", + "offset": 8 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.59.0": { + "location": "registers", + "offset": 8 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.60.0": { + "location": "registers", + "offset": 24 + }, + "1.60.1": { + "location": "registers", + "offset": 24 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.61.0": { + "location": "registers", + "offset": 24 + }, + "1.61.1": { + "location": "registers", + "offset": 24 + }, + "1.61.2": { + "location": "registers", + "offset": 24 + }, + "1.62.0": { + "location": "registers", + "offset": 24 + }, + "1.62.1": { + "location": "registers", + "offset": 24 + }, + "1.62.2": { + "location": "registers", + "offset": 24 + }, + "1.63.0": { + "location": "registers", + "offset": 24 + }, + "1.63.1": { + "location": "registers", + "offset": 24 + }, + "1.63.2": { + "location": "registers", + "offset": 24 + }, + "1.63.3": { + "location": "registers", + "offset": 24 + }, + "1.64.0": { + "location": "registers", + "offset": 24 + }, + "1.64.1": { + "location": "registers", + "offset": 24 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.65.0": { + "location": "registers", + "offset": 24 + }, + "1.65.1": { + "location": "registers", + "offset": 24 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.66.0": { + "location": "registers", + "offset": 24 + }, + "1.66.1": { + "location": "registers", + "offset": 24 + }, + "1.66.2": { + "location": "registers", + "offset": 24 + }, + "1.66.3": { + "location": "registers", + "offset": 24 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.67.0": { + "location": "registers", + "offset": 24 + }, + "1.67.1": { + "location": "registers", + "offset": 24 + }, + "1.67.2": { + "location": "registers", + "offset": 24 + }, + "1.67.3": { + "location": "registers", + "offset": 24 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.68.0": { + "location": "registers", + "offset": 24 + }, + "1.68.1": { + "location": "registers", + "offset": 24 + }, + "1.68.2": { + "location": "registers", + "offset": 24 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.69.0": { + "location": "registers", + "offset": 24 + }, + "1.69.2": { + "location": "registers", + "offset": 24 + }, + "1.69.4": { + "location": "registers", + "offset": 24 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.70.0": { + "location": "registers", + "offset": 24 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.71.0": { + "location": "registers", + "offset": 24 + }, + "1.71.1": { + "location": "registers", + "offset": 24 + }, + "1.71.2": { + "location": "registers", + "offset": 24 + }, + "1.71.3": { + "location": "registers", + "offset": 24 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.72.0": { + "location": "registers", + "offset": 24 + }, + "1.72.1": { + "location": "registers", + "offset": 24 + }, + "1.72.2": { + "location": "registers", + "offset": 24 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 24 + } + }, + "t": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 0 + }, + "1.15.0": { + "location": "registers", + "offset": 0 + }, + "1.16.0": { + "location": "registers", + "offset": 0 + }, + "1.17.0": { + "location": "registers", + "offset": 0 + }, + "1.18.0": { + "location": "registers", + "offset": 0 + }, + "1.18.1": { + "location": "registers", + "offset": 0 + }, + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.25.0": { + "location": "registers", + "offset": 0 + }, + "1.25.1": { + "location": "registers", + "offset": 0 + }, + "1.26.0": { + "location": "registers", + "offset": 0 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 0 + }, + "1.27.0": { + "location": "registers", + "offset": 0 + }, + "1.27.1": { + "location": "registers", + "offset": 0 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 0 + }, + "1.28.0": { + "location": "registers", + "offset": 0 + }, + "1.28.1": { + "location": "registers", + "offset": 0 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.29.0": { + "location": "registers", + "offset": 0 + }, + "1.29.1": { + "location": "registers", + "offset": 0 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 0 + }, + "1.30.0": { + "location": "registers", + "offset": 0 + }, + "1.30.1": { + "location": "registers", + "offset": 0 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.31.0": { + "location": "registers", + "offset": 0 + }, + "1.31.1": { + "location": "registers", + "offset": 0 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.32.0": { + "location": "registers", + "offset": 0 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.33.0": { + "location": "registers", + "offset": 0 + }, + "1.33.1": { + "location": "registers", + "offset": 0 + }, + "1.33.2": { + "location": "registers", + "offset": 0 + }, + "1.33.3": { + "location": "registers", + "offset": 0 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.34.0": { + "location": "registers", + "offset": 0 + }, + "1.34.1": { + "location": "registers", + "offset": 0 + }, + "1.34.2": { + "location": "registers", + "offset": 0 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.35.0": { + "location": "registers", + "offset": 0 + }, + "1.35.1": { + "location": "registers", + "offset": 0 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.36.0": { + "location": "registers", + "offset": 0 + }, + "1.36.1": { + "location": "registers", + "offset": 0 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.37.0": { + "location": "registers", + "offset": 0 + }, + "1.37.1": { + "location": "registers", + "offset": 0 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.38.0": { + "location": "registers", + "offset": 0 + }, + "1.38.1": { + "location": "registers", + "offset": 0 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.39.0": { + "location": "registers", + "offset": 0 + }, + "1.39.1": { + "location": "registers", + "offset": 0 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.40.0": { + "location": "registers", + "offset": 0 + }, + "1.40.1": { + "location": "registers", + "offset": 0 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.41.0": { + "location": "registers", + "offset": 0 + }, + "1.41.1": { + "location": "registers", + "offset": 0 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.42.0": { + "location": "registers", + "offset": 0 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.43.0": { + "location": "registers", + "offset": 0 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.44.0": { + "location": "registers", + "offset": 0 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.45.0": { + "location": "registers", + "offset": 0 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.46.0": { + "location": "registers", + "offset": 0 + }, + "1.46.1": { + "location": "registers", + "offset": 0 + }, + "1.46.2": { + "location": "registers", + "offset": 0 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.47.0": { + "location": "registers", + "offset": 0 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.48.0": { + "location": "registers", + "offset": 0 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.49.0": { + "location": "registers", + "offset": 0 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.50.0": { + "location": "registers", + "offset": 0 + }, + "1.50.1": { + "location": "registers", + "offset": 0 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.51.0": { + "location": "registers", + "offset": 0 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.52.0": { + "location": "registers", + "offset": 0 + }, + "1.52.1": { + "location": "registers", + "offset": 0 + }, + "1.52.3": { + "location": "registers", + "offset": 0 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.53.0": { + "location": "registers", + "offset": 0 + }, + "1.54.0": { + "location": "registers", + "offset": 0 + }, + "1.54.1": { + "location": "registers", + "offset": 0 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.55.0": { + "location": "registers", + "offset": 0 + }, + "1.55.1": { + "location": "registers", + "offset": 0 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.56.0": { + "location": "registers", + "offset": 0 + }, + "1.56.1": { + "location": "registers", + "offset": 0 + }, + "1.56.2": { + "location": "registers", + "offset": 0 + }, + "1.56.3": { + "location": "registers", + "offset": 0 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.57.0": { + "location": "registers", + "offset": 0 + }, + "1.57.1": { + "location": "registers", + "offset": 0 + }, + "1.57.2": { + "location": "registers", + "offset": 0 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.58.0": { + "location": "registers", + "offset": 0 + }, + "1.58.1": { + "location": "registers", + "offset": 0 + }, + "1.58.2": { + "location": "registers", + "offset": 0 + }, + "1.58.3": { + "location": "registers", + "offset": 0 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.59.0": { + "location": "registers", + "offset": 0 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.60.0": { + "location": "registers", + "offset": 0 + }, + "1.60.1": { + "location": "registers", + "offset": 0 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.61.0": { + "location": "registers", + "offset": 0 + }, + "1.61.1": { + "location": "registers", + "offset": 0 + }, + "1.61.2": { + "location": "registers", + "offset": 0 + }, + "1.62.0": { + "location": "registers", + "offset": 0 + }, + "1.62.1": { + "location": "registers", + "offset": 0 + }, + "1.62.2": { + "location": "registers", + "offset": 0 + }, + "1.63.0": { + "location": "registers", + "offset": 0 + }, + "1.63.1": { + "location": "registers", + "offset": 0 + }, + "1.63.2": { + "location": "registers", + "offset": 0 + }, + "1.63.3": { + "location": "registers", + "offset": 0 + }, + "1.64.0": { + "location": "registers", + "offset": 0 + }, + "1.64.1": { + "location": "registers", + "offset": 0 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.65.0": { + "location": "registers", + "offset": 0 + }, + "1.65.1": { + "location": "registers", + "offset": 0 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.66.0": { + "location": "registers", + "offset": 0 + }, + "1.66.1": { + "location": "registers", + "offset": 0 + }, + "1.66.2": { + "location": "registers", + "offset": 0 + }, + "1.66.3": { + "location": "registers", + "offset": 0 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.67.0": { + "location": "registers", + "offset": 0 + }, + "1.67.1": { + "location": "registers", + "offset": 0 + }, + "1.67.2": { + "location": "registers", + "offset": 0 + }, + "1.67.3": { + "location": "registers", + "offset": 0 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.68.0": { + "location": "registers", + "offset": 0 + }, + "1.68.1": { + "location": "registers", + "offset": 0 + }, + "1.68.2": { + "location": "registers", + "offset": 0 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.69.0": { + "location": "registers", + "offset": 0 + }, + "1.69.2": { + "location": "registers", + "offset": 0 + }, + "1.69.4": { + "location": "registers", + "offset": 0 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.70.0": { + "location": "registers", + "offset": 0 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.71.0": { + "location": "registers", + "offset": 0 + }, + "1.71.1": { + "location": "registers", + "offset": 0 + }, + "1.71.2": { + "location": "registers", + "offset": 0 + }, + "1.71.3": { + "location": "registers", + "offset": 0 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.72.0": { + "location": "registers", + "offset": 0 + }, + "1.72.1": { + "location": "registers", + "offset": 0 + }, + "1.72.2": { + "location": "registers", + "offset": 0 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 0 + } + } + }, + "google.golang.org/grpc/internal/transport.(*loopyWriter).writeHeader": { + "endStream": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 16 + }, + "1.15.0": { + "location": "registers", + "offset": 16 + }, + "1.16.0": { + "location": "registers", + "offset": 16 + }, + "1.17.0": { + "location": "registers", + "offset": 16 + }, + "1.18.0": { + "location": "registers", + "offset": 16 + }, + "1.18.1": { + "location": "registers", + "offset": 16 + }, + "1.19.0": { + "location": "registers", + "offset": 16 + }, + "1.19.1": { + "location": "registers", + "offset": 16 + }, + "1.20.0": { + "location": "registers", + "offset": 16 + }, + "1.20.1": { + "location": "registers", + "offset": 16 + }, + "1.21.0": { + "location": "registers", + "offset": 16 + }, + "1.21.1": { + "location": "registers", + "offset": 16 + }, + "1.21.2": { + "location": "registers", + "offset": 16 + }, + "1.21.3": { + "location": "registers", + "offset": 16 + }, + "1.21.4": { + "location": "registers", + "offset": 16 + }, + "1.22.0": { + "location": "registers", + "offset": 16 + }, + "1.22.1": { + "location": "registers", + "offset": 16 + }, + "1.22.2": { + "location": "registers", + "offset": 16 + }, + "1.22.3": { + "location": "registers", + "offset": 16 + }, + "1.23.0": { + "location": "registers", + "offset": 16 + }, + "1.23.1": { + "location": "registers", + "offset": 16 + }, + "1.24.0": { + "location": "registers", + "offset": 16 + }, + "1.25.0": { + "location": "registers", + "offset": 16 + }, + "1.25.1": { + "location": "registers", + "offset": 16 + }, + "1.26.0": { + "location": "registers", + "offset": 16 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 16 + }, + "1.27.0": { + "location": "registers", + "offset": 16 + }, + "1.27.1": { + "location": "registers", + "offset": 16 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 16 + }, + "1.28.0": { + "location": "registers", + "offset": 16 + }, + "1.28.1": { + "location": "registers", + "offset": 16 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.29.0": { + "location": "registers", + "offset": 16 + }, + "1.29.1": { + "location": "registers", + "offset": 16 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 16 + }, + "1.30.0": { + "location": "registers", + "offset": 16 + }, + "1.30.1": { + "location": "registers", + "offset": 16 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.31.0": { + "location": "registers", + "offset": 16 + }, + "1.31.1": { + "location": "registers", + "offset": 16 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.32.0": { + "location": "registers", + "offset": 16 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.33.0": { + "location": "registers", + "offset": 16 + }, + "1.33.1": { + "location": "registers", + "offset": 16 + }, + "1.33.2": { + "location": "registers", + "offset": 16 + }, + "1.33.3": { + "location": "registers", + "offset": 16 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.34.0": { + "location": "registers", + "offset": 16 + }, + "1.34.1": { + "location": "registers", + "offset": 16 + }, + "1.34.2": { + "location": "registers", + "offset": 16 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.35.0": { + "location": "registers", + "offset": 16 + }, + "1.35.1": { + "location": "registers", + "offset": 16 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.36.0": { + "location": "registers", + "offset": 16 + }, + "1.36.1": { + "location": "registers", + "offset": 16 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.37.0": { + "location": "registers", + "offset": 16 + }, + "1.37.1": { + "location": "registers", + "offset": 16 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.38.0": { + "location": "registers", + "offset": 16 + }, + "1.38.1": { + "location": "registers", + "offset": 16 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.39.0": { + "location": "registers", + "offset": 16 + }, + "1.39.1": { + "location": "registers", + "offset": 16 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.40.0": { + "location": "registers", + "offset": 16 + }, + "1.40.1": { + "location": "registers", + "offset": 16 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.41.0": { + "location": "registers", + "offset": 16 + }, + "1.41.1": { + "location": "registers", + "offset": 16 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.42.0": { + "location": "registers", + "offset": 16 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.43.0": { + "location": "registers", + "offset": 16 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.44.0": { + "location": "registers", + "offset": 16 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.45.0": { + "location": "registers", + "offset": 16 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.46.0": { + "location": "registers", + "offset": 16 + }, + "1.46.1": { + "location": "registers", + "offset": 16 + }, + "1.46.2": { + "location": "registers", + "offset": 16 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.47.0": { + "location": "registers", + "offset": 16 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.48.0": { + "location": "registers", + "offset": 16 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.49.0": { + "location": "registers", + "offset": 16 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.50.0": { + "location": "registers", + "offset": 16 + }, + "1.50.1": { + "location": "registers", + "offset": 16 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.51.0": { + "location": "registers", + "offset": 16 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.52.0": { + "location": "registers", + "offset": 16 + }, + "1.52.1": { + "location": "registers", + "offset": 16 + }, + "1.52.3": { + "location": "registers", + "offset": 16 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.53.0": { + "location": "registers", + "offset": 16 + }, + "1.54.0": { + "location": "registers", + "offset": 16 + }, + "1.54.1": { + "location": "registers", + "offset": 16 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.55.0": { + "location": "registers", + "offset": 16 + }, + "1.55.1": { + "location": "registers", + "offset": 16 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.56.0": { + "location": "registers", + "offset": 16 + }, + "1.56.1": { + "location": "registers", + "offset": 16 + }, + "1.56.2": { + "location": "registers", + "offset": 16 + }, + "1.56.3": { + "location": "registers", + "offset": 16 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.57.0": { + "location": "registers", + "offset": 16 + }, + "1.57.1": { + "location": "registers", + "offset": 16 + }, + "1.57.2": { + "location": "registers", + "offset": 16 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.58.0": { + "location": "registers", + "offset": 16 + }, + "1.58.1": { + "location": "registers", + "offset": 16 + }, + "1.58.2": { + "location": "registers", + "offset": 16 + }, + "1.58.3": { + "location": "registers", + "offset": 16 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.59.0": { + "location": "registers", + "offset": 16 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.60.0": { + "location": "registers", + "offset": 16 + }, + "1.60.1": { + "location": "registers", + "offset": 16 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.61.0": { + "location": "registers", + "offset": 16 + }, + "1.61.1": { + "location": "registers", + "offset": 16 + }, + "1.61.2": { + "location": "registers", + "offset": 16 + }, + "1.62.0": { + "location": "registers", + "offset": 16 + }, + "1.62.1": { + "location": "registers", + "offset": 16 + }, + "1.62.2": { + "location": "registers", + "offset": 16 + }, + "1.63.0": { + "location": "registers", + "offset": 16 + }, + "1.63.1": { + "location": "registers", + "offset": 16 + }, + "1.63.2": { + "location": "registers", + "offset": 16 + }, + "1.63.3": { + "location": "registers", + "offset": 16 + }, + "1.64.0": { + "location": "registers", + "offset": 16 + }, + "1.64.1": { + "location": "registers", + "offset": 16 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.65.0": { + "location": "registers", + "offset": 16 + }, + "1.65.1": { + "location": "registers", + "offset": 16 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.66.0": { + "location": "registers", + "offset": 16 + }, + "1.66.1": { + "location": "registers", + "offset": 16 + }, + "1.66.2": { + "location": "registers", + "offset": 16 + }, + "1.66.3": { + "location": "registers", + "offset": 16 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.67.0": { + "location": "registers", + "offset": 16 + }, + "1.67.1": { + "location": "registers", + "offset": 16 + }, + "1.67.2": { + "location": "registers", + "offset": 16 + }, + "1.67.3": { + "location": "registers", + "offset": 16 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.68.0": { + "location": "registers", + "offset": 16 + }, + "1.68.1": { + "location": "registers", + "offset": 16 + }, + "1.68.2": { + "location": "registers", + "offset": 16 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.69.0": { + "location": "registers", + "offset": 16 + }, + "1.69.2": { + "location": "registers", + "offset": 16 + }, + "1.69.4": { + "location": "registers", + "offset": 16 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.70.0": { + "location": "registers", + "offset": 16 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.71.0": { + "location": "registers", + "offset": 16 + }, + "1.71.1": { + "location": "registers", + "offset": 16 + }, + "1.71.2": { + "location": "registers", + "offset": 16 + }, + "1.71.3": { + "location": "registers", + "offset": 16 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.72.0": { + "location": "registers", + "offset": 16 + }, + "1.72.1": { + "location": "registers", + "offset": 16 + }, + "1.72.2": { + "location": "registers", + "offset": 16 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 16 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 16 + } + }, + "hf": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 24 + }, + "1.15.0": { + "location": "registers", + "offset": 24 + }, + "1.16.0": { + "location": "registers", + "offset": 24 + }, + "1.17.0": { + "location": "registers", + "offset": 24 + }, + "1.18.0": { + "location": "registers", + "offset": 24 + }, + "1.18.1": { + "location": "registers", + "offset": 24 + }, + "1.19.0": { + "location": "registers", + "offset": 24 + }, + "1.19.1": { + "location": "registers", + "offset": 24 + }, + "1.20.0": { + "location": "registers", + "offset": 24 + }, + "1.20.1": { + "location": "registers", + "offset": 24 + }, + "1.21.0": { + "location": "registers", + "offset": 24 + }, + "1.21.1": { + "location": "registers", + "offset": 24 + }, + "1.21.2": { + "location": "registers", + "offset": 24 + }, + "1.21.3": { + "location": "registers", + "offset": 24 + }, + "1.21.4": { + "location": "registers", + "offset": 24 + }, + "1.22.0": { + "location": "registers", + "offset": 24 + }, + "1.22.1": { + "location": "registers", + "offset": 24 + }, + "1.22.2": { + "location": "registers", + "offset": 24 + }, + "1.22.3": { + "location": "registers", + "offset": 24 + }, + "1.23.0": { + "location": "registers", + "offset": 24 + }, + "1.23.1": { + "location": "registers", + "offset": 24 + }, + "1.24.0": { + "location": "registers", + "offset": 24 + }, + "1.25.0": { + "location": "registers", + "offset": 24 + }, + "1.25.1": { + "location": "registers", + "offset": 24 + }, + "1.26.0": { + "location": "registers", + "offset": 24 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 24 + }, + "1.27.0": { + "location": "registers", + "offset": 24 + }, + "1.27.1": { + "location": "registers", + "offset": 24 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 24 + }, + "1.28.0": { + "location": "registers", + "offset": 24 + }, + "1.28.1": { + "location": "registers", + "offset": 24 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.29.0": { + "location": "registers", + "offset": 24 + }, + "1.29.1": { + "location": "registers", + "offset": 24 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 24 + }, + "1.30.0": { + "location": "registers", + "offset": 24 + }, + "1.30.1": { + "location": "registers", + "offset": 24 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.31.0": { + "location": "registers", + "offset": 24 + }, + "1.31.1": { + "location": "registers", + "offset": 24 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.32.0": { + "location": "registers", + "offset": 24 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.33.0": { + "location": "registers", + "offset": 24 + }, + "1.33.1": { + "location": "registers", + "offset": 24 + }, + "1.33.2": { + "location": "registers", + "offset": 24 + }, + "1.33.3": { + "location": "registers", + "offset": 24 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.34.0": { + "location": "registers", + "offset": 24 + }, + "1.34.1": { + "location": "registers", + "offset": 24 + }, + "1.34.2": { + "location": "registers", + "offset": 24 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.35.0": { + "location": "registers", + "offset": 24 + }, + "1.35.1": { + "location": "registers", + "offset": 24 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.36.0": { + "location": "registers", + "offset": 24 + }, + "1.36.1": { + "location": "registers", + "offset": 24 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.37.0": { + "location": "registers", + "offset": 24 + }, + "1.37.1": { + "location": "registers", + "offset": 24 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.38.0": { + "location": "registers", + "offset": 24 + }, + "1.38.1": { + "location": "registers", + "offset": 24 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.39.0": { + "location": "registers", + "offset": 24 + }, + "1.39.1": { + "location": "registers", + "offset": 24 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.40.0": { + "location": "registers", + "offset": 24 + }, + "1.40.1": { + "location": "registers", + "offset": 24 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.41.0": { + "location": "registers", + "offset": 24 + }, + "1.41.1": { + "location": "registers", + "offset": 24 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.42.0": { + "location": "registers", + "offset": 24 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.43.0": { + "location": "registers", + "offset": 24 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.44.0": { + "location": "registers", + "offset": 24 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.45.0": { + "location": "registers", + "offset": 24 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.46.0": { + "location": "registers", + "offset": 24 + }, + "1.46.1": { + "location": "registers", + "offset": 24 + }, + "1.46.2": { + "location": "registers", + "offset": 24 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.47.0": { + "location": "registers", + "offset": 24 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.48.0": { + "location": "registers", + "offset": 24 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.49.0": { + "location": "registers", + "offset": 24 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.50.0": { + "location": "registers", + "offset": 24 + }, + "1.50.1": { + "location": "registers", + "offset": 24 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.51.0": { + "location": "registers", + "offset": 24 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.52.0": { + "location": "registers", + "offset": 24 + }, + "1.52.1": { + "location": "registers", + "offset": 24 + }, + "1.52.3": { + "location": "registers", + "offset": 24 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.53.0": { + "location": "registers", + "offset": 24 + }, + "1.54.0": { + "location": "registers", + "offset": 24 + }, + "1.54.1": { + "location": "registers", + "offset": 24 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.55.0": { + "location": "registers", + "offset": 24 + }, + "1.55.1": { + "location": "registers", + "offset": 24 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.56.0": { + "location": "registers", + "offset": 24 + }, + "1.56.1": { + "location": "registers", + "offset": 24 + }, + "1.56.2": { + "location": "registers", + "offset": 24 + }, + "1.56.3": { + "location": "registers", + "offset": 24 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.57.0": { + "location": "registers", + "offset": 24 + }, + "1.57.1": { + "location": "registers", + "offset": 24 + }, + "1.57.2": { + "location": "registers", + "offset": 24 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.58.0": { + "location": "registers", + "offset": 24 + }, + "1.58.1": { + "location": "registers", + "offset": 24 + }, + "1.58.2": { + "location": "registers", + "offset": 24 + }, + "1.58.3": { + "location": "registers", + "offset": 24 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.59.0": { + "location": "registers", + "offset": 24 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.60.0": { + "location": "registers", + "offset": 24 + }, + "1.60.1": { + "location": "registers", + "offset": 24 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.61.0": { + "location": "registers", + "offset": 24 + }, + "1.61.1": { + "location": "registers", + "offset": 24 + }, + "1.61.2": { + "location": "registers", + "offset": 24 + }, + "1.62.0": { + "location": "registers", + "offset": 24 + }, + "1.62.1": { + "location": "registers", + "offset": 24 + }, + "1.62.2": { + "location": "registers", + "offset": 24 + }, + "1.63.0": { + "location": "registers", + "offset": 24 + }, + "1.63.1": { + "location": "registers", + "offset": 24 + }, + "1.63.2": { + "location": "registers", + "offset": 24 + }, + "1.63.3": { + "location": "registers", + "offset": 24 + }, + "1.64.0": { + "location": "registers", + "offset": 24 + }, + "1.64.1": { + "location": "registers", + "offset": 24 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.65.0": { + "location": "registers", + "offset": 24 + }, + "1.65.1": { + "location": "registers", + "offset": 24 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.66.0": { + "location": "registers", + "offset": 24 + }, + "1.66.1": { + "location": "registers", + "offset": 24 + }, + "1.66.2": { + "location": "registers", + "offset": 24 + }, + "1.66.3": { + "location": "registers", + "offset": 24 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.67.0": { + "location": "registers", + "offset": 24 + }, + "1.67.1": { + "location": "registers", + "offset": 24 + }, + "1.67.2": { + "location": "registers", + "offset": 24 + }, + "1.67.3": { + "location": "registers", + "offset": 24 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.68.0": { + "location": "registers", + "offset": 24 + }, + "1.68.1": { + "location": "registers", + "offset": 24 + }, + "1.68.2": { + "location": "registers", + "offset": 24 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.69.0": { + "location": "registers", + "offset": 24 + }, + "1.69.2": { + "location": "registers", + "offset": 24 + }, + "1.69.4": { + "location": "registers", + "offset": 24 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.70.0": { + "location": "registers", + "offset": 24 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.71.0": { + "location": "registers", + "offset": 24 + }, + "1.71.1": { + "location": "registers", + "offset": 24 + }, + "1.71.2": { + "location": "registers", + "offset": 24 + }, + "1.71.3": { + "location": "registers", + "offset": 24 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.72.0": { + "location": "registers", + "offset": 24 + }, + "1.72.1": { + "location": "registers", + "offset": 24 + }, + "1.72.2": { + "location": "registers", + "offset": 24 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 24 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 24 + } + }, + "l": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 0 + }, + "1.15.0": { + "location": "registers", + "offset": 0 + }, + "1.16.0": { + "location": "registers", + "offset": 0 + }, + "1.17.0": { + "location": "registers", + "offset": 0 + }, + "1.18.0": { + "location": "registers", + "offset": 0 + }, + "1.18.1": { + "location": "registers", + "offset": 0 + }, + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.25.0": { + "location": "registers", + "offset": 0 + }, + "1.25.1": { + "location": "registers", + "offset": 0 + }, + "1.26.0": { + "location": "registers", + "offset": 0 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 0 + }, + "1.27.0": { + "location": "registers", + "offset": 0 + }, + "1.27.1": { + "location": "registers", + "offset": 0 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 0 + }, + "1.28.0": { + "location": "registers", + "offset": 0 + }, + "1.28.1": { + "location": "registers", + "offset": 0 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.29.0": { + "location": "registers", + "offset": 0 + }, + "1.29.1": { + "location": "registers", + "offset": 0 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 0 + }, + "1.30.0": { + "location": "registers", + "offset": 0 + }, + "1.30.1": { + "location": "registers", + "offset": 0 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.31.0": { + "location": "registers", + "offset": 0 + }, + "1.31.1": { + "location": "registers", + "offset": 0 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.32.0": { + "location": "registers", + "offset": 0 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.33.0": { + "location": "registers", + "offset": 0 + }, + "1.33.1": { + "location": "registers", + "offset": 0 + }, + "1.33.2": { + "location": "registers", + "offset": 0 + }, + "1.33.3": { + "location": "registers", + "offset": 0 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.34.0": { + "location": "registers", + "offset": 0 + }, + "1.34.1": { + "location": "registers", + "offset": 0 + }, + "1.34.2": { + "location": "registers", + "offset": 0 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.35.0": { + "location": "registers", + "offset": 0 + }, + "1.35.1": { + "location": "registers", + "offset": 0 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.36.0": { + "location": "registers", + "offset": 0 + }, + "1.36.1": { + "location": "registers", + "offset": 0 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.37.0": { + "location": "registers", + "offset": 0 + }, + "1.37.1": { + "location": "registers", + "offset": 0 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.38.0": { + "location": "registers", + "offset": 0 + }, + "1.38.1": { + "location": "registers", + "offset": 0 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.39.0": { + "location": "registers", + "offset": 0 + }, + "1.39.1": { + "location": "registers", + "offset": 0 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.40.0": { + "location": "registers", + "offset": 0 + }, + "1.40.1": { + "location": "registers", + "offset": 0 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.41.0": { + "location": "registers", + "offset": 0 + }, + "1.41.1": { + "location": "registers", + "offset": 0 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.42.0": { + "location": "registers", + "offset": 0 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.43.0": { + "location": "registers", + "offset": 0 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.44.0": { + "location": "registers", + "offset": 0 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.45.0": { + "location": "registers", + "offset": 0 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.46.0": { + "location": "registers", + "offset": 0 + }, + "1.46.1": { + "location": "registers", + "offset": 0 + }, + "1.46.2": { + "location": "registers", + "offset": 0 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.47.0": { + "location": "registers", + "offset": 0 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.48.0": { + "location": "registers", + "offset": 0 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.49.0": { + "location": "registers", + "offset": 0 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.50.0": { + "location": "registers", + "offset": 0 + }, + "1.50.1": { + "location": "registers", + "offset": 0 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.51.0": { + "location": "registers", + "offset": 0 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.52.0": { + "location": "registers", + "offset": 0 + }, + "1.52.1": { + "location": "registers", + "offset": 0 + }, + "1.52.3": { + "location": "registers", + "offset": 0 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.53.0": { + "location": "registers", + "offset": 0 + }, + "1.54.0": { + "location": "registers", + "offset": 0 + }, + "1.54.1": { + "location": "registers", + "offset": 0 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.55.0": { + "location": "registers", + "offset": 0 + }, + "1.55.1": { + "location": "registers", + "offset": 0 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.56.0": { + "location": "registers", + "offset": 0 + }, + "1.56.1": { + "location": "registers", + "offset": 0 + }, + "1.56.2": { + "location": "registers", + "offset": 0 + }, + "1.56.3": { + "location": "registers", + "offset": 0 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.57.0": { + "location": "registers", + "offset": 0 + }, + "1.57.1": { + "location": "registers", + "offset": 0 + }, + "1.57.2": { + "location": "registers", + "offset": 0 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.58.0": { + "location": "registers", + "offset": 0 + }, + "1.58.1": { + "location": "registers", + "offset": 0 + }, + "1.58.2": { + "location": "registers", + "offset": 0 + }, + "1.58.3": { + "location": "registers", + "offset": 0 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.59.0": { + "location": "registers", + "offset": 0 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.60.0": { + "location": "registers", + "offset": 0 + }, + "1.60.1": { + "location": "registers", + "offset": 0 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.61.0": { + "location": "registers", + "offset": 0 + }, + "1.61.1": { + "location": "registers", + "offset": 0 + }, + "1.61.2": { + "location": "registers", + "offset": 0 + }, + "1.62.0": { + "location": "registers", + "offset": 0 + }, + "1.62.1": { + "location": "registers", + "offset": 0 + }, + "1.62.2": { + "location": "registers", + "offset": 0 + }, + "1.63.0": { + "location": "registers", + "offset": 0 + }, + "1.63.1": { + "location": "registers", + "offset": 0 + }, + "1.63.2": { + "location": "registers", + "offset": 0 + }, + "1.63.3": { + "location": "registers", + "offset": 0 + }, + "1.64.0": { + "location": "registers", + "offset": 0 + }, + "1.64.1": { + "location": "registers", + "offset": 0 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.65.0": { + "location": "registers", + "offset": 0 + }, + "1.65.1": { + "location": "registers", + "offset": 0 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.66.0": { + "location": "registers", + "offset": 0 + }, + "1.66.1": { + "location": "registers", + "offset": 0 + }, + "1.66.2": { + "location": "registers", + "offset": 0 + }, + "1.66.3": { + "location": "registers", + "offset": 0 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.67.0": { + "location": "registers", + "offset": 0 + }, + "1.67.1": { + "location": "registers", + "offset": 0 + }, + "1.67.2": { + "location": "registers", + "offset": 0 + }, + "1.67.3": { + "location": "registers", + "offset": 0 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.68.0": { + "location": "registers", + "offset": 0 + }, + "1.68.1": { + "location": "registers", + "offset": 0 + }, + "1.68.2": { + "location": "registers", + "offset": 0 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.69.0": { + "location": "registers", + "offset": 0 + }, + "1.69.2": { + "location": "registers", + "offset": 0 + }, + "1.69.4": { + "location": "registers", + "offset": 0 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.70.0": { + "location": "registers", + "offset": 0 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.71.0": { + "location": "registers", + "offset": 0 + }, + "1.71.1": { + "location": "registers", + "offset": 0 + }, + "1.71.2": { + "location": "registers", + "offset": 0 + }, + "1.71.3": { + "location": "registers", + "offset": 0 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.72.0": { + "location": "registers", + "offset": 0 + }, + "1.72.1": { + "location": "registers", + "offset": 0 + }, + "1.72.2": { + "location": "registers", + "offset": 0 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 0 + } + }, + "streamID": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": { + "location": "registers", + "offset": 8 + }, + "1.15.0": { + "location": "registers", + "offset": 8 + }, + "1.16.0": { + "location": "registers", + "offset": 8 + }, + "1.17.0": { + "location": "registers", + "offset": 8 + }, + "1.18.0": { + "location": "registers", + "offset": 8 + }, + "1.18.1": { + "location": "registers", + "offset": 8 + }, + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.25.0": { + "location": "registers", + "offset": 8 + }, + "1.25.1": { + "location": "registers", + "offset": 8 + }, + "1.26.0": { + "location": "registers", + "offset": 8 + }, + "1.27.0-pre": { + "location": "registers", + "offset": 8 + }, + "1.27.0": { + "location": "registers", + "offset": 8 + }, + "1.27.1": { + "location": "registers", + "offset": 8 + }, + "1.28.0-pre": { + "location": "registers", + "offset": 8 + }, + "1.28.0": { + "location": "registers", + "offset": 8 + }, + "1.28.1": { + "location": "registers", + "offset": 8 + }, + "1.29.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.29.0": { + "location": "registers", + "offset": 8 + }, + "1.29.1": { + "location": "registers", + "offset": 8 + }, + "1.30.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.30.0-dev.1": { + "location": "registers", + "offset": 8 + }, + "1.30.0": { + "location": "registers", + "offset": 8 + }, + "1.30.1": { + "location": "registers", + "offset": 8 + }, + "1.31.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.31.0": { + "location": "registers", + "offset": 8 + }, + "1.31.1": { + "location": "registers", + "offset": 8 + }, + "1.32.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.32.0": { + "location": "registers", + "offset": 8 + }, + "1.33.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.33.0": { + "location": "registers", + "offset": 8 + }, + "1.33.1": { + "location": "registers", + "offset": 8 + }, + "1.33.2": { + "location": "registers", + "offset": 8 + }, + "1.33.3": { + "location": "registers", + "offset": 8 + }, + "1.34.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.34.0": { + "location": "registers", + "offset": 8 + }, + "1.34.1": { + "location": "registers", + "offset": 8 + }, + "1.34.2": { + "location": "registers", + "offset": 8 + }, + "1.35.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.35.0": { + "location": "registers", + "offset": 8 + }, + "1.35.1": { + "location": "registers", + "offset": 8 + }, + "1.36.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.36.0": { + "location": "registers", + "offset": 8 + }, + "1.36.1": { + "location": "registers", + "offset": 8 + }, + "1.37.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.37.0": { + "location": "registers", + "offset": 8 + }, + "1.37.1": { + "location": "registers", + "offset": 8 + }, + "1.38.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.38.0": { + "location": "registers", + "offset": 8 + }, + "1.38.1": { + "location": "registers", + "offset": 8 + }, + "1.39.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.39.0": { + "location": "registers", + "offset": 8 + }, + "1.39.1": { + "location": "registers", + "offset": 8 + }, + "1.40.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.40.0": { + "location": "registers", + "offset": 8 + }, + "1.40.1": { + "location": "registers", + "offset": 8 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.41.0": { + "location": "registers", + "offset": 8 + }, + "1.41.1": { + "location": "registers", + "offset": 8 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.42.0": { + "location": "registers", + "offset": 8 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.43.0": { + "location": "registers", + "offset": 8 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.44.0": { + "location": "registers", + "offset": 8 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.45.0": { + "location": "registers", + "offset": 8 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.46.0": { + "location": "registers", + "offset": 8 + }, + "1.46.1": { + "location": "registers", + "offset": 8 + }, + "1.46.2": { + "location": "registers", + "offset": 8 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.47.0": { + "location": "registers", + "offset": 8 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.48.0": { + "location": "registers", + "offset": 8 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.49.0": { + "location": "registers", + "offset": 8 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.50.0": { + "location": "registers", + "offset": 8 + }, + "1.50.1": { + "location": "registers", + "offset": 8 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.51.0": { + "location": "registers", + "offset": 8 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.52.0": { + "location": "registers", + "offset": 8 + }, + "1.52.1": { + "location": "registers", + "offset": 8 + }, + "1.52.3": { + "location": "registers", + "offset": 8 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.53.0": { + "location": "registers", + "offset": 8 + }, + "1.54.0": { + "location": "registers", + "offset": 8 + }, + "1.54.1": { + "location": "registers", + "offset": 8 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.55.0": { + "location": "registers", + "offset": 8 + }, + "1.55.1": { + "location": "registers", + "offset": 8 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.56.0": { + "location": "registers", + "offset": 8 + }, + "1.56.1": { + "location": "registers", + "offset": 8 + }, + "1.56.2": { + "location": "registers", + "offset": 8 + }, + "1.56.3": { + "location": "registers", + "offset": 8 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.57.0": { + "location": "registers", + "offset": 8 + }, + "1.57.1": { + "location": "registers", + "offset": 8 + }, + "1.57.2": { + "location": "registers", + "offset": 8 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.58.0": { + "location": "registers", + "offset": 8 + }, + "1.58.1": { + "location": "registers", + "offset": 8 + }, + "1.58.2": { + "location": "registers", + "offset": 8 + }, + "1.58.3": { + "location": "registers", + "offset": 8 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.59.0": { + "location": "registers", + "offset": 8 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.60.0": { + "location": "registers", + "offset": 8 + }, + "1.60.1": { + "location": "registers", + "offset": 8 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.61.0": { + "location": "registers", + "offset": 8 + }, + "1.61.1": { + "location": "registers", + "offset": 8 + }, + "1.61.2": { + "location": "registers", + "offset": 8 + }, + "1.62.0": { + "location": "registers", + "offset": 8 + }, + "1.62.1": { + "location": "registers", + "offset": 8 + }, + "1.62.2": { + "location": "registers", + "offset": 8 + }, + "1.63.0": { + "location": "registers", + "offset": 8 + }, + "1.63.1": { + "location": "registers", + "offset": 8 + }, + "1.63.2": { + "location": "registers", + "offset": 8 + }, + "1.63.3": { + "location": "registers", + "offset": 8 + }, + "1.64.0": { + "location": "registers", + "offset": 8 + }, + "1.64.1": { + "location": "registers", + "offset": 8 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.65.0": { + "location": "registers", + "offset": 8 + }, + "1.65.1": { + "location": "registers", + "offset": 8 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.66.0": { + "location": "registers", + "offset": 8 + }, + "1.66.1": { + "location": "registers", + "offset": 8 + }, + "1.66.2": { + "location": "registers", + "offset": 8 + }, + "1.66.3": { + "location": "registers", + "offset": 8 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.67.0": { + "location": "registers", + "offset": 8 + }, + "1.67.1": { + "location": "registers", + "offset": 8 + }, + "1.67.2": { + "location": "registers", + "offset": 8 + }, + "1.67.3": { + "location": "registers", + "offset": 8 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.68.0": { + "location": "registers", + "offset": 8 + }, + "1.68.1": { + "location": "registers", + "offset": 8 + }, + "1.68.2": { + "location": "registers", + "offset": 8 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.69.0": { + "location": "registers", + "offset": 8 + }, + "1.69.2": { + "location": "registers", + "offset": 8 + }, + "1.69.4": { + "location": "registers", + "offset": 8 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.70.0": { + "location": "registers", + "offset": 8 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.71.0": { + "location": "registers", + "offset": 8 + }, + "1.71.1": { + "location": "registers", + "offset": 8 + }, + "1.71.2": { + "location": "registers", + "offset": 8 + }, + "1.71.3": { + "location": "registers", + "offset": 8 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.72.0": { + "location": "registers", + "offset": 8 + }, + "1.72.1": { + "location": "registers", + "offset": 8 + }, + "1.72.2": { + "location": "registers", + "offset": 8 + }, + "1.73.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.74.0-dev": { + "location": "registers", + "offset": 8 + } + } + }, + "crypto/tls.(*Conn).Read": { + "b": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + }, + "c": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + }, + "~r0": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + }, + "~r1": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + } + }, + "crypto/tls.(*Conn).Write": { + "b": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + }, + "c": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + }, + "~r0": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + }, + "~r1": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + } + }, + "net/http.(*http2Framer).WriteDataPadded": { + "data": { + "1.19.0": { + "location": "registers", + "offset": 24 + }, + "1.19.1": { + "location": "registers", + "offset": 24 + }, + "1.19.2": { + "location": "registers", + "offset": 24 + }, + "1.19.3": { + "location": "registers", + "offset": 24 + }, + "1.19.4": { + "location": "registers", + "offset": 24 + }, + "1.19.5": { + "location": "registers", + "offset": 24 + }, + "1.19.6": { + "location": "registers", + "offset": 24 + }, + "1.19.7": { + "location": "registers", + "offset": 24 + }, + "1.19.8": { + "location": "registers", + "offset": 24 + }, + "1.19.9": { + "location": "registers", + "offset": 24 + }, + "1.19.10": { + "location": "registers", + "offset": 24 + }, + "1.19.11": { + "location": "registers", + "offset": 24 + }, + "1.19.12": { + "location": "registers", + "offset": 24 + }, + "1.19.13": { + "location": "registers", + "offset": 24 + }, + "1.20.0": { + "location": "registers", + "offset": 24 + }, + "1.20.1": { + "location": "registers", + "offset": 24 + }, + "1.20.2": { + "location": "registers", + "offset": 24 + }, + "1.20.3": { + "location": "registers", + "offset": 24 + }, + "1.20.4": { + "location": "registers", + "offset": 24 + }, + "1.20.5": { + "location": "registers", + "offset": 24 + }, + "1.20.6": { + "location": "registers", + "offset": 24 + }, + "1.20.7": { + "location": "registers", + "offset": 24 + }, + "1.20.8": { + "location": "registers", + "offset": 24 + }, + "1.20.9": { + "location": "registers", + "offset": 24 + }, + "1.20.10": { + "location": "registers", + "offset": 24 + }, + "1.20.11": { + "location": "registers", + "offset": 24 + }, + "1.20.12": { + "location": "registers", + "offset": 24 + }, + "1.20.13": { + "location": "registers", + "offset": 24 + }, + "1.20.14": { + "location": "registers", + "offset": 24 + }, + "1.21.0": { + "location": "registers", + "offset": 24 + }, + "1.21.1": { + "location": "registers", + "offset": 24 + }, + "1.21.2": { + "location": "registers", + "offset": 24 + }, + "1.21.3": { + "location": "registers", + "offset": 24 + }, + "1.21.4": { + "location": "registers", + "offset": 24 + }, + "1.21.5": { + "location": "registers", + "offset": 24 + }, + "1.21.6": { + "location": "registers", + "offset": 24 + }, + "1.21.7": { + "location": "registers", + "offset": 24 + }, + "1.21.8": { + "location": "registers", + "offset": 24 + }, + "1.21.9": { + "location": "registers", + "offset": 24 + }, + "1.21.10": { + "location": "registers", + "offset": 24 + }, + "1.21.11": { + "location": "registers", + "offset": 24 + }, + "1.21.12": { + "location": "registers", + "offset": 24 + }, + "1.21.13": { + "location": "registers", + "offset": 24 + }, + "1.22.0": { + "location": "registers", + "offset": 24 + }, + "1.22.1": { + "location": "registers", + "offset": 24 + }, + "1.22.2": { + "location": "registers", + "offset": 24 + }, + "1.22.3": { + "location": "registers", + "offset": 24 + }, + "1.22.4": { + "location": "registers", + "offset": 24 + }, + "1.22.5": { + "location": "registers", + "offset": 24 + }, + "1.22.6": { + "location": "registers", + "offset": 24 + }, + "1.22.7": { + "location": "registers", + "offset": 24 + }, + "1.22.8": { + "location": "registers", + "offset": 24 + }, + "1.22.9": { + "location": "registers", + "offset": 24 + }, + "1.22.10": { + "location": "registers", + "offset": 24 + }, + "1.22.11": { + "location": "registers", + "offset": 24 + }, + "1.22.12": { + "location": "registers", + "offset": 24 + }, + "1.23.0": { + "location": "registers", + "offset": 24 + }, + "1.23.1": { + "location": "registers", + "offset": 24 + }, + "1.23.2": { + "location": "registers", + "offset": 24 + }, + "1.23.3": { + "location": "registers", + "offset": 24 + }, + "1.23.4": { + "location": "registers", + "offset": 24 + }, + "1.23.5": { + "location": "registers", + "offset": 24 + }, + "1.23.6": { + "location": "registers", + "offset": 24 + }, + "1.23.7": { + "location": "registers", + "offset": 24 + }, + "1.23.8": { + "location": "registers", + "offset": 24 + }, + "1.23.9": { + "location": "registers", + "offset": 24 + }, + "1.24.0": { + "location": "registers", + "offset": 24 + }, + "1.24.1": { + "location": "registers", + "offset": 24 + }, + "1.24.2": { + "location": "registers", + "offset": 24 + }, + "1.24.3": { + "location": "registers", + "offset": 24 + } + }, + "endStream": { + "1.19.0": { + "location": "registers", + "offset": 16 + }, + "1.19.1": { + "location": "registers", + "offset": 16 + }, + "1.19.2": { + "location": "registers", + "offset": 16 + }, + "1.19.3": { + "location": "registers", + "offset": 16 + }, + "1.19.4": { + "location": "registers", + "offset": 16 + }, + "1.19.5": { + "location": "registers", + "offset": 16 + }, + "1.19.6": { + "location": "registers", + "offset": 16 + }, + "1.19.7": { + "location": "registers", + "offset": 16 + }, + "1.19.8": { + "location": "registers", + "offset": 16 + }, + "1.19.9": { + "location": "registers", + "offset": 16 + }, + "1.19.10": { + "location": "registers", + "offset": 16 + }, + "1.19.11": { + "location": "registers", + "offset": 16 + }, + "1.19.12": { + "location": "registers", + "offset": 16 + }, + "1.19.13": { + "location": "registers", + "offset": 16 + }, + "1.20.0": { + "location": "registers", + "offset": 16 + }, + "1.20.1": { + "location": "registers", + "offset": 16 + }, + "1.20.2": { + "location": "registers", + "offset": 16 + }, + "1.20.3": { + "location": "registers", + "offset": 16 + }, + "1.20.4": { + "location": "registers", + "offset": 16 + }, + "1.20.5": { + "location": "registers", + "offset": 16 + }, + "1.20.6": { + "location": "registers", + "offset": 16 + }, + "1.20.7": { + "location": "registers", + "offset": 16 + }, + "1.20.8": { + "location": "registers", + "offset": 16 + }, + "1.20.9": { + "location": "registers", + "offset": 16 + }, + "1.20.10": { + "location": "registers", + "offset": 16 + }, + "1.20.11": { + "location": "registers", + "offset": 16 + }, + "1.20.12": { + "location": "registers", + "offset": 16 + }, + "1.20.13": { + "location": "registers", + "offset": 16 + }, + "1.20.14": { + "location": "registers", + "offset": 16 + }, + "1.21.0": { + "location": "registers", + "offset": 16 + }, + "1.21.1": { + "location": "registers", + "offset": 16 + }, + "1.21.2": { + "location": "registers", + "offset": 16 + }, + "1.21.3": { + "location": "registers", + "offset": 16 + }, + "1.21.4": { + "location": "registers", + "offset": 16 + }, + "1.21.5": { + "location": "registers", + "offset": 16 + }, + "1.21.6": { + "location": "registers", + "offset": 16 + }, + "1.21.7": { + "location": "registers", + "offset": 16 + }, + "1.21.8": { + "location": "registers", + "offset": 16 + }, + "1.21.9": { + "location": "registers", + "offset": 16 + }, + "1.21.10": { + "location": "registers", + "offset": 16 + }, + "1.21.11": { + "location": "registers", + "offset": 16 + }, + "1.21.12": { + "location": "registers", + "offset": 16 + }, + "1.21.13": { + "location": "registers", + "offset": 16 + }, + "1.22.0": { + "location": "registers", + "offset": 16 + }, + "1.22.1": { + "location": "registers", + "offset": 16 + }, + "1.22.2": { + "location": "registers", + "offset": 16 + }, + "1.22.3": { + "location": "registers", + "offset": 16 + }, + "1.22.4": { + "location": "registers", + "offset": 16 + }, + "1.22.5": { + "location": "registers", + "offset": 16 + }, + "1.22.6": { + "location": "registers", + "offset": 16 + }, + "1.22.7": { + "location": "registers", + "offset": 16 + }, + "1.22.8": { + "location": "registers", + "offset": 16 + }, + "1.22.9": { + "location": "registers", + "offset": 16 + }, + "1.22.10": { + "location": "registers", + "offset": 16 + }, + "1.22.11": { + "location": "registers", + "offset": 16 + }, + "1.22.12": { + "location": "registers", + "offset": 16 + }, + "1.23.0": { + "location": "registers", + "offset": 16 + }, + "1.23.1": { + "location": "registers", + "offset": 16 + }, + "1.23.2": { + "location": "registers", + "offset": 16 + }, + "1.23.3": { + "location": "registers", + "offset": 16 + }, + "1.23.4": { + "location": "registers", + "offset": 16 + }, + "1.23.5": { + "location": "registers", + "offset": 16 + }, + "1.23.6": { + "location": "registers", + "offset": 16 + }, + "1.23.7": { + "location": "registers", + "offset": 16 + }, + "1.23.8": { + "location": "registers", + "offset": 16 + }, + "1.23.9": { + "location": "registers", + "offset": 16 + }, + "1.24.0": { + "location": "registers", + "offset": 16 + }, + "1.24.1": { + "location": "registers", + "offset": 16 + }, + "1.24.2": { + "location": "registers", + "offset": 16 + }, + "1.24.3": { + "location": "registers", + "offset": 16 + } + }, + "f": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + }, + "streamID": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + } + }, + "net/http.(*http2Framer).checkFrameOrder": { + "f": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + }, + "fr": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + } + }, + "net/http.(*http2serverConn).processHeaders": { + "f": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + }, + "sc": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + } + }, + "net/http.(*http2writeResHeaders).writeFrame": { + "ctx": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.23.8": { + "location": "registers", + "offset": 8 + }, + "1.23.9": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + }, + "1.24.2": { + "location": "registers", + "offset": 8 + }, + "1.24.3": { + "location": "registers", + "offset": 8 + } + }, + "w": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.23.8": { + "location": "registers", + "offset": 0 + }, + "1.23.9": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + }, + "1.24.2": { + "location": "registers", + "offset": 0 + }, + "1.24.3": { + "location": "registers", + "offset": 0 + } + } + } + } +} \ No newline at end of file diff --git a/src/stirling/source_connectors/socket_tracer/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/BUILD.bazel index c3d73364e4e..acbd6e61a6a 100644 --- a/src/stirling/source_connectors/socket_tracer/BUILD.bazel +++ b/src/stirling/source_connectors/socket_tracer/BUILD.bazel @@ -41,6 +41,7 @@ pl_cc_library( "//src/stirling/source_connectors/socket_tracer/proto:sock_event_pl_cc_proto", "//src/stirling/source_connectors/socket_tracer/protocols:cc_library", "//src/stirling/utils:cc_library", + "@com_github_tencent_rapidjson//:rapidjson", ], ) @@ -72,6 +73,7 @@ pl_cc_test( data = [ "//src/stirling/testing/demo_apps/go_grpc_tls_pl/server:golang_1_19_grpc_tls_server_binary", "//src/stirling/testing/demo_apps/node:node_debug", + "//src/stirling/source_connectors/socket_tracer/testdata:offsetgen", ], deps = [ ":cc_library", @@ -347,6 +349,9 @@ pl_cc_bpf_test( "no_asan", "requires_bpf", ], + data = [ + "//src/stirling:offsetgen_offsets", + ], deps = [ ":cc_library", "//src/common/exec:cc_library", @@ -569,6 +574,9 @@ pl_cc_bpf_test( "no_asan", "requires_bpf", ], + data = [ + "//src/stirling:offsetgen_offsets", + ], deps = [ ":cc_library", "//src/common/exec:cc_library", diff --git a/src/stirling/source_connectors/socket_tracer/go_tls_trace_bpf_test.cc b/src/stirling/source_connectors/socket_tracer/go_tls_trace_bpf_test.cc index ce791ed7745..843a9a8ceae 100644 --- a/src/stirling/source_connectors/socket_tracer/go_tls_trace_bpf_test.cc +++ b/src/stirling/source_connectors/socket_tracer/go_tls_trace_bpf_test.cc @@ -38,6 +38,8 @@ #include "src/stirling/source_connectors/socket_tracer/testing/socket_trace_bpf_test_fixture.h" #include "src/stirling/testing/common.h" +DECLARE_string(offsetgen_filepath); + namespace px { namespace stirling { @@ -60,10 +62,15 @@ using ::testing::UnorderedElementsAre; template class GoTLSTraceTest : public testing::SocketTraceBPFTestFixture { protected: - GoTLSTraceTest() { + GoTLSTraceTest() : server_(std::string(TClientServerContainers::server_image_tar)), client_() { // Run the server. // The container runner will make sure it is in the ready state before unblocking. // Stirling will run after this unblocks, as part of SocketTraceBPFTest SetUp(). + + FLAGS_disable_dwarf_parsing = TClientServerContainers::disable_dwarf; + + auto f = ::px::testing::BazelRunfilePath("src/stirling/offsetgen_offsets.json"); + FLAGS_offsetgen_filepath = f.string(); PX_CHECK_OK(server_.Run(std::chrono::seconds{60}, {})); } @@ -74,42 +81,73 @@ class GoTLSTraceTest : public testing::SocketTraceBPFTestFixture + Go1_23TLSClientServerContainers, Go1_23TLSClientServerNoDWARFContainers> GoVersions; TYPED_TEST_SUITE(GoTLSTraceTest, GoVersions); @@ -155,6 +193,7 @@ TYPED_TEST(GoTLSTraceTest, BasicHTTP) { } TYPED_TEST(GoTLSTraceTest, BasicHTTP2) { + FLAGS_stirling_conn_trace_pid = this->server_.process_pid(); this->StartTransferDataThread(); // Run the client in the network of the server, so they can connect to each other. diff --git a/src/stirling/source_connectors/socket_tracer/http2_trace_bpf_test.cc b/src/stirling/source_connectors/socket_tracer/http2_trace_bpf_test.cc index e30f3390439..a9732c8bbd6 100644 --- a/src/stirling/source_connectors/socket_tracer/http2_trace_bpf_test.cc +++ b/src/stirling/source_connectors/socket_tracer/http2_trace_bpf_test.cc @@ -41,6 +41,8 @@ #include "src/stirling/source_connectors/socket_tracer/testing/socket_trace_bpf_test_fixture.h" #include "src/stirling/testing/common.h" +DECLARE_string(offsetgen_filepath); + namespace px { namespace stirling { @@ -64,11 +66,15 @@ using ::testing::UnorderedElementsAre; template class HTTP2TraceTest : public testing::SocketTraceBPFTestFixture { protected: - HTTP2TraceTest() { + HTTP2TraceTest() : server_(std::string(TClientServerContainers::server_image_tar)) { // Run the server. // The container runner will make sure it is in the ready state before unblocking. // Stirling will run after this unblocks, as part of SocketTraceBPFTest SetUp(). PX_CHECK_OK(server_.Run(std::chrono::seconds{60})); + + auto f = ::px::testing::BazelRunfilePath("src/stirling/offsetgen_offsets.json"); + FLAGS_offsetgen_filepath = f.string(); + FLAGS_disable_dwarf_parsing = TClientServerContainers::disable_dwarf; } typename TClientServerContainers::ServerContainer server_; @@ -78,46 +84,78 @@ class HTTP2TraceTest : public testing::SocketTraceBPFTestFixture + Go1_23GRPCClientServerContainers, Go1_23GRPCClientServerContainersNoDWARF> GoVersions; TYPED_TEST_SUITE(HTTP2TraceTest, GoVersions); TYPED_TEST(HTTP2TraceTest, Basic) { + FLAGS_stirling_conn_trace_pid = this->server_.process_pid(); this->StartTransferDataThread(); // Run the client in the network of the server, so they can connect to each other. diff --git a/src/stirling/source_connectors/socket_tracer/testdata/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/testdata/BUILD.bazel new file mode 100644 index 00000000000..e7d5cfec75c --- /dev/null +++ b/src/stirling/source_connectors/socket_tracer/testdata/BUILD.bazel @@ -0,0 +1,26 @@ +# Copyright 2018- The Pixie Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +filegroup( + name = "offsetgen", + testonly = True, + srcs = [ + "go_offsetgen.json", + ], + visibility = [ + "//src/stirling/source_connectors/socket_tracer:__pkg__", + ], +) diff --git a/src/stirling/source_connectors/socket_tracer/testdata/go_offsetgen.json b/src/stirling/source_connectors/socket_tracer/testdata/go_offsetgen.json new file mode 100644 index 00000000000..7f61cc5cb31 --- /dev/null +++ b/src/stirling/source_connectors/socket_tracer/testdata/go_offsetgen.json @@ -0,0 +1,3933 @@ +{ + "structs": { + "golang.org/x/net/http2.DataFrame": { + "data": { + "0.1.0": 16, + "0.2.0": 16, + "0.3.0": 16, + "0.4.0": 16, + "0.5.0": 16, + "0.6.0": 16, + "0.7.0": 16, + "0.8.0": 16, + "0.9.0": 16, + "0.10.0": 16, + "0.11.0": 16, + "0.12.0": 16, + "0.13.0": 16, + "0.14.0": 16, + "0.15.0": 16, + "0.16.0": 16, + "0.17.0": 16, + "0.18.0": 16, + "0.19.0": 16, + "0.20.0": 16, + "0.21.0": 16, + "0.22.0": 16, + "0.23.0": 16, + "0.24.0": 16, + "0.25.0": 16, + "0.26.0": 16, + "0.27.0": 16, + "0.28.0": 16, + "0.29.0": 16, + "0.30.0": 16, + "0.31.0": 16, + "0.32.0": 16, + "0.33.0": 16, + "0.34.0": 16, + "0.35.0": 16, + "0.36.0": 16, + "0.37.0": 16 + } + }, + "google.golang.org/grpc/internal/transport.http2Client": { + "conn": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": 64, + "1.15.0": 64, + "1.16.0": 64, + "1.17.0": 64, + "1.18.0": 64, + "1.18.1": 64, + "1.19.0": 64, + "1.19.1": 64, + "1.20.0": 64, + "1.20.1": 64, + "1.21.0": 64, + "1.21.1": 64, + "1.21.2": 64, + "1.21.3": 64, + "1.21.4": 64, + "1.22.0": 64, + "1.22.1": 64, + "1.22.2": 64, + "1.22.3": 64, + "1.23.0": 64, + "1.23.1": 64, + "1.24.0": 64, + "1.35.0": 64, + "1.35.1": 64, + "1.36.0-dev": 64, + "1.36.0": 64, + "1.36.1": 64, + "1.37.0-dev": 64, + "1.37.0": 64, + "1.37.1": 64, + "1.38.0-dev": 64, + "1.38.0": 64, + "1.38.1": 64, + "1.39.0-dev": 64, + "1.39.0": 64, + "1.39.1": 64, + "1.40.0-dev": 64, + "1.40.0": 64, + "1.40.1": 64, + "1.41.0-dev": 64, + "1.41.0": 64, + "1.41.1": 64, + "1.42.0-dev": 64, + "1.42.0": 64, + "1.43.0-dev": 64, + "1.43.0": 64, + "1.44.0-dev": 64, + "1.44.0": 64, + "1.45.0-dev": 64, + "1.45.0": 64, + "1.46.0-dev": 64, + "1.46.0": 64, + "1.46.1": 64, + "1.46.2": 64, + "1.47.0-dev": 64, + "1.47.0": 64, + "1.48.0-dev": 64, + "1.48.0": 64, + "1.49.0-dev": 64, + "1.49.0": 64, + "1.50.0-dev": 64, + "1.50.0": 64, + "1.50.1": 64, + "1.51.0-dev": 64, + "1.51.0": 64, + "1.52.0-dev": 64, + "1.25.0": 72, + "1.25.1": 72, + "1.26.0": 72, + "1.27.0-pre": 72, + "1.27.0": 72, + "1.27.1": 72, + "1.28.0-pre": 72, + "1.28.0": 72, + "1.28.1": 72, + "1.29.0-dev": 72, + "1.29.0": 72, + "1.29.1": 72, + "1.30.0-dev": 72, + "1.30.0-dev.1": 72, + "1.30.0": 72, + "1.30.1": 72, + "1.31.0-dev": 72, + "1.31.0": 72, + "1.31.1": 72, + "1.32.0-dev": 72, + "1.32.0": 72, + "1.33.0-dev": 72, + "1.33.0": 72, + "1.33.1": 72, + "1.33.2": 72, + "1.33.3": 72, + "1.34.0-dev": 72, + "1.34.0": 72, + "1.34.1": 72, + "1.34.2": 72, + "1.35.0-dev": 72, + "1.58.0": 128, + "1.58.1": 128, + "1.58.2": 128, + "1.58.3": 128, + "1.59.0-dev": 128, + "1.59.0": 128, + "1.60.0-dev": 128, + "1.60.0": 128, + "1.60.1": 128, + "1.61.0-dev": 128, + "1.61.0": 128, + "1.61.1": 128, + "1.61.2": 128, + "1.62.0": 128, + "1.62.1": 128, + "1.62.2": 128, + "1.63.0": 128, + "1.63.1": 128, + "1.63.2": 128, + "1.63.3": 128, + "1.64.0": 128, + "1.64.1": 128, + "1.65.0-dev": 128, + "1.65.0": 128, + "1.65.1": 128, + "1.66.0-dev": 128, + "1.66.0": 128, + "1.66.1": 128, + "1.66.2": 128, + "1.66.3": 128, + "1.67.0-dev": 128, + "1.67.0": 128, + "1.67.1": 128, + "1.67.2": 128, + "1.67.3": 128, + "1.68.0-dev": 128, + "1.68.0": 128, + "1.68.1": 128, + "1.68.2": 128, + "1.69.0-dev": 128, + "1.69.0": 128, + "1.69.2": 128, + "1.69.4": 128, + "1.70.0-dev": 128, + "1.70.0": 128, + "1.71.0-dev": 128, + "1.71.0": 128, + "1.72.0-dev": 128, + "1.52.0": 136, + "1.52.1": 136, + "1.52.3": 136, + "1.53.0-dev": 136, + "1.53.0": 136, + "1.54.0": 136, + "1.54.1": 136, + "1.55.0-dev": 136, + "1.55.0": 136, + "1.55.1": 136, + "1.56.0-dev": 136, + "1.56.0": 136, + "1.56.1": 136, + "1.56.2": 136, + "1.56.3": 136, + "1.57.0-dev": 136, + "1.57.0": 136, + "1.57.1": 136, + "1.57.2": 136, + "1.58.0-dev": 136 + } + }, + "crypto/tls.Conn": { + "conn": { + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0, + "1.24.0": 0, + "1.24.1": 0 + } + }, + "net/http.http2DataFrame": { + "data": { + "1.19.0": 16, + "1.19.1": 16, + "1.19.2": 16, + "1.19.3": 16, + "1.19.4": 16, + "1.19.5": 16, + "1.19.6": 16, + "1.19.7": 16, + "1.19.8": 16, + "1.19.9": 16, + "1.19.10": 16, + "1.19.11": 16, + "1.19.12": 16, + "1.19.13": 16, + "1.20.0": 16, + "1.20.1": 16, + "1.20.2": 16, + "1.20.3": 16, + "1.20.4": 16, + "1.20.5": 16, + "1.20.6": 16, + "1.20.7": 16, + "1.20.8": 16, + "1.20.9": 16, + "1.20.10": 16, + "1.20.11": 16, + "1.20.12": 16, + "1.20.13": 16, + "1.20.14": 16, + "1.21.0": 16, + "1.21.1": 16, + "1.21.2": 16, + "1.21.3": 16, + "1.21.4": 16, + "1.21.5": 16, + "1.21.6": 16, + "1.21.7": 16, + "1.21.8": 16, + "1.21.9": 16, + "1.21.10": 16, + "1.21.11": 16, + "1.21.12": 16, + "1.21.13": 16, + "1.22.0": 16, + "1.22.1": 16, + "1.22.2": 16, + "1.22.3": 16, + "1.22.4": 16, + "1.22.5": 16, + "1.22.6": 16, + "1.22.7": 16, + "1.22.8": 16, + "1.22.9": 16, + "1.22.10": 16, + "1.22.11": 16, + "1.22.12": 16, + "1.23.0": 16, + "1.23.1": 16, + "1.23.2": 16, + "1.23.3": 16, + "1.23.4": 16, + "1.23.5": 16, + "1.23.6": 16, + "1.23.7": 16, + "1.24.0": 16, + "1.24.1": 16 + } + }, + "net/http.http2FrameHeader": { + "Flags": { + "1.19.0": 2, + "1.19.1": 2, + "1.19.2": 2, + "1.19.3": 2, + "1.19.4": 2, + "1.19.5": 2, + "1.19.6": 2, + "1.19.7": 2, + "1.19.8": 2, + "1.19.9": 2, + "1.19.10": 2, + "1.19.11": 2, + "1.19.12": 2, + "1.19.13": 2, + "1.20.0": 2, + "1.20.1": 2, + "1.20.2": 2, + "1.20.3": 2, + "1.20.4": 2, + "1.20.5": 2, + "1.20.6": 2, + "1.20.7": 2, + "1.20.8": 2, + "1.20.9": 2, + "1.20.10": 2, + "1.20.11": 2, + "1.20.12": 2, + "1.20.13": 2, + "1.20.14": 2, + "1.21.0": 2, + "1.21.1": 2, + "1.21.2": 2, + "1.21.3": 2, + "1.21.4": 2, + "1.21.5": 2, + "1.21.6": 2, + "1.21.7": 2, + "1.21.8": 2, + "1.21.9": 2, + "1.21.10": 2, + "1.21.11": 2, + "1.21.12": 2, + "1.21.13": 2, + "1.22.0": 2, + "1.22.1": 2, + "1.22.2": 2, + "1.22.3": 2, + "1.22.4": 2, + "1.22.5": 2, + "1.22.6": 2, + "1.22.7": 2, + "1.22.8": 2, + "1.22.9": 2, + "1.22.10": 2, + "1.22.11": 2, + "1.22.12": 2, + "1.23.0": 2, + "1.23.1": 2, + "1.23.2": 2, + "1.23.3": 2, + "1.23.4": 2, + "1.23.5": 2, + "1.23.6": 2, + "1.23.7": 2, + "1.24.0": 2, + "1.24.1": 2 + }, + "StreamID": { + "1.19.0": 8, + "1.19.1": 8, + "1.19.2": 8, + "1.19.3": 8, + "1.19.4": 8, + "1.19.5": 8, + "1.19.6": 8, + "1.19.7": 8, + "1.19.8": 8, + "1.19.9": 8, + "1.19.10": 8, + "1.19.11": 8, + "1.19.12": 8, + "1.19.13": 8, + "1.20.0": 8, + "1.20.1": 8, + "1.20.2": 8, + "1.20.3": 8, + "1.20.4": 8, + "1.20.5": 8, + "1.20.6": 8, + "1.20.7": 8, + "1.20.8": 8, + "1.20.9": 8, + "1.20.10": 8, + "1.20.11": 8, + "1.20.12": 8, + "1.20.13": 8, + "1.20.14": 8, + "1.21.0": 8, + "1.21.1": 8, + "1.21.2": 8, + "1.21.3": 8, + "1.21.4": 8, + "1.21.5": 8, + "1.21.6": 8, + "1.21.7": 8, + "1.21.8": 8, + "1.21.9": 8, + "1.21.10": 8, + "1.21.11": 8, + "1.21.12": 8, + "1.21.13": 8, + "1.22.0": 8, + "1.22.1": 8, + "1.22.2": 8, + "1.22.3": 8, + "1.22.4": 8, + "1.22.5": 8, + "1.22.6": 8, + "1.22.7": 8, + "1.22.8": 8, + "1.22.9": 8, + "1.22.10": 8, + "1.22.11": 8, + "1.22.12": 8, + "1.23.0": 8, + "1.23.1": 8, + "1.23.2": 8, + "1.23.3": 8, + "1.23.4": 8, + "1.23.5": 8, + "1.23.6": 8, + "1.23.7": 8, + "1.24.0": 8, + "1.24.1": 8 + }, + "Type": { + "1.19.0": 1, + "1.19.1": 1, + "1.19.2": 1, + "1.19.3": 1, + "1.19.4": 1, + "1.19.5": 1, + "1.19.6": 1, + "1.19.7": 1, + "1.19.8": 1, + "1.19.9": 1, + "1.19.10": 1, + "1.19.11": 1, + "1.19.12": 1, + "1.19.13": 1, + "1.20.0": 1, + "1.20.1": 1, + "1.20.2": 1, + "1.20.3": 1, + "1.20.4": 1, + "1.20.5": 1, + "1.20.6": 1, + "1.20.7": 1, + "1.20.8": 1, + "1.20.9": 1, + "1.20.10": 1, + "1.20.11": 1, + "1.20.12": 1, + "1.20.13": 1, + "1.20.14": 1, + "1.21.0": 1, + "1.21.1": 1, + "1.21.2": 1, + "1.21.3": 1, + "1.21.4": 1, + "1.21.5": 1, + "1.21.6": 1, + "1.21.7": 1, + "1.21.8": 1, + "1.21.9": 1, + "1.21.10": 1, + "1.21.11": 1, + "1.21.12": 1, + "1.21.13": 1, + "1.22.0": 1, + "1.22.1": 1, + "1.22.2": 1, + "1.22.3": 1, + "1.22.4": 1, + "1.22.5": 1, + "1.22.6": 1, + "1.22.7": 1, + "1.22.8": 1, + "1.22.9": 1, + "1.22.10": 1, + "1.22.11": 1, + "1.22.12": 1, + "1.23.0": 1, + "1.23.1": 1, + "1.23.2": 1, + "1.23.3": 1, + "1.23.4": 1, + "1.23.5": 1, + "1.23.6": 1, + "1.23.7": 1, + "1.24.0": 1, + "1.24.1": 1 + } + }, + "net/http.http2bufferedWriter": { + "w": { + "1.24.0": null, + "1.24.1": null, + "1.19.0": 0, + "1.19.1": 0, + "1.19.2": 0, + "1.19.3": 0, + "1.19.4": 0, + "1.19.5": 0, + "1.19.6": 0, + "1.19.7": 0, + "1.19.8": 0, + "1.19.9": 0, + "1.19.10": 0, + "1.19.11": 0, + "1.19.12": 0, + "1.19.13": 0, + "1.20.0": 0, + "1.20.1": 0, + "1.20.2": 0, + "1.20.3": 0, + "1.20.4": 0, + "1.20.5": 0, + "1.20.6": 0, + "1.20.7": 0, + "1.20.8": 0, + "1.20.9": 0, + "1.20.10": 0, + "1.20.11": 0, + "1.20.12": 0, + "1.20.13": 0, + "1.20.14": 0, + "1.21.0": 0, + "1.21.1": 0, + "1.21.2": 0, + "1.21.3": 0, + "1.21.4": 0, + "1.21.5": 0, + "1.21.6": 0, + "1.21.7": 0, + "1.21.8": 0, + "1.21.9": 0, + "1.21.10": 0, + "1.21.11": 0, + "1.21.12": 0, + "1.21.13": 0, + "1.22.0": 0, + "1.22.1": 0, + "1.22.2": 0, + "1.22.3": 0, + "1.22.4": 0, + "1.22.5": 0, + "1.22.6": 0, + "1.22.7": 0, + "1.22.8": 0, + "1.22.9": 0, + "1.22.10": 0, + "1.22.11": 0, + "1.22.12": 0, + "1.23.0": 0, + "1.23.1": 0, + "1.23.2": 0, + "1.23.3": 0, + "1.23.4": 0, + "1.23.5": 0, + "1.23.6": 0, + "1.23.7": 0 + } + }, + "runtime.g": { + "goid": { + "1.19.0": 152, + "1.19.1": 152, + "1.19.2": 152, + "1.19.3": 152, + "1.19.4": 152, + "1.19.5": 152, + "1.19.6": 152, + "1.19.7": 152, + "1.19.8": 152, + "1.19.9": 152, + "1.19.10": 152, + "1.19.11": 152, + "1.19.12": 152, + "1.19.13": 152, + "1.20.0": 152, + "1.20.1": 152, + "1.20.2": 152, + "1.20.3": 152, + "1.20.4": 152, + "1.20.5": 152, + "1.20.6": 152, + "1.20.7": 152, + "1.20.8": 152, + "1.20.9": 152, + "1.20.10": 152, + "1.20.11": 152, + "1.20.12": 152, + "1.20.13": 152, + "1.20.14": 152, + "1.21.0": 152, + "1.21.1": 152, + "1.21.2": 152, + "1.21.3": 152, + "1.21.4": 152, + "1.21.5": 152, + "1.21.6": 152, + "1.21.7": 152, + "1.21.8": 152, + "1.21.9": 152, + "1.21.10": 152, + "1.21.11": 152, + "1.21.12": 152, + "1.21.13": 152, + "1.22.0": 152, + "1.22.1": 152, + "1.22.2": 152, + "1.22.3": 152, + "1.22.4": 152, + "1.22.5": 152, + "1.22.6": 152, + "1.22.7": 152, + "1.22.8": 152, + "1.22.9": 152, + "1.22.10": 152, + "1.22.11": 152, + "1.22.12": 152, + "1.23.0": 160, + "1.23.1": 160, + "1.23.2": 160, + "1.23.3": 160, + "1.23.4": 160, + "1.23.5": 160, + "1.23.6": 160, + "1.23.7": 160, + "1.24.0": 160, + "1.24.1": 160 + } + }, + "runtime.hmap": { + "buckets": { + "1.24.0": null, + "1.24.1": null, + "1.19.0": 16, + "1.19.1": 16, + "1.19.2": 16, + "1.19.3": 16, + "1.19.4": 16, + "1.19.5": 16, + "1.19.6": 16, + "1.19.7": 16, + "1.19.8": 16, + "1.19.9": 16, + "1.19.10": 16, + "1.19.11": 16, + "1.19.12": 16, + "1.19.13": 16, + "1.20.0": 16, + "1.20.1": 16, + "1.20.2": 16, + "1.20.3": 16, + "1.20.4": 16, + "1.20.5": 16, + "1.20.6": 16, + "1.20.7": 16, + "1.20.8": 16, + "1.20.9": 16, + "1.20.10": 16, + "1.20.11": 16, + "1.20.12": 16, + "1.20.13": 16, + "1.20.14": 16, + "1.21.0": 16, + "1.21.1": 16, + "1.21.2": 16, + "1.21.3": 16, + "1.21.4": 16, + "1.21.5": 16, + "1.21.6": 16, + "1.21.7": 16, + "1.21.8": 16, + "1.21.9": 16, + "1.21.10": 16, + "1.21.11": 16, + "1.21.12": 16, + "1.21.13": 16, + "1.22.0": 16, + "1.22.1": 16, + "1.22.2": 16, + "1.22.3": 16, + "1.22.4": 16, + "1.22.5": 16, + "1.22.6": 16, + "1.22.7": 16, + "1.22.8": 16, + "1.22.9": 16, + "1.22.10": 16, + "1.22.11": 16, + "1.22.12": 16, + "1.23.0": 16, + "1.23.1": 16, + "1.23.2": 16, + "1.23.3": 16, + "1.23.4": 16, + "1.23.5": 16, + "1.23.6": 16, + "1.23.7": 16 + } + } + }, + "funcs": { + "google.golang.org/grpc/internal/transport.(*http2Client).operateHeaders": { + "frame": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": null, + "1.15.0": null, + "1.16.0": null, + "1.17.0": null, + "1.18.0": null, + "1.18.1": null, + "1.19.0": null, + "1.19.1": null, + "1.20.0": null, + "1.20.1": null, + "1.21.0": null, + "1.21.1": null, + "1.21.2": null, + "1.21.3": null, + "1.21.4": null, + "1.22.0": null, + "1.22.1": null, + "1.22.2": null, + "1.22.3": null, + "1.23.0": null, + "1.23.1": null, + "1.24.0": null, + "1.25.0": null, + "1.25.1": null, + "1.26.0": null, + "1.27.0-pre": null, + "1.27.0": null, + "1.27.1": null, + "1.28.0-pre": null, + "1.28.0": null, + "1.28.1": null, + "1.29.0-dev": null, + "1.29.0": null, + "1.29.1": null, + "1.30.0-dev": null, + "1.30.0-dev.1": null, + "1.30.0": null, + "1.30.1": null, + "1.31.0-dev": null, + "1.31.0": null, + "1.31.1": null, + "1.32.0-dev": null, + "1.32.0": null, + "1.33.0-dev": null, + "1.33.0": null, + "1.33.1": null, + "1.33.2": null, + "1.33.3": null, + "1.34.0-dev": null, + "1.34.0": null, + "1.34.1": null, + "1.34.2": null, + "1.35.0-dev": null, + "1.35.0": null, + "1.35.1": null, + "1.36.0-dev": null, + "1.36.0": null, + "1.36.1": null, + "1.37.0-dev": null, + "1.37.0": null, + "1.37.1": null, + "1.38.0-dev": null, + "1.38.0": null, + "1.38.1": null, + "1.39.0-dev": null, + "1.39.0": null, + "1.39.1": null, + "1.40.0-dev": null, + "1.40.0": { + "location": "registers", + "offset": 8 + }, + "1.40.1": { + "location": "registers", + "offset": 8 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.41.0": { + "location": "registers", + "offset": 8 + }, + "1.41.1": { + "location": "registers", + "offset": 8 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.42.0": { + "location": "registers", + "offset": 8 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.43.0": { + "location": "registers", + "offset": 8 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.44.0": { + "location": "registers", + "offset": 8 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.45.0": { + "location": "registers", + "offset": 8 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.46.0": { + "location": "registers", + "offset": 8 + }, + "1.46.1": { + "location": "registers", + "offset": 8 + }, + "1.46.2": { + "location": "registers", + "offset": 8 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.47.0": { + "location": "registers", + "offset": 8 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.48.0": { + "location": "registers", + "offset": 8 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.49.0": { + "location": "registers", + "offset": 8 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.50.0": { + "location": "registers", + "offset": 8 + }, + "1.50.1": { + "location": "registers", + "offset": 8 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.51.0": { + "location": "registers", + "offset": 8 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.52.0": { + "location": "registers", + "offset": 8 + }, + "1.52.1": { + "location": "registers", + "offset": 8 + }, + "1.52.3": { + "location": "registers", + "offset": 8 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.53.0": { + "location": "registers", + "offset": 8 + }, + "1.54.0": { + "location": "registers", + "offset": 8 + }, + "1.54.1": { + "location": "registers", + "offset": 8 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.55.0": { + "location": "registers", + "offset": 8 + }, + "1.55.1": { + "location": "registers", + "offset": 8 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.56.0": { + "location": "registers", + "offset": 8 + }, + "1.56.1": { + "location": "registers", + "offset": 8 + }, + "1.56.2": { + "location": "registers", + "offset": 8 + }, + "1.56.3": { + "location": "registers", + "offset": 8 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.57.0": { + "location": "registers", + "offset": 8 + }, + "1.57.1": { + "location": "registers", + "offset": 8 + }, + "1.57.2": { + "location": "registers", + "offset": 8 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.58.0": { + "location": "registers", + "offset": 8 + }, + "1.58.1": { + "location": "registers", + "offset": 8 + }, + "1.58.2": { + "location": "registers", + "offset": 8 + }, + "1.58.3": { + "location": "registers", + "offset": 8 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.59.0": { + "location": "registers", + "offset": 8 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.60.0": { + "location": "registers", + "offset": 8 + }, + "1.60.1": { + "location": "registers", + "offset": 8 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.61.0": { + "location": "registers", + "offset": 8 + }, + "1.61.1": { + "location": "registers", + "offset": 8 + }, + "1.61.2": { + "location": "registers", + "offset": 8 + }, + "1.62.0": { + "location": "registers", + "offset": 8 + }, + "1.62.1": { + "location": "registers", + "offset": 8 + }, + "1.62.2": { + "location": "registers", + "offset": 8 + }, + "1.63.0": { + "location": "registers", + "offset": 8 + }, + "1.63.1": { + "location": "registers", + "offset": 8 + }, + "1.63.2": { + "location": "registers", + "offset": 8 + }, + "1.63.3": { + "location": "registers", + "offset": 8 + }, + "1.64.0": { + "location": "registers", + "offset": 8 + }, + "1.64.1": { + "location": "registers", + "offset": 8 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.65.0": { + "location": "registers", + "offset": 8 + }, + "1.65.1": { + "location": "registers", + "offset": 8 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.66.0": { + "location": "registers", + "offset": 8 + }, + "1.66.1": { + "location": "registers", + "offset": 8 + }, + "1.66.2": { + "location": "registers", + "offset": 8 + }, + "1.66.3": { + "location": "registers", + "offset": 8 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.67.0": { + "location": "registers", + "offset": 8 + }, + "1.67.1": { + "location": "registers", + "offset": 8 + }, + "1.67.2": { + "location": "registers", + "offset": 8 + }, + "1.67.3": { + "location": "registers", + "offset": 8 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.68.0": { + "location": "registers", + "offset": 8 + }, + "1.68.1": { + "location": "registers", + "offset": 8 + }, + "1.68.2": { + "location": "registers", + "offset": 8 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.69.0": { + "location": "registers", + "offset": 8 + }, + "1.69.2": { + "location": "registers", + "offset": 8 + }, + "1.69.4": { + "location": "registers", + "offset": 8 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.70.0": { + "location": "registers", + "offset": 8 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 8 + }, + "1.71.0": { + "location": "registers", + "offset": 8 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 8 + } + }, + "t": { + "1.0.0": null, + "1.0.1-GA": null, + "1.0.2": null, + "1.0.3": null, + "1.0.4": null, + "1.0.5": null, + "1.2.0": null, + "1.2.1": null, + "1.3.0": null, + "1.4.0": null, + "1.4.1": null, + "1.4.2": null, + "1.5.0": null, + "1.5.1": null, + "1.5.2": null, + "1.6.0": null, + "1.7.0": null, + "1.7.1": null, + "1.7.2": null, + "1.7.3": null, + "1.7.4": null, + "1.7.5": null, + "1.8.0": null, + "1.8.2": null, + "1.9.0": null, + "1.9.1": null, + "1.9.2": null, + "1.10.0": null, + "1.10.1": null, + "1.11.0": null, + "1.11.1": null, + "1.11.2": null, + "1.11.3": null, + "1.12.0": null, + "1.12.1": null, + "1.12.2": null, + "1.13.0": null, + "1.14.0": null, + "1.15.0": null, + "1.16.0": null, + "1.17.0": null, + "1.18.0": null, + "1.18.1": null, + "1.19.0": null, + "1.19.1": null, + "1.20.0": null, + "1.20.1": null, + "1.21.0": null, + "1.21.1": null, + "1.21.2": null, + "1.21.3": null, + "1.21.4": null, + "1.22.0": null, + "1.22.1": null, + "1.22.2": null, + "1.22.3": null, + "1.23.0": null, + "1.23.1": null, + "1.24.0": null, + "1.25.0": null, + "1.25.1": null, + "1.26.0": null, + "1.27.0-pre": null, + "1.27.0": null, + "1.27.1": null, + "1.28.0-pre": null, + "1.28.0": null, + "1.28.1": null, + "1.29.0-dev": null, + "1.29.0": null, + "1.29.1": null, + "1.30.0-dev": null, + "1.30.0-dev.1": null, + "1.30.0": null, + "1.30.1": null, + "1.31.0-dev": null, + "1.31.0": null, + "1.31.1": null, + "1.32.0-dev": null, + "1.32.0": null, + "1.33.0-dev": null, + "1.33.0": null, + "1.33.1": null, + "1.33.2": null, + "1.33.3": null, + "1.34.0-dev": null, + "1.34.0": null, + "1.34.1": null, + "1.34.2": null, + "1.35.0-dev": null, + "1.35.0": null, + "1.35.1": null, + "1.36.0-dev": null, + "1.36.0": null, + "1.36.1": null, + "1.37.0-dev": null, + "1.37.0": null, + "1.37.1": null, + "1.38.0-dev": null, + "1.38.0": null, + "1.38.1": null, + "1.39.0-dev": null, + "1.39.0": null, + "1.39.1": null, + "1.40.0-dev": null, + "1.40.0": { + "location": "registers", + "offset": 0 + }, + "1.40.1": { + "location": "registers", + "offset": 0 + }, + "1.41.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.41.0": { + "location": "registers", + "offset": 0 + }, + "1.41.1": { + "location": "registers", + "offset": 0 + }, + "1.42.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.42.0": { + "location": "registers", + "offset": 0 + }, + "1.43.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.43.0": { + "location": "registers", + "offset": 0 + }, + "1.44.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.44.0": { + "location": "registers", + "offset": 0 + }, + "1.45.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.45.0": { + "location": "registers", + "offset": 0 + }, + "1.46.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.46.0": { + "location": "registers", + "offset": 0 + }, + "1.46.1": { + "location": "registers", + "offset": 0 + }, + "1.46.2": { + "location": "registers", + "offset": 0 + }, + "1.47.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.47.0": { + "location": "registers", + "offset": 0 + }, + "1.48.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.48.0": { + "location": "registers", + "offset": 0 + }, + "1.49.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.49.0": { + "location": "registers", + "offset": 0 + }, + "1.50.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.50.0": { + "location": "registers", + "offset": 0 + }, + "1.50.1": { + "location": "registers", + "offset": 0 + }, + "1.51.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.51.0": { + "location": "registers", + "offset": 0 + }, + "1.52.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.52.0": { + "location": "registers", + "offset": 0 + }, + "1.52.1": { + "location": "registers", + "offset": 0 + }, + "1.52.3": { + "location": "registers", + "offset": 0 + }, + "1.53.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.53.0": { + "location": "registers", + "offset": 0 + }, + "1.54.0": { + "location": "registers", + "offset": 0 + }, + "1.54.1": { + "location": "registers", + "offset": 0 + }, + "1.55.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.55.0": { + "location": "registers", + "offset": 0 + }, + "1.55.1": { + "location": "registers", + "offset": 0 + }, + "1.56.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.56.0": { + "location": "registers", + "offset": 0 + }, + "1.56.1": { + "location": "registers", + "offset": 0 + }, + "1.56.2": { + "location": "registers", + "offset": 0 + }, + "1.56.3": { + "location": "registers", + "offset": 0 + }, + "1.57.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.57.0": { + "location": "registers", + "offset": 0 + }, + "1.57.1": { + "location": "registers", + "offset": 0 + }, + "1.57.2": { + "location": "registers", + "offset": 0 + }, + "1.58.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.58.0": { + "location": "registers", + "offset": 0 + }, + "1.58.1": { + "location": "registers", + "offset": 0 + }, + "1.58.2": { + "location": "registers", + "offset": 0 + }, + "1.58.3": { + "location": "registers", + "offset": 0 + }, + "1.59.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.59.0": { + "location": "registers", + "offset": 0 + }, + "1.60.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.60.0": { + "location": "registers", + "offset": 0 + }, + "1.60.1": { + "location": "registers", + "offset": 0 + }, + "1.61.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.61.0": { + "location": "registers", + "offset": 0 + }, + "1.61.1": { + "location": "registers", + "offset": 0 + }, + "1.61.2": { + "location": "registers", + "offset": 0 + }, + "1.62.0": { + "location": "registers", + "offset": 0 + }, + "1.62.1": { + "location": "registers", + "offset": 0 + }, + "1.62.2": { + "location": "registers", + "offset": 0 + }, + "1.63.0": { + "location": "registers", + "offset": 0 + }, + "1.63.1": { + "location": "registers", + "offset": 0 + }, + "1.63.2": { + "location": "registers", + "offset": 0 + }, + "1.63.3": { + "location": "registers", + "offset": 0 + }, + "1.64.0": { + "location": "registers", + "offset": 0 + }, + "1.64.1": { + "location": "registers", + "offset": 0 + }, + "1.65.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.65.0": { + "location": "registers", + "offset": 0 + }, + "1.65.1": { + "location": "registers", + "offset": 0 + }, + "1.66.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.66.0": { + "location": "registers", + "offset": 0 + }, + "1.66.1": { + "location": "registers", + "offset": 0 + }, + "1.66.2": { + "location": "registers", + "offset": 0 + }, + "1.66.3": { + "location": "registers", + "offset": 0 + }, + "1.67.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.67.0": { + "location": "registers", + "offset": 0 + }, + "1.67.1": { + "location": "registers", + "offset": 0 + }, + "1.67.2": { + "location": "registers", + "offset": 0 + }, + "1.67.3": { + "location": "registers", + "offset": 0 + }, + "1.68.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.68.0": { + "location": "registers", + "offset": 0 + }, + "1.68.1": { + "location": "registers", + "offset": 0 + }, + "1.68.2": { + "location": "registers", + "offset": 0 + }, + "1.69.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.69.0": { + "location": "registers", + "offset": 0 + }, + "1.69.2": { + "location": "registers", + "offset": 0 + }, + "1.69.4": { + "location": "registers", + "offset": 0 + }, + "1.70.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.70.0": { + "location": "registers", + "offset": 0 + }, + "1.71.0-dev": { + "location": "registers", + "offset": 0 + }, + "1.71.0": { + "location": "registers", + "offset": 0 + }, + "1.72.0-dev": { + "location": "registers", + "offset": 0 + } + } + }, + "crypto/tls.(*Conn).Read": { + "b": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + } + }, + "c": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + } + }, + "~r0": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + } + }, + "~r1": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + } + } + }, + "net/http.(*http2Framer).WriteDataPadded": { + "streamID": { + "1.19.0": { + "location": "registers", + "offset": 8 + }, + "1.19.1": { + "location": "registers", + "offset": 8 + }, + "1.19.2": { + "location": "registers", + "offset": 8 + }, + "1.19.3": { + "location": "registers", + "offset": 8 + }, + "1.19.4": { + "location": "registers", + "offset": 8 + }, + "1.19.5": { + "location": "registers", + "offset": 8 + }, + "1.19.6": { + "location": "registers", + "offset": 8 + }, + "1.19.7": { + "location": "registers", + "offset": 8 + }, + "1.19.8": { + "location": "registers", + "offset": 8 + }, + "1.19.9": { + "location": "registers", + "offset": 8 + }, + "1.19.10": { + "location": "registers", + "offset": 8 + }, + "1.19.11": { + "location": "registers", + "offset": 8 + }, + "1.19.12": { + "location": "registers", + "offset": 8 + }, + "1.19.13": { + "location": "registers", + "offset": 8 + }, + "1.20.0": { + "location": "registers", + "offset": 8 + }, + "1.20.1": { + "location": "registers", + "offset": 8 + }, + "1.20.2": { + "location": "registers", + "offset": 8 + }, + "1.20.3": { + "location": "registers", + "offset": 8 + }, + "1.20.4": { + "location": "registers", + "offset": 8 + }, + "1.20.5": { + "location": "registers", + "offset": 8 + }, + "1.20.6": { + "location": "registers", + "offset": 8 + }, + "1.20.7": { + "location": "registers", + "offset": 8 + }, + "1.20.8": { + "location": "registers", + "offset": 8 + }, + "1.20.9": { + "location": "registers", + "offset": 8 + }, + "1.20.10": { + "location": "registers", + "offset": 8 + }, + "1.20.11": { + "location": "registers", + "offset": 8 + }, + "1.20.12": { + "location": "registers", + "offset": 8 + }, + "1.20.13": { + "location": "registers", + "offset": 8 + }, + "1.20.14": { + "location": "registers", + "offset": 8 + }, + "1.21.0": { + "location": "registers", + "offset": 8 + }, + "1.21.1": { + "location": "registers", + "offset": 8 + }, + "1.21.2": { + "location": "registers", + "offset": 8 + }, + "1.21.3": { + "location": "registers", + "offset": 8 + }, + "1.21.4": { + "location": "registers", + "offset": 8 + }, + "1.21.5": { + "location": "registers", + "offset": 8 + }, + "1.21.6": { + "location": "registers", + "offset": 8 + }, + "1.21.7": { + "location": "registers", + "offset": 8 + }, + "1.21.8": { + "location": "registers", + "offset": 8 + }, + "1.21.9": { + "location": "registers", + "offset": 8 + }, + "1.21.10": { + "location": "registers", + "offset": 8 + }, + "1.21.11": { + "location": "registers", + "offset": 8 + }, + "1.21.12": { + "location": "registers", + "offset": 8 + }, + "1.21.13": { + "location": "registers", + "offset": 8 + }, + "1.22.0": { + "location": "registers", + "offset": 8 + }, + "1.22.1": { + "location": "registers", + "offset": 8 + }, + "1.22.2": { + "location": "registers", + "offset": 8 + }, + "1.22.3": { + "location": "registers", + "offset": 8 + }, + "1.22.4": { + "location": "registers", + "offset": 8 + }, + "1.22.5": { + "location": "registers", + "offset": 8 + }, + "1.22.6": { + "location": "registers", + "offset": 8 + }, + "1.22.7": { + "location": "registers", + "offset": 8 + }, + "1.22.8": { + "location": "registers", + "offset": 8 + }, + "1.22.9": { + "location": "registers", + "offset": 8 + }, + "1.22.10": { + "location": "registers", + "offset": 8 + }, + "1.22.11": { + "location": "registers", + "offset": 8 + }, + "1.22.12": { + "location": "registers", + "offset": 8 + }, + "1.23.0": { + "location": "registers", + "offset": 8 + }, + "1.23.1": { + "location": "registers", + "offset": 8 + }, + "1.23.2": { + "location": "registers", + "offset": 8 + }, + "1.23.3": { + "location": "registers", + "offset": 8 + }, + "1.23.4": { + "location": "registers", + "offset": 8 + }, + "1.23.5": { + "location": "registers", + "offset": 8 + }, + "1.23.6": { + "location": "registers", + "offset": 8 + }, + "1.23.7": { + "location": "registers", + "offset": 8 + }, + "1.24.0": { + "location": "registers", + "offset": 8 + }, + "1.24.1": { + "location": "registers", + "offset": 8 + } + }, + "endStream": { + "1.19.0": { + "location": "registers", + "offset": 16 + }, + "1.19.1": { + "location": "registers", + "offset": 16 + }, + "1.19.2": { + "location": "registers", + "offset": 16 + }, + "1.19.3": { + "location": "registers", + "offset": 16 + }, + "1.19.4": { + "location": "registers", + "offset": 16 + }, + "1.19.5": { + "location": "registers", + "offset": 16 + }, + "1.19.6": { + "location": "registers", + "offset": 16 + }, + "1.19.7": { + "location": "registers", + "offset": 16 + }, + "1.19.8": { + "location": "registers", + "offset": 16 + }, + "1.19.9": { + "location": "registers", + "offset": 16 + }, + "1.19.10": { + "location": "registers", + "offset": 16 + }, + "1.19.11": { + "location": "registers", + "offset": 16 + }, + "1.19.12": { + "location": "registers", + "offset": 16 + }, + "1.19.13": { + "location": "registers", + "offset": 16 + }, + "1.20.0": { + "location": "registers", + "offset": 16 + }, + "1.20.1": { + "location": "registers", + "offset": 16 + }, + "1.20.2": { + "location": "registers", + "offset": 16 + }, + "1.20.3": { + "location": "registers", + "offset": 16 + }, + "1.20.4": { + "location": "registers", + "offset": 16 + }, + "1.20.5": { + "location": "registers", + "offset": 16 + }, + "1.20.6": { + "location": "registers", + "offset": 16 + }, + "1.20.7": { + "location": "registers", + "offset": 16 + }, + "1.20.8": { + "location": "registers", + "offset": 16 + }, + "1.20.9": { + "location": "registers", + "offset": 16 + }, + "1.20.10": { + "location": "registers", + "offset": 16 + }, + "1.20.11": { + "location": "registers", + "offset": 16 + }, + "1.20.12": { + "location": "registers", + "offset": 16 + }, + "1.20.13": { + "location": "registers", + "offset": 16 + }, + "1.20.14": { + "location": "registers", + "offset": 16 + }, + "1.21.0": { + "location": "registers", + "offset": 16 + }, + "1.21.1": { + "location": "registers", + "offset": 16 + }, + "1.21.2": { + "location": "registers", + "offset": 16 + }, + "1.21.3": { + "location": "registers", + "offset": 16 + }, + "1.21.4": { + "location": "registers", + "offset": 16 + }, + "1.21.5": { + "location": "registers", + "offset": 16 + }, + "1.21.6": { + "location": "registers", + "offset": 16 + }, + "1.21.7": { + "location": "registers", + "offset": 16 + }, + "1.21.8": { + "location": "registers", + "offset": 16 + }, + "1.21.9": { + "location": "registers", + "offset": 16 + }, + "1.21.10": { + "location": "registers", + "offset": 16 + }, + "1.21.11": { + "location": "registers", + "offset": 16 + }, + "1.21.12": { + "location": "registers", + "offset": 16 + }, + "1.21.13": { + "location": "registers", + "offset": 16 + }, + "1.22.0": { + "location": "registers", + "offset": 16 + }, + "1.22.1": { + "location": "registers", + "offset": 16 + }, + "1.22.2": { + "location": "registers", + "offset": 16 + }, + "1.22.3": { + "location": "registers", + "offset": 16 + }, + "1.22.4": { + "location": "registers", + "offset": 16 + }, + "1.22.5": { + "location": "registers", + "offset": 16 + }, + "1.22.6": { + "location": "registers", + "offset": 16 + }, + "1.22.7": { + "location": "registers", + "offset": 16 + }, + "1.22.8": { + "location": "registers", + "offset": 16 + }, + "1.22.9": { + "location": "registers", + "offset": 16 + }, + "1.22.10": { + "location": "registers", + "offset": 16 + }, + "1.22.11": { + "location": "registers", + "offset": 16 + }, + "1.22.12": { + "location": "registers", + "offset": 16 + }, + "1.23.0": { + "location": "registers", + "offset": 16 + }, + "1.23.1": { + "location": "registers", + "offset": 16 + }, + "1.23.2": { + "location": "registers", + "offset": 16 + }, + "1.23.3": { + "location": "registers", + "offset": 16 + }, + "1.23.4": { + "location": "registers", + "offset": 16 + }, + "1.23.5": { + "location": "registers", + "offset": 16 + }, + "1.23.6": { + "location": "registers", + "offset": 16 + }, + "1.23.7": { + "location": "registers", + "offset": 16 + }, + "1.24.0": { + "location": "registers", + "offset": 16 + }, + "1.24.1": { + "location": "registers", + "offset": 16 + } + }, + "f": { + "1.19.0": { + "location": "registers", + "offset": 0 + }, + "1.19.1": { + "location": "registers", + "offset": 0 + }, + "1.19.2": { + "location": "registers", + "offset": 0 + }, + "1.19.3": { + "location": "registers", + "offset": 0 + }, + "1.19.4": { + "location": "registers", + "offset": 0 + }, + "1.19.5": { + "location": "registers", + "offset": 0 + }, + "1.19.6": { + "location": "registers", + "offset": 0 + }, + "1.19.7": { + "location": "registers", + "offset": 0 + }, + "1.19.8": { + "location": "registers", + "offset": 0 + }, + "1.19.9": { + "location": "registers", + "offset": 0 + }, + "1.19.10": { + "location": "registers", + "offset": 0 + }, + "1.19.11": { + "location": "registers", + "offset": 0 + }, + "1.19.12": { + "location": "registers", + "offset": 0 + }, + "1.19.13": { + "location": "registers", + "offset": 0 + }, + "1.20.0": { + "location": "registers", + "offset": 0 + }, + "1.20.1": { + "location": "registers", + "offset": 0 + }, + "1.20.2": { + "location": "registers", + "offset": 0 + }, + "1.20.3": { + "location": "registers", + "offset": 0 + }, + "1.20.4": { + "location": "registers", + "offset": 0 + }, + "1.20.5": { + "location": "registers", + "offset": 0 + }, + "1.20.6": { + "location": "registers", + "offset": 0 + }, + "1.20.7": { + "location": "registers", + "offset": 0 + }, + "1.20.8": { + "location": "registers", + "offset": 0 + }, + "1.20.9": { + "location": "registers", + "offset": 0 + }, + "1.20.10": { + "location": "registers", + "offset": 0 + }, + "1.20.11": { + "location": "registers", + "offset": 0 + }, + "1.20.12": { + "location": "registers", + "offset": 0 + }, + "1.20.13": { + "location": "registers", + "offset": 0 + }, + "1.20.14": { + "location": "registers", + "offset": 0 + }, + "1.21.0": { + "location": "registers", + "offset": 0 + }, + "1.21.1": { + "location": "registers", + "offset": 0 + }, + "1.21.2": { + "location": "registers", + "offset": 0 + }, + "1.21.3": { + "location": "registers", + "offset": 0 + }, + "1.21.4": { + "location": "registers", + "offset": 0 + }, + "1.21.5": { + "location": "registers", + "offset": 0 + }, + "1.21.6": { + "location": "registers", + "offset": 0 + }, + "1.21.7": { + "location": "registers", + "offset": 0 + }, + "1.21.8": { + "location": "registers", + "offset": 0 + }, + "1.21.9": { + "location": "registers", + "offset": 0 + }, + "1.21.10": { + "location": "registers", + "offset": 0 + }, + "1.21.11": { + "location": "registers", + "offset": 0 + }, + "1.21.12": { + "location": "registers", + "offset": 0 + }, + "1.21.13": { + "location": "registers", + "offset": 0 + }, + "1.22.0": { + "location": "registers", + "offset": 0 + }, + "1.22.1": { + "location": "registers", + "offset": 0 + }, + "1.22.2": { + "location": "registers", + "offset": 0 + }, + "1.22.3": { + "location": "registers", + "offset": 0 + }, + "1.22.4": { + "location": "registers", + "offset": 0 + }, + "1.22.5": { + "location": "registers", + "offset": 0 + }, + "1.22.6": { + "location": "registers", + "offset": 0 + }, + "1.22.7": { + "location": "registers", + "offset": 0 + }, + "1.22.8": { + "location": "registers", + "offset": 0 + }, + "1.22.9": { + "location": "registers", + "offset": 0 + }, + "1.22.10": { + "location": "registers", + "offset": 0 + }, + "1.22.11": { + "location": "registers", + "offset": 0 + }, + "1.22.12": { + "location": "registers", + "offset": 0 + }, + "1.23.0": { + "location": "registers", + "offset": 0 + }, + "1.23.1": { + "location": "registers", + "offset": 0 + }, + "1.23.2": { + "location": "registers", + "offset": 0 + }, + "1.23.3": { + "location": "registers", + "offset": 0 + }, + "1.23.4": { + "location": "registers", + "offset": 0 + }, + "1.23.5": { + "location": "registers", + "offset": 0 + }, + "1.23.6": { + "location": "registers", + "offset": 0 + }, + "1.23.7": { + "location": "registers", + "offset": 0 + }, + "1.24.0": { + "location": "registers", + "offset": 0 + }, + "1.24.1": { + "location": "registers", + "offset": 0 + } + }, + "data": { + "1.19.0": { + "location": "registers", + "offset": 24 + }, + "1.19.1": { + "location": "registers", + "offset": 24 + }, + "1.19.2": { + "location": "registers", + "offset": 24 + }, + "1.19.3": { + "location": "registers", + "offset": 24 + }, + "1.19.4": { + "location": "registers", + "offset": 24 + }, + "1.19.5": { + "location": "registers", + "offset": 24 + }, + "1.19.6": { + "location": "registers", + "offset": 24 + }, + "1.19.7": { + "location": "registers", + "offset": 24 + }, + "1.19.8": { + "location": "registers", + "offset": 24 + }, + "1.19.9": { + "location": "registers", + "offset": 24 + }, + "1.19.10": { + "location": "registers", + "offset": 24 + }, + "1.19.11": { + "location": "registers", + "offset": 24 + }, + "1.19.12": { + "location": "registers", + "offset": 24 + }, + "1.19.13": { + "location": "registers", + "offset": 24 + }, + "1.20.0": { + "location": "registers", + "offset": 24 + }, + "1.20.1": { + "location": "registers", + "offset": 24 + }, + "1.20.2": { + "location": "registers", + "offset": 24 + }, + "1.20.3": { + "location": "registers", + "offset": 24 + }, + "1.20.4": { + "location": "registers", + "offset": 24 + }, + "1.20.5": { + "location": "registers", + "offset": 24 + }, + "1.20.6": { + "location": "registers", + "offset": 24 + }, + "1.20.7": { + "location": "registers", + "offset": 24 + }, + "1.20.8": { + "location": "registers", + "offset": 24 + }, + "1.20.9": { + "location": "registers", + "offset": 24 + }, + "1.20.10": { + "location": "registers", + "offset": 24 + }, + "1.20.11": { + "location": "registers", + "offset": 24 + }, + "1.20.12": { + "location": "registers", + "offset": 24 + }, + "1.20.13": { + "location": "registers", + "offset": 24 + }, + "1.20.14": { + "location": "registers", + "offset": 24 + }, + "1.21.0": { + "location": "registers", + "offset": 24 + }, + "1.21.1": { + "location": "registers", + "offset": 24 + }, + "1.21.2": { + "location": "registers", + "offset": 24 + }, + "1.21.3": { + "location": "registers", + "offset": 24 + }, + "1.21.4": { + "location": "registers", + "offset": 24 + }, + "1.21.5": { + "location": "registers", + "offset": 24 + }, + "1.21.6": { + "location": "registers", + "offset": 24 + }, + "1.21.7": { + "location": "registers", + "offset": 24 + }, + "1.21.8": { + "location": "registers", + "offset": 24 + }, + "1.21.9": { + "location": "registers", + "offset": 24 + }, + "1.21.10": { + "location": "registers", + "offset": 24 + }, + "1.21.11": { + "location": "registers", + "offset": 24 + }, + "1.21.12": { + "location": "registers", + "offset": 24 + }, + "1.21.13": { + "location": "registers", + "offset": 24 + }, + "1.22.0": { + "location": "registers", + "offset": 24 + }, + "1.22.1": { + "location": "registers", + "offset": 24 + }, + "1.22.2": { + "location": "registers", + "offset": 24 + }, + "1.22.3": { + "location": "registers", + "offset": 24 + }, + "1.22.4": { + "location": "registers", + "offset": 24 + }, + "1.22.5": { + "location": "registers", + "offset": 24 + }, + "1.22.6": { + "location": "registers", + "offset": 24 + }, + "1.22.7": { + "location": "registers", + "offset": 24 + }, + "1.22.8": { + "location": "registers", + "offset": 24 + }, + "1.22.9": { + "location": "registers", + "offset": 24 + }, + "1.22.10": { + "location": "registers", + "offset": 24 + }, + "1.22.11": { + "location": "registers", + "offset": 24 + }, + "1.22.12": { + "location": "registers", + "offset": 24 + }, + "1.23.0": { + "location": "registers", + "offset": 24 + }, + "1.23.1": { + "location": "registers", + "offset": 24 + }, + "1.23.2": { + "location": "registers", + "offset": 24 + }, + "1.23.3": { + "location": "registers", + "offset": 24 + }, + "1.23.4": { + "location": "registers", + "offset": 24 + }, + "1.23.5": { + "location": "registers", + "offset": 24 + }, + "1.23.6": { + "location": "registers", + "offset": 24 + }, + "1.23.7": { + "location": "registers", + "offset": 24 + }, + "1.24.0": { + "location": "registers", + "offset": 24 + }, + "1.24.1": { + "location": "registers", + "offset": 24 + } + } + } + } +} diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel index d61658b7398..a3d25ea7add 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel @@ -80,6 +80,7 @@ pl_cc_test_library( hdrs = [pl_go_sdk_version_template_to_label("go_%s_grpc_server_container.h", sdk_version)], data = [ pl_go_sdk_version_template_to_label("//src/stirling/testing/demo_apps/go_grpc_tls_pl/server:golang_%s_grpc_tls_server.tar", sdk_version), + "//src/stirling/source_connectors/socket_tracer/testing/containers:go_1_23_grpc_server_with_mod_info.tar", ], deps = ["//src/common/testing/test_utils:cc_library"], ) @@ -106,6 +107,7 @@ pl_cc_test_library( hdrs = [pl_go_sdk_version_template_to_label("go_%s_tls_server_container.h", sdk_version)], data = [ pl_go_sdk_version_template_to_label("//src/stirling/testing/demo_apps/go_https/server:golang_%s_https_server.tar", sdk_version), + "//src/stirling/source_connectors/socket_tracer/testing/containers:golang_1_23_https_server_with_buildinfo.tar", ], deps = ["//src/common/testing/test_utils:cc_library"], ) diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_grpc_server_container.h index 94bd9a4c87b..772c398ff2e 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_grpc_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_18_GRPCServerContainer : public ContainerRunner { public: - Go1_18_GRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_18_GRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_18_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_tls_server_container.h index cb5ef40211a..8e061f63d48 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_18_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_18_TLSServerContainer : public ContainerRunner { public: - Go1_18_TLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_18_TLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_1_18_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_grpc_server_container.h index ac4819d23b0..4322629afee 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_grpc_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_19_GRPCServerContainer : public ContainerRunner { public: - Go1_19_GRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_19_GRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_19_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_tls_server_container.h index 70b59273fe4..5b66beab35f 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_19_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_19_TLSServerContainer : public ContainerRunner { public: - Go1_19_TLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_19_TLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_1_19_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_grpc_server_container.h index 67e7c2fa581..c617a08d87e 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_grpc_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_20_GRPCServerContainer : public ContainerRunner { public: - Go1_20_GRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_20_GRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_20_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_tls_server_container.h index f3287f1a177..4c047975447 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_20_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_20_TLSServerContainer : public ContainerRunner { public: - Go1_20_TLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_20_TLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_1_20_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_grpc_server_container.h index 00ceb84e000..1464552fdec 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_grpc_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_21_GRPCServerContainer : public ContainerRunner { public: - Go1_21_GRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_21_GRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_21_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_tls_server_container.h index 331e1b28339..c06b923ebe3 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_21_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_21_TLSServerContainer : public ContainerRunner { public: - Go1_21_TLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_21_TLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_1_21_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_grpc_server_container.h index 1d2c274cc75..374789fa94d 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_grpc_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_22_GRPCServerContainer : public ContainerRunner { public: - Go1_22_GRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_22_GRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_22_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_tls_server_container.h index 5f5a53766da..5e1eed96aa7 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_22_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_22_TLSServerContainer : public ContainerRunner { public: - Go1_22_TLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_22_TLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_1_22_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_grpc_server_container.h index 44dde6e32fd..b1f50502fb6 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_grpc_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_23_GRPCServerContainer : public ContainerRunner { public: - Go1_23_GRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_23_GRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_23_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_tls_server_container.h index 367cf8928a8..d42b10c53d5 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_1_23_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class Go1_23_TLSServerContainer : public ContainerRunner { public: - Go1_23_TLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit Go1_23_TLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_1_23_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_grpc_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_grpc_server_container.h index b0306581592..97da760800b 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_grpc_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_grpc_server_container.h @@ -29,14 +29,15 @@ namespace testing { class GoBoringCryptoGRPCServerContainer : public ContainerRunner { public: - GoBoringCryptoGRPCServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit GoBoringCryptoGRPCServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/" "golang_boringcrypto_grpc_tls_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "grpc_server"; static constexpr std::string_view kReadyMessage = "Starting HTTP/2 server"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_tls_server_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_tls_server_container.h index d8107e108ce..d793cb74a68 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_tls_server_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/go_boringcrypto_tls_server_container.h @@ -29,13 +29,14 @@ namespace testing { class GoBoringCryptoTLSServerContainer : public ContainerRunner { public: - GoBoringCryptoTLSServerContainer() - : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, + explicit GoBoringCryptoTLSServerContainer(std::string image_tar) + : ContainerRunner(::px::testing::BazelRunfilePath(image_tar), kContainerNamePrefix, kReadyMessage) {} - private: static constexpr std::string_view kBazelImageTar = "src/stirling/testing/demo_apps/go_https/server/golang_boringcrypto_https_server.tar"; + + private: static constexpr std::string_view kContainerNamePrefix = "https_server"; static constexpr std::string_view kReadyMessage = "Starting HTTPS service"; }; diff --git a/src/stirling/source_connectors/socket_tracer/testing/containers/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/testing/containers/BUILD.bazel index bbdafff556a..098b8261772 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/containers/BUILD.bazel +++ b/src/stirling/source_connectors/socket_tracer/testing/containers/BUILD.bazel @@ -131,6 +131,16 @@ container_image( ] ] +container_image( + name = "golang_1_23_https_server_with_buildinfo", + base = "@golang_1_23_https_server_with_buildinfo//image", +) + +container_image( + name = "go_1_23_grpc_server_with_mod_info", + base = "@go_1_23_grpc_server_with_mod_info//image", +) + container_image( name = "amqp_image", base = "@rabbitmq_3_management//image", diff --git a/src/stirling/source_connectors/socket_tracer/uprobe_manager.cc b/src/stirling/source_connectors/socket_tracer/uprobe_manager.cc index f79dbfa6fa5..039b5c8ca4a 100644 --- a/src/stirling/source_connectors/socket_tracer/uprobe_manager.cc +++ b/src/stirling/source_connectors/socket_tracer/uprobe_manager.cc @@ -57,6 +57,10 @@ DEFINE_string( "Comma separated list of binary filenames that should be excluded from uprobe attachment." "For a binary at path /path/to/binary, the filename would be binary"); +DEFINE_string(offsetgen_filepath, "/px/offsetgen_offsets.json", + "Path to the offsetgen file that contains the offsets of Go structs and functions. " + "This file is generated by the offsetgen tool"); + namespace px { namespace stirling { @@ -67,6 +71,22 @@ using ::px::system::KernelVersion; using ::px::system::KernelVersionOrder; using ::px::system::ProcPidRootPath; +namespace { + +static void InitSymAddrs() { + ParseGoOffsetgenFile(FLAGS_offsetgen_filepath); + VLOG(1) << absl::Substitute("Parsed $0 struct and $1 function offsets from offsetgen file", + GetGoStructOffsets().size(), GetGoFunctionArgOffsets().size()); + return; +} + +void InitSymaddrsOnce() { + static std::once_flag initialized; + std::call_once(initialized, InitSymAddrs); +} + +} // namespace + constexpr std::string_view kUprobeSkippedMessage = "binary filename '$0' contained in uprobe opt out list, skipping."; @@ -74,6 +94,7 @@ UProbeManager::UProbeManager(bpf_tools::BCCWrapper* bcc) : bcc_(bcc) { proc_parser_ = std::make_unique(); auto opt_out_list = absl::StrSplit(FLAGS_stirling_uprobe_opt_out, ",", absl::SkipWhitespace()); uprobe_opt_out_ = absl::flat_hash_set(opt_out_list.begin(), opt_out_list.end()); + InitSymaddrsOnce(); } void UProbeManager::Init(bool disable_go_tls_tracing, bool enable_http2_tracing, @@ -174,10 +195,10 @@ Status UProbeManager::UpdateOpenSSLSymAddrs(obj_tools::RawFptrManager* fptr_mana return Status::OK(); } -Status UProbeManager::UpdateGoCommonSymAddrs(ElfReader* elf_reader, DwarfReader* dwarf_reader, +Status UProbeManager::UpdateGoCommonSymAddrs(ElfReader* elf_reader, GoOffsetLocator* offset_locator, const std::vector& pids) { PX_ASSIGN_OR_RETURN(struct go_common_symaddrs_t symaddrs, - GoCommonSymAddrs(elf_reader, dwarf_reader)); + GoCommonSymAddrs(elf_reader, offset_locator)); for (auto& pid : pids) { PX_RETURN_IF_ERROR(go_common_symaddrs_map_->SetValue(pid, symaddrs)); @@ -186,10 +207,10 @@ Status UProbeManager::UpdateGoCommonSymAddrs(ElfReader* elf_reader, DwarfReader* return Status::OK(); } -Status UProbeManager::UpdateGoHTTP2SymAddrs(ElfReader* elf_reader, DwarfReader* dwarf_reader, +Status UProbeManager::UpdateGoHTTP2SymAddrs(ElfReader* elf_reader, GoOffsetLocator* offset_locator, const std::vector& pids) { PX_ASSIGN_OR_RETURN(struct go_http2_symaddrs_t symaddrs, - GoHTTP2SymAddrs(elf_reader, dwarf_reader)); + GoHTTP2SymAddrs(elf_reader, offset_locator)); for (auto& pid : pids) { PX_RETURN_IF_ERROR(go_http2_symaddrs_map_->SetValue(pid, symaddrs)); @@ -198,9 +219,9 @@ Status UProbeManager::UpdateGoHTTP2SymAddrs(ElfReader* elf_reader, DwarfReader* return Status::OK(); } -Status UProbeManager::UpdateGoTLSSymAddrs(ElfReader* elf_reader, DwarfReader* dwarf_reader, +Status UProbeManager::UpdateGoTLSSymAddrs(GoOffsetLocator* offset_locator, const std::vector& pids) { - PX_ASSIGN_OR_RETURN(struct go_tls_symaddrs_t symaddrs, GoTLSSymAddrs(elf_reader, dwarf_reader)); + PX_ASSIGN_OR_RETURN(struct go_tls_symaddrs_t symaddrs, GoTLSSymAddrs(offset_locator)); for (auto& pid : pids) { PX_RETURN_IF_ERROR(go_tls_symaddrs_map_->SetValue(pid, symaddrs)); @@ -524,10 +545,10 @@ StatusOr UProbeManager::AttachNodeJsOpenSSLUprobes(const uint32_t pid, StatusOr UProbeManager::AttachGoTLSUProbes(const std::string& binary, obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, + GoOffsetLocator* offset_locator, const std::vector& pids) { // Step 1: Update BPF symbols_map on all new PIDs. - Status s = UpdateGoTLSSymAddrs(elf_reader, dwarf_reader, pids); + Status s = UpdateGoTLSSymAddrs(offset_locator, pids); if (!s.ok()) { // Doesn't appear to be a binary with the mandatory symbols. // Might not even be a golang binary. @@ -546,10 +567,10 @@ StatusOr UProbeManager::AttachGoTLSUProbes(const std::string& binary, StatusOr UProbeManager::AttachGoHTTP2UProbes(const std::string& binary, obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, + GoOffsetLocator* offset_locator, const std::vector& pids) { // Step 1: Update BPF symaddrs for this binary. - Status s = UpdateGoHTTP2SymAddrs(elf_reader, dwarf_reader, pids); + Status s = UpdateGoHTTP2SymAddrs(elf_reader, offset_locator, pids); if (!s.ok()) { return 0; } @@ -886,8 +907,29 @@ int UProbeManager::DeployGoUProbes(const absl::flat_hash_set& pids) { binary, dwarf_reader_status.msg()); continue; } + + auto build_info_s = ReadGoBuildInfo(elf_reader.get()); + obj_tools::BuildInfo build_info; + std::string go_version; + if (build_info_s.ok()) { + auto& build_info_pair = build_info_s.ValueOrDie(); + go_version = build_info_pair.first; + build_info = std::move(build_info_pair.second); + } else { + VLOG(1) << absl::Substitute( + "Failed to read build info from binary $0. Likely a Go binary built with an older " + "version of Go without module support (pre 1.12)." + "Message = $1", + binary, build_info_s.status().msg()); + } + + LOG(INFO) << "Go version=" << go_version << " for binary " << binary; std::unique_ptr dwarf_reader = dwarf_reader_status.ConsumeValueOrDie(); - Status s = UpdateGoCommonSymAddrs(elf_reader.get(), dwarf_reader.get(), pid_vec); + FunctionArgMap function_offsets; + std::unique_ptr offset_locator = + std::make_unique(dwarf_reader.get(), GetGoStructOffsets(), + GetGoFunctionArgOffsets(), build_info, go_version); + Status s = UpdateGoCommonSymAddrs(elf_reader.get(), offset_locator.get(), pid_vec); if (!s.ok()) { VLOG(1) << absl::Substitute( "Golang binary $0 does not have the mandatory symbols (e.g. TCPConn).", binary); @@ -898,7 +940,7 @@ int UProbeManager::DeployGoUProbes(const absl::flat_hash_set& pids) { if (!cfg_disable_go_tls_tracing_) { VLOG(1) << absl::Substitute("Attempting to attach Go TLS uprobes to binary $0", binary); StatusOr attach_status = - AttachGoTLSUProbes(binary, elf_reader.get(), dwarf_reader.get(), pid_vec); + AttachGoTLSUProbes(binary, elf_reader.get(), offset_locator.get(), pid_vec); if (!attach_status.ok()) { monitor_.AppendSourceStatusRecord("socket_tracer", attach_status.status(), "AttachGoTLSUProbes"); @@ -912,7 +954,7 @@ int UProbeManager::DeployGoUProbes(const absl::flat_hash_set& pids) { // Go HTTP2 Probes. if (!cfg_disable_go_tls_tracing_ && cfg_enable_http2_tracing_) { StatusOr attach_status = - AttachGoHTTP2UProbes(binary, elf_reader.get(), dwarf_reader.get(), pid_vec); + AttachGoHTTP2UProbes(binary, elf_reader.get(), offset_locator.get(), pid_vec); if (!attach_status.ok()) { monitor_.AppendSourceStatusRecord("socket_tracer", attach_status.status(), "AttachGoHTTP2UProbes"); diff --git a/src/stirling/source_connectors/socket_tracer/uprobe_manager.h b/src/stirling/source_connectors/socket_tracer/uprobe_manager.h index b3f8fc8b25b..41d6e3c8157 100644 --- a/src/stirling/source_connectors/socket_tracer/uprobe_manager.h +++ b/src/stirling/source_connectors/socket_tracer/uprobe_manager.h @@ -493,7 +493,7 @@ class UProbeManager { * * @param binary The path to the binary on which to deploy Go HTTP2 probes. * @param elf_reader ELF reader for the binary. - * @param dwarf_reader DWARF reader for the binary. + * @param offset_locator DWARF reader for the binary. * @param pids The list of PIDs that are new instances of the binary. Used to populate symbol * addresses. * @return The number of uprobes deployed, or error. It is not considered an error if the binary @@ -501,7 +501,7 @@ class UProbeManager { * zero. */ StatusOr AttachGoHTTP2UProbes(const std::string& binary, obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, + GoOffsetLocator* offset_locator, const std::vector& pids); /** @@ -510,14 +510,14 @@ class UProbeManager { * * @param binary The path to the binary on which to deploy Go HTTP2 probes. * @param elf_reader ELF reader for the binary. - * @param dwarf_reader DWARF reader for the binary. + * @param offset_locator DWARF reader for the binary. * @param pids The list of PIDs that are new instances of the binary. Used to populate symbol * addresses. * @return The number of uprobes deployed, or error. It is not an error if the binary * is not a Go binary or doesn't use Go TLS; instead the return value will be zero. */ StatusOr AttachGoTLSUProbes(const std::string& binary, obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, + GoOffsetLocator* offset_locator, const std::vector& new_pids); /** @@ -579,14 +579,11 @@ class UProbeManager { Status UpdateOpenSSLSymAddrs(px::stirling::obj_tools::RawFptrManager* fptrManager, std::filesystem::path container_lib, uint32_t pid); - Status UpdateGoCommonSymAddrs(obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, + Status UpdateGoCommonSymAddrs(obj_tools::ElfReader* elf_reader, GoOffsetLocator* offset_locator, const std::vector& pids); - Status UpdateGoHTTP2SymAddrs(obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, + Status UpdateGoHTTP2SymAddrs(obj_tools::ElfReader* elf_reader, GoOffsetLocator* offset_locator, const std::vector& pids); - Status UpdateGoTLSSymAddrs(obj_tools::ElfReader* elf_reader, obj_tools::DwarfReader* dwarf_reader, - const std::vector& pids); + Status UpdateGoTLSSymAddrs(GoOffsetLocator* offset_locator, const std::vector& pids); Status UpdateNodeTLSWrapSymAddrs(int32_t pid, const std::filesystem::path& node_exe, const SemVer& ver); diff --git a/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.cc b/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.cc index cf30c680e0b..ad8389f21e2 100644 --- a/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.cc +++ b/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.cc @@ -47,6 +47,10 @@ DEFINE_bool(openssl_raw_fptrs_enabled, false, "If true, allows the openssl tracing implementation to fall back to function pointers " "if dlopen/dlsym is unable to find symbols"); +DEFINE_bool(disable_dwarf_parsing, false, + "If true, disables parsing of DWARF information. This is useful for using lower memory " + "uprobe instrumentation."); + namespace px { namespace stirling { @@ -56,6 +60,148 @@ namespace { // since an array is a pretty stable type. constexpr int kGoArrayPtrOffset = 0; constexpr int kGoArrayLenOffset = 8; + +constexpr const std::array kGoPackagePrefixes = + MakeArray("google.golang.org/grpc", "golang.org/x/net"); + +template +std::pair FindMatchingPkgPrefix( + const std::string_view& str, const std::array& prefixes) { + for (std::size_t i = 0; i < N; ++i) { + if (absl::StartsWith(str, prefixes[i])) { + return {prefixes[i], true}; + } + } + return {kGoStdlibPackageName, false}; +} + +StructOffsetMap g_struct_offsets; + +FunctionArgMap g_function_arg_offsets; + +// ParseLocationType turns the opentelemetry-go-instrumentation offsetgen encoded +// JSON location into Pixie's native obj_tools::LocationType. +obj_tools::LocationType ParseLocationType(const std::string& loc) { + if (loc == "stack") { + return obj_tools::LocationType::kStack; + } else if (loc == "registers") { + return obj_tools::LocationType::kRegister; + } + return obj_tools::LocationType::kUnknown; +} + +/** + * ParseOffsetOnly: + * - For a JSON leaf representing a struct's offset: + * - If a bare integer, return that + * - Otherwise, return -1 + */ +int32_t ParseOffsetOnly(const rapidjson::Value& val) { + int32_t offset = -1; + if (val.IsNumber()) { + int64_t bigVal = val.GetInt64(); + offset = static_cast(bigVal); + } + return offset; +} + +/** + * ParseOffsetAndLocation: + * - For a JSON leaf representing a func's offset & location: + * - offset_out => -1 if null; store the integer or the object's "offset" otherwise + * - loc_out => nullptr if null, otherwise a valid obj_tools::LocationType pointer + */ +// ParseOffsetAndLocation parses the function JSON object contained in the +// opentelemetry-go-instrumentation offsetgen JSON file. Each JSON object is expected to have a +// "location" and an "offset" field. +std::unique_ptr ParseOffsetAndLocation(const rapidjson::Value& val) { + std::unique_ptr loc = std::make_unique(); + loc->loc_type = obj_tools::LocationType::kUnknown; + loc->offset = -1; + + // e.g. { "location":"stack", "offset": 42 } + if (val.IsObject()) { + const auto& obj = val.GetObject(); + + if (obj.HasMember("offset") && obj["offset"].IsNumber()) { + int64_t bigVal = obj["offset"].GetInt64(); + loc->offset = static_cast(bigVal); + } + if (obj.HasMember("location") && obj["location"].IsString()) { + loc->loc_type = ParseLocationType(obj["location"].GetString()); + } + } + return loc; +} + +// ParseGoStructsObject parses the structs object from the opentelemetry-go-instrumentation +// offsetgen JSON file. Each struct is represented as a key-value pair where the key is the +// struct name and the value is an object containing field names and their corresponding +// offsets for different versions. +void ParseGoStructsObject(const rapidjson::Value& structs_val) { + for (auto itr = structs_val.MemberBegin(); itr != structs_val.MemberEnd(); ++itr) { + std::string struct_name = itr->name.GetString(); + if (!itr->value.IsObject()) { + continue; + } + const auto& field_map_obj = itr->value.GetObject(); + + auto& offset_map = GetGoStructOffsets(); + + std::string_view pkg = FindMatchingPkgPrefix(struct_name, kGoPackagePrefixes).first; + offset_map[struct_name].first = pkg; + + for (auto field_it = field_map_obj.MemberBegin(); field_it != field_map_obj.MemberEnd(); + ++field_it) { + std::string field_name = field_it->name.GetString(); + if (!field_it->value.IsObject()) { + continue; + } + const auto& versions_obj = field_it->value.GetObject(); + + for (auto ver_it = versions_obj.MemberBegin(); ver_it != versions_obj.MemberEnd(); ++ver_it) { + std::string version_key = ver_it->name.GetString(); + int32_t off = ParseOffsetOnly(ver_it->value); + offset_map[struct_name].second[field_name][version_key] = off; + } + } + } +} + +// ParseGoFuncsObject parses the funcs object from the opentelemetry-go-instrumentation +// offsetgen JSON file. Each function is represented as a key-value pair where the key is the +// function name and the value is an object containing argument names and their corresponding +// locations for different versions. +void ParseGoFuncsObject(const rapidjson::Value& funcsVal) { + for (auto itr = funcsVal.MemberBegin(); itr != funcsVal.MemberEnd(); ++itr) { + std::string func_name = itr->name.GetString(); + if (!itr->value.IsObject()) { + continue; + } + const auto& arg_map_obj = itr->value.GetObject(); // e.g. "data", "Flags", etc. + + auto& location_map = GetGoFunctionArgOffsets(); + + std::string_view pkg = FindMatchingPkgPrefix(func_name, kGoPackagePrefixes).first; + location_map[func_name].first = pkg; + for (auto arg_it = arg_map_obj.MemberBegin(); arg_it != arg_map_obj.MemberEnd(); ++arg_it) { + std::string arg_name = arg_it->name.GetString(); + + if (!arg_it->value.IsObject()) { + continue; + } + const auto& versions_obj = arg_it->value.GetObject(); + + for (auto ver_it = versions_obj.MemberBegin(); ver_it != versions_obj.MemberEnd(); ++ver_it) { + std::string version_key = ver_it->name.GetString(); + + location_map[func_name].second[arg_name][version_key] = + ParseOffsetAndLocation(ver_it->value); + } + } + } +} + } // namespace //----------------------------------------------------------------------------- @@ -186,20 +332,20 @@ Status PopulateCommonTypeAddrs(ElfReader* elf_reader, std::string_view vendor_pr return Status::OK(); } -Status PopulateCommonDebugSymbols(DwarfReader* dwarf_reader, std::string_view vendor_prefix, +Status PopulateCommonDebugSymbols(GoOffsetLocator* offset_locator, std::string_view vendor_prefix, struct go_common_symaddrs_t* symaddrs) { #define VENDOR_SYMBOL(symbol) absl::StrCat(vendor_prefix, symbol) LOG_ASSIGN_STATUSOR(symaddrs->FD_Sysfd_offset, - dwarf_reader->GetStructMemberOffset("internal/poll.FD", "Sysfd")); + offset_locator->GetStructMemberOffset("internal/poll.FD", "Sysfd")); LOG_ASSIGN_STATUSOR(symaddrs->tlsConn_conn_offset, - dwarf_reader->GetStructMemberOffset("crypto/tls.Conn", "conn")); + offset_locator->GetStructMemberOffset("crypto/tls.Conn", "conn")); LOG_ASSIGN_STATUSOR( symaddrs->syscallConn_conn_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("google.golang.org/grpc/credentials/internal.syscallConn"), "conn")); LOG_ASSIGN_STATUSOR(symaddrs->g_goid_offset, - dwarf_reader->GetStructMemberOffset("runtime.g", "goid")); + offset_locator->GetStructMemberOffset("runtime.g", "goid")); #undef VENDOR_SYMBOL // List mandatory symaddrs here (symaddrs without which all probes become useless). @@ -228,7 +374,7 @@ Status PopulateHTTP2TypeAddrs(ElfReader* elf_reader, std::string_view vendor_pre return Status::OK(); } -Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view vendor_prefix, +Status PopulateHTTP2DebugSymbols(GoOffsetLocator* offset_locator, std::string_view vendor_prefix, struct go_http2_symaddrs_t* symaddrs) { // Note: we only return error if a *mandatory* symbol is missing. Currently none are mandatory, // because these multiple probes for multiple HTTP2/GRPC libraries. Even if a symbol for one @@ -238,111 +384,111 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // clang-format off LOG_ASSIGN_STATUSOR(symaddrs->HeaderField_Name_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2/hpack.HeaderField"), "Name")); LOG_ASSIGN_STATUSOR(symaddrs->HeaderField_Value_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2/hpack.HeaderField"), "Value")); LOG_ASSIGN_STATUSOR(symaddrs->http2Server_conn_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.http2Server"), "conn")); LOG_ASSIGN_STATUSOR(symaddrs->http2Client_conn_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.http2Client"), "conn")); LOG_ASSIGN_STATUSOR(symaddrs->loopyWriter_framer_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.loopyWriter"), "framer")); LOG_ASSIGN_STATUSOR(symaddrs->Framer_w_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.Framer"), "w")); LOG_ASSIGN_STATUSOR(symaddrs->MetaHeadersFrame_HeadersFrame_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.MetaHeadersFrame"), "HeadersFrame")); LOG_ASSIGN_STATUSOR(symaddrs->MetaHeadersFrame_Fields_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.MetaHeadersFrame"), "Fields")); LOG_ASSIGN_STATUSOR(symaddrs->HeadersFrame_FrameHeader_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.HeadersFrame"), "FrameHeader")); LOG_ASSIGN_STATUSOR(symaddrs->FrameHeader_Type_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.FrameHeader"), "Type")); LOG_ASSIGN_STATUSOR(symaddrs->FrameHeader_Flags_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.FrameHeader"), "Flags")); LOG_ASSIGN_STATUSOR(symaddrs->FrameHeader_StreamID_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.FrameHeader"), "StreamID")); LOG_ASSIGN_STATUSOR(symaddrs->DataFrame_data_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("golang.org/x/net/http2.DataFrame"), "data")); LOG_ASSIGN_STATUSOR(symaddrs->bufWriter_conn_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.bufWriter"), "conn")); LOG_ASSIGN_STATUSOR(symaddrs->http2serverConn_conn_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2serverConn", "conn")); LOG_ASSIGN_STATUSOR(symaddrs->http2serverConn_hpackEncoder_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2serverConn", "hpackEncoder")); LOG_ASSIGN_STATUSOR(symaddrs->http2HeadersFrame_http2FrameHeader_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2HeadersFrame", "http2FrameHeader")); LOG_ASSIGN_STATUSOR(symaddrs->http2FrameHeader_Type_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2FrameHeader", "Type")); LOG_ASSIGN_STATUSOR(symaddrs->http2FrameHeader_Flags_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2FrameHeader", "Flags")); LOG_ASSIGN_STATUSOR(symaddrs->http2FrameHeader_StreamID_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2FrameHeader", "StreamID")); LOG_ASSIGN_STATUSOR(symaddrs->http2DataFrame_data_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2DataFrame", "data")); LOG_ASSIGN_STATUSOR(symaddrs->http2writeResHeaders_streamID_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2writeResHeaders", "streamID")); LOG_ASSIGN_STATUSOR(symaddrs->http2writeResHeaders_endStream_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2writeResHeaders", "endStream")); LOG_ASSIGN_STATUSOR(symaddrs->http2MetaHeadersFrame_http2HeadersFrame_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2MetaHeadersFrame", "http2HeadersFrame")); LOG_ASSIGN_STATUSOR(symaddrs->http2MetaHeadersFrame_Fields_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2MetaHeadersFrame", "Fields")); LOG_ASSIGN_STATUSOR(symaddrs->http2Framer_w_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2Framer", "w")); LOG_ASSIGN_STATUSOR(symaddrs->http2bufferedWriter_w_offset, - dwarf_reader->GetStructMemberOffset( + offset_locator->GetStructMemberOffset( "net/http.http2bufferedWriter", "w")); // clang-format on @@ -352,7 +498,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of net/http.(*http2Framer).WriteDataPadded. { std::string_view fn = "net/http.(*http2Framer).WriteDataPadded"; - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->http2Framer_WriteDataPadded_f_loc, GetArgOffset(args_map, "f")); LOG_ASSIGN(symaddrs->http2Framer_WriteDataPadded_streamID_loc, GetArgOffset(args_map, "streamID")); @@ -369,7 +515,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of golang.org/x/net/http2.(*Framer).WriteDataPadded. { std::string fn = VENDOR_SYMBOL("golang.org/x/net/http2.(*Framer).WriteDataPadded"); - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->http2_WriteDataPadded_f_loc, GetArgOffset(args_map, "f")); LOG_ASSIGN(symaddrs->http2_WriteDataPadded_streamID_loc, GetArgOffset(args_map, "streamID")); LOG_ASSIGN(symaddrs->http2_WriteDataPadded_endStream_loc, GetArgOffset(args_map, "endStream")); @@ -384,7 +530,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of net/http.(*http2Framer).checkFrameOrder. { std::string_view fn = "net/http.(*http2Framer).checkFrameOrder"; - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->http2Framer_checkFrameOrder_fr_loc, GetArgOffset(args_map, "fr")); LOG_ASSIGN(symaddrs->http2Framer_checkFrameOrder_f_loc, GetArgOffset(args_map, "f")); } @@ -392,7 +538,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of golang.org/x/net/http2.(*Framer).checkFrameOrder. { std::string fn = VENDOR_SYMBOL("golang.org/x/net/http2.(*Framer).checkFrameOrder"); - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->http2_checkFrameOrder_fr_loc, GetArgOffset(args_map, "fr")); LOG_ASSIGN(symaddrs->http2_checkFrameOrder_f_loc, GetArgOffset(args_map, "f")); } @@ -400,7 +546,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of net/http.(*http2writeResHeaders).writeFrame. { std::string_view fn = "net/http.(*http2writeResHeaders).writeFrame"; - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->writeFrame_w_loc, GetArgOffset(args_map, "w")); LOG_ASSIGN(symaddrs->writeFrame_ctx_loc, GetArgOffset(args_map, "ctx")); } @@ -408,7 +554,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of golang.org/x/net/http2/hpack.(*Encoder).WriteField. { std::string fn = VENDOR_SYMBOL("golang.org/x/net/http2/hpack.(*Encoder).WriteField"); - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->WriteField_e_loc, GetArgOffset(args_map, "e")); LOG_ASSIGN(symaddrs->WriteField_f_name_loc, GetArgOffset(args_map, "f")); symaddrs->WriteField_f_name_loc.offset += 0; @@ -420,7 +566,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven // Arguments of net/http.(*http2serverConn).processHeaders. { std::string_view fn = "net/http.(*http2serverConn).processHeaders"; - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->processHeaders_sc_loc, GetArgOffset(args_map, "sc")); LOG_ASSIGN(symaddrs->processHeaders_f_loc, GetArgOffset(args_map, "f")); } @@ -429,7 +575,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven { std::string fn = VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders"); - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->http2Server_operateHeaders_t_loc, GetArgOffset(args_map, "t")); LOG_ASSIGN(symaddrs->http2Server_operateHeaders_frame_loc, GetArgOffset(args_map, "frame")); } @@ -438,7 +584,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven { std::string fn = VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.(*http2Client).operateHeaders"); - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->http2Client_operateHeaders_t_loc, GetArgOffset(args_map, "t")); LOG_ASSIGN(symaddrs->http2Client_operateHeaders_frame_loc, GetArgOffset(args_map, "frame")); } @@ -447,7 +593,7 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven { std::string fn = VENDOR_SYMBOL("google.golang.org/grpc/internal/transport.(*loopyWriter).writeHeader"); - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->writeHeader_l_loc, GetArgOffset(args_map, "l")); LOG_ASSIGN(symaddrs->writeHeader_streamID_loc, GetArgOffset(args_map, "streamID")); LOG_ASSIGN(symaddrs->writeHeader_endStream_loc, GetArgOffset(args_map, "endStream")); @@ -466,10 +612,9 @@ Status PopulateHTTP2DebugSymbols(DwarfReader* dwarf_reader, std::string_view ven } // namespace -Status PopulateGoTLSDebugSymbols(ElfReader* elf_reader, DwarfReader* dwarf_reader, +Status PopulateGoTLSDebugSymbols(GoOffsetLocator* offset_locator, struct go_tls_symaddrs_t* symaddrs) { - PX_ASSIGN_OR_RETURN(auto build_info, ReadGoBuildInfo(elf_reader)); - PX_ASSIGN_OR_RETURN(SemVer go_version, GetSemVer(build_info.first, false)); + PX_ASSIGN_OR_RETURN(SemVer go_version, GetSemVer(offset_locator->go_version(), false)); std::string retval0_arg = "~r1"; std::string retval1_arg = "~r2"; @@ -485,7 +630,7 @@ Status PopulateGoTLSDebugSymbols(ElfReader* elf_reader, DwarfReader* dwarf_reade // Arguments of crypto/tls.(*Conn).Write. { std::string_view fn = "crypto/tls.(*Conn).Write"; - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->Write_c_loc, GetArgOffset(args_map, "c")); LOG_ASSIGN(symaddrs->Write_b_loc, GetArgOffset(args_map, "b")); LOG_ASSIGN(symaddrs->Write_retval0_loc, GetArgOffset(args_map, retval0_arg)); @@ -495,7 +640,7 @@ Status PopulateGoTLSDebugSymbols(ElfReader* elf_reader, DwarfReader* dwarf_reade // Arguments of crypto/tls.(*Conn).Read. { std::string fn = "crypto/tls.(*Conn).Read"; - auto args_map = dwarf_reader->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); + auto args_map = offset_locator->GetFunctionArgInfo(fn).ValueOr(kEmptyMap); LOG_ASSIGN(symaddrs->Read_c_loc, GetArgOffset(args_map, "c")); LOG_ASSIGN(symaddrs->Read_b_loc, GetArgOffset(args_map, "b")); LOG_ASSIGN(symaddrs->Read_retval0_loc, GetArgOffset(args_map, retval0_arg)); @@ -512,34 +657,81 @@ Status PopulateGoTLSDebugSymbols(ElfReader* elf_reader, DwarfReader* dwarf_reade return Status::OK(); } +StructOffsetMap& GetGoStructOffsets() { return g_struct_offsets; } + +FunctionArgMap& GetGoFunctionArgOffsets() { return g_function_arg_offsets; } + +void ParseGoOffsetgenFile(const std::string& offsetgen_file) { + std::ifstream file(offsetgen_file, std::ios::binary); + std::string warning = "Uprobes will exclusively use DWARF to determine offsets."; + if (!file) { + LOG(WARNING) << absl::Substitute("Unable to open offsetgen file=$0 error=$1. $2", + offsetgen_file, strerror(errno), warning); + return; + } + + file.seekg(0, std::ios::end); + size_t f_size = file.tellg(); + file.seekg(0); + + std::vector buffer; + buffer.resize(f_size); + + if (!file.read(buffer.data(), f_size)) { + LOG(WARNING) << absl::Substitute("Unable to read offsetgen file=$0 error=$1. $2", + offsetgen_file, strerror(errno), warning); + return; + } + + rapidjson::MemoryStream ms(buffer.data(), f_size); + + rapidjson::Document doc; + rapidjson::ParseResult parse_res = doc.ParseStream(ms); + if (!parse_res) { + LOG(ERROR) << absl::Substitute("JSON parse error at offset=$0: $1 ", parse_res.Offset(), + rapidjson::GetParseError_En(parse_res.Code())); + return; + } + + // There are two top-level objects in the JSON file: + if (doc.HasMember("structs") && doc["structs"].IsObject()) { + ParseGoStructsObject(doc["structs"]); + } + if (doc.HasMember("funcs") && doc["funcs"].IsObject()) { + ParseGoFuncsObject(doc["funcs"]); + } +} + StatusOr GoCommonSymAddrs(ElfReader* elf_reader, - DwarfReader* dwarf_reader) { + GoOffsetLocator* offset_locator) { struct go_common_symaddrs_t symaddrs; PX_ASSIGN_OR_RETURN(std::string vendor_prefix, InferHTTP2SymAddrVendorPrefix(elf_reader)); + offset_locator->set_vendor_prefix(vendor_prefix); PX_RETURN_IF_ERROR(PopulateCommonTypeAddrs(elf_reader, vendor_prefix, &symaddrs)); - PX_RETURN_IF_ERROR(PopulateCommonDebugSymbols(dwarf_reader, vendor_prefix, &symaddrs)); + PX_RETURN_IF_ERROR(PopulateCommonDebugSymbols(offset_locator, vendor_prefix, &symaddrs)); return symaddrs; } StatusOr GoHTTP2SymAddrs(ElfReader* elf_reader, - DwarfReader* dwarf_reader) { + GoOffsetLocator* offset_locator) { struct go_http2_symaddrs_t symaddrs; PX_ASSIGN_OR_RETURN(std::string vendor_prefix, InferHTTP2SymAddrVendorPrefix(elf_reader)); + offset_locator->set_vendor_prefix(vendor_prefix); PX_RETURN_IF_ERROR(PopulateHTTP2TypeAddrs(elf_reader, vendor_prefix, &symaddrs)); - PX_RETURN_IF_ERROR(PopulateHTTP2DebugSymbols(dwarf_reader, vendor_prefix, &symaddrs)); + PX_RETURN_IF_ERROR(PopulateHTTP2DebugSymbols(offset_locator, vendor_prefix, &symaddrs)); return symaddrs; } -StatusOr GoTLSSymAddrs(ElfReader* elf_reader, DwarfReader* dwarf_reader) { +StatusOr GoTLSSymAddrs(GoOffsetLocator* offset_locator) { struct go_tls_symaddrs_t symaddrs; - PX_RETURN_IF_ERROR(PopulateGoTLSDebugSymbols(elf_reader, dwarf_reader, &symaddrs)); + PX_RETURN_IF_ERROR(PopulateGoTLSDebugSymbols(offset_locator, &symaddrs)); return symaddrs; } diff --git a/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.h b/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.h index 3940078077c..25abd3a50cf 100644 --- a/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.h +++ b/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs.h @@ -18,11 +18,17 @@ #pragma once +#include +#include +#include +#include #include +#include #include "src/common/base/base.h" #include "src/stirling/obj_tools/dwarf_reader.h" #include "src/stirling/obj_tools/elf_reader.h" +#include "src/stirling/obj_tools/go_syms.h" #include "src/stirling/obj_tools/raw_fptr_manager.h" #include "src/stirling/source_connectors/socket_tracer/bcc_bpf_intf/common.h" #include "src/stirling/source_connectors/socket_tracer/bcc_bpf_intf/symaddrs.h" @@ -30,32 +36,165 @@ DECLARE_bool(openssl_force_raw_fptrs); DECLARE_bool(openssl_raw_fptrs_enabled); +DECLARE_bool(disable_dwarf_parsing); namespace px { namespace stirling { constexpr std::string_view kLibNettyTcnativePrefix = "libnetty_tcnative_linux_x86"; +constexpr std::string_view kGoStdlibPackageName = "std"; + +using StructVersionMap = std::map>; +using StructOffsetMap = std::map>; +using FuncVersionMap = + std::map>>; +using FunctionArgMap = std::map>; + +class GoOffsetLocator { + public: + GoOffsetLocator(obj_tools::DwarfReader* dwarf_reader, const StructOffsetMap& struct_offsets, + const FunctionArgMap& function_args, const obj_tools::BuildInfo& build_info, + const std::string& go_version) + : dwarf_reader_(dwarf_reader), + struct_offsets_(struct_offsets), + function_args_(function_args), + go_version_(go_version) { + PopulateModuleVersions(build_info); + } + + StatusOr> GetFunctionArgInfo( + std::string_view function_symbol_name) { + if (dwarf_reader_ != nullptr && !FLAGS_disable_dwarf_parsing) { + return dwarf_reader_->GetFunctionArgInfo(function_symbol_name); + } + auto has_vendor_prefix = absl::StartsWith(function_symbol_name, vendor_prefix_); + return GetFunctionArgInfoFromOffsets(function_symbol_name.substr( + has_vendor_prefix ? vendor_prefix_.size() : 0, + has_vendor_prefix ? function_symbol_name.size() - vendor_prefix_.size() + : function_symbol_name.size())); + } + + StatusOr GetArgumentLocation(std::string_view /*function_symbol_name*/, + std::string_view /*arg_name*/) { + return error::Internal( + "GetArgumentLocation is not implemented for GoOffsetLocator. Use GetFunctionArgInfo " + "instead."); + } + + StatusOr GetStructMemberOffset(std::string_view struct_name, + std::string_view member_name) { + if (dwarf_reader_ != nullptr && !FLAGS_disable_dwarf_parsing) { + return dwarf_reader_->GetStructMemberOffset(struct_name, member_name); + } + auto has_vendor_prefix = absl::StartsWith(struct_name, vendor_prefix_); + return GetStructMemberOffsetFromOffsets( + struct_name.substr( + has_vendor_prefix ? vendor_prefix_.size() : 0, + has_vendor_prefix ? struct_name.size() - vendor_prefix_.size() : struct_name.size()), + member_name); + } + + std::string go_version() const { return go_version_; } + + void set_vendor_prefix(std::string vendor_prefix) { vendor_prefix_ = vendor_prefix; } + + private: + StatusOr> GetFunctionArgInfoFromOffsets( + std::string_view function_symbol_name) { + auto fn_map_pair = function_args_.find(std::string(function_symbol_name)); + if (fn_map_pair == function_args_.end()) { + return error::Internal("Unable to find function location for $0", function_symbol_name); + } + auto& [pkg_name, fn_map] = fn_map_pair->second; + std::string version_key = pkg_version_map_[std::string(pkg_name)]; + std::map result; + + for (const auto& [arg_name, version_info_map] : fn_map) { + auto version_map = version_info_map.find(version_key); + if (version_map == version_info_map.end()) { + return error::Internal("Unable to find function location for arg=$0 version=$1", arg_name, + version_key); + } + auto var_loc_ptr = version_map->second.get(); + if (var_loc_ptr == nullptr) { + return error::Internal("Function location for arg=$0 version=$1 is missing", arg_name, + version_key); + } + result.insert({arg_name, obj_tools::ArgInfo{obj_tools::TypeInfo{}, *var_loc_ptr}}); + } + return result; + } + + StatusOr GetStructMemberOffsetFromOffsets(std::string_view struct_name, + std::string_view member_name) { + auto struct_map_pair = struct_offsets_.find(std::string(struct_name)); + if (struct_map_pair == struct_offsets_.end()) { + return error::Internal("Unable to find offsets for struct=$0", struct_name); + } + auto& [pkg_name, struct_map] = struct_map_pair->second; + auto member_map = struct_map.find(std::string(member_name)); + if (member_map == struct_map.end()) { + return error::Internal("Unable to find offsets for struct member=$0.$1", struct_name, + member_name); + } + + std::string version_key = pkg_version_map_[std::string(pkg_name)]; + auto version_map = member_map->second.find(version_key); + if (version_map == member_map->second.end()) { + return error::Internal("Unable to find offsets for struct member=$0.$1 for version $2", + struct_name, member_name, version_key); + } + return version_map->second; + } + + void PopulateModuleVersions(const obj_tools::BuildInfo& build_info) { + for (const auto& dep : build_info.deps) { + // Find the related dependencies and strip the "v" prefix + if (dep.path == "golang.org/x/net" || dep.path == "google.golang.org/grpc") { + VLOG(1) << absl::Substitute("Found dependency: $0, version: $1", dep.path, dep.version); + pkg_version_map_[dep.path] = dep.version.substr(1); + } + } + pkg_version_map_["std"] = go_version_; + } + + obj_tools::DwarfReader* dwarf_reader_; + + const StructOffsetMap& struct_offsets_; + const FunctionArgMap& function_args_; + + const std::string& go_version_; + + std::map pkg_version_map_; + + std::string vendor_prefix_; +}; + +StructOffsetMap& GetGoStructOffsets(); + +FunctionArgMap& GetGoFunctionArgOffsets(); + +void ParseGoOffsetgenFile(const std::string& offsetgen_file); /** * Uses ELF and DWARF information to return the locations of all relevant symbols for general Go * uprobe deployment. */ StatusOr GoCommonSymAddrs(obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader); + GoOffsetLocator* offset_locator); /** * Uses ELF and DWARF information to return the locations of all relevant symbols for Go HTTP2 * uprobe deployment. */ StatusOr GoHTTP2SymAddrs(obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader); + GoOffsetLocator* offset_locator); /** * Uses ELF and DWARF information to return the locations of all relevant symbols for Go TLS * uprobe deployment. */ -StatusOr GoTLSSymAddrs(obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader); +StatusOr GoTLSSymAddrs(GoOffsetLocator* offset_locator); /** * Detects the version of OpenSSL to return the locations of all relevant symbols for OpenSSL uprobe @@ -73,8 +212,7 @@ StatusOr OpenSSLSymAddrs(obj_tools::RawFptrManager* f StatusOr NodeTLSWrapSymAddrs(const std::filesystem::path& node_exe, const SemVer& ver); -px::Status PopulateGoTLSDebugSymbols(obj_tools::ElfReader* elf_reader, - obj_tools::DwarfReader* dwarf_reader, +px::Status PopulateGoTLSDebugSymbols(GoOffsetLocator* offset_locator, struct go_tls_symaddrs_t* symaddrs); } // namespace stirling diff --git a/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs_test.cc b/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs_test.cc index 12f7688c8c9..3a5ceffb1b2 100644 --- a/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs_test.cc +++ b/src/stirling/source_connectors/socket_tracer/uprobe_symaddrs_test.cc @@ -40,6 +40,8 @@ class UprobeSymaddrsTest : public ::testing::Test { void SetUp() { std::filesystem::path p = px::testing::BazelRunfilePath(kGoGRPCServer); ASSERT_OK_AND_ASSIGN(dwarf_reader_, DwarfReader::CreateIndexingAll(p)); + offset_locator_ = std::make_unique(GoOffsetLocator( + dwarf_reader_.get(), struct_offsets_, function_args_, build_info_, "1.19.0")); ASSERT_OK_AND_ASSIGN(elf_reader_, ElfReader::Create(p)); } @@ -47,12 +49,16 @@ class UprobeSymaddrsTest : public ::testing::Test { "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/golang_1_19_grpc_tls_server_binary"; std::unique_ptr dwarf_reader_; + std::unique_ptr offset_locator_; + StructOffsetMap struct_offsets_; + FunctionArgMap function_args_; + obj_tools::BuildInfo build_info_; std::unique_ptr elf_reader_; }; TEST_F(UprobeSymaddrsTest, GoCommonSymAddrs) { ASSERT_OK_AND_ASSIGN(struct go_common_symaddrs_t symaddrs, - GoCommonSymAddrs(elf_reader_.get(), dwarf_reader_.get())); + GoCommonSymAddrs(elf_reader_.get(), offset_locator_.get())); // Check a few interface types. EXPECT_NE(symaddrs.tls_Conn, -1); @@ -68,7 +74,7 @@ TEST_F(UprobeSymaddrsTest, GoCommonSymAddrs) { TEST_F(UprobeSymaddrsTest, GoHTTP2SymAddrs) { ASSERT_OK_AND_ASSIGN(struct go_http2_symaddrs_t symaddrs, - GoHTTP2SymAddrs(elf_reader_.get(), dwarf_reader_.get())); + GoHTTP2SymAddrs(elf_reader_.get(), offset_locator_.get())); // Check a few interface types. EXPECT_NE(symaddrs.transport_bufWriter, -1); @@ -84,8 +90,7 @@ TEST_F(UprobeSymaddrsTest, GoHTTP2SymAddrs) { } TEST_F(UprobeSymaddrsTest, GoTLSSymAddrs) { - ASSERT_OK_AND_ASSIGN(struct go_tls_symaddrs_t symaddrs, - GoTLSSymAddrs(elf_reader_.get(), dwarf_reader_.get())); + ASSERT_OK_AND_ASSIGN(struct go_tls_symaddrs_t symaddrs, GoTLSSymAddrs(offset_locator_.get())); // Check some member offsets. // The values may change when golang version is updated. @@ -110,5 +115,181 @@ TEST(UprobeSymaddrsNodeTest, TLSWrapSymAddrsFromDwarfInfo) { EXPECT_EQ(symaddrs.uv__io_s_fd_offset, 0x04); } +StructOffsetMap empty_struct_map; +FunctionArgMap empty_fn_arg_map; +obj_tools::BuildInfo empty_build_info; + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFMissingStruct) { + auto offset_locator = + GoOffsetLocator(nullptr, empty_struct_map, empty_fn_arg_map, empty_build_info, ""); + auto status = offset_locator.GetStructMemberOffset("runtime.g", "goid"); + EXPECT_FALSE(status.ok()); +} + +// NOLINTNEXTLINE: runtime/string +std::string go_version = "1.19.0"; +// NOLINTNEXTLINE: runtime/string +std::string golang_x_net_version = "v1.0.0"; + +auto struct_map = StructOffsetMap{ + { + "runtime.g", + {"std", {{"goid", {{go_version, 152}}}}}, + }, + { + "golang.org/x/net/http2.DataFrame", + {"golang.org/x/net", {{"data", {{golang_x_net_version.substr(1), 16}}}}}, + }, +}; + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFMissingMember) { + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, empty_fn_arg_map, empty_build_info, go_version); + EXPECT_FALSE(offset_locator.GetStructMemberOffset("runtime.g", "missing_member").ok()); +} + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFMissingVersion) { + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, empty_fn_arg_map, empty_build_info, "1.18.0"); + EXPECT_FALSE(offset_locator.GetStructMemberOffset("runtime.g", "goid").ok()); +} + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFSuccessfulLookupStdlib) { + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, empty_fn_arg_map, empty_build_info, go_version); + + ASSERT_OK_AND_ASSIGN(uint64_t offset, offset_locator.GetStructMemberOffset("runtime.g", "goid")); + EXPECT_EQ(offset, 152); +} + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFSuccessfulLookupGolangXNet) { + obj_tools::BuildInfo build_info; + build_info.deps.push_back( + obj_tools::Module{"golang.org/x/net", golang_x_net_version, "", nullptr}); + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, empty_fn_arg_map, build_info, go_version); + + ASSERT_OK_AND_ASSIGN(uint64_t offset, offset_locator.GetStructMemberOffset( + "golang.org/x/net/http2.DataFrame", "data")); + EXPECT_EQ(offset, 16); +} + +TEST(GoOffsetLocator, GetFunctionArgInfoNoDWARFMissingFunction) { + auto offset_locator = + GoOffsetLocator(nullptr, empty_struct_map, empty_fn_arg_map, empty_build_info, go_version); + auto status = offset_locator.GetFunctionArgInfo("missing_func"); + EXPECT_FALSE(status.ok()); +} + +FunctionArgMap GetFunctionArgMap() { + auto var_location = obj_tools::VarLocation{obj_tools::LocationType::kRegister, 8}; + FunctionArgMap fn_arg_map; + fn_arg_map["crypto/tls.(*Conn).Read"] = std::make_pair("std", FuncVersionMap{}); + fn_arg_map["crypto/tls.(*Conn).Read"].second["b"][go_version] = + std::make_unique(var_location); + return fn_arg_map; +} + +TEST(GoOffsetLocator, GetFunctionArgInfoNoDWARFMissingVersion) { + FunctionArgMap fn_arg_map = GetFunctionArgMap(); + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, fn_arg_map, empty_build_info, "1.18.0"); + auto status = offset_locator.GetFunctionArgInfo("crypto/tls.(*Conn).Write"); + EXPECT_FALSE(status.ok()); +} + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFUnknownLocation) { + auto var_location = obj_tools::VarLocation{obj_tools::LocationType::kUnknown, -1}; + auto fn_arg_map = GetFunctionArgMap(); + fn_arg_map["crypto/tls.(*Conn).Read"].second["b"][go_version] = + std::make_unique(var_location); + + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, fn_arg_map, empty_build_info, go_version); + + ASSERT_OK_AND_ASSIGN(auto args, offset_locator.GetFunctionArgInfo("crypto/tls.(*Conn).Read")); + EXPECT_NE(args.find("b"), args.end()); + auto& arg_info = args["b"]; + EXPECT_EQ(arg_info.location.loc_type, obj_tools::LocationType::kUnknown); + EXPECT_EQ(arg_info.location.offset, -1); +} + +TEST(GoOffsetLocator, GetStructMemberOffsetNoDWARFNullLocation) { + FunctionArgMap fn_arg_map = GetFunctionArgMap(); + fn_arg_map["crypto/tls.(*Conn).Read"].second["b"][go_version] = nullptr; + + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, fn_arg_map, empty_build_info, go_version); + + auto status = offset_locator.GetFunctionArgInfo("crypto/tls.(*Conn).Read"); + EXPECT_FALSE(status.ok()); +} + +TEST(GoOffsetLocator, GetFunctionArgInfoNoDWARFSuccessfulLookup) { + FunctionArgMap fn_arg_map = GetFunctionArgMap(); + auto offset_locator = + GoOffsetLocator(nullptr, struct_map, fn_arg_map, empty_build_info, go_version); + + ASSERT_OK_AND_ASSIGN(auto args, offset_locator.GetFunctionArgInfo("crypto/tls.(*Conn).Read")); + EXPECT_NE(args.find("b"), args.end()); + auto& arg_info = args["b"]; + EXPECT_EQ(arg_info.location.loc_type, obj_tools::LocationType::kRegister); + EXPECT_EQ(arg_info.location.offset, 8); +} + +static inline constexpr std::string_view kGoOffsetgenFile = + "src/stirling/source_connectors/socket_tracer/testdata/go_offsetgen.json"; + +TEST(ParseGoOffsetgenFileTest, ParseGoStructsObject) { + ParseGoOffsetgenFile(std::string(kGoOffsetgenFile)); + auto& struct_offsets = GetGoStructOffsets(); + EXPECT_GT(struct_offsets.size(), 0); + + // Assert offsets for std package + EXPECT_EQ(struct_offsets["runtime.g"].first, "std"); + EXPECT_EQ(struct_offsets["runtime.g"].second["goid"]["1.19.0"], 152); + EXPECT_EQ(struct_offsets["runtime.g"].second["goid"]["1.24.1"], 160); + + EXPECT_EQ(struct_offsets["runtime.hmap"].first, "std"); + EXPECT_EQ(struct_offsets["runtime.hmap"].second["buckets"]["1.19.0"], 16); + // Check that null offsets are handled correctly. + EXPECT_EQ(struct_offsets["runtime.hmap"].second["buckets"]["1.24.1"], -1); + + // Check non std packages are handled correctly. + EXPECT_EQ(struct_offsets["google.golang.org/grpc/internal/transport.http2Client"].first, + "google.golang.org/grpc"); + EXPECT_EQ(struct_offsets["google.golang.org/grpc/internal/transport.http2Client"] + .second["conn"]["1.0.0"], + -1); + EXPECT_EQ(struct_offsets["google.golang.org/grpc/internal/transport.http2Client"] + .second["conn"]["1.57.2"], + 136); +} + +TEST(ParseGoOffsetgenFileTest, ParseGoFuncsObject) { + ParseGoOffsetgenFile(std::string(kGoOffsetgenFile)); + auto& function_args = GetGoFunctionArgOffsets(); + EXPECT_GT(function_args.size(), 0); + + EXPECT_EQ(function_args["crypto/tls.(*Conn).Read"].first, "std"); + + EXPECT_EQ(function_args["google.golang.org/grpc/internal/transport.(*http2Client).operateHeaders"] + .first, + "google.golang.org/grpc"); + auto null_loc = std::move( + function_args["google.golang.org/grpc/internal/transport.(*http2Client).operateHeaders"] + .second["frame"]["1.0.0"]); + EXPECT_TRUE(null_loc != nullptr); + EXPECT_EQ(null_loc->loc_type, obj_tools::LocationType::kUnknown); + EXPECT_EQ(null_loc->offset, -1); + + auto loc = std::move( + function_args["google.golang.org/grpc/internal/transport.(*http2Client).operateHeaders"] + .second["frame"]["1.40.0"]); + EXPECT_TRUE(loc != nullptr); + EXPECT_EQ(loc->loc_type, obj_tools::LocationType::kRegister); + EXPECT_EQ(loc->offset, 8); +} + } // namespace stirling } // namespace px diff --git a/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/Dockerfile b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/Dockerfile new file mode 100644 index 00000000000..bf485802896 --- /dev/null +++ b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/Dockerfile @@ -0,0 +1,67 @@ +# Copyright 2018- The Pixie Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +FROM alpine:3.20 AS certs + +RUN apk add --no-cache openssl + +WORKDIR /tmp/certs + +# Generate CA key and cert +RUN openssl ecparam -genkey -name secp384r1 -out ca.key && \ + openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 \ + -subj "/C=US/ST=California/L=San Francisco/O=Pixie Labs Inc./CN=Pixie CA" \ + -out ca.crt + +# Generate server key +RUN openssl ecparam -genkey -name secp384r1 -out server.key + +# Generate server CSR +RUN openssl req -new -key server.key \ + -subj "/C=US/ST=California/L=San Francisco/O=Pixie Labs Inc./CN=127.0.0.1" \ + -out server.csr + +# Create server cert config with SAN and extensions +RUN echo "subjectAltName=IP:127.0.0.1" > server.ext && \ + echo "basicConstraints=CA:FALSE" >> server.ext && \ + echo "keyUsage = digitalSignature, keyEncipherment" >> server.ext && \ + echo "extendedKeyUsage = serverAuth" >> server.ext + +# Sign server CSR with CA +RUN openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \ + -out server.crt -days 365 -sha256 -extfile server.ext + + +# Stage 2: Build Go app and include certs +FROM golang:1.23.9 + +WORKDIR /app + +# Copy Go mod and install deps +COPY go.mod go.sum ./ +RUN go mod download + +# Copy source and build +COPY server.go . +RUN go build -o server . + +# Copy certs from previous stage +COPY --from=certs /tmp/certs/ca.crt /etc/ssl/ca.crt +COPY --from=certs /tmp/certs/server.crt /etc/ssl/server.crt +COPY --from=certs /tmp/certs/server.key /etc/ssl/server.key + +ENTRYPOINT ["/app/server"] +CMD ["--server_tls_cert", "/etc/ssl/server.crt", "--server_tls_key", "/etc/ssl/server.key", "--tls_ca_cert", "/etc/ssl/ca.crt"] diff --git a/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.mod b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.mod new file mode 100644 index 00000000000..119201a023f --- /dev/null +++ b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.mod @@ -0,0 +1,40 @@ +module grpc + +go 1.23.0 + +toolchain go1.23.6 + +require ( + github.com/spf13/pflag v1.0.6 + github.com/spf13/viper v1.10.1 +) + +require ( + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/magiconair/properties v1.8.5 // indirect + github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/pelletier/go-toml v1.9.4 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/sagikazarmark/locafero v0.3.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.10.0 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.9.0 // indirect + golang.org/x/net v0.38.0 // indirect + golang.org/x/sys v0.31.0 // indirect + golang.org/x/text v0.23.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect + google.golang.org/grpc v1.43.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect + gopkg.in/ini.v1 v1.66.2 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.sum b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.sum new file mode 100644 index 00000000000..2a7a940866f --- /dev/null +++ b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/go.sum @@ -0,0 +1,649 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= +github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/locafero v0.3.0 h1:zT7VEGWC2DTflmccN/5T1etyKvxSxpHsjb9cJvm4SvQ= +github.com/sagikazarmark/locafero v0.3.0/go.mod h1:w+v7UsPNFwzF1cHuOajOOzoq4U7v/ig1mpRjqV+Bu1U= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= +github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.10.1 h1:nuJZuYpG7gTj/XqiUwg8bA0cp1+M2mC3J4g5luUYBKk= +github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU= +github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= +github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= +go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c h1:wtujag7C+4D6KMoulW9YauvK2lgdvCMS260jsqqBXr0= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.43.0 h1:Eeu7bZtDZ2DpRCsLhUlcrLnvYaMK1Gz86a+hMVvELmM= +google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.71.3 h1:iEhneYTxOruJyZAxdAv8Y0iRZvsc5M6KoW7UA0/7jn0= +google.golang.org/grpc v1.71.3/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= +google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server new file mode 100755 index 00000000000..33c9710a7ac Binary files /dev/null and b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server differ diff --git a/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server.go b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server.go new file mode 100644 index 00000000000..58e3970850a --- /dev/null +++ b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/server.go @@ -0,0 +1,772 @@ +package main + +import ( + context "context" + "crypto/tls" + "crypto/x509" + fmt "fmt" + io "io" + math "math" + math_bits "math/bits" + "net" + "net/http" + "os" + "os/signal" + reflect "reflect" + strings "strings" + "syscall" + "time" + + proto "github.com/gogo/protobuf/proto" + log "github.com/sirupsen/logrus" + "github.com/spf13/pflag" + "github.com/spf13/viper" + "golang.org/x/net/http2" + "golang.org/x/net/http2/h2c" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type HelloRequest struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (m *HelloRequest) Reset() { *m = HelloRequest{} } +func (*HelloRequest) ProtoMessage() {} +func (*HelloRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e8b38e3d20af2fc9, []int{0} +} +func (m *HelloRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_HelloRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *HelloRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_HelloRequest.Merge(m, src) +} +func (m *HelloRequest) XXX_Size() int { + return m.Size() +} +func (m *HelloRequest) XXX_DiscardUnknown() { + xxx_messageInfo_HelloRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_HelloRequest proto.InternalMessageInfo + +func (m *HelloRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type HelloReply struct { + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (m *HelloReply) Reset() { *m = HelloReply{} } +func (*HelloReply) ProtoMessage() {} +func (*HelloReply) Descriptor() ([]byte, []int) { + return fileDescriptor_e8b38e3d20af2fc9, []int{1} +} +func (m *HelloReply) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HelloReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_HelloReply.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *HelloReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_HelloReply.Merge(m, src) +} +func (m *HelloReply) XXX_Size() int { + return m.Size() +} +func (m *HelloReply) XXX_DiscardUnknown() { + xxx_messageInfo_HelloReply.DiscardUnknown(m) +} + +var xxx_messageInfo_HelloReply proto.InternalMessageInfo + +func (m *HelloReply) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +func init() { + proto.RegisterType((*HelloRequest)(nil), "px.go_grpc_tls_pl.server.HelloRequest") + proto.RegisterType((*HelloReply)(nil), "px.go_grpc_tls_pl.server.HelloReply") +} + +func init() { + proto.RegisterFile("src/stirling/testing/demo_apps/go_grpc_tls_pl/server/greetpb/service.proto", fileDescriptor_e8b38e3d20af2fc9) +} + +var fileDescriptor_e8b38e3d20af2fc9 = []byte{ + // 258 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0xb1, 0x4a, 0x04, 0x31, + 0x10, 0x86, 0x13, 0x10, 0x4f, 0x83, 0x55, 0xaa, 0xc5, 0x62, 0x90, 0x45, 0x0e, 0xab, 0x04, 0xb4, + 0xb6, 0xb1, 0x51, 0x2c, 0xcf, 0x46, 0x6c, 0x96, 0xbd, 0x75, 0x08, 0x0b, 0xd9, 0x4b, 0xcc, 0x44, + 0x71, 0x3b, 0x1f, 0xc1, 0xc7, 0xf0, 0x51, 0x2c, 0xb7, 0xbc, 0xd2, 0xcd, 0x36, 0x96, 0xf7, 0x08, + 0x72, 0xeb, 0x1d, 0x68, 0x21, 0x56, 0x33, 0x3f, 0x7c, 0x3f, 0x1f, 0xfc, 0xe2, 0x9a, 0x42, 0xa5, + 0x29, 0xd6, 0xc1, 0xd6, 0x0b, 0xa3, 0x23, 0x52, 0x5c, 0xdf, 0x7b, 0x6c, 0x5c, 0x51, 0x7a, 0x4f, + 0xda, 0xb8, 0xc2, 0x04, 0x5f, 0x15, 0xd1, 0x52, 0xe1, 0xad, 0x26, 0x0c, 0x4f, 0x18, 0xb4, 0x09, + 0x88, 0xd1, 0xcf, 0xc7, 0x58, 0x57, 0xa8, 0x7c, 0x70, 0xd1, 0xc9, 0xcc, 0x3f, 0xab, 0xdf, 0xbc, + 0xfa, 0xe6, 0xf3, 0x5c, 0x1c, 0x5c, 0xa1, 0xb5, 0x6e, 0x86, 0x0f, 0x8f, 0x48, 0x51, 0x4a, 0xb1, + 0xb3, 0x28, 0x1b, 0xcc, 0xf8, 0x11, 0x3f, 0xd9, 0x9f, 0x8d, 0x7f, 0x3e, 0x15, 0x62, 0xc3, 0x78, + 0xdb, 0xca, 0x4c, 0x4c, 0x1a, 0x24, 0x2a, 0xcd, 0x16, 0xda, 0xc6, 0xd3, 0x4a, 0x4c, 0x2e, 0xd7, + 0x7a, 0x0c, 0xf2, 0x56, 0xec, 0xdd, 0x94, 0xed, 0xd8, 0x92, 0x53, 0xf5, 0x97, 0x5d, 0xfd, 0x54, + 0x1f, 0x1e, 0xff, 0xcb, 0x79, 0xdb, 0x5e, 0x9c, 0x77, 0x3d, 0xb0, 0x65, 0x0f, 0x6c, 0xd5, 0x03, + 0x7f, 0x49, 0xc0, 0xdf, 0x12, 0xf0, 0xf7, 0x04, 0xbc, 0x4b, 0xc0, 0x3f, 0x12, 0xf0, 0xcf, 0x04, + 0x6c, 0x95, 0x80, 0xbf, 0x0e, 0xc0, 0xba, 0x01, 0xd8, 0x72, 0x00, 0x76, 0x37, 0xd9, 0xec, 0x32, + 0xdf, 0x1d, 0x07, 0x39, 0xfb, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x92, 0x50, 0x78, 0x64, 0x5e, 0x01, + 0x00, 0x00, +} + +func (this *HelloRequest) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*HelloRequest) + if !ok { + that2, ok := that.(HelloRequest) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + return true +} +func (this *HelloReply) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*HelloReply) + if !ok { + that2, ok := that.(HelloReply) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Message != that1.Message { + return false + } + return true +} +func (this *HelloRequest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&HelloRequest{") + s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *HelloReply) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&HelloReply{") + s = append(s, "Message: "+fmt.Sprintf("%#v", this.Message)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringService(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// GreeterClient is the client API for Greeter service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GreeterClient interface { + SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloReply, error) +} + +type greeterClient struct { + cc *grpc.ClientConn +} + +func NewGreeterClient(cc *grpc.ClientConn) GreeterClient { + return &greeterClient{cc} +} + +func (c *greeterClient) SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloReply, error) { + out := new(HelloReply) + err := c.cc.Invoke(ctx, "/px.go_grpc_tls_pl.server.Greeter/SayHello", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GreeterServer is the server API for Greeter service. +type GreeterServer interface { + SayHello(context.Context, *HelloRequest) (*HelloReply, error) +} + +// UnimplementedGreeterServer can be embedded to have forward compatible implementations. +type UnimplementedGreeterServer struct { +} + +func (*UnimplementedGreeterServer) SayHello(ctx context.Context, req *HelloRequest) (*HelloReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method SayHello not implemented") +} + +func RegisterGreeterServer(s *grpc.Server, srv GreeterServer) { + s.RegisterService(&_Greeter_serviceDesc, srv) +} + +func _Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GreeterServer).SayHello(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/px.go_grpc_tls_pl.server.Greeter/SayHello", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GreeterServer).SayHello(ctx, req.(*HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Greeter_serviceDesc = grpc.ServiceDesc{ + ServiceName: "px.go_grpc_tls_pl.server.Greeter", + HandlerType: (*GreeterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SayHello", + Handler: _Greeter_SayHello_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "src/stirling/testing/demo_apps/go_grpc_tls_pl/server/greetpb/service.proto", +} + +func (m *HelloRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HelloRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HelloRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintService(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *HelloReply) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HelloReply) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HelloReply) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintService(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintService(dAtA []byte, offset int, v uint64) int { + offset -= sovService(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *HelloRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovService(uint64(l)) + } + return n +} + +func (m *HelloReply) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Message) + if l > 0 { + n += 1 + l + sovService(uint64(l)) + } + return n +} + +func sovService(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozService(x uint64) (n int) { + return sovService(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *HelloRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HelloRequest{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} +func (this *HelloReply) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HelloReply{`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func valueToStringService(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *HelloRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelloRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HelloRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthService + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthService + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipService(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthService + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HelloReply) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelloReply: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HelloReply: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthService + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthService + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipService(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthService + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipService(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowService + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowService + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowService + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthService + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupService + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthService + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthService = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowService = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupService = fmt.Errorf("proto: unexpected end of group") +) + +const ( + port = ":50400" +) + +// Server is used to implement the Greeter. +type Server struct{} + +// SayHello responds to a the basic HelloRequest. +func (s *Server) SayHello(ctx context.Context, in *HelloRequest) (*HelloReply, error) { + return &HelloReply{Message: "Hello " + in.Name}, nil +} + +func main() { + pflag.String("server_tls_cert", "", "Path to server.crt") + pflag.String("server_tls_key", "", "Path to server.key") + pflag.String("tls_ca_cert", "", "Path to ca.crt") + pflag.Parse() + viper.BindPFlags(pflag.CommandLine) + + pair, err := tls.LoadX509KeyPair(viper.GetString("server_tls_cert"), viper.GetString("server_tls_key")) + if err != nil { + log.WithError(err).Fatal("failed to load keys") + } + + certPool := x509.NewCertPool() + ca, err := os.ReadFile(viper.GetString("tls_ca_cert")) + if err != nil { + log.WithError(err).Fatal("failed to read CA cert") + } + + if ok := certPool.AppendCertsFromPEM(ca); !ok { + log.Fatal("failed to append CA cert") + } + + config := &tls.Config{ + Certificates: []tls.Certificate{pair}, + NextProtos: []string{"h2"}, + ClientCAs: certPool, + } + + lis, err := net.Listen("tcp", port) + if err != nil { + log.Fatalf("failed to listen: %v", err) + } + + grpcServer := grpc.NewServer() + RegisterGreeterServer(grpcServer, &Server{}) + + muxHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + grpcServer.ServeHTTP(w, r) + }) + + httpServer := &http.Server{ + Addr: port, + Handler: h2c.NewHandler(muxHandler, &http2.Server{}), + TLSConfig: config, + ReadTimeout: 1800 * time.Second, + WriteTimeout: 1800 * time.Second, + MaxHeaderBytes: 1 << 20, + } + + lis = tls.NewListener(lis, httpServer.TLSConfig) + go httpServer.Serve(lis) //nolint:errcheck // This returns an error on graceful shutdown too. + + // The test relies on the following to check for server readiness + log.Print("Starting HTTP/2 server") + + ch := make(chan os.Signal, 1) + signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) + <-ch + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + err = httpServer.Shutdown(ctx) + if err != nil { + log.WithError(err).Error("http2 server Shutdown() failed") + } +} diff --git a/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/update_ghcr.sh b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/update_ghcr.sh new file mode 100755 index 00000000000..87c809b5464 --- /dev/null +++ b/src/stirling/testing/demo_apps/go_grpc_tls_pl/server/mod_info/update_ghcr.sh @@ -0,0 +1,34 @@ +#!/bin/bash -e + +# Copyright 2018- The Pixie Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +# This version is identical to the Python gRPC module version for easier recognition. +# This is because the produced docker image is mainly used for testing tracing Python gRPC app, +# which depends on the version of the module. +version=1.0 +# tag="ghcr.io/pixie-io/go_1_23_grpc_server_with_mod_info:$version" +tag="docker.io/ddelnano/go_1_23_grpc_server_with_mod_info:$version" + +docker build . -t $tag +docker push $tag + + +sha=$(docker inspect --format='{{index .RepoDigests 0}}' $tag | cut -f2 -d'@') + +echo "" +echo "Image pushed!" +echo "IMPORTANT: Now update //bazel/container_images.bzl with the following digest: $sha" diff --git a/src/stirling/testing/demo_apps/go_https/server/BUILD.bazel b/src/stirling/testing/demo_apps/go_https/server/BUILD.bazel index ef80da551b8..4489b8cda2e 100644 --- a/src/stirling/testing/demo_apps/go_https/server/BUILD.bazel +++ b/src/stirling/testing/demo_apps/go_https/server/BUILD.bazel @@ -27,6 +27,7 @@ go_library( deps = [ "@com_github_spf13_pflag//:pflag", "@com_github_spf13_viper//:viper", + "@org_golang_x_net//http2", ], ) diff --git a/src/stirling/testing/demo_apps/go_https/server/Dockerfile b/src/stirling/testing/demo_apps/go_https/server/Dockerfile new file mode 100644 index 00000000000..9f13ce791c8 --- /dev/null +++ b/src/stirling/testing/demo_apps/go_https/server/Dockerfile @@ -0,0 +1,49 @@ +# Copyright 2018- The Pixie Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +FROM alpine:3.20 AS certs + +RUN apk add --no-cache openssl + +WORKDIR /tmp/certs + +# Generate private key +RUN openssl ecparam -genkey -name secp384r1 -out server.key && \ + openssl req -new -x509 -sha256 \ + -key server.key \ + -subj "/C=US/ST=California/L=San Francisco/O=Pixie Labs Inc./CN=127.0.0.1:50101" \ + -out server.crt \ + -days 365 + +# Stage 2: Build Go app and include certs +FROM golang:1.23.9 + +WORKDIR /app + +# Copy Go mod and install deps +COPY go.mod go.sum ./ +RUN go mod download + +# Copy source and build +COPY https_server.go . +RUN go build -o https_server . + +# Copy certs from previous stage +COPY --from=certs /tmp/certs/server.crt /etc/ssl/server.crt +COPY --from=certs /tmp/certs/server.key /etc/ssl/server.key + +ENTRYPOINT ["/app/https_server"] +CMD ["--cert", "/etc/ssl/server.crt", "--key", "/etc/ssl/server.key"] diff --git a/src/stirling/testing/demo_apps/go_https/server/go.mod b/src/stirling/testing/demo_apps/go_https/server/go.mod new file mode 100644 index 00000000000..dc4a42ca7f9 --- /dev/null +++ b/src/stirling/testing/demo_apps/go_https/server/go.mod @@ -0,0 +1,27 @@ +module http2app + +go 1.23.0 + +toolchain go1.23.6 + +require ( + github.com/spf13/pflag v1.0.5 + github.com/spf13/viper v1.8.1 + golang.org/x/net v0.39.0 +) + +require ( + github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/magiconair/properties v1.8.5 // indirect + github.com/mitchellh/mapstructure v1.4.1 // indirect + github.com/pelletier/go-toml v1.9.3 // indirect + github.com/spf13/afero v1.6.0 // indirect + github.com/spf13/cast v1.3.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.26.0 // indirect + gopkg.in/ini.v1 v1.62.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect +) diff --git a/src/stirling/testing/demo_apps/go_https/server/go.sum b/src/stirling/testing/demo_apps/go_https/server/go.sum new file mode 100644 index 00000000000..fbc46216c22 --- /dev/null +++ b/src/stirling/testing/demo_apps/go_https/server/go.sum @@ -0,0 +1,588 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/src/stirling/testing/demo_apps/go_https/server/https_server.go b/src/stirling/testing/demo_apps/go_https/server/https_server.go index 05f610edb3f..a4646001fcd 100644 --- a/src/stirling/testing/demo_apps/go_https/server/https_server.go +++ b/src/stirling/testing/demo_apps/go_https/server/https_server.go @@ -26,6 +26,7 @@ import ( "github.com/spf13/pflag" "github.com/spf13/viper" + "golang.org/x/net/http2" ) const ( @@ -33,6 +34,10 @@ const ( httpsPort = 50101 ) +// Import the http2 package to ensure golang.org/x/net exists within the binary's +// buildinfo. +var s http2.Server + func basicHandler(w http.ResponseWriter, r *http.Request) { w.Header().Add("Content-Type", "application/json") _, err := io.WriteString(w, `{"status":"ok"}`) diff --git a/src/stirling/testing/demo_apps/go_https/server/update_ghcr.sh b/src/stirling/testing/demo_apps/go_https/server/update_ghcr.sh new file mode 100755 index 00000000000..5e7405f0875 --- /dev/null +++ b/src/stirling/testing/demo_apps/go_https/server/update_ghcr.sh @@ -0,0 +1,34 @@ +#!/bin/bash -e + +# Copyright 2018- The Pixie Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +# This version is identical to the Python gRPC module version for easier recognition. +# This is because the produced docker image is mainly used for testing tracing Python gRPC app, +# which depends on the version of the module. +version=1.0 +# tag="ghcr.io/pixie-io/go_https_with_mod_info:$version" +tag="docker.io/ddelnano/go_https_with_mod_info:$version" + +docker build . -t $tag +docker push $tag + + +sha=$(docker inspect --format='{{index .RepoDigests 0}}' $tag | cut -f2 -d'@') + +echo "" +echo "Image pushed!" +echo "IMPORTANT: Now update //bazel/container_images.bzl with the following digest: $sha"