treewide: switch to gomod and bump everything

This switches version resolution from fietsje to gomod and updates
all Go dependencies. It also bumps rules_go (required by gVisor) and
switches the Gazelle naming convention from go_default_xxx to the
standard Bazel convention of the default target having the package
name.

Since Kubernetes dropped upstream Bazel support and doesn't check in
all generated files I manually pregenerated the OpenAPI spec. This
should be fixed, but because of the already-huge scope of this CL
and the rebase complexity this is not in here.

Change-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833
Reviewed-on: https://review.monogon.dev/c/monogon/+/639
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
Reviewed-by: Leopold Schabel <leo@nexantic.com>
diff --git a/.bazelrc b/.bazelrc
index 574ce54..bba4e32 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -3,7 +3,7 @@
 test --jobs 12 --test_output=errors
 
 # Build with SELinux, needed for containerd & kubelet
-build --define gotags=selinux,no_zfs,no_aufs,no_devicemapper
+build --define gotags=selinux,seccomp,no_zfs,no_aufs,no_devicemapper,providerless,dockerless
 
 # Build with C++17.
 build --cxxopt=-std=c++17
diff --git a/BUILD b/BUILD
index 13d6f4d..d9121bb 100644
--- a/BUILD
+++ b/BUILD
@@ -2,8 +2,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_path")
 
 # gazelle:prefix source.monogon.dev
-# gazelle:go_naming_convention go_default_library
-# gazelle:go_naming_convention_external go_default_library
+# gazelle:go_naming_convention import
 gazelle(name = "gazelle")
 
 alias(
diff --git a/WORKSPACE b/WORKSPACE
index 20eba1a..f277ef1 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -30,10 +30,10 @@
 
 http_archive(
     name = "io_bazel_rules_go",
-    sha256 = "2b1641428dff9018f9e85c0384f03ec6c10660d935b750e3fa1492a281a53b0f",
+    sha256 = "f2dcd210c7095febe54b804bb1cd3a58fe8435a909db2ec04e31542631cf715c",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
-        "https://github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.31.0/rules_go-v0.31.0.zip",
+        "https://github.com/bazelbuild/rules_go/releases/download/v0.31.0/rules_go-v0.31.0.zip",
     ],
 )
 
@@ -43,29 +43,31 @@
     patches = [
         "//third_party/gazelle:add-prepatching.patch",
     ],
-    sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
+    sha256 = "5982e5463f171da99e3bdaeff8c0f48283a7a5f396ec5282910b9e8a49c0dd7e",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
-        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.25.0/bazel-gazelle-v0.25.0.tar.gz",
+        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.25.0/bazel-gazelle-v0.25.0.tar.gz",
     ],
 )
 
 load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
-load("@bazel_gazelle//:deps.bzl", "go_repository")
 
-# Here to override the dep in rules_go with one with our patch
-http_archive(
-    name = "com_github_mwitkow_go_proto_validators",
-    patch_args = ["-p1"],
-    patches = ["//third_party/go/patches:go-proto-validators-default-alias.patch"],
-    sha256 = "d8697f05a2f0eaeb65261b480e1e6035301892d9fc07ed945622f41b12a68142",
-    strip_prefix = "go-proto-validators-0.3.2",
+# Temporary Kubernetes patch which is considered too big for the repository.
+# TODO(lorenz): instead of pregenerating this, generate this at build time
+http_file(
+    name = "monogon_k8s_pregenerate_openapi_patch",
+    downloaded_file_path = "file",  # This is used in a workspace rule, path needs to match package
+    sha256 = "7d87d265f3d7127ce5b19f0461f59861c725bcd5675e27bba64f1cf654900443",
     urls = [
-        "https://mirror.bazel.build/github.com/mwitkow/go-proto-validators/archive/v0.3.2.zip",
-        "https://github.com/mwitkow/go-proto-validators/archive/v0.3.2.zip",
+        "https://storage.googleapis.com/monogon-infra-public/monogon-k8s-pregenerate-openapi.patch",
     ],
 )
 
+load("//third_party/go:repositories.bzl", "go_repositories")
+
+# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
+go_repositories()
+
 go_rules_dependencies()
 
 go_register_toolchains(
@@ -73,11 +75,6 @@
     nogo = "@dev_source_monogon//build/analysis:nogo",
 )
 
-# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
-load("//third_party/go:repositories.bzl", "go_repositories")
-
-go_repositories()
-
 load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
 
 # Load Gazelle-generated local dependencies
diff --git a/build/analysis/BUILD.bazel b/build/analysis/BUILD.bazel
index 0cbb906..7f8cf1d 100644
--- a/build/analysis/BUILD.bazel
+++ b/build/analysis/BUILD.bazel
@@ -41,7 +41,7 @@
         # 'standard' 80 characters long, as prose within comment blocks does not
         # soft-reflow well.
         "@com_github_corverroos_commentwrap//:go_default_library",
-        "//build/analysis/noioutil:go_default_library",
-        "//build/analysis/importsort:go_default_library",
+        "//build/analysis/noioutil",
+        "//build/analysis/importsort",
     ],
 )
diff --git a/build/analysis/importsort/BUILD.bazel b/build/analysis/importsort/BUILD.bazel
index 309edfb..06f0030 100644
--- a/build/analysis/importsort/BUILD.bazel
+++ b/build/analysis/importsort/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "importsort",
     srcs = [
         "classify.go",
         "importsort.go",
@@ -9,16 +9,16 @@
     importpath = "source.monogon.dev/build/analysis/importsort",
     visibility = ["//visibility:public"],
     deps = [
-        "//build/analysis/lib:go_default_library",
-        "@org_golang_x_tools//go/analysis:go_default_library",
+        "//build/analysis/lib",
+        "@org_golang_x_tools//go/analysis",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "importsort_test",
     srcs = ["importsort_test.go"],
     data = glob(["testdata/**"]),
-    embed = [":go_default_library"],
+    embed = [":importsort"],
     embedsrcs = [
         "testdata/README.md",
         "testdata/example.com/extlib/extlib.notgo",
@@ -32,7 +32,7 @@
         "testdata/source.monogon.dev/project/b/b.notgo",
     ],
     deps = [
-        "//build/toolbase/gotoolchain:go_default_library",
-        "@org_golang_x_tools//go/analysis/analysistest:go_default_library",
+        "//build/toolbase/gotoolchain",
+        "@org_golang_x_tools//go/analysis/analysistest",
     ],
 )
diff --git a/build/analysis/lib/BUILD.bazel b/build/analysis/lib/BUILD.bazel
index 42666bf..f98d8f2 100644
--- a/build/analysis/lib/BUILD.bazel
+++ b/build/analysis/lib/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "lib",
     srcs = [
         "generated.go",
         "stdlib_packages.go",
diff --git a/build/analysis/lib/genstd/BUILD.bazel b/build/analysis/lib/genstd/BUILD.bazel
index 044eb95..6e779a3 100644
--- a/build/analysis/lib/genstd/BUILD.bazel
+++ b/build/analysis/lib/genstd/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "genstd_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/build/analysis/lib/genstd",
     visibility = ["//visibility:private"],
     deps = [
-        "//build/toolbase/gotoolchain:go_default_library",
-        "@org_golang_x_tools//go/packages:go_default_library",
+        "//build/toolbase/gotoolchain",
+        "@org_golang_x_tools//go/packages",
     ],
 )
 
 go_binary(
     name = "genstd",
-    embed = [":go_default_library"],
+    embed = [":genstd_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/build/analysis/nogo_config.json b/build/analysis/nogo_config.json
index 6da3a03..739d86e 100644
--- a/build/analysis/nogo_config.json
+++ b/build/analysis/nogo_config.json
@@ -6,39 +6,17 @@
   },
   "copylocks": {
     "exclude_files": {
-      "external/io_k8s_kubernetes/": "third_party",
-      "external/com_github_google_gvisor/": "third_party",
-      "external/io_k8s_sigs_structured_merge_diff/": "third_party",
-      "external/io_k8s_component_base/": "third_party",
-      "external/io_k8s_apiserver/": "third_party",
-      "external/org_golang_google_protobuf/": "third_party",
-      "external/com_github_armon_go_metrics/": "third_party",
-      "external/com_github_elazarl_goproxy/": "third_party",
-      "external/com_github_googleapis_gnostic/": "third_party",
-      "external/com_github_pseudomuto_protoc_gen_doc": "third_party"
+      "external/": "third_party"
     }
   },
   "lostcancel": {
     "exclude_files": {
-      "external/com_github_golang_protobuf/": "third_party",
-      "external/com_github_grpc_ecosystem_grpc_gateway/runtime/": "third_party",
-      "external/io_k8s_kubernetes/": "third_party",
-      "external/com_github_denisenkom_go_mssqldb/": "third_party"
+      "external/": "third_party"
     }
   },
   "unreachable": {
     "exclude_files": {
-      "external/io_k8s_kubernetes/": "third_party",
-      "external/bazel_gazelle/pathtools": "third_party",
-      "external/com_github_magiconair_properties": "third_party",
-      "external/com_github_ghodss_yaml": "third_party",
-      "external/io_k8s_kubectl": "third_party",
-      "external/org_golang_google_protobuf/": "third_party",
-      "external/com_github_shirou_gopsutil/": "unreachable",
-      "external/io_k8s_apimachinery/": "third_party",
-      "external/com_github_hpcloud_tail": "third_party",
-      "external/com_github_flynn_go_shlex": "third_party",
-      "external/com_github_masterminds_sprig": "third_party"
+      "external/": "third_party"
     }
   },
   "assign": {
@@ -50,12 +28,13 @@
     "exclude_files": {
       "external/com_github_modern_go_reflect2/": "third_party",
       "sqlite3.*go": "third_party",
-      "external/com_github_google_gvisor/": "third_party",
+      "external/dev_gvisor_gvisor/": "third_party",
       "external/io_k8s_sigs_structured_merge_diff/": "third_party",
       "external/com_github_go_delve_delve/": "third_party",
       "external/com_github_mailru_easyjson/jlexer/": "third_party",
       "external/com_github_cilium_ebpf/": "third_party",
-      "external/org_golang_x_sys": "third_party"
+      "external/org_golang_x_sys": "third_party",
+      "external/net_starlark_go": "third_party"
     }
   },
   "unusedresult": {
@@ -73,10 +52,7 @@
   },
   "printf": {
     "exclude_files": {
-      "external/io_k8s_kubernetes/": "third_party",
-      "external/runc/vendor/github.com/vishvananda/netlink": "third_party",
-      "external/com_github_google_gvisor/": "third_party",
-      "external/com_github_sbezverk_nfproxy/": "third_party"
+      "external/": "third_party"
     }
   },
   "commentwrap": {
diff --git a/build/analysis/noioutil/BUILD.bazel b/build/analysis/noioutil/BUILD.bazel
index e627a0c..496820a 100644
--- a/build/analysis/noioutil/BUILD.bazel
+++ b/build/analysis/noioutil/BUILD.bazel
@@ -1,12 +1,12 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "noioutil",
     srcs = ["noioutil.go"],
     importpath = "source.monogon.dev/build/analysis/noioutil",
     visibility = ["//visibility:public"],
     deps = [
-        "//build/analysis/lib:go_default_library",
-        "@org_golang_x_tools//go/analysis:go_default_library",
+        "//build/analysis/lib",
+        "@org_golang_x_tools//go/analysis",
     ],
 )
diff --git a/build/analysis/tools.go b/build/analysis/tools.go
new file mode 100644
index 0000000..e6403d4
--- /dev/null
+++ b/build/analysis/tools.go
@@ -0,0 +1,8 @@
+//go:build tools
+// +build tools
+
+package analysis
+
+import (
+	_ "github.com/corverroos/commentwrap/cmd/commentwrap"
+)
diff --git a/build/bazel_cc_fix/BUILD.bazel b/build/bazel_cc_fix/BUILD.bazel
index 28b6438..3b2f197 100644
--- a/build/bazel_cc_fix/BUILD.bazel
+++ b/build/bazel_cc_fix/BUILD.bazel
@@ -1,19 +1,19 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "bazel_cc_fix_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/build/bazel_cc_fix",
     visibility = ["//visibility:private"],
     deps = [
-        "//build/bazel_cc_fix/ccfixspec:go_default_library",
+        "//build/bazel_cc_fix/ccfixspec",
         "@com_github_golang_protobuf//proto:go_default_library",
-        "@com_github_mattn_go_shellwords//:go_default_library",
+        "@com_github_mattn_go_shellwords//:go-shellwords",
     ],
 )
 
 go_binary(
     name = "bazel_cc_fix",
-    embed = [":go_default_library"],
+    embed = [":bazel_cc_fix_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/build/bazel_cc_fix/ccfixspec/BUILD.bazel b/build/bazel_cc_fix/ccfixspec/BUILD.bazel
index f477071..b24f3f3 100644
--- a/build/bazel_cc_fix/ccfixspec/BUILD.bazel
+++ b/build/bazel_cc_fix/ccfixspec/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "ccfixspec",
     embed = [":build_bazel_cc_fix_ccfixspec_go_proto"],
     importpath = "source.monogon.dev/build/bazel_cc_fix/ccfixspec",
     visibility = ["//visibility:public"],
diff --git a/build/ci/jenkins-presubmit.groovy b/build/ci/jenkins-presubmit.groovy
index 5bb148b..b26cdd7 100644
--- a/build/ci/jenkins-presubmit.groovy
+++ b/build/ci/jenkins-presubmit.groovy
@@ -45,7 +45,7 @@
                         gerritCheck checks: ['jenkins:gazelle': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
                         echo "Gerrit change: ${GERRIT_CHANGE_URL}"
                         sh "git clean -fdx -e '/bazel-*'"
-                        sh "JENKINS_NODE_COOKIE=dontKillMe bazel run //:fietsje"
+                        sh "JENKINS_NODE_COOKIE=dontKillMe bazel run //:gazelle -- update-repos -from_file=go.mod -to_macro=third_party/go/repositories.bzl%go_repositories -prune"
                         sh "JENKINS_NODE_COOKIE=dontKillMe bazel run //:gazelle -- update"
 
                         script {
@@ -53,10 +53,10 @@
                             if (diff.trim() != "") {
                                 sh "git diff HEAD"
                                 error """
-                                    Unclean working directory after running gazelle and Fietsje.
+                                    Unclean working directory after running gazelle.
                                     Please run:
 
-                                       \$ bazel run //:fietsje
+                                       \$ bazel run //:gazelle -- update-repos -from_file=go.mod -to_macro=third_party/go/repositories.bzl%go_repositories -prune
                                        \$ bazel run //:gazelle -- update
 
                                     In your git checkout and amend the resulting diff to this changelist.
diff --git a/build/fietsje/BUILD.bazel b/build/fietsje/BUILD.bazel
index 5fe5f5e..bb3c38e 100644
--- a/build/fietsje/BUILD.bazel
+++ b/build/fietsje/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "fietsje",
     srcs = [
         "dependency.go",
         "deps_containerd.go",
@@ -17,10 +17,10 @@
     importpath = "source.monogon.dev/build/fietsje",
     visibility = ["//build:__subpackages__"],
     deps = [
-        "//build/fietsje/proto:go_default_library",
+        "//build/fietsje/proto",
         "@bazel_gazelle//label:go_default_library",
         "@com_github_golang_protobuf//proto:go_default_library",
-        "@org_golang_x_mod//modfile:go_default_library",
+        "@org_golang_x_mod//modfile",
     ],
 )
 
diff --git a/build/fietsje/cmd/BUILD.bazel b/build/fietsje/cmd/BUILD.bazel
index 00ab0f0..fec62fe 100644
--- a/build/fietsje/cmd/BUILD.bazel
+++ b/build/fietsje/cmd/BUILD.bazel
@@ -1,19 +1,19 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "cmd_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/build/fietsje/cmd",
     visibility = ["//visibility:private"],
     deps = [
-        "//build/fietsje:go_default_library",
-        "//build/toolbase:go_default_library",
-        "//build/toolbase/gotoolchain:go_default_library",
+        "//build/fietsje",
+        "//build/toolbase",
+        "//build/toolbase/gotoolchain",
     ],
 )
 
 go_binary(
     name = "cmd",
-    embed = [":go_default_library"],
+    embed = [":cmd_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/build/fietsje/deps_monogon.go b/build/fietsje/deps_monogon.go
index 021ce48..7ab3705 100644
--- a/build/fietsje/deps_monogon.go
+++ b/build/fietsje/deps_monogon.go
@@ -25,14 +25,6 @@
 		shelf: shelf,
 	}
 
-	// Currently can't bump past v1.30.0, as that removes the old balancer.Picker API
-	// that go-etcd depends upon. See https://github.com/etcd-io/etcd/pull/12398 .
-	p.collect(
-		"google.golang.org/grpc", "v1.29.1",
-	).use(
-		"golang.org/x/text",
-	)
-
 	depsKubernetes(p)
 	depsContainerd(p)
 	depsGVisor(p)
diff --git a/build/fietsje/proto/BUILD.bazel b/build/fietsje/proto/BUILD.bazel
index 833f8e4..d1a3b83 100644
--- a/build/fietsje/proto/BUILD.bazel
+++ b/build/fietsje/proto/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "proto",
     embed = [":proto_go_proto"],
     importpath = "source.monogon.dev/build/fietsje/proto",
     visibility = ["//visibility:public"],
diff --git a/build/print-workspace-status.sh b/build/print-workspace-status.sh
index 291c8e8..5e9b1f3 100755
--- a/build/print-workspace-status.sh
+++ b/build/print-workspace-status.sh
@@ -15,8 +15,8 @@
 
 # TODO(q3k): unify with //third_party/go/repsitories.bzl.
 KUBERNETES_gitMajor="1"
-KUBERNETES_gitMinor="19"
-KUBERNETES_gitVersion="v1.19.7+mngn"
+KUBERNETES_gitMinor="23"
+KUBERNETES_gitVersion="v1.23.4+mngn"
 
 cat <<EOF
 KUBERNETES_gitCommit $(git rev-parse "HEAD^{commit}")
diff --git a/build/savestdout/BUILD.bazel b/build/savestdout/BUILD.bazel
index f37c603..681ef44 100644
--- a/build/savestdout/BUILD.bazel
+++ b/build/savestdout/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "savestdout_lib",
     srcs = ["savestdout.go"],
     importpath = "source.monogon.dev/build/savestdout",
     visibility = ["//visibility:private"],
@@ -9,6 +9,6 @@
 
 go_binary(
     name = "savestdout",
-    embed = [":go_default_library"],
+    embed = [":savestdout_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/build/static_binary_tarball/BUILD.bazel b/build/static_binary_tarball/BUILD.bazel
index 7308262..c5e1511 100644
--- a/build/static_binary_tarball/BUILD.bazel
+++ b/build/static_binary_tarball/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "static_binary_tarball_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/build/static_binary_tarball",
     visibility = ["//visibility:private"],
     deps = [
-        "//build/static_binary_tarball/spec:go_default_library",
-        "@org_golang_google_protobuf//encoding/prototext:go_default_library",
+        "//build/static_binary_tarball/spec",
+        "@org_golang_google_protobuf//encoding/prototext",
     ],
 )
 
 go_binary(
     name = "static_binary_tarball",
-    embed = [":go_default_library"],
+    embed = [":static_binary_tarball_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/build/static_binary_tarball/spec/BUILD.bazel b/build/static_binary_tarball/spec/BUILD.bazel
index e79a202..330d4cc 100644
--- a/build/static_binary_tarball/spec/BUILD.bazel
+++ b/build/static_binary_tarball/spec/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "spec",
     embed = [":spec_go_proto"],
     importpath = "source.monogon.dev/build/static_binary_tarball/spec",
     visibility = ["//visibility:public"],
diff --git a/build/toolbase/BUILD.bazel b/build/toolbase/BUILD.bazel
index 6fd1489..2dea810 100644
--- a/build/toolbase/BUILD.bazel
+++ b/build/toolbase/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "toolbase",
     srcs = [
         "doc.go",
         "label.go",
@@ -12,8 +12,8 @@
 )
 
 go_test(
-    name = "go_default_test",
+    name = "toolbase_test",
     srcs = ["label_test.go"],
-    embed = [":go_default_library"],
-    deps = ["@com_github_google_go_cmp//cmp:go_default_library"],
+    embed = [":toolbase"],
+    deps = ["@com_github_google_go_cmp//cmp"],
 )
diff --git a/build/toolbase/gotoolchain/BUILD.bazel b/build/toolbase/gotoolchain/BUILD.bazel
index 9579e2c..42dc877 100644
--- a/build/toolbase/gotoolchain/BUILD.bazel
+++ b/build/toolbase/gotoolchain/BUILD.bazel
@@ -12,14 +12,14 @@
 
 # keep
 go_library(
-    name = "go_default_library",
+    name = "gotoolchain",
     embed = [":toolchain_library"],
     importpath = "source.monogon.dev/build/toolbase/gotoolchain",
     visibility = ["//visibility:public"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "gotoolchain_test",
     srcs = ["toolchain_test.go"],
-    embed = [":go_default_library"],  # keep
+    embed = [":gotoolchain"],  # keep
 )
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..c5d0229
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,389 @@
+module source.monogon.dev
+
+go 1.17
+
+// Kubernetes is not fully consumable as a module, fix that
+replace (
+	k8s.io/api => k8s.io/api v0.23.4
+	k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.23.4
+	k8s.io/apimachinery => k8s.io/apimachinery v0.23.4
+	k8s.io/apiserver => k8s.io/apiserver v0.23.4
+	k8s.io/cli-runtime => k8s.io/cli-runtime v0.23.4
+	k8s.io/client-go => k8s.io/client-go v0.23.4
+	k8s.io/cloud-provider => k8s.io/cloud-provider v0.23.4
+	k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.23.4
+	k8s.io/code-generator => k8s.io/code-generator v0.23.4
+	k8s.io/component-base => k8s.io/component-base v0.23.4
+	k8s.io/component-helpers => k8s.io/component-helpers v0.23.4
+	k8s.io/controller-manager => k8s.io/controller-manager v0.23.4
+	k8s.io/cri-api => k8s.io/cri-api v0.23.4
+	k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.23.4
+	k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.23.4
+	k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.23.4
+	k8s.io/kube-proxy => k8s.io/kube-proxy v0.23.4
+	k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.23.4
+	k8s.io/kubectl => k8s.io/kubectl v0.23.4
+	k8s.io/kubelet => k8s.io/kubelet v0.23.4
+	k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.23.4
+	k8s.io/metrics => k8s.io/metrics v0.23.4
+	k8s.io/mount-utils => k8s.io/mount-utils v0.23.4
+	k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.23.4
+	k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.23.4
+)
+
+// Pin down opentelementry
+// See https://github.com/open-telemetry/opentelemetry-go/issues/2577
+replace (
+	go.opentelemetry.io/contrib => go.opentelemetry.io/contrib v0.20.0
+	go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0
+	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp => go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0
+	go.opentelemetry.io/otel => go.opentelemetry.io/otel v0.20.0
+	go.opentelemetry.io/otel/exporters/otlp => go.opentelemetry.io/otel/exporters/otlp v0.20.0
+	go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.20.0
+	go.opentelemetry.io/otel/oteltest => go.opentelemetry.io/otel/oteltest v0.20.0
+	go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v0.20.0
+	go.opentelemetry.io/otel/sdk/export/metric => go.opentelemetry.io/otel/sdk/export/metric v0.20.0
+	go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric v0.20.0
+	go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v0.20.0
+	go.opentelemetry.io/proto/otlp => go.opentelemetry.io/proto/otlp v0.7.0
+)
+
+// Custom pins for semver breakage best resolved by manual resolution
+// Breaking change in 1.15.0 at https://github.com/onsi/ginkgo/pull/736
+// K8s still uses 1.12
+replace github.com/onsi/ginkgo => github.com/onsi/ginkgo v1.14.2
+
+// Our own patches
+replace github.com/containerd/ttrpc => github.com/monogon-dev/ttrpc v1.0.2-0.20210119122237-222b428f008e
+
+// Override version for Bazel support
+replace github.com/mwitkow/go-proto-validators => github.com/mwitkow/go-proto-validators v0.3.2
+
+require (
+	github.com/adrg/xdg v0.4.0
+	github.com/bazelbuild/bazel-gazelle v0.24.0
+	github.com/bazelbuild/rules_go v0.30.0
+	github.com/cavaliergopher/cpio v1.0.1
+	github.com/cenkalti/backoff/v4 v4.1.2
+	github.com/container-storage-interface/spec v1.5.0
+	github.com/containerd/containerd v1.6.1
+	github.com/containernetworking/plugins v1.0.1
+	github.com/coredns/coredns v1.9.1
+	github.com/corverroos/commentwrap v0.0.0-20191204065359-2926638be44c
+	github.com/diskfs/go-diskfs v1.2.0
+	github.com/go-delve/delve v1.8.2
+	github.com/golang/protobuf v1.5.2
+	github.com/google/certificate-transparency-go v1.1.2
+	github.com/google/go-cmp v0.5.7
+	github.com/google/go-tpm v0.3.3
+	github.com/google/go-tpm-tools v0.3.5
+	github.com/google/gopacket v1.1.19
+	github.com/google/nftables v0.0.0-20220221214239-211824995dcb
+	github.com/google/uuid v1.3.0
+	github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
+	github.com/insomniacslk/dhcp v0.0.0-20220119180841-3c283ff8b7dd
+	github.com/joho/godotenv v1.4.0
+	github.com/mattn/go-shellwords v1.0.12
+	github.com/mdlayher/raw v0.1.0
+	github.com/opencontainers/runc v1.1.0
+	github.com/pierrec/lz4/v4 v4.1.14
+	github.com/pkg/errors v0.9.1
+	github.com/rekby/gpt v0.0.0-20200614112001-7da10aec5566
+	github.com/sbezverk/nfproxy v0.0.0-20210112155058-0d98b4a69f0c
+	github.com/spf13/cobra v1.4.0
+	github.com/spf13/pflag v1.0.5
+	github.com/stretchr/testify v1.7.0
+	github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
+	github.com/yalue/native_endian v1.0.2
+	go.etcd.io/etcd/api/v3 v3.5.2
+	go.etcd.io/etcd/client/pkg/v3 v3.5.2
+	go.etcd.io/etcd/client/v3 v3.5.2
+	go.etcd.io/etcd/server/v3 v3.5.2
+	go.etcd.io/etcd/tests/v3 v3.5.2
+	go.uber.org/multierr v1.8.0
+	golang.org/x/crypto v0.0.0-20220208050332-20e1d8d225ab
+	golang.org/x/mod v0.5.1
+	golang.org/x/net v0.0.0-20220225172249-27dd8689420f
+	golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5
+	golang.org/x/text v0.3.7
+	golang.org/x/tools v0.1.9
+	golang.zx2c4.com/wireguard/wgctrl v0.0.0-20220208144051-fde48d68ee68
+	google.golang.org/grpc v1.45.0
+	google.golang.org/protobuf v1.27.1
+	gvisor.dev/gvisor v0.0.0-20220315202956-f1399ecf1672
+	k8s.io/api v0.23.4
+	k8s.io/apimachinery v0.23.4
+	k8s.io/cli-runtime v0.23.4
+	k8s.io/client-go v11.0.0+incompatible
+	k8s.io/component-base v0.23.4
+	k8s.io/kubectl v0.0.0
+	k8s.io/kubelet v0.0.0
+	k8s.io/kubernetes v1.23.4
+)
+
+require (
+	cloud.google.com/go/compute v1.3.0 // indirect
+	github.com/Azure/azure-sdk-for-go v62.1.0+incompatible // indirect
+	github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
+	github.com/Azure/go-autorest v14.2.0+incompatible // indirect
+	github.com/Azure/go-autorest/autorest v0.11.24 // indirect
+	github.com/Azure/go-autorest/autorest/adal v0.9.18 // indirect
+	github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 // indirect
+	github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 // indirect
+	github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
+	github.com/Azure/go-autorest/autorest/mocks v0.4.1 // indirect
+	github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
+	github.com/Azure/go-autorest/autorest/validation v0.1.0 // indirect
+	github.com/Azure/go-autorest/logger v0.2.1 // indirect
+	github.com/Azure/go-autorest/tracing v0.6.0 // indirect
+	github.com/DataDog/datadog-agent/pkg/obfuscate v0.0.0-20211129110424-6491aa3bf583 // indirect
+	github.com/DataDog/datadog-go v4.8.2+incompatible // indirect
+	github.com/DataDog/datadog-go/v5 v5.0.2 // indirect
+	github.com/DataDog/sketches-go v1.0.0 // indirect
+	github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3 // indirect
+	github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab // indirect
+	github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd // indirect
+	github.com/Microsoft/go-winio v0.5.1 // indirect
+	github.com/Microsoft/hcsshim v0.9.2 // indirect
+	github.com/NYTimes/gziphandler v1.1.1 // indirect
+	github.com/PuerkitoBio/purell v1.1.1 // indirect
+	github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
+	github.com/alexflint/go-filemutex v1.1.0 // indirect
+	github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e // indirect
+	github.com/apparentlymart/go-cidr v1.1.0 // indirect
+	github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e // indirect
+	github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
+	github.com/aws/aws-sdk-go v1.43.12 // indirect
+	github.com/beorn7/perks v1.0.1 // indirect
+	github.com/blang/semver v3.5.1+incompatible // indirect
+	github.com/cenkalti/backoff v2.2.1+incompatible // indirect
+	github.com/cespare/xxhash/v2 v2.1.2 // indirect
+	github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 // indirect
+	github.com/checkpoint-restore/go-criu/v5 v5.3.0 // indirect
+	github.com/cilium/ebpf v0.7.0 // indirect
+	github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313 // indirect
+	github.com/containerd/cgroups v1.0.3 // indirect
+	github.com/containerd/console v1.0.3 // indirect
+	github.com/containerd/continuity v0.2.2 // indirect
+	github.com/containerd/fifo v1.0.0 // indirect
+	github.com/containerd/ttrpc v1.1.0 // indirect
+	github.com/containerd/typeurl v1.0.2 // indirect
+	github.com/containernetworking/cni v1.0.1 // indirect
+	github.com/coredns/caddy v1.1.1 // indirect
+	github.com/coreos/go-iptables v0.6.0 // indirect
+	github.com/coreos/go-oidc v2.1.0+incompatible // indirect
+	github.com/coreos/go-semver v0.3.0 // indirect
+	github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+	github.com/cosiner/argv v0.1.0 // indirect
+	github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect
+	github.com/creack/pty v1.1.11 // indirect
+	github.com/cyphar/filepath-securejoin v0.2.3 // indirect
+	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd // indirect
+	github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9 // indirect
+	github.com/dgraph-io/ristretto v0.1.0 // indirect
+	github.com/dimchansky/utfbom v1.1.1 // indirect
+	github.com/dnstap/golang-dnstap v0.4.0 // indirect
+	github.com/docker/distribution v2.8.0+incompatible // indirect
+	github.com/docker/docker v20.10.12+incompatible // indirect
+	github.com/docker/go-connections v0.4.0 // indirect
+	github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
+	github.com/docker/go-units v0.4.0 // indirect
+	github.com/dustin/go-humanize v1.0.0 // indirect
+	github.com/emicklei/go-restful v2.9.5+incompatible // indirect
+	github.com/euank/go-kmsg-parser v2.0.0+incompatible // indirect
+	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
+	github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect
+	github.com/farsightsec/golang-framestream v0.3.0 // indirect
+	github.com/fatih/camelcase v1.0.0 // indirect
+	github.com/felixge/httpsnoop v1.0.1 // indirect
+	github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect
+	github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
+	github.com/fsnotify/fsnotify v1.5.1 // indirect
+	github.com/fvbommel/sortorder v1.0.1 // indirect
+	github.com/go-delve/liner v1.2.2-1 // indirect
+	github.com/go-errors/errors v1.0.1 // indirect
+	github.com/go-logr/logr v1.2.2 // indirect
+	github.com/go-openapi/jsonpointer v0.19.5 // indirect
+	github.com/go-openapi/jsonreference v0.19.5 // indirect
+	github.com/go-openapi/swag v0.19.14 // indirect
+	github.com/go-ozzo/ozzo-validation v3.5.0+incompatible // indirect
+	github.com/godbus/dbus/v5 v5.0.6 // indirect
+	github.com/gofrs/flock v0.8.0 // indirect
+	github.com/gofrs/uuid v4.0.0+incompatible // indirect
+	github.com/gogo/googleapis v1.4.0 // indirect
+	github.com/gogo/protobuf v1.3.2 // indirect
+	github.com/golang-jwt/jwt/v4 v4.2.0 // indirect
+	github.com/golang/glog v1.0.0 // indirect
+	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
+	github.com/golang/mock v1.6.0 // indirect
+	github.com/google/btree v1.0.1 // indirect
+	github.com/google/cadvisor v0.44.0 // indirect
+	github.com/google/cel-go v0.9.0 // indirect
+	github.com/google/go-dap v0.6.0 // indirect
+	github.com/google/gofuzz v1.2.0 // indirect
+	github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
+	github.com/google/subcommands v1.0.2-0.20190508160503-636abe8753b8 // indirect
+	github.com/googleapis/gax-go/v2 v2.1.1 // indirect
+	github.com/googleapis/gnostic v0.5.5 // indirect
+	github.com/gophercloud/gophercloud v0.1.0 // indirect
+	github.com/gorilla/websocket v1.4.2 // indirect
+	github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
+	github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
+	github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
+	github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
+	github.com/hashicorp/golang-lru v0.5.4 // indirect
+	github.com/heketi/heketi v10.3.0+incompatible // indirect
+	github.com/imdario/mergo v0.3.12 // indirect
+	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+	github.com/infobloxopen/go-trees v0.0.0-20200715205103-96a057b8dfb9 // indirect
+	github.com/j-keck/arping v1.0.2 // indirect
+	github.com/jmespath/go-jmespath v0.4.0 // indirect
+	github.com/jonboulle/clockwork v0.2.2 // indirect
+	github.com/josharian/intern v1.0.0 // indirect
+	github.com/josharian/native v1.0.0 // indirect
+	github.com/json-iterator/go v1.1.12 // indirect
+	github.com/karrick/godirwalk v1.16.1 // indirect
+	github.com/klauspost/compress v1.13.6 // indirect
+	github.com/kr/pty v1.1.8 // indirect
+	github.com/libopenstorage/openstorage v1.0.0 // indirect
+	github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
+	github.com/lithammer/dedent v1.1.0 // indirect
+	github.com/mailru/easyjson v0.7.7 // indirect
+	github.com/mattn/go-colorable v0.1.4 // indirect
+	github.com/mattn/go-isatty v0.0.11 // indirect
+	github.com/mattn/go-runewidth v0.0.13 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/mdlayher/genetlink v1.2.0 // indirect
+	github.com/mdlayher/netlink v1.6.0 // indirect
+	github.com/mdlayher/packet v0.0.0-20220221164757-67998ac0ff93 // indirect
+	github.com/mdlayher/socket v0.2.1 // indirect
+	github.com/miekg/dns v1.1.46 // indirect
+	github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989 // indirect
+	github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect
+	github.com/mitchellh/go-homedir v1.1.0 // indirect
+	github.com/mitchellh/go-wordwrap v1.0.0 // indirect
+	github.com/mitchellh/mapstructure v1.4.1 // indirect
+	github.com/moby/locker v1.0.1 // indirect
+	github.com/moby/spdystream v0.2.0 // indirect
+	github.com/moby/sys/mountinfo v0.5.0 // indirect
+	github.com/moby/sys/signal v0.6.0 // indirect
+	github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect
+	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+	github.com/modern-go/reflect2 v1.0.2 // indirect
+	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
+	github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
+	github.com/morikuni/aec v1.0.0 // indirect
+	github.com/mrunalp/fileutils v0.5.0 // indirect
+	github.com/muesli/reflow v0.0.0-20191128061954-86f094cbed14 // indirect
+	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+	github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
+	github.com/opencontainers/go-digest v1.0.0 // indirect
+	github.com/opencontainers/image-spec v1.0.2 // indirect
+	github.com/opencontainers/runtime-spec v1.0.3-0.20211123151946-c2389c3cb60a // indirect
+	github.com/opencontainers/selinux v1.10.0 // indirect
+	github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 // indirect
+	github.com/opentracing/opentracing-go v1.2.0 // indirect
+	github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 // indirect
+	github.com/openzipkin/zipkin-go v0.4.0 // indirect
+	github.com/oschwald/geoip2-golang v1.6.1 // indirect
+	github.com/oschwald/maxminddb-golang v1.8.0 // indirect
+	github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
+	github.com/philhofer/fwd v1.1.1 // indirect
+	github.com/pierrec/lz4 v2.6.1+incompatible // indirect
+	github.com/pkg/xattr v0.4.1 // indirect
+	github.com/pmezard/go-difflib v1.0.0 // indirect
+	github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 // indirect
+	github.com/prometheus/client_golang v1.12.1 // indirect
+	github.com/prometheus/client_model v0.2.0 // indirect
+	github.com/prometheus/common v0.32.1 // indirect
+	github.com/prometheus/procfs v0.7.3 // indirect
+	github.com/quobyte/api v0.1.8 // indirect
+	github.com/rivo/uniseg v0.2.0 // indirect
+	github.com/robfig/cron/v3 v3.0.1 // indirect
+	github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021 // indirect
+	github.com/russross/blackfriday v1.5.2 // indirect
+	github.com/russross/blackfriday/v2 v2.1.0 // indirect
+	github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 // indirect
+	github.com/sbezverk/nftableslib v0.0.0-20210111145735-b08b2d804e1f // indirect
+	github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921 // indirect
+	github.com/sirupsen/logrus v1.8.1 // indirect
+	github.com/soheilhy/cmux v0.1.5 // indirect
+	github.com/stoewer/go-strcase v1.2.0 // indirect
+	github.com/storageos/go-api v2.2.0+incompatible // indirect
+	github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect
+	github.com/tinylib/msgp v1.1.2 // indirect
+	github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect
+	github.com/u-root/uio v0.0.0-20210528114334-82958018845c // indirect
+	github.com/ulikunitz/xz v0.5.7 // indirect
+	github.com/urfave/cli v1.22.4 // indirect
+	github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 // indirect
+	github.com/vmware/govmomi v0.20.3 // indirect
+	github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect
+	github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca // indirect
+	go.etcd.io/bbolt v1.3.6 // indirect
+	go.etcd.io/etcd/client/v2 v2.305.2 // indirect
+	go.etcd.io/etcd/pkg/v3 v3.5.2 // indirect
+	go.etcd.io/etcd/raft/v3 v3.5.2 // indirect
+	go.opencensus.io v0.23.0 // indirect
+	go.opentelemetry.io/contrib v0.20.0 // indirect
+	go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0 // indirect
+	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 // indirect
+	go.opentelemetry.io/otel v1.3.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp v0.20.0 // indirect
+	go.opentelemetry.io/otel/metric v0.20.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.3.0 // indirect
+	go.opentelemetry.io/otel/sdk/export/metric v0.20.0 // indirect
+	go.opentelemetry.io/otel/sdk/metric v0.20.0 // indirect
+	go.opentelemetry.io/otel/trace v1.3.0 // indirect
+	go.opentelemetry.io/proto/otlp v0.11.0 // indirect
+	go.starlark.net v0.0.0-20200821142938-949cc6f4b097 // indirect
+	go.uber.org/atomic v1.7.0 // indirect
+	go.uber.org/zap v1.19.0 // indirect
+	golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 // indirect
+	golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
+	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
+	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
+	golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect
+	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
+	golang.zx2c4.com/wireguard v0.0.0-20220202223031-3b95c81cc178 // indirect
+	gonum.org/v1/gonum v0.6.2 // indirect
+	google.golang.org/api v0.70.0 // indirect
+	google.golang.org/appengine v1.6.7 // indirect
+	google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c // indirect
+	gopkg.in/DataDog/dd-trace-go.v1 v1.36.2 // indirect
+	gopkg.in/djherbis/times.v1 v1.2.0 // indirect
+	gopkg.in/gcfg.v1 v1.2.3 // indirect
+	gopkg.in/inf.v0 v0.9.1 // indirect
+	gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
+	gopkg.in/square/go-jose.v2 v2.6.0 // indirect
+	gopkg.in/warnings.v0 v0.1.2 // indirect
+	gopkg.in/yaml.v2 v2.4.0 // indirect
+	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
+	k8s.io/apiextensions-apiserver v0.0.0 // indirect
+	k8s.io/apiserver v0.23.4 // indirect
+	k8s.io/cloud-provider v0.23.4 // indirect
+	k8s.io/cluster-bootstrap v0.0.0 // indirect
+	k8s.io/component-helpers v0.23.4 // indirect
+	k8s.io/controller-manager v0.23.4 // indirect
+	k8s.io/cri-api v0.23.1 // indirect
+	k8s.io/csi-translation-lib v0.23.4 // indirect
+	k8s.io/klog v1.0.0 // indirect
+	k8s.io/klog/v2 v2.40.1 // indirect
+	k8s.io/kube-aggregator v0.0.0 // indirect
+	k8s.io/kube-controller-manager v0.0.0 // indirect
+	k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect
+	k8s.io/kube-scheduler v0.0.0 // indirect
+	k8s.io/legacy-cloud-providers v0.0.0 // indirect
+	k8s.io/metrics v0.23.4 // indirect
+	k8s.io/mount-utils v0.23.4 // indirect
+	k8s.io/pod-security-admission v0.0.0 // indirect
+	k8s.io/utils v0.0.0-20211116205334-6203023598ed // indirect
+	sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27 // indirect
+	sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect
+	sigs.k8s.io/kustomize/api v0.10.1 // indirect
+	sigs.k8s.io/kustomize/kustomize/v4 v4.4.1 // indirect
+	sigs.k8s.io/kustomize/kyaml v0.13.0 // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
+	sigs.k8s.io/yaml v1.2.0 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..772be54
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,2676 @@
+4d63.com/gochecknoinits v0.0.0-20200108094044-eb73b47b9fc4/go.mod h1:4o1i5aXtIF5tJFt3UD1knCVmWOXg7fLYdHVu6jeNcnM=
+bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
+bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
+bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM=
+bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM=
+bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M=
+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.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts=
+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.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
+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.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU=
+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 v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
+cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
+cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
+cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
+cloud.google.com/go v0.92.2/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
+cloud.google.com/go v0.92.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
+cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
+cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
+cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
+cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
+cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A=
+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/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
+cloud.google.com/go/compute v1.3.0 h1:mPL/MzDDYHsh5tHRS9mhmhWlcgClCrCa6ApQCU6wnHI=
+cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
+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/monitoring v0.1.0/go.mod h1:Hpm3XfzJv+UTiXzCG5Ffp0wijzHTC7Cv4eR7o3x/fEE=
+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/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w=
+cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk=
+cloud.google.com/go/spanner v1.17.0/go.mod h1:+17t2ixFwRG4lWRwE+5kipDR9Ef07Jkmc8z0IbMDKUs=
+cloud.google.com/go/spanner v1.18.0/go.mod h1:LvAjUXPeJRGNuGpikMULjhLj/t9cRvdc+fxRoLiugXA=
+cloud.google.com/go/spanner v1.25.0/go.mod h1:kQUft3x355hzzaeFbObjsvkzZDgpDkesp3v75WBnI8w=
+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/trace v0.1.0/go.mod h1:wxEwsoeRVPbeSkt7ZC9nWCgmoKQRAoySN7XHW2AmI7g=
+code.gitea.io/sdk/gitea v0.11.3/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY=
+contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA=
+contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0=
+contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw=
+contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc=
+contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc=
+contrib.go.opencensus.io/exporter/stackdriver v0.13.8/go.mod h1:huNtlWx75MwO7qMs0KrMxPZXzNNWebav1Sq/pm02JdQ=
+contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE=
+contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA=
+dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg=
+github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU=
+github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
+github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v55.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v62.1.0+incompatible h1:FKtAafvCGabH4hzycX4uGq/mSTKN+zaeRTUdnJB5Yag=
+github.com/Azure/azure-sdk-for-go v62.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0=
+github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0=
+github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
+github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
+github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
+github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
+github.com/Azure/go-autorest v12.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
+github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
+github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
+github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
+github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
+github.com/Azure/go-autorest/autorest v0.11.24 h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE=
+github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc=
+github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
+github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
+github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
+github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=
+github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
+github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA=
+github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg=
+github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4=
+github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg=
+github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
+github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
+github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
+github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
+github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
+github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=
+github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
+github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE=
+github.com/Azure/go-autorest/autorest/validation v0.1.0 h1:ISSNzGUh+ZSzizJWOWzs8bwpXIePbGLW4z/AmUFGH5A=
+github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8=
+github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
+github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
+github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
+github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
+github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
+github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
+github.com/DataDog/datadog-agent/pkg/obfuscate v0.0.0-20211129110424-6491aa3bf583 h1:3nVO1nQyh64IUY6BPZUpMYMZ738Pu+LsMt3E0eqqIYw=
+github.com/DataDog/datadog-agent/pkg/obfuscate v0.0.0-20211129110424-6491aa3bf583/go.mod h1:EP9f4GqaDJyP1F5jTNMtzdIpw3JpNs3rMSJOnYywCiw=
+github.com/DataDog/datadog-go v4.8.2+incompatible h1:qbcKSx29aBLD+5QLvlQZlGmRMF/FfGqFLFev/1TDzRo=
+github.com/DataDog/datadog-go v4.8.2+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+github.com/DataDog/datadog-go/v5 v5.0.2 h1:UFtEe7662/Qojxkw1d6SboAeA0CPI3naKhVASwFn+04=
+github.com/DataDog/datadog-go/v5 v5.0.2/go.mod h1:ZI9JFB4ewXbw1sBnF4sxsR2k1H3xjV+PUAOUsHvKpcU=
+github.com/DataDog/gostackparse v0.5.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM=
+github.com/DataDog/sketches-go v1.0.0 h1:chm5KSXO7kO+ywGWJ0Zs6tdmWU8PBXSbywFVciL6BG4=
+github.com/DataDog/sketches-go v1.0.0/go.mod h1:O+XkJHWk9w4hDwY2ZUDU31ZC9sNYlYo8DiFsxjYeo1k=
+github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae/go.mod h1:mjwGPas4yKduTyubHvD1Atl9r1rUq8DfVy+gkVvZ+oo=
+github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ=
+github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3 h1:FCalqNmQYSMCCHoCtAxZN/ZgLc8ufgeo5Z3wrIoJZvs=
+github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3/go.mod h1:8XasY4ymP2V/tn2OOV9ZadmiTE1FIB/h3W+yNlPttKw=
+github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab h1:UKkYhof1njT1/xq4SEg5z+VpTgjmNeHwPGRQl7takDI=
+github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA=
+github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
+github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU=
+github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
+github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
+github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
+github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
+github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
+github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
+github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
+github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
+github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
+github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
+github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw=
+github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw=
+github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
+github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
+github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
+github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
+github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
+github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
+github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=
+github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
+github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
+github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
+github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ=
+github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8=
+github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk=
+github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg=
+github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
+github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
+github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
+github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
+github.com/Microsoft/hcsshim v0.8.22/go.mod h1:91uVCVzvX2QD16sMCenoxxXo6L1wJnLMX2PSufFMtF0=
+github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg=
+github.com/Microsoft/hcsshim v0.9.2 h1:wB06W5aYFfUB3IvootYAY2WnOmIdgPGfqSI6tufQNnY=
+github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc=
+github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
+github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
+github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
+github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
+github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
+github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
+github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
+github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
+github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
+github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
+github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
+github.com/Shopify/sarama v1.30.0/go.mod h1:zujlQQx1kzHsh4jfV1USnptCQrHAEZ2Hk8fTKCulPVs=
+github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
+github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0=
+github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
+github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
+github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E=
+github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
+github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
+github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
+github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=
+github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
+github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0=
+github.com/alexflint/go-filemutex v1.1.0 h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg=
+github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk=
+github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
+github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
+github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
+github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
+github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e h1:GCzyKMDDjSGnlpl3clrdAK7I1AaVoaiKDOYkUzChZzg=
+github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
+github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
+github.com/apache/beam v2.28.0+incompatible/go.mod h1:/8NX3Qi8vGstDLLaeaU7+lzVEu/ACaQhYjeefzQ0y1o=
+github.com/apache/beam v2.32.0+incompatible/go.mod h1:/8NX3Qi8vGstDLLaeaU7+lzVEu/ACaQhYjeefzQ0y1o=
+github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/apex/log v1.1.4/go.mod h1:AlpoD9aScyQfJDVHmLMEcx4oU6LqzkWp4Mg9GdAcEvQ=
+github.com/apex/logs v0.0.4/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo=
+github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=
+github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys=
+github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU=
+github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
+github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA=
+github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
+github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
+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/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
+github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
+github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
+github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
+github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
+github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM=
+github.com/auth0/go-jwt-middleware v1.0.1 h1:/fsQ4vRr4zod1wKReUH+0A3ySRjGiT9G34kypO/EKwI=
+github.com/auth0/go-jwt-middleware v1.0.1/go.mod h1:YSeUX3z6+TF2H+7padiEqNJ73Zy9vXW72U//IgN0BIM=
+github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
+github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=
+github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=
+github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.25.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
+github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
+github.com/aws/aws-sdk-go v1.38.49/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
+github.com/aws/aws-sdk-go v1.43.12 h1:wOdx6+reSDpUBFEuJDA6edCrojzy8rOtMzhS2rD9+7M=
+github.com/aws/aws-sdk-go v1.43.12/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
+github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
+github.com/bazelbuild/bazel-gazelle v0.24.0 h1:gPaI2C0hRAhNT4w3bdSCift3nFjq0j07I4bmSDeneA4=
+github.com/bazelbuild/bazel-gazelle v0.24.0/go.mod h1:yyyf2EFW/ukgXBmyUXB70frjexdQcGcH899OVQJbJ+o=
+github.com/bazelbuild/rules_go v0.30.0 h1:kX4jVcstqrsRqKPJSn2mq2o+TI21edRzEJSrEOMQtr0=
+github.com/bazelbuild/rules_go v0.30.0/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M=
+github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU=
+github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
+github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
+github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
+github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
+github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI=
+github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
+github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
+github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
+github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
+github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
+github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
+github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
+github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
+github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
+github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
+github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
+github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
+github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
+github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=
+github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=
+github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=
+github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
+github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod h1:oDpT4efm8tSYHXV5tHSdRvBet/b/QzxZ+XyyPehvm3A=
+github.com/cavaliergopher/cpio v1.0.1 h1:KQFSeKmZhv0cr+kawA3a0xTQCU4QxXF1vhU7P7av2KM=
+github.com/cavaliergopher/cpio v1.0.1/go.mod h1:pBdaqQjnvXxdS/6CvNDwIANIFSP0xRKI16PX4xejRQc=
+github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
+github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
+github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
+github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
+github.com/cenkalti/backoff/v4 v4.1.2 h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo=
+github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
+github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=
+github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
+github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8=
+github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw=
+github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
+github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
+github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8=
+github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E=
+github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=
+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/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg=
+github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc=
+github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
+github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
+github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
+github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
+github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k=
+github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
+github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313 h1:eIHD9GNM3Hp7kcRW5mvcz7WTR3ETeoYYKwpgA04kaXE=
+github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0=
+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-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+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/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
+github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
+github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
+github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
+github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
+github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY=
+github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
+github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
+github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
+github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
+github.com/container-storage-interface/spec v1.5.0 h1:lvKxe3uLgqQeVQcrnL2CPQKISoKjTJxojEs9cBk+HXo=
+github.com/container-storage-interface/spec v1.5.0/go.mod h1:8K96oQNkJ7pFcC2R9Z1ynGGBB1I93kcS6PGg3SsOk8s=
+github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=
+github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU=
+github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
+github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
+github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E=
+github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
+github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss=
+github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI=
+github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko=
+github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM=
+github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
+github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
+github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
+github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
+github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4=
+github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8=
+github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
+github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
+github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
+github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
+github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw=
+github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
+github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=
+github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
+github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.4.11/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.4.12/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ=
+github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU=
+github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI=
+github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
+github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
+github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c=
+github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s=
+github.com/containerd/containerd v1.6.1 h1:oa2uY0/0G+JX4X7hpGCYvkp9FjUancz56kSNnb1sG3o=
+github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE=
+github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
+github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
+github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
+github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo=
+github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y=
+github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ=
+github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM=
+github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA=
+github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk=
+github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
+github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
+github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
+github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
+github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
+github.com/containerd/fifo v1.0.0 h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU=
+github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
+github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU=
+github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk=
+github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA=
+github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA=
+github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
+github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
+github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g=
+github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok=
+github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok=
+github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0=
+github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA=
+github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow=
+github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms=
+github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4=
+github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c=
+github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
+github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
+github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM=
+github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
+github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk=
+github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
+github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
+github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
+github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw=
+github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y=
+github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
+github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
+github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
+github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
+github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
+github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
+github.com/containernetworking/cni v1.0.1 h1:9OIL/sZmMYDBe+G8svzILAlulUpaDTUjeAbtH/JNLBo=
+github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y=
+github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM=
+github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8=
+github.com/containernetworking/plugins v1.0.1 h1:wwCfYbTCj5FC0EJgyzyjTXmqysOiJE9r712Z+2KVZAk=
+github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE=
+github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
+github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4=
+github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY=
+github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY=
+github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
+github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0=
+github.com/coredns/caddy v1.1.1/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
+github.com/coredns/coredns v1.9.1 h1:m57Yuyjby5TEwHxKFAjx0q9Tj6r1coH2oRrEO4CVZdM=
+github.com/coredns/coredns v1.9.1/go.mod h1:7Id+IIx1Zbj/X5lOLL3x3dGesQlDvaW4Oe7rUSTo/Cc=
+github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI=
+github.com/coredns/corefile-migration v1.0.14/go.mod h1:XnhgULOEouimnzgn0t4WPuFDN2/PJQcTxdWKC5eXNGE=
+github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
+github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
+github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
+github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
+github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk=
+github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q=
+github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM=
+github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
+github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
+github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
+github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
+github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/corverroos/commentwrap v0.0.0-20191204065359-2926638be44c h1:toeMwwechJKH0iwOoGJLZK6x42Ba9si+816KxqmgFc8=
+github.com/corverroos/commentwrap v0.0.0-20191204065359-2926638be44c/go.mod h1:l2OTacZED2C1pgiB2wSWRdWEDE/rfKzbWDHHU7zKGBw=
+github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
+github.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8=
+github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
+github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
+github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
+github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU=
+github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
+github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
+github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
+github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
+github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ=
+github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
+github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
+github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I=
+github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+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/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd h1:uVsMphB1eRx7xB1njzL3fuMdWRN8HtVzoUOItHMwv5c=
+github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE=
+github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
+github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9 h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=
+github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9/go.mod h1:D6ICZm05D9VN1n/8iOtBxLpXtoGp6HDFUJ1RNVieOSE=
+github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY=
+github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI=
+github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug=
+github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=
+github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
+github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
+github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
+github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=
+github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE=
+github.com/diskfs/go-diskfs v1.2.0 h1:Ow4xorEDw1VNYKbC+SA/qQNwi5gWIwdKUxmUcLFST24=
+github.com/diskfs/go-diskfs v1.2.0/go.mod h1:ZTeTbzixuyfnZW5y5qKMtjV2o+GLLHo1KfMhotJI4Rk=
+github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY=
+github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
+github.com/dnstap/golang-dnstap v0.4.0 h1:KRHBoURygdGtBjDI2w4HifJfMAhhOqDuktAokaSa234=
+github.com/dnstap/golang-dnstap v0.4.0/go.mod h1:FqsSdH58NAmkAvKcpyxht7i4FoBjKu8E4JUPt8ipSUs=
+github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
+github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
+github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
+github.com/docker/distribution v2.8.0+incompatible h1:l9EaZDICImO1ngI+uTifW+ZYvvz7fKISBAKpg+MbWbY=
+github.com/docker/distribution v2.8.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
+github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v20.10.12+incompatible h1:CEeNmFM0QZIsJCZKMkZx0ZcahTiewkrgiwfYD+dfl1U=
+github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
+github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
+github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
+github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
+github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=
+github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
+github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI=
+github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw=
+github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
+github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
+github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
+github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
+github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
+github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
+github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
+github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
+github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
+github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
+github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
+github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=
+github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
+github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
+github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
+github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
+github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
+github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
+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.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
+github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
+github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/envoyproxy/protoc-gen-validate v0.3.0-java/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/etcd-io/gofail v0.0.0-20190801230047-ad7f989257ca/go.mod h1:49H/RkXP8pKaZy4h0d+NW16rSLhyVBt4o6VLJbmOqDE=
+github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY=
+github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
+github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
+github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=
+github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
+github.com/fanliao/go-promise v0.0.0-20141029170127-1890db352a72/go.mod h1:PjfxuH4FZdUyfMdtBio2lsRr1AKEaVPwelzuHuh8Lqc=
+github.com/farsightsec/golang-framestream v0.3.0 h1:/spFQHucTle/ZIPkYqrfshQqPe2VQEzesH243TjIwqA=
+github.com/farsightsec/golang-framestream v0.3.0/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=
+github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
+github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
+github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
+github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
+github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
+github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
+github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
+github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
+github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c=
+github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
+github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
+github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
+github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
+github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
+github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=
+github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
+github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
+github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
+github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM=
+github.com/fullstorydev/grpcurl v1.8.0/go.mod h1:Mn2jWbdMrQGJQ8UD62uNyMumT2acsZUCkZIqFxsQf1o=
+github.com/fullstorydev/grpcurl v1.8.1/go.mod h1:3BWhvHZwNO7iLXaQlojdg5NA6SxUDePli4ecpK1N7gw=
+github.com/fullstorydev/grpcurl v1.8.2/go.mod h1:YvWNT3xRp2KIRuvCphFodG0fKkMXwaxA9CJgKCcyzUQ=
+github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=
+github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
+github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
+github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
+github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
+github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
+github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
+github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
+github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
+github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
+github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
+github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=
+github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo=
+github.com/go-delve/delve v1.8.2 h1:gsRTPR3Yi61RpeuCFvJb6vIxB3xABx6pnNKGISxdsSU=
+github.com/go-delve/delve v1.8.2/go.mod h1:XB6XKpI5DqMCNai0MkNPVbrd3OtBovJ/vfcVofkWy/k=
+github.com/go-delve/liner v1.2.2-1 h1:0hGpZh6vjI6LFTlXuHFCX9PebaluzDzps2owdMrrSuk=
+github.com/go-delve/liner v1.2.2-1/go.mod h1:biJCRbqp51wS+I92HMqn5H8/A0PAhxn2vyOT+JqhiGI=
+github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
+github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
+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-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
+github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
+github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
+github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.2 h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
+github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
+github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
+github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
+github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
+github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
+github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
+github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
+github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
+github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
+github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
+github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
+github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
+github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
+github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
+github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
+github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
+github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
+github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
+github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
+github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
+github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
+github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
+github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
+github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
+github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
+github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
+github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
+github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
+github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
+github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
+github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
+github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
+github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
+github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
+github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
+github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
+github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng=
+github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
+github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
+github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
+github.com/go-ozzo/ozzo-validation v3.5.0+incompatible h1:sUy/in/P6askYr16XJgTKq/0SZhiWsdg4WZGaLsGQkM=
+github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU=
+github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
+github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
+github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
+github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
+github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
+github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
+github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
+github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
+github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
+github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro=
+github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/gofrs/flock v0.8.0 h1:MSdYClljsF3PbENUUEx85nkWfJSGfzYI9yEBZOJz6CY=
+github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
+github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
+github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
+github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
+github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
+github.com/gogo/googleapis v1.4.0 h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI=
+github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
+github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
+github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
+github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU=
+github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
+github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
+github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+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/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/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/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
+github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
+github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+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/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e h1:KhcknUwkWHKZPbFy2P7jH5LKJ3La+0ZeknkkmrSgqb0=
+github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk=
+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/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
+github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
+github.com/google/cadvisor v0.38.6/go.mod h1:1OFB9sOOMkBdUBGCO/1SArawTnDscgMzTodacVDe8mA=
+github.com/google/cadvisor v0.43.0/go.mod h1:+RdMSbc3FVr5NYCD2dOEJy/LI0jYJ/0xJXkzWXEyiFQ=
+github.com/google/cadvisor v0.44.0 h1:523mBK94XHKAsU1TIQl/tYoPyYpWQdalf2CQ8Gv2Xek=
+github.com/google/cadvisor v0.44.0/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg=
+github.com/google/cel-go v0.9.0 h1:u1hg7lcZ/XWw2d3aV1jFS30ijQQ6q0/h1C2ZBeBD1gY=
+github.com/google/cel-go v0.9.0/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
+github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
+github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg=
+github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs=
+github.com/google/certificate-transparency-go v1.1.2-0.20210422104406-9f33727a7a18/go.mod h1:6CKh9dscIRoqc2kC6YUFICHZMT9NrClyPrRVFrdw1QQ=
+github.com/google/certificate-transparency-go v1.1.2-0.20210512142713-bed466244fa6/go.mod h1:aF2dp7Dh81mY8Y/zpzyXps4fQW5zQbDu2CxfpJB6NkI=
+github.com/google/certificate-transparency-go v1.1.2 h1:4hE0GEId6NAW28dFpC+LrRGwQX5dtmXQGDbg8+/MZOM=
+github.com/google/certificate-transparency-go v1.1.2/go.mod h1:3OL+HKDqHPUfdKrHVQxO6T8nDLO0HF7LRTlkIWXaWvQ=
+github.com/google/go-attestation v0.3.2/go.mod h1:N0ADdnY0cr7eLJyZ75o8kofGGTUF2XrZTJuTPo5acwk=
+github.com/google/go-attestation v0.4.3 h1:hHhPfym1TZm88L7sWmdc/moikHt80ls6mEiU+QvhRvk=
+github.com/google/go-attestation v0.4.3/go.mod h1:7L6MpeaeEmJVJHpr/5cCrOE0SjNA2aFLfJF1Og0AJS8=
+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/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0=
+github.com/google/go-dap v0.6.0 h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4=
+github.com/google/go-dap v0.6.0/go.mod h1:5q8aYQFnHOAZEMP+6vmq25HKYAEwE+LF5yh7JKrrhSQ=
+github.com/google/go-github/v28 v28.1.1/go.mod h1:bsqJWQX05omyWVmc00nEUql9mhQyv38lDZ8kPZcQVoM=
+github.com/google/go-licenses v0.0.0-20210329231322-ce1d9163b77d/go.mod h1:+TYOmkVoJOpwnS0wfdsJCV9CoD5nJYsHoFk/0CrTK4M=
+github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
+github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE=
+github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no=
+github.com/google/go-tpm v0.1.2-0.20190725015402-ae6dd98980d4/go.mod h1:H9HbmUG2YgV/PHITkO7p6wxEEj/v5nlsVWIwumwH2NI=
+github.com/google/go-tpm v0.3.0/go.mod h1:iVLWvrPp/bHeEkxTFi9WG6K9w0iy2yIszHwZGHPbzAw=
+github.com/google/go-tpm v0.3.2/go.mod h1:j71sMBTfp3X5jPHz852ZOfQMUOf65Gb/Th8pRmp7fvg=
+github.com/google/go-tpm v0.3.3 h1:P/ZFNBZYXRxc+z7i5uyd8VP7MaDteuLZInzrH2idRGo=
+github.com/google/go-tpm v0.3.3/go.mod h1:9Hyn3rgnzWF9XBWVk6ml6A6hNkbWjNFlDQL51BeghL4=
+github.com/google/go-tpm-tools v0.0.0-20190906225433-1614c142f845/go.mod h1:AVfHadzbdzHo54inR2x1v640jdi1YSi3NauM2DUsxk0=
+github.com/google/go-tpm-tools v0.2.0/go.mod h1:npUd03rQ60lxN7tzeBJreG38RvWwme2N1reF/eeiBk4=
+github.com/google/go-tpm-tools v0.2.1/go.mod h1:npUd03rQ60lxN7tzeBJreG38RvWwme2N1reF/eeiBk4=
+github.com/google/go-tpm-tools v0.3.1/go.mod h1:PSg+r5hSZI5tP3X7LBQx2sW1VSZUqZHBSrKyDqrB21U=
+github.com/google/go-tpm-tools v0.3.5 h1:gcjAoa/iK98ybY41Icn2zkGlJLhVg44nOmI6fFju5IY=
+github.com/google/go-tpm-tools v0.3.5/go.mod h1:qfHzQi877eMFmaOWngbcJPz5IOASSHmgeMWvT00aYyA=
+github.com/google/go-tspi v0.2.1-0.20190423175329-115dea689aad h1:LnpS22S8V1HqbxjveESGAazHhi6BX9SwI2Rij7qZcXQ=
+github.com/google/go-tspi v0.2.1-0.20190423175329-115dea689aad/go.mod h1:xfMGI3G0PhxCdNVcYr1C4C+EizojDg/TXuX5by8CiHI=
+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
+github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
+github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo=
+github.com/google/licenseclassifier v0.0.0-20210325184830-bb04aff29e72/go.mod h1:qsqn2hxC+vURpyBRygGUuinTO42MFRLcsmQ/P8v94+M=
+github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+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/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+github.com/google/nftables v0.0.0-20190906062827-5d14089d2edc/go.mod h1:DfTD7lq9Gq5pLrgCmJDbGtrcWF/h7i5XWgEC/6bQu0s=
+github.com/google/nftables v0.0.0-20200316075819-7127d9d22474/go.mod h1:cfspEyr/Ap+JDIITA+N9a0ernqG0qZ4W1aqMRgDZa1g=
+github.com/google/nftables v0.0.0-20220221214239-211824995dcb h1:UpwO4s4fHzquJ3SjQpZhcg1fga6RA4PsrKBGOj/ilvg=
+github.com/google/nftables v0.0.0-20220221214239-211824995dcb/go.mod h1:0F8on3JWMkm+xahTHItkiu/E1SPqMd0TOxNweQv8ptE=
+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-20200507031123-427632fa3b1c/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/pprof v0.0.0-20210423192551-a2663126120b/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/rpmpack v0.0.0-20191226140753-aa36bfddb3a0/go.mod h1:RaTPr0KUf2K7fnZYLNDrr8rxAamWs3iNywJLtQ2AzBg=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
+github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
+github.com/google/subcommands v1.0.2-0.20190508160503-636abe8753b8 h1:8nlgEAjIalk6uj/CGKCdOO8CQqTeysvcW4RFZ6HbkGM=
+github.com/google/subcommands v1.0.2-0.20190508160503-636abe8753b8/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
+github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw=
+github.com/google/trillian v1.3.14-0.20210409160123-c5ea3abd4a41/go.mod h1:1dPv0CUjNQVFEDuAUFhZql16pw/VlPgaX8qj+g5pVzQ=
+github.com/google/trillian v1.3.14-0.20210511103300-67b5f349eefa/go.mod h1:s4jO3Ai4NSvxucdvqUHON0bCqJyoya32eNw6XJwsmNc=
+github.com/google/trillian v1.4.0/go.mod h1:1Bja2nEgMDlEJWWRXBUemSPG9qYw84ZYX2gHRVHlR+g=
+github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
+github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s=
+github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
+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/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
+github.com/googleapis/gax-go/v2 v2.1.1 h1:dp3bWCh+PPO1zjRRiCSczJav13sBvG4UhNyVTa1KqdU=
+github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
+github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
+github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
+github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=
+github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
+github.com/gophercloud/gophercloud v0.1.0 h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o=
+github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gordonklaus/ineffassign v0.0.0-20190601041439-ed7b1b5ee0f8/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU=
+github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU=
+github.com/goreleaser/goreleaser v0.134.0/go.mod h1:ZT6Y2rSYa6NxQzIsdfWWNWAlYGXGbreo66NmE+3X3WQ=
+github.com/goreleaser/nfpm v1.2.1/go.mod h1:TtWrABZozuLOttX2uDlYyECfQX7x5XYkVxhjYcR6G9w=
+github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
+github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
+github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
+github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
+github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
+github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
+github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
+github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
+github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM=
+github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
+github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
+github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
+github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
+github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
+github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c=
+github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
+github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
+github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
+github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
+github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
+github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
+github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
+github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
+github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
+github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+github.com/hashicorp/errwrap v1.1.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-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
+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 v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I=
+github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
+github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
+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-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
+github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
+github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+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/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
+github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+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/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o=
+github.com/heketi/heketi v10.3.0+incompatible h1:X4DBFPzcyWZWhia32d94UhDECQJHH0M5kpRb1gxxUHk=
+github.com/heketi/heketi v10.3.0+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o=
+github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6 h1:oJ/NLadJn5HoxvonA6VxG31lg0d6XOURNA09BTtM4fY=
+github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
+github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
+github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
+github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714/go.mod h1:2Goc3h8EklBH5mspfHFxBnEoURQCGzQQH1ga9Myjvis=
+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/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
+github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
+github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
+github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
+github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
+github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
+github.com/infobloxopen/go-trees v0.0.0-20200715205103-96a057b8dfb9 h1:w66aaP3c6SIQ0pi3QH1Tb4AMO3aWoEPxd1CNvLphbkA=
+github.com/infobloxopen/go-trees v0.0.0-20200715205103-96a057b8dfb9/go.mod h1:BaIJzjD2ZnHmx2acPF6XfGLPzNCMiBbMRqJr+8/8uRI=
+github.com/insomniacslk/dhcp v0.0.0-20220119180841-3c283ff8b7dd h1:efcJu2Vzz6DoSq245deWNzTz6l/gsqdphm3FjmI88/g=
+github.com/insomniacslk/dhcp v0.0.0-20220119180841-3c283ff8b7dd/go.mod h1:h+MxyHxRg9NH3terB1nfRIUaQEcI0XOVkdR9LNBlp8E=
+github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ=
+github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8=
+github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
+github.com/j-keck/arping v1.0.2 h1:hlLhuXgQkzIJTZuhMigvG/CuSkaspeaD9hRDk2zuiMI=
+github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw=
+github.com/jarcoal/httpmock v1.0.5/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT8nX0Txik=
+github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
+github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
+github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
+github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
+github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
+github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc=
+github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
+github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
+github.com/jgautheron/goconst v0.0.0-20170703170152-9740945f5dcb/go.mod h1:82TxjOpWQiPmywlbIaB2ZkqJoSYJdLGPgAJDvM3PbKc=
+github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4=
+github.com/jhump/protoreflect v1.8.2/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
+github.com/jhump/protoreflect v1.9.0/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
+github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8=
+github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
+github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
+github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
+github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8=
+github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
+github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg=
+github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
+github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
+github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
+github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/josharian/native v0.0.0-20200817173448-b6b71def0850/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
+github.com/josharian/native v1.0.0 h1:Ts/E8zCSEsG17dUqv7joXJFybuMLjQfWE04tsBODTxk=
+github.com/josharian/native v1.0.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
+github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=
+github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
+github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
+github.com/jsimonetti/rtnetlink v0.0.0-20190830100107-3784a6c7c552/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
+github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ=
+github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok=
+github.com/jsimonetti/rtnetlink v0.0.0-20201110080708-d2c240429e6c/go.mod h1:huN4d1phzjhlOsNIjFsw2SVRbwIHj3fJDMEU2SDPTmg=
+github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod h1:cR77jAZG3Y3bsb8hF6fHJbFoyFukLFOkQ98S0pQz3xw=
+github.com/jsimonetti/rtnetlink v0.0.0-20201220180245-69540ac93943/go.mod h1:z4c53zj6Eex712ROyh8WI0ihysb5j2ROyV42iNogmAs=
+github.com/jsimonetti/rtnetlink v0.0.0-20210122163228-8d122574c736/go.mod h1:ZXpIyOK59ZnN7J0BV99cZUPmsqDRZ3eq5X+st7u/oSA=
+github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b/go.mod h1:8w9Rh8m+aHZIG69YPGGem1i5VzoyRC8nw2kA8B+ik5U=
+github.com/jsimonetti/rtnetlink v0.0.0-20210525051524-4cc836578190/go.mod h1:NmKSdU4VGSiv1bMsdqNALI4RSvvjtz65tTMCnD05qLo=
+github.com/jsimonetti/rtnetlink v0.0.0-20211022192332-93da33804786/go.mod h1:v4hqbTdfQngbVSZJVWUhGE/lbTFf9jb+ygmNUDQMuOs=
+github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
+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/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
+github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
+github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
+github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
+github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
+github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
+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/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
+github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
+github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
+github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
+github.com/koneu/natend v0.0.0-20150829182554-ec0926ea948d/go.mod h1:QHb4k4cr1fQikUahfcRVPcEXiUgFsdIstGqlurL0XL4=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
+github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=
+github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw=
+github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag=
+github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
+github.com/libopenstorage/openstorage v1.0.0 h1:GLPam7/0mpdP8ZZtKjbfcXJBTIA/T1O6CBErVEFEyIM=
+github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc=
+github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
+github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
+github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
+github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
+github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo=
+github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY=
+github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
+github.com/lpabon/godbc v0.1.1 h1:ilqjArN1UOENJJdM34I2YHKmF/B0gGq4VLoSGy9iAao=
+github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA=
+github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04=
+github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk=
+github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao=
+github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=
+github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
+github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
+github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
+github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho=
+github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=
+github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
+github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
+github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
+github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
+github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
+github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
+github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
+github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
+github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
+github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
+github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=
+github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
+github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
+github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
+github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
+github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
+github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk=
+github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
+github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
+github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY=
+github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7 h1:lez6TS6aAau+8wXUP3G9I3TGlmPFEq2CTxBaRqY6AGE=
+github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y=
+github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo=
+github.com/mdlayher/ethtool v0.0.0-20211028163843-288d040e9d60/go.mod h1:aYbhishWc4Ai3I2U4Gaa2n3kHWSwzme6EsG/46HRQbE=
+github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
+github.com/mdlayher/genetlink v1.2.0 h1:4yrIkRV5Wfk1WfpWTcoOlGmsWgQj3OtQN9ZsbrE+XtU=
+github.com/mdlayher/genetlink v1.2.0/go.mod h1:ra5LDov2KrUCZJiAtEvXXZBxGMInICMXIwshlJ+qRxQ=
+github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
+github.com/mdlayher/netlink v0.0.0-20190516121005-0087c778e469/go.mod h1:gOrA34zDL0K3RsACQe54bDYLF/CeFspQ9m5DOycycQ8=
+github.com/mdlayher/netlink v0.0.0-20190828143259-340058475d09/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
+github.com/mdlayher/netlink v0.0.0-20191009155606-de872b0d824b/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
+github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
+github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY=
+github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o=
+github.com/mdlayher/netlink v1.2.0/go.mod h1:kwVW1io0AZy9A1E2YYgaD4Cj+C+GPkU6klXCMzIJ9p8=
+github.com/mdlayher/netlink v1.2.1/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
+github.com/mdlayher/netlink v1.2.2-0.20210123213345-5cc92139ae3e/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
+github.com/mdlayher/netlink v1.3.0/go.mod h1:xK/BssKuwcRXHrtN04UBkwQ6dY9VviGGuriDdoPSWys=
+github.com/mdlayher/netlink v1.4.0/go.mod h1:dRJi5IABcZpBD2A3D0Mv/AiX8I9uDEu5oGkAVrekmf8=
+github.com/mdlayher/netlink v1.4.1/go.mod h1:e4/KuJ+s8UhfUpO9z00/fDZZmhSrs+oxyqAS9cNgn6Q=
+github.com/mdlayher/netlink v1.4.2/go.mod h1:13VaingaArGUTUxFLf/iEovKxXji32JAtF858jZYEug=
+github.com/mdlayher/netlink v1.6.0 h1:rOHX5yl7qnlpiVkFWoqccueppMtXzeziFjWAjLg6sz0=
+github.com/mdlayher/netlink v1.6.0/go.mod h1:0o3PlBmGst1xve7wQ7j/hwpNaFaH4qCRyWCdcZk8/vA=
+github.com/mdlayher/packet v0.0.0-20220221164757-67998ac0ff93 h1:elUwhY+HQaIV9kMgmsU9zOF413pDKoo2uFNypgP5SxM=
+github.com/mdlayher/packet v0.0.0-20220221164757-67998ac0ff93/go.mod h1:K9sWKMgN6wa78BbuJL+dT1ZZdiAfhkc2fb6XXLjHulk=
+github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
+github.com/mdlayher/raw v0.0.0-20191009151244-50f2db8cc065/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
+github.com/mdlayher/raw v0.1.0 h1:K4PFMVy+AFsp0Zdlrts7yNhxc/uXoPVHi9RzRvtZF2Y=
+github.com/mdlayher/raw v0.1.0/go.mod h1:yXnxvs6c0XoF/aK52/H5PjsVHmWBCFfZUfoh/Y5s9Sg=
+github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00/go.mod h1:GAFlyu4/XV68LkQKYzKhIo/WW7j3Zi0YRAz/BOoanUc=
+github.com/mdlayher/socket v0.0.0-20211007213009-516dcbdf0267/go.mod h1:nFZ1EtZYK8Gi/k6QNu7z7CgO20i/4ExeQswwWuPmG/g=
+github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb/go.mod h1:nFZ1EtZYK8Gi/k6QNu7z7CgO20i/4ExeQswwWuPmG/g=
+github.com/mdlayher/socket v0.1.1/go.mod h1:mYV5YIZAfHh4dzDVzI8x8tWLWCliuX8Mon5Awbj+qDs=
+github.com/mdlayher/socket v0.2.1 h1:F2aaOwb53VsBE+ebRS9bLd7yPOfYUMC8lOODdCBDY6w=
+github.com/mdlayher/socket v0.2.1/go.mod h1:QLlNPkFR88mRUNQIzRBMfXxwKal8H7u1h3bL1CV+f0E=
+github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
+github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY=
+github.com/mibk/dupl v1.0.0/go.mod h1:pCr4pNxxIbFGvtyCOi0c7LVjmV6duhKWV+ex5vh38ME=
+github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
+github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
+github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
+github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
+github.com/miekg/dns v1.1.46 h1:uzwpxRtSVxtcIZmz/4Uz6/Rn7G11DvsaslXoy5LxQio=
+github.com/miekg/dns v1.1.46/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
+github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
+github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
+github.com/mikioh/ipaddr v0.0.0-20190404000644-d465c8ab6721 h1:RlZweED6sbSArvlE924+mUcZuXKLBHA35U7LN621Bws=
+github.com/mikioh/ipaddr v0.0.0-20190404000644-d465c8ab6721/go.mod h1:Ickgr2WtCLZ2MDGd4Gr0geeCH5HybhRJbonOgQpvSxc=
+github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989 h1:PS1dLCGtD8bb9RPKJrc8bS7qHL6JnW1CZvwzH9dPoUs=
+github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY=
+github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk=
+github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
+github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
+github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
+github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
+github.com/mitchellh/go-homedir v1.1.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/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=
+github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
+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/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
+github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
+github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
+github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ=
+github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
+github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
+github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
+github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
+github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
+github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
+github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
+github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI=
+github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU=
+github.com/moby/sys/signal v0.6.0 h1:aDpY94H8VlhTGa9sNYUFCFsMZIUh5wm0B6XkIoJj/iY=
+github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg=
+github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ=
+github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs=
+github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc=
+github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A=
+github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc=
+github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/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/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
+github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
+github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
+github.com/monogon-dev/ttrpc v1.0.2-0.20210119122237-222b428f008e h1:+Fbjfo26pg4HtkAw9sC/YhUwaAb16355o/J/oHkyCDc=
+github.com/monogon-dev/ttrpc v1.0.2-0.20210119122237-222b428f008e/go.mod h1:g04xY+y0I7btWLP6tHhnQOci4GimvhUo57XUf0410Ww=
+github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
+github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
+github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
+github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
+github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
+github.com/muesli/reflow v0.0.0-20191128061954-86f094cbed14 h1:99aDTygRy9yEwggATz+ZLrDFRsjRog5BqbAfsr47Ztw=
+github.com/muesli/reflow v0.0.0-20191128061954-86f094cbed14/go.mod h1:ElDHwEb2eq5uzeCdCvT9KyrqcAfLcQg7VCL7r7JXdcc=
+github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/mwitkow/go-proto-validators v0.3.2/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA7a5VarXUOUxD+oeD30w=
+github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
+github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
+github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=
+github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
+github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
+github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
+github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
+github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
+github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
+github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
+github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
+github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ=
+github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso=
+github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
+github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
+github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
+github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
+github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
+github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
+github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
+github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ=
+github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA=
+github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/onsi/ginkgo v1.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M=
+github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
+github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
+github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
+github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
+github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c=
+github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
+github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
+github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
+github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
+github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
+github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
+github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
+github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
+github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
+github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
+github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
+github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
+github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
+github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
+github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
+github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
+github.com/opencontainers/runc v1.0.0-rc92/go.mod h1:X1zlU4p7wOlX4+WRCz+hvlRv8phdL7UqbYD+vQwNMmE=
+github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
+github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
+github.com/opencontainers/runc v1.1.0 h1:O9+X96OcDjkmmZyfaG996kV7yq8HsoU2h1XRRQcefG8=
+github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc=
+github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-spec v1.0.3-0.20211123151946-c2389c3cb60a h1:9iT75RHhYHWwWRlVWU7wnmtFulYcURCglzQOpT+cAF8=
+github.com/opencontainers/runtime-spec v1.0.3-0.20211123151946-c2389c3cb60a/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
+github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs=
+github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
+github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo=
+github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8=
+github.com/opencontainers/selinux v1.10.0 h1:rAiKF8hTcgLI3w0DHm6i0ylVVcOrlgR1kK99DRLDhyU=
+github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
+github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU=
+github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
+github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
+github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
+github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
+github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
+github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
+github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU=
+github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
+github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
+github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
+github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
+github.com/openzipkin/zipkin-go v0.4.0 h1:CtfRrOVZtbDj8rt1WXjklw0kqqJQwICrCKmlfUuBUUw=
+github.com/openzipkin/zipkin-go v0.4.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ=
+github.com/oschwald/geoip2-golang v1.6.1 h1:GKxT3yaWWNXSb7vj6D7eoJBns+lGYgx08QO0UcNm0YY=
+github.com/oschwald/geoip2-golang v1.6.1/go.mod h1:xdvYt5xQzB8ORWFqPnqMwZpCpgNagttWdoZLlJQzg7s=
+github.com/oschwald/maxminddb-golang v1.8.0 h1:Uh/DSnGoxsyp/KYbY1AuP0tYEwfs0sCph9p/UMXK/Hk=
+github.com/oschwald/maxminddb-golang v1.8.0/go.mod h1:RXZtst0N6+FY/3qCNmZMBApR19cdQj43/NM9VkrNAis=
+github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
+github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
+github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs=
+github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
+github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
+github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
+github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
+github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
+github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo=
+github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
+github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
+github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
+github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
+github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
+github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ=
+github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
+github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
+github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
+github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pierrec/lz4/v4 v4.1.14 h1:+fL8AQEZtz/ijeNnpduH0bROTu0O3NZAlPjQxGn8LwE=
+github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
+github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
+github.com/pkg/xattr v0.4.1 h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw=
+github.com/pkg/xattr v0.4.1/go.mod h1:W2cGD0TBEus7MkUgv0tNZ9JutLtVO3cXu+IBRuHqnFs=
+github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+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/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM=
+github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
+github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
+github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
+github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
+github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
+github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
+github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
+github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
+github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU=
+github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
+github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
+github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
+github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
+github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
+github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
+github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
+github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
+github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
+github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
+github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
+github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
+github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
+github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
+github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
+github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
+github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA=
+github.com/pseudomuto/protoc-gen-doc v1.4.1/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr2sn6hBC1WIYH/UbIg=
+github.com/pseudomuto/protoc-gen-doc v1.5.0/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr2sn6hBC1WIYH/UbIg=
+github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q=
+github.com/quobyte/api v0.1.8 h1:+sOX1gIlC/OaLipqVZWrHgly9Kh9Qo8OygeS0mWAg30=
+github.com/quobyte/api v0.1.8/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI=
+github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM=
+github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/rekby/gpt v0.0.0-20200614112001-7da10aec5566 h1:U4d0m0NdADC5sjaWXeZpDZ/TFvE866u1Js5yP3M3mho=
+github.com/rekby/gpt v0.0.0-20200614112001-7da10aec5566/go.mod h1:scrOqOnnHVKCHENvFw8k9ajCb88uqLQDA4BvuJNJ2ew=
+github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
+github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
+github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
+github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
+github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
+github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
+github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
+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/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
+github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM=
+github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021 h1:if3/24+h9Sq6eDx8UUz1SO9cT9tizyIsATfB7b4D3tc=
+github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto=
+github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=
+github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
+github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
+github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
+github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ=
+github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
+github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
+github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b/go.mod h1:am+Fp8Bt506lA3Rk3QCmSqmYmLMnPDhdDUcosQCAx+I=
+github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
+github.com/sbezverk/nfproxy v0.0.0-20210112155058-0d98b4a69f0c h1:nlKDckTP5mXfdpUST7l4cU6fGzMlkv/CVg+EVOsClS8=
+github.com/sbezverk/nfproxy v0.0.0-20210112155058-0d98b4a69f0c/go.mod h1:GjbltZ/ijINkRu8WructOUgK6C9AxHw80EEIiy9l/QM=
+github.com/sbezverk/nftableslib v0.0.0-20191009195911-d7d699cf636c/go.mod h1:AljQ9u3mGnCGUGz5yYo66Nu997KTqu46+OFl/fWGRFU=
+github.com/sbezverk/nftableslib v0.0.0-20210111145735-b08b2d804e1f h1:Zi8wDJAUmUYqWX6A9ma84xOhFvwR7O10K7pvISM+SvM=
+github.com/sbezverk/nftableslib v0.0.0-20210111145735-b08b2d804e1f/go.mod h1:jmryJqKeeoqvuDl2M2NJ1FzPhdJYQflMsrL5qgEnNSg=
+github.com/sbezverk/nftableslib/e2e/setenv v0.0.0-20191009154549-4fe065fe4e96/go.mod h1:eg/8FSK3bdB2DJRB5Cs8oIXtqYtF/KbMRwyuaZ13SG4=
+github.com/sbezverk/nftableslib/e2e/setenv v0.0.0-20191010164456-029e0d78cdb1/go.mod h1:Q7cQRSoGvFdscKripABhD9LwzMPI7nyH/W19KStrNEE=
+github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U=
+github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
+github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921 h1:58EBmR2dMNL2n/FnbQewK3D14nXr0V9CObDSvMJLq+Y=
+github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
+github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
+github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
+github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
+github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
+github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
+github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
+github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
+github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
+github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
+github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=
+github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs=
+github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
+github.com/soheilhy/cmux v0.1.5-0.20210205191134-5ec6847320e5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
+github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
+github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
+github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
+github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
+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.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
+github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
+github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
+github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
+github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
+github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
+github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
+github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
+github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
+github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
+github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+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.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
+github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
+github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
+github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
+github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=
+github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8=
+github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=
+github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
+github.com/storageos/go-api v2.2.0+incompatible h1:U0SablXoZIg06gvSlg8BCdzq1C/SkHVygOVX95Z2MU0=
+github.com/storageos/go-api v2.2.0+incompatible/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY=
+github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
+github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
+github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
+github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
+github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
+github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+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/stripe/safesql v0.2.0/go.mod h1:q7b2n0JmzM1mVGfcYpanfVb2j23cXZeWFxcILPn3JV4=
+github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
+github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
+github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
+github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
+github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
+github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
+github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM=
+github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/tinylib/msgp v1.1.2 h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ=
+github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
+github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
+github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=
+github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=
+github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4=
+github.com/tsenart/deadcode v0.0.0-20160724212837-210d2dc333e9/go.mod h1:q+QjxYvZ+fpjMXqs+XEriussHjSYqeXVnAdSV1tkMYk=
+github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
+github.com/u-root/uio v0.0.0-20210528114334-82958018845c h1:BFvcl34IGnw8yvJi8hlqLFo9EshRInwWBs2M5fGWzQA=
+github.com/u-root/uio v0.0.0-20210528114334-82958018845c/go.mod h1:LpEX5FO/cB+WF4TYGY1V5qktpaZLkKkSegbr0V4eYXA=
+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
+github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
+github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
+github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
+github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8=
+github.com/ulikunitz/xz v0.5.7 h1:YvTNdFzX6+W5m9msiYg/zpkSURPPtOlzbqYjrFn7Yt4=
+github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
+github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
+github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
+github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
+github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
+github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA=
+github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
+github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
+github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc=
+github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
+github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
+github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
+github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
+github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
+github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
+github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA=
+github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
+github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
+github.com/vishvananda/netns v0.0.0-20190625233234-7109fa855b0f/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
+github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
+github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
+github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
+github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 h1:gga7acRE695APm9hlsSMoOoE65U4/TcqNj90mc69Rlg=
+github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
+github.com/vmware/govmomi v0.20.3 h1:gpw/0Ku+6RgF3jsi7fnCLmlcikBHfKBCUcu1qgc16OU=
+github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
+github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
+github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
+github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug=
+github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
+github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
+github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
+github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
+github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
+github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
+github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
+github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
+github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
+github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
+github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
+github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
+github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+github.com/yalue/native_endian v1.0.2 h1:e4SxBbaCoOOO4E3axd7FSriUhzc1bIzqZGG5jl6Evbg=
+github.com/yalue/native_endian v1.0.2/go.mod h1:cr+I2WnCwDkkPV0DvgBpGQkJV12CDWR5bAoMtT+56iE=
+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=
+github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
+github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
+github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
+go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
+go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
+go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=
+go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
+go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
+go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k=
+go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
+go.etcd.io/etcd/api/v3 v3.5.0-alpha.0/go.mod h1:mPcW6aZJukV6Aa81LSKpBjQXTWlXB5r74ymPoSWa3Sw=
+go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
+go.etcd.io/etcd/api/v3 v3.5.2 h1:tXok5yLlKyuQ/SXSjtqHc4uzNaMqZi2XsoSPr/LlJXI=
+go.etcd.io/etcd/api/v3 v3.5.2/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A=
+go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
+go.etcd.io/etcd/client/pkg/v3 v3.5.2 h1:4hzqQ6hIb3blLyQ8usCU4h3NghkqcsohEQ3o3VetYxE=
+go.etcd.io/etcd/client/pkg/v3 v3.5.2/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
+go.etcd.io/etcd/client/v2 v2.305.0-alpha.0/go.mod h1:kdV+xzCJ3luEBSIeQyB/OEKkWKd8Zkux4sbDeANrosU=
+go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
+go.etcd.io/etcd/client/v2 v2.305.2 h1:ymrVwTkefuqA/rPkSW7/B4ApijbPVefRumkY+stNfS0=
+go.etcd.io/etcd/client/v2 v2.305.2/go.mod h1:2D7ZejHVMIfog1221iLSYlQRzrtECw3kz4I4VAQm3qI=
+go.etcd.io/etcd/client/v3 v3.5.0-alpha.0/go.mod h1:wKt7jgDgf/OfKiYmCq5WFGxOFAkVMLxiiXgLDFhECr8=
+go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
+go.etcd.io/etcd/client/v3 v3.5.2 h1:WdnejrUtQC4nCxK0/dLTMqKOB+U5TP/2Ya0BJL+1otA=
+go.etcd.io/etcd/client/v3 v3.5.2/go.mod h1:kOOaWFFgHygyT0WlSmL8TJiXmMysO/nNUlEsSsN6W4o=
+go.etcd.io/etcd/etcdctl/v3 v3.5.0-alpha.0/go.mod h1:YPwSaBciV5G6Gpt435AasAG3ROetZsKNUzibRa/++oo=
+go.etcd.io/etcd/etcdctl/v3 v3.5.0/go.mod h1:vGTfKdsh87RI7kA2JHFBEGxjQEYx+pi299wqEOdi34M=
+go.etcd.io/etcd/etcdutl/v3 v3.5.0/go.mod h1:o98rKMCibbFAG8QS9KmvlYDGDShmmIbmRE8vSofzYNg=
+go.etcd.io/etcd/etcdutl/v3 v3.5.2/go.mod h1:f+KEUNxRzqQGq1Y/SsaDN5cmlOGRWgfE3lXEDi5F1Ys=
+go.etcd.io/etcd/pkg/v3 v3.5.0-alpha.0/go.mod h1:tV31atvwzcybuqejDoY3oaNRTtlD2l/Ot78Pc9w7DMY=
+go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE=
+go.etcd.io/etcd/pkg/v3 v3.5.2 h1:YZUojdoPhOyl5QILYnR8LTUbbNefu/sV4ma+ZMr2tto=
+go.etcd.io/etcd/pkg/v3 v3.5.2/go.mod h1:zsXz+9D/kijzRiG/UnFGDTyHKcVp0orwiO8iMLAi+k0=
+go.etcd.io/etcd/raft/v3 v3.5.0-alpha.0/go.mod h1:FAwse6Zlm5v4tEWZaTjmNhe17Int4Oxbu7+2r0DiD3w=
+go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
+go.etcd.io/etcd/raft/v3 v3.5.2 h1:uCC37qOXqBvKqTGHGyhASsaCsnTuJugl1GvneJNwHWo=
+go.etcd.io/etcd/raft/v3 v3.5.2/go.mod h1:G6pCP1sFgbjod7/KnEHY0vHUViqxjkdt6AiKsD0GRr8=
+go.etcd.io/etcd/server/v3 v3.5.0-alpha.0/go.mod h1:tsKetYpt980ZTpzl/gb+UOJj9RkIyCb1u4wjzMg90BQ=
+go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4=
+go.etcd.io/etcd/server/v3 v3.5.2 h1:B6ytJvS4Fmt8nkjzS2/8POf4tuPhFMluE0lWd4dx/7U=
+go.etcd.io/etcd/server/v3 v3.5.2/go.mod h1:mlG8znIEz4N/28GABrohZCBM11FqgGVQcpbcyJgh0j0=
+go.etcd.io/etcd/tests/v3 v3.5.0-alpha.0/go.mod h1:HnrHxjyCuZ8YDt8PYVyQQ5d1ZQfzJVEtQWllr5Vp/30=
+go.etcd.io/etcd/tests/v3 v3.5.0/go.mod h1:f+mtZ1bE1YPvgKdOJV2BKy4JQW0nAFnQehgOE7+WyJE=
+go.etcd.io/etcd/tests/v3 v3.5.2 h1:uk7/uMGVebpBDl+roivowHt6gJ5Fnqwik3syDkoSKdo=
+go.etcd.io/etcd/tests/v3 v3.5.2/go.mod h1:Jdzbei4uFi9C3xDBfCwckRXjlX0UPooiP4g/zXgBMgQ=
+go.etcd.io/etcd/v3 v3.5.0-alpha.0/go.mod h1:JZ79d3LV6NUfPjUxXrpiFAYcjhT+06qqw+i28snx8To=
+go.etcd.io/etcd/v3 v3.5.0/go.mod h1:FldM0/VzcxYWLvWx1sdA7ghKw7C3L2DvUTzGrcEtsC4=
+go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
+go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
+go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
+go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk=
+go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0=
+go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
+go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
+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.22.6/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
+go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=
+go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 h1:sO4WKdPAudZGKPcpZT4MJn6JaDmpyLrMPDGGyA1SttE=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 h1:Q3C9yzW6I9jqEc8sawxzxZmY48fs9u220KXq6d5s3XU=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
+go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g=
+go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
+go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg=
+go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE=
+go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8=
+go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
+go.opentelemetry.io/otel/oteltest v0.20.0 h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw=
+go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
+go.opentelemetry.io/otel/sdk v0.20.0 h1:JsxtGXd06J8jrnya7fdI/U/MR6yXA5DtbZy+qoHQlr8=
+go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
+go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g=
+go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
+go.opentelemetry.io/otel/sdk/metric v0.20.0 h1:7ao1wpzHRVKf0OQ7GIxiQJA6X7DLX9o14gmVon7mMK8=
+go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
+go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw=
+go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
+go.opentelemetry.io/proto/otlp v0.7.0 h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8=
+go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
+go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o=
+go.starlark.net v0.0.0-20200821142938-949cc6f4b097 h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=
+go.starlark.net v0.0.0-20200821142938-949cc6f4b097/go.mod h1:f0znQkUKRrkk36XxWbGjMqQM8wGv/xHBVE2qc3B5oFU=
+go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
+go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
+go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
+go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
+go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
+go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
+go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
+go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
+go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
+go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
+go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
+go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
+go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
+go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
+gocloud.dev v0.19.0/go.mod h1:SmKwiR8YwIMMJvQBKLsC3fHNyMwXLw3PMDO+VVteJMI=
+golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=
+golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4=
+golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+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-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220208050332-20e1d8d225ab h1:lnZ4LoV0UMdibeCUfIB2a4uFwRu491WX/VB2reB8xNc=
+golang.org/x/crypto v0.0.0-20220208050332-20e1d8d225ab/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/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-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4=
+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/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
+golang.org/x/exp v0.0.0-20210220032938-85be41e4509f h1:GrkO5AtFUU9U/1f5ctbIBXtBGeSJbWwIYfIsTcFMaX4=
+golang.org/x/exp v0.0.0-20210220032938-85be41e4509f/go.mod h1:I6l2HNBLBZEcrOoCpyKLdY2lHoRZ8lI4x60KMCQDft4=
+golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
+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/mobile v0.0.0-20201217150744-e6ae53a27f4f/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4=
+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.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+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.3.1-0.20200828183125-ce943fd02449/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/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
+golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
+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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/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-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/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-20181220203305-927f97764cc3/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-20190125091013-d26f9f9a57f3/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-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190419010253-1f3472d942ba/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-20190509222800-a4d6f7feada5/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+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-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191119073136-fc4aabc6c914/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-20200421231249-e086a090c8fd/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-20200520004742-59133d7f0dd7/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-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+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-20201202161906-c7110b5ffcbb/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-20201216054612-986b41b23924/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-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
+golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211111083644-e5c967477495/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
+golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/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-20190402181905-9f3314589c9a/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-20210126194326-f9ce19ea3013/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/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=
+golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/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-20190412183630-56d357773e84/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 h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
+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-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181021155630-eda9bb28ed51/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-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190209173611-3b5209105503/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-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/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-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190422165155-953cdadca894/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-20190509141414-a5b02f93d862/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606122018-79a91cf218c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191119060738-e882bf8e40c2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191224085550-c709ea063b76/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/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-20200217220822-9197077df867/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-20200420163511-1957bb5e6d1f/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-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/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-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/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-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210316092937-0b90fd5c4c48/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210324051608-47abb6519492/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-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/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-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210603125802-9665404d3644/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-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220207234003-57398862261d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng=
+golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+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 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+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/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 h1:GZokNIeuVkl3aZHJchRrr13WCsols02MLUcz1U9is6M=
+golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/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-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/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-20190422233926-fe54fb35175b/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-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190617190820-da514acc4774/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-20190624222133-a101b041ded4/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-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
+golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
+golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20190903025054-afe7f8212f0d/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-20191010075000-0337d82405ff/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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/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-20191118222007-07fc4c7f2b98/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-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+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-20200102200121-6de373a2766c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/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-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/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-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/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-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200630154851-b2d8b0336632/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200706234117-b22de6825cf7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+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-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
+golang.org/x/tools v0.0.0-20201014170642-d1624618ad65/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
+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.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM=
+golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
+golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
+golang.org/x/tools v0.1.9 h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8=
+golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
+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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.zx2c4.com/go118/netip v0.0.0-20211111135330-a4a02eeacf9d/go.mod h1:5yyfuiqVIJ7t+3MqrpTQ+QqRkMWiESiyDvPNvKYCecg=
+golang.zx2c4.com/wintun v0.0.0-20211104114900-415007cec224/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI=
+golang.zx2c4.com/wireguard v0.0.0-20220202223031-3b95c81cc178 h1:Nrf94TOjrvW8nm6N3u2xtbnMZaZudNI9b8nIJH8p8qY=
+golang.zx2c4.com/wireguard v0.0.0-20220202223031-3b95c81cc178/go.mod h1:TjUWrnD5ATh7bFvmm/ALEJZQ4ivKbETb6pmyj1vUoNI=
+golang.zx2c4.com/wireguard/wgctrl v0.0.0-20220208144051-fde48d68ee68 h1:9c4/JVIQUc2qCJEEIiGIs3HmmnFjhPj4qHW4+Uj+u3U=
+golang.zx2c4.com/wireguard/wgctrl v0.0.0-20220208144051-fde48d68ee68/go.mod h1:8P32Ilp1kCpwB4ItaHyvSk4xAtnpQ+8gQVfg5WaO1TU=
+gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
+gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
+gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
+gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
+gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
+gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
+gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
+google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
+google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
+google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4=
+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.10.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.15.1-0.20200106000736-b8fc810ca6b5/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.37.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
+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/api v0.45.0/go.mod h1:ISLIJCedJolbZvDfAk+Ctuq5hf+aJ33WgtUsfyFoLXA=
+google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I=
+google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
+google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
+google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
+google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
+google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
+google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
+google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
+google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
+google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
+google.golang.org/api v0.70.0 h1:67zQnAE0T2rB0A3CwLSas0K+SbVzSxP+zTLkQLexeiw=
+google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+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.2/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 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
+google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk=
+google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/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-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
+google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
+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-20190927181202-20e1ac93f88c/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-20200423170343-7949de9c1215/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-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
+google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
+google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200707001353-8e8330bf89df/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/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-20201110150050-8816d57aaa9a/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-20210126160654-44e461bb6506/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-20210331142528-b7513248f0ba/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+google.golang.org/genproto v0.0.0-20210427215850-f767ed18ee4d/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
+google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
+google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c h1:TU4rFa5APdKTq0s6B7WTsH6Xmx0Knj86s6Biz56mErE=
+google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
+google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
+google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
+google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
+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.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
+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.32.0/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.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
+google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M=
+google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
+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.25.1-0.20200805231151-a709e31e5d12/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.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+gopkg.in/DataDog/dd-trace-go.v1 v1.36.2 h1:eDbrrRNAHY15yoftLKGMtgq0vuTXp897QEzAJh368jY=
+gopkg.in/DataDog/dd-trace-go.v1 v1.36.2/go.mod h1:Cv0Bzs/zTzzrUDSw8Q+q/vC+uwPD+R530npGo0lfiCE=
+gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
+gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
+gopkg.in/djherbis/times.v1 v1.2.0 h1:UCvDKl1L/fmBygl2Y7hubXCnY7t4Yj46ZrBFNUipFbM=
+gopkg.in/djherbis/times.v1 v1.2.0/go.mod h1:AQlg6unIsrsCEdQYhTzERy542dz6SFdQFZFv6mUY0P8=
+gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
+gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs=
+gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
+gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
+gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
+gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
+gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
+gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
+gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
+gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
+gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98=
+gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g=
+gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
+gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
+gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
+gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+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.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.6/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.3.0/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-20200615113413-eeeca48fe776/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=
+gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
+gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
+gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
+gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=
+gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
+gvisor.dev/gvisor v0.0.0-20220315202956-f1399ecf1672 h1:aXIFpjZYl3zv2rQyr4rSit5Uq0k7BVXC8lJaDa4Cg7M=
+gvisor.dev/gvisor v0.0.0-20220315202956-f1399ecf1672/go.mod h1:V4WNP2Uwtx69eOhvLDSQ734EaTJTaBI3P8KgRAlROsg=
+honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+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=
+honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
+honnef.co/go/tools v0.2.2/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
+k8s.io/api v0.23.4 h1:85gnfXQOWbJa1SiWGpE9EEtHs0UVvDyIsSMpEtl2D4E=
+k8s.io/api v0.23.4/go.mod h1:i77F4JfyNNrhOjZF7OwwNJS5Y1S9dpwvb9iYRYRczfI=
+k8s.io/apiextensions-apiserver v0.23.4 h1:AFDUEu/yEf0YnuZhqhIFhPLPhhcQQVuR1u3WCh0rveU=
+k8s.io/apiextensions-apiserver v0.23.4/go.mod h1:TWYAKymJx7nLMxWCgWm2RYGXHrGlVZnxIlGnvtfYu+g=
+k8s.io/apimachinery v0.23.4 h1:fhnuMd/xUL3Cjfl64j5ULKZ1/J9n8NuQEgNL+WXWfdM=
+k8s.io/apimachinery v0.23.4/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM=
+k8s.io/apiserver v0.23.4 h1:zNvQlG+C/ERjuUz4p7eY/0IWHaMixRSBoxgmyIdwo9Y=
+k8s.io/apiserver v0.23.4/go.mod h1:A6l/ZcNtxGfPSqbFDoxxOjEjSKBaQmE+UTveOmMkpNc=
+k8s.io/cli-runtime v0.23.4 h1:C3AFQmo4TK4dlVPLOI62gtHEHu0OfA2Cp4UVRZ1JXns=
+k8s.io/cli-runtime v0.23.4/go.mod h1:7KywUNTUibmHPqmpDFuRO1kc9RhsufHv2lkjCm2YZyM=
+k8s.io/client-go v0.23.4 h1:YVWvPeerA2gpUudLelvsolzH7c2sFoXXR5wM/sWqNFU=
+k8s.io/client-go v0.23.4/go.mod h1:PKnIL4pqLuvYUK1WU7RLTMYKPiIh7MYShLshtRY9cj0=
+k8s.io/cloud-provider v0.23.4 h1:Nx42V7+Vpaad3qZE031MpTfCDl3jeQrX6wuwieES/nc=
+k8s.io/cloud-provider v0.23.4/go.mod h1:+RFNcj7DczZJE250/l55hh4Be4tlHkNgdtmI4PzxhJ0=
+k8s.io/cluster-bootstrap v0.23.4 h1:tYz2h91tY1zcxMk3qMajcPgkixqvB4+uFrOiznlp7Fo=
+k8s.io/cluster-bootstrap v0.23.4/go.mod h1:H5UZ3a4ZvjyUIgTgW8VdnN1rm3DsRqhotqK9oDMHU1o=
+k8s.io/code-generator v0.23.4/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk=
+k8s.io/component-base v0.23.4 h1:SziYh48+QKxK+ykJ3Ejqd98XdZIseVBG7sBaNLPqy6M=
+k8s.io/component-base v0.23.4/go.mod h1:8o3Gg8i2vnUXGPOwciiYlkSaZT+p+7gA9Scoz8y4W4E=
+k8s.io/component-helpers v0.23.4 h1:zCLeBuo3Qs0BqtJu767RXJgs5S9ruFJZcbM1aD+cMmc=
+k8s.io/component-helpers v0.23.4/go.mod h1:1Pl7L4zukZ054ElzRbvmZ1FJIU8roBXFOeRFu8zipa4=
+k8s.io/controller-manager v0.23.4 h1:u3M3RI/Ppt0C8JDj8in60jWbRYihihK6h3H/I4ozWbE=
+k8s.io/controller-manager v0.23.4/go.mod h1:+ednTkO5Z25worecG5ORa7NssZT0cpuVunVHN+24Ccs=
+k8s.io/cri-api v0.23.4 h1:f1bp27XIBAdJEShjDEKBB3Lx/oZ9GgpQ3bFEx7hV0nI=
+k8s.io/cri-api v0.23.4/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4=
+k8s.io/csi-translation-lib v0.23.4 h1:n6x1Sd338WFB0GQFEMPmsEZblgRo7Bx3AUVebrWPrjM=
+k8s.io/csi-translation-lib v0.23.4/go.mod h1:hvAm5aoprpfE7p9Xnfe3ObmbhDcYp3U7AZJnVQUlrqw=
+k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
+k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
+k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM=
+k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
+k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
+k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
+k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
+k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
+k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/klog/v2 v2.40.1 h1:P4RRucWk/lFOlDdkAr3mc7iWFkgKrZY9qZMAgek06S4=
+k8s.io/klog/v2 v2.40.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-aggregator v0.23.4 h1:gLk78rGLVfUXCdD14NrKg/JFBmNNCZ8FEs3tYt+W6Zk=
+k8s.io/kube-aggregator v0.23.4/go.mod h1:hpmPi4oaLBe014CkBCqzBYWok64H2C7Ka6FBLJvHgkg=
+k8s.io/kube-controller-manager v0.23.4 h1:m9RTyxWipaFs/Bb0Z3XIgXEVHEEIIVspa7tev+kXz8w=
+k8s.io/kube-controller-manager v0.23.4/go.mod h1:r4Cn9Y8t3GyMPrPnOGCDRpeyEKVOITuwHJ7pIWXH0IY=
+k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
+k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
+k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4=
+k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk=
+k8s.io/kube-proxy v0.23.4/go.mod h1:uZBvTCJYVBqnlyup3JpXaMmqrlkzHjcakHhf7ojYUKk=
+k8s.io/kube-scheduler v0.23.4 h1:NR/WCkM5Rmz3lzZq8vgKZW6fJFbyqfiCHn8xYkibxBw=
+k8s.io/kube-scheduler v0.23.4/go.mod h1:KNKYvMZ8dhoMLYygiEMEK+JKFQ2fhW2CLj7B5zEQ/68=
+k8s.io/kubectl v0.23.4 h1:mAa+zEOlyZieecEy+xSrhjkpMcukYyHWzcNdX28dzMY=
+k8s.io/kubectl v0.23.4/go.mod h1:Dgb0Rvx/8JKS/C2EuvsNiQc6RZnX0SbHJVG3XUzH6ok=
+k8s.io/kubelet v0.23.4 h1:yptgklhQ3dtHHIpH/RgI0861XWoJ9/YIBnnxYS6l8VI=
+k8s.io/kubelet v0.23.4/go.mod h1:RjbycP9Wnpbw33G8yFt9E23+pFYxzWy1d8qHU0KVUgg=
+k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
+k8s.io/kubernetes v1.20.1/go.mod h1:v2E/T5A+ikBt81n9HZ8VVns5IXSsMHP1ITIFuHY3d5s=
+k8s.io/kubernetes v1.23.4 h1:25dqAMS96u+9L/A7AHdEW7aMTcmHoQMbMPug6Fa61JE=
+k8s.io/kubernetes v1.23.4/go.mod h1:C0AB/I7M4Nu6d1ELyGdC8qrrHEc6J5l8CHUashza1Io=
+k8s.io/legacy-cloud-providers v0.23.4 h1:apiVRic5Yg1o5hqgMZoClpWQB2cL/rFnpM1d40qR7xA=
+k8s.io/legacy-cloud-providers v0.23.4/go.mod h1:dl0qIfmTyeDpRe/gaudDVnLsykKW2DE7oBWbuJl2Gd8=
+k8s.io/metrics v0.23.4 h1:99+9V/J1PuCqwvYFiuiuZcDImTx4SfFFiwsIB0ZTqUQ=
+k8s.io/metrics v0.23.4/go.mod h1:cl6sY9BdVT3DubbpqnkPIKi6mn/F2ltkU4yH1tEJ3Bo=
+k8s.io/mount-utils v0.23.4 h1:tWUj5A0DJ29haMiO7F3pNdP2HwyMWczzvqQmikFc9s8=
+k8s.io/mount-utils v0.23.4/go.mod h1:OTN3LQPiOGMfx/SmVlsnySwsAmh4gYrDYLchlMHtf98=
+k8s.io/pod-security-admission v0.23.4 h1:f7gLBbS/E03kCY0CBR3LjFqpsdPjnBT8nyBbFUbqoSk=
+k8s.io/pod-security-admission v0.23.4/go.mod h1:cikO3akkUoTZ8uFhkHdlWp0m3XosiOqssTHb+TfCjLw=
+k8s.io/sample-apiserver v0.23.4/go.mod h1:ITqvv82GqqeRue7dmsP7A/As/MHE2v1H3vriNRFv+/U=
+k8s.io/system-validators v1.2.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q=
+k8s.io/system-validators v1.6.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q=
+k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+k8s.io/utils v0.0.0-20211116205334-6203023598ed h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE=
+k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
+modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
+modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
+modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
+modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
+mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
+mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
+pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4=
+rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
+rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
+rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
+rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27 h1:KQOkVzXrLNb0EP6W0FD6u3CCPAwgXFYwZitbj7K0P0Y=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27/go.mod h1:tq2nT0Kx7W+/f2JVE+zxYtUhdjuELJkVpNz+x/QN5R4=
+sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s=
+sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs=
+sigs.k8s.io/kustomize/api v0.10.1 h1:KgU7hfYoscuqag84kxtzKdEC3mKMb99DPI3a0eaV1d0=
+sigs.k8s.io/kustomize/api v0.10.1/go.mod h1:2FigT1QN6xKdcnGS2Ppp1uIWrtWN28Ms8A3OZUZhwr8=
+sigs.k8s.io/kustomize/cmd/config v0.10.2/go.mod h1:K2aW7nXJ0AaT+VA/eO0/dzFLxmpFcTzudmAgDwPY1HQ=
+sigs.k8s.io/kustomize/kustomize/v4 v4.4.1 h1:6hgMEo3Gt0XmhDt4vo0FJ0LRDMc4i8JC6SUW24D4hQM=
+sigs.k8s.io/kustomize/kustomize/v4 v4.4.1/go.mod h1:qOKJMMz2mBP+vcS7vK+mNz4HBLjaQSWRY22EF6Tb7Io=
+sigs.k8s.io/kustomize/kyaml v0.13.0 h1:9c+ETyNfSrVhxvphs+K2dzT3dh5oVPPEqPOE/cUpScY=
+sigs.k8s.io/kustomize/kyaml v0.13.0/go.mod h1:FTJxEZ86ScK184NpGSAQcfEqee0nul8oLCK30D47m4E=
+sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
+sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
+sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
+sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
+sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
diff --git a/intellij/localconfig/BUILD.bazel b/intellij/localconfig/BUILD.bazel
index 91881d8..4a82aae 100644
--- a/intellij/localconfig/BUILD.bazel
+++ b/intellij/localconfig/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "localconfig_lib",
     srcs = ["localconfig.go"],
     importpath = "source.monogon.dev/intellij/localconfig",
     visibility = ["//visibility:private"],
-    deps = ["//intellij/localconfig/watchers:go_default_library"],
+    deps = ["//intellij/localconfig/watchers"],
 )
 
 go_binary(
     name = "localconfig",
-    embed = [":go_default_library"],
+    embed = [":localconfig_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/intellij/localconfig/watchers/BUILD.bazel b/intellij/localconfig/watchers/BUILD.bazel
index 109225d..1571fdf 100644
--- a/intellij/localconfig/watchers/BUILD.bazel
+++ b/intellij/localconfig/watchers/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "watchers",
     srcs = ["filewatchers.go"],
     importpath = "source.monogon.dev/intellij/localconfig/watchers",
     visibility = ["//visibility:public"],
diff --git a/metropolis/build/gotoolwrap/BUILD.bazel b/metropolis/build/gotoolwrap/BUILD.bazel
index ce2aa6a..281f4b3 100644
--- a/metropolis/build/gotoolwrap/BUILD.bazel
+++ b/metropolis/build/gotoolwrap/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "gotoolwrap_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/build/gotoolwrap",
     visibility = ["//visibility:private"],
@@ -9,6 +9,6 @@
 
 go_binary(
     name = "gotoolwrap",
-    embed = [":go_default_library"],
+    embed = [":gotoolwrap_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/cli/dbg/BUILD.bazel b/metropolis/cli/dbg/BUILD.bazel
index 6d2769f..4eed080 100644
--- a/metropolis/cli/dbg/BUILD.bazel
+++ b/metropolis/cli/dbg/BUILD.bazel
@@ -1,24 +1,24 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "dbg_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/cli/dbg",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "@com_github_spf13_pflag//:go_default_library",
-        "@io_k8s_component_base//cli/flag:go_default_library",
-        "@io_k8s_kubectl//pkg/cmd/plugin:go_default_library",
-        "@io_k8s_kubectl//pkg/util/logs:go_default_library",
-        "@io_k8s_kubernetes//pkg/kubectl/cmd:go_default_library",
+        "//metropolis/pkg/logtree",
+        "//metropolis/proto/api",
+        "@io_k8s_cli_runtime//pkg/genericclioptions",
+        "@io_k8s_component_base//cli",
+        "@io_k8s_kubectl//pkg/cmd",
+        "@io_k8s_kubectl//pkg/cmd/plugin",
+        "@io_k8s_kubectl//pkg/cmd/util",
         "@org_golang_google_grpc//:go_default_library",
     ],
 )
 
 go_binary(
     name = "dbg",
-    embed = [":go_default_library"],
+    embed = [":dbg_lib"],
     visibility = ["//visibility:private"],
 )
diff --git a/metropolis/cli/dbg/main.go b/metropolis/cli/dbg/main.go
index 99aff6c..c2c0cb9 100644
--- a/metropolis/cli/dbg/main.go
+++ b/metropolis/cli/dbg/main.go
@@ -26,12 +26,12 @@
 	"strings"
 	"time"
 
-	"github.com/spf13/pflag"
 	"google.golang.org/grpc"
-	cliflag "k8s.io/component-base/cli/flag"
+	"k8s.io/cli-runtime/pkg/genericclioptions"
+	"k8s.io/component-base/cli"
+	"k8s.io/kubectl/pkg/cmd"
 	"k8s.io/kubectl/pkg/cmd/plugin"
-	"k8s.io/kubectl/pkg/util/logs"
-	"k8s.io/kubernetes/pkg/kubectl/cmd"
+	"k8s.io/kubectl/pkg/cmd/util"
 
 	"source.monogon.dev/metropolis/pkg/logtree"
 	apb "source.monogon.dev/metropolis/proto/api"
@@ -168,14 +168,15 @@
 		//   https://github.com/kubernetes/kubernetes/blob/master/cmd/kubectl/kubectl.go
 		os.Setenv("KUBECONFIG", kubeconfigFile.Name())
 		rand.Seed(time.Now().UnixNano())
-		pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
-		pflag.CommandLine.AddGoFlagSet(flag.CommandLine)
-		logs.InitLogs()
-		defer logs.FlushLogs()
-		command := cmd.NewDefaultKubectlCommandWithArgs(cmd.NewDefaultPluginHandler(plugin.ValidPluginFilenamePrefixes), os.Args[2:], os.Stdin, os.Stdout, os.Stderr)
-		command.SetArgs(os.Args[2:])
-		if err := command.Execute(); err != nil {
-			os.Exit(1)
+		command := cmd.NewDefaultKubectlCommandWithArgs(cmd.KubectlOptions{
+			PluginHandler: cmd.NewDefaultPluginHandler(plugin.ValidPluginFilenamePrefixes),
+			Arguments:     os.Args[2:],
+			ConfigFlags:   genericclioptions.NewConfigFlags(true).WithDiscoveryBurst(300).WithDiscoveryQPS(50.0),
+			IOStreams:     genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr},
+		})
+		if err := cli.RunNoErrOutput(command); err != nil {
+			// Pretty-print the error and exit with an error.
+			util.CheckErr(err)
 		}
 	case "trace":
 		traceCmd.Parse(os.Args[2:])
diff --git a/metropolis/cli/metroctl/BUILD.bazel b/metropolis/cli/metroctl/BUILD.bazel
index 8d4fee4..8175ca4 100644
--- a/metropolis/cli/metroctl/BUILD.bazel
+++ b/metropolis/cli/metroctl/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "metroctl_lib",
     srcs = [
         "credentials.go",
         "install.go",
@@ -11,27 +11,27 @@
     ],
     data = [
         "//metropolis/installer:kernel",
-        "//metropolis/node",
+        "//metropolis/node:bundle",
     ],
     importpath = "source.monogon.dev/metropolis/cli/metroctl",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/cli/metroctl/core:go_default_library",
-        "//metropolis/cli/pkg/context:go_default_library",
-        "//metropolis/cli/pkg/datafile:go_default_library",
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "@com_github_adrg_xdg//:go_default_library",
-        "@com_github_spf13_cobra//:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_client_go//pkg/apis/clientauthentication/v1beta1:go_default_library",
+        "//metropolis/cli/metroctl/core",
+        "//metropolis/cli/pkg/context",
+        "//metropolis/cli/pkg/datafile",
+        "//metropolis/node",
+        "//metropolis/node/core/rpc",
+        "//metropolis/proto/api",
+        "@com_github_adrg_xdg//:xdg",
+        "@com_github_spf13_cobra//:cobra",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_client_go//pkg/apis/clientauthentication/v1beta1",
         "@org_golang_google_grpc//:go_default_library",
     ],
 )
 
 go_binary(
     name = "metroctl",
-    embed = [":go_default_library"],
+    embed = [":metroctl_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/cli/metroctl/core/BUILD.bazel b/metropolis/cli/metroctl/core/BUILD.bazel
index 3c59706..cdde06b 100644
--- a/metropolis/cli/metroctl/core/BUILD.bazel
+++ b/metropolis/cli/metroctl/core/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "core",
     srcs = [
         "core.go",
         "install.go",
@@ -9,11 +9,11 @@
     importpath = "source.monogon.dev/metropolis/cli/metroctl/core",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/proto/api:go_default_library",
-        "@com_github_diskfs_go_diskfs//:go_default_library",
-        "@com_github_diskfs_go_diskfs//disk:go_default_library",
-        "@com_github_diskfs_go_diskfs//filesystem:go_default_library",
-        "@com_github_diskfs_go_diskfs//partition/gpt:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
+        "//metropolis/proto/api",
+        "@com_github_diskfs_go_diskfs//:go-diskfs",
+        "@com_github_diskfs_go_diskfs//disk",
+        "@com_github_diskfs_go_diskfs//filesystem",
+        "@com_github_diskfs_go_diskfs//partition/gpt",
+        "@org_golang_google_protobuf//proto",
     ],
 )
diff --git a/metropolis/cli/pkg/context/BUILD.bazel b/metropolis/cli/pkg/context/BUILD.bazel
index b03a35d..2418a82 100644
--- a/metropolis/cli/pkg/context/BUILD.bazel
+++ b/metropolis/cli/pkg/context/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "context",
     srcs = ["context.go"],
     importpath = "source.monogon.dev/metropolis/cli/pkg/context",
     visibility = ["//visibility:public"],
diff --git a/metropolis/cli/pkg/datafile/BUILD.bazel b/metropolis/cli/pkg/datafile/BUILD.bazel
index 8628d9a..8c47aeb 100644
--- a/metropolis/cli/pkg/datafile/BUILD.bazel
+++ b/metropolis/cli/pkg/datafile/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "datafile",
     srcs = ["datafile.go"],
     importpath = "source.monogon.dev/metropolis/cli/pkg/datafile",
     visibility = ["//visibility:public"],
diff --git a/metropolis/installer/BUILD.bazel b/metropolis/installer/BUILD.bazel
index f4b125f..989a850 100644
--- a/metropolis/installer/BUILD.bazel
+++ b/metropolis/installer/BUILD.bazel
@@ -4,21 +4,21 @@
 load("//metropolis/node/build:efi.bzl", "efi_unified_kernel_image")
 
 go_library(
-    name = "go_default_library",
+    name = "installer_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/installer",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/mkimage/osimage:go_default_library",
-        "//metropolis/pkg/efivarfs:go_default_library",
-        "//metropolis/pkg/sysfs:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node/build/mkimage/osimage",
+        "//metropolis/pkg/efivarfs",
+        "//metropolis/pkg/sysfs",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_binary(
     name = "installer",
-    embed = [":go_default_library"],
+    embed = [":installer_lib"],
     visibility = ["//visibility:private"],
 )
 
diff --git a/metropolis/installer/test/BUILD.bazel b/metropolis/installer/test/BUILD.bazel
index c958ac2..b296631 100644
--- a/metropolis/installer/test/BUILD.bazel
+++ b/metropolis/installer/test/BUILD.bazel
@@ -10,24 +10,24 @@
         "//third_party/edk2:firmware",
         "@qemu//:qemu-x86_64-softmmu",
     ],
-    embed = [":go_default_library"],
+    embed = [":test"],
     rundir = ".",
 )
 
 go_library(
-    name = "go_default_library",
+    name = "test",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/installer/test",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/cli/metroctl/core:go_default_library",
-        "//metropolis/cli/pkg/datafile:go_default_library",
-        "//metropolis/node/build/mkimage/osimage:go_default_library",
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "@com_github_diskfs_go_diskfs//:go_default_library",
-        "@com_github_diskfs_go_diskfs//disk:go_default_library",
-        "@com_github_diskfs_go_diskfs//partition/gpt:go_default_library",
+        "//metropolis/cli/metroctl/core",
+        "//metropolis/cli/pkg/datafile",
+        "//metropolis/node/build/mkimage/osimage",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/proto/api",
+        "@com_github_diskfs_go_diskfs//:go-diskfs",
+        "@com_github_diskfs_go_diskfs//disk",
+        "@com_github_diskfs_go_diskfs//partition/gpt",
     ],
 )
 
diff --git a/metropolis/installer/test/testos/BUILD b/metropolis/installer/test/testos/BUILD
index 0dcb8cb..9445e21 100644
--- a/metropolis/installer/test/testos/BUILD
+++ b/metropolis/installer/test/testos/BUILD
@@ -35,15 +35,15 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "testos_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/installer/test/testos",
     visibility = ["//visibility:private"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
 
 go_binary(
     name = "testos",
-    embed = [":go_default_library"],
+    embed = [":testos_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/BUILD.bazel b/metropolis/node/BUILD.bazel
index 893a481..d97cb60 100644
--- a/metropolis/node/BUILD.bazel
+++ b/metropolis/node/BUILD.bazel
@@ -6,7 +6,7 @@
 load("@rules_pkg//:pkg.bzl", "pkg_zip")
 
 go_library(
-    name = "go_default_library",
+    name = "node",
     srcs = [
         "ids.go",
         "ports.go",
@@ -70,8 +70,8 @@
         "@com_github_coredns_coredns//:coredns": "/kubernetes/bin/coredns",
 
         # runsc/gVisor
-        "@com_github_google_gvisor//runsc": "/containerd/bin/runsc",
-        "@com_github_google_gvisor//shim:containerd-shim-runsc-v1": "/containerd/bin/containerd-shim-runsc-v1",
+        "@dev_gvisor_gvisor//runsc": "/containerd/bin/runsc",
+        "@dev_gvisor_gvisor//shim": "/containerd/bin/containerd-shim-runsc-v1",
 
         # runc (runtime in files_cc because of cgo)
         "@com_github_containerd_containerd//cmd/containerd-shim-runc-v2": "/containerd/bin/containerd-shim-runc-v2",
@@ -85,8 +85,7 @@
         "//metropolis/node/kubernetes/containerd:cnispec.gojson": "/containerd/conf/cnispec.gojson",
 
         # Containerd preseed bundles
-        "//metropolis/test/e2e/preseedtest:preseedtest.tar": "/containerd/preseed/k8s.io/preseedtest.tar",
-        "//metropolis/test/e2e/k8s_cts:k8s_cts_image.tar": "/containerd/preseed/k8s.io/k8s_cts.tar",
+        "//metropolis/test/e2e/preseedtest:preseedtest_image.tar": "/containerd/preseed/k8s.io/preseedtest.tar",
         "//metropolis/vm/smoketest:smoketest_container.tar": "/containerd/preseed/k8s.io/smoketest.tar",
 
         # CNI Plugins
@@ -129,7 +128,7 @@
 # to the actual bundle format.
 # TODO(lorenz): Replace this
 pkg_zip(
-    name = "node",
+    name = "bundle",
     srcs = [
         ":kernel_efi",
         ":verity_rootfs",
diff --git a/metropolis/node/build/fsspec/BUILD.bazel b/metropolis/node/build/fsspec/BUILD.bazel
index e0ce66d..49ff9a0 100644
--- a/metropolis/node/build/fsspec/BUILD.bazel
+++ b/metropolis/node/build/fsspec/BUILD.bazel
@@ -9,7 +9,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "fsspec",
     srcs = ["utils.go"],
     embed = [":fsspec_go_proto"],
     importpath = "source.monogon.dev/metropolis/node/build/fsspec",
diff --git a/metropolis/node/build/fwprune/BUILD.bazel b/metropolis/node/build/fwprune/BUILD.bazel
index 18e83b1..578b829 100644
--- a/metropolis/node/build/fwprune/BUILD.bazel
+++ b/metropolis/node/build/fwprune/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "fwprune_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/fwprune",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/fsspec:go_default_library",
-        "@org_golang_google_protobuf//encoding/prototext:go_default_library",
+        "//metropolis/node/build/fsspec",
+        "@org_golang_google_protobuf//encoding/prototext",
     ],
 )
 
 go_binary(
     name = "fwprune",
-    embed = [":go_default_library"],
+    embed = [":fwprune_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/genosrelease/BUILD.bazel b/metropolis/node/build/genosrelease/BUILD.bazel
index b48b602..5ac09d5 100644
--- a/metropolis/node/build/genosrelease/BUILD.bazel
+++ b/metropolis/node/build/genosrelease/BUILD.bazel
@@ -1,16 +1,16 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "genosrelease_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/genosrelease",
     visibility = ["//visibility:private"],
-    deps = ["@com_github_joho_godotenv//:go_default_library"],
+    deps = ["@com_github_joho_godotenv//:godotenv"],
 )
 
 go_binary(
     name = "genosrelease",
-    embed = [":go_default_library"],
+    embed = [":genosrelease_lib"],
     visibility = [
         "//metropolis/installer:__subpackages__",
         "//metropolis/node:__subpackages__",
diff --git a/metropolis/node/build/kconfig-patcher/BUILD.bazel b/metropolis/node/build/kconfig-patcher/BUILD.bazel
index ee97c39..e838f9e 100644
--- a/metropolis/node/build/kconfig-patcher/BUILD.bazel
+++ b/metropolis/node/build/kconfig-patcher/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "kconfig-patcher_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/kconfig-patcher",
     visibility = ["//visibility:private"],
@@ -9,7 +9,7 @@
 
 go_binary(
     name = "kconfig-patcher",
-    embed = [":go_default_library"],
+    embed = [":kconfig-patcher_lib"],
     visibility = [
         "//metropolis/node:__pkg__",
         "//metropolis/test/ktest:__pkg__",
@@ -17,7 +17,7 @@
 )
 
 go_test(
-    name = "go_default_test",
+    name = "kconfig-patcher_test",
     srcs = ["main_test.go"],
-    embed = [":go_default_library"],
+    embed = [":kconfig-patcher_lib"],
 )
diff --git a/metropolis/node/build/mkcpio/BUILD.bazel b/metropolis/node/build/mkcpio/BUILD.bazel
index 5a93d3a..f0bb779 100644
--- a/metropolis/node/build/mkcpio/BUILD.bazel
+++ b/metropolis/node/build/mkcpio/BUILD.bazel
@@ -1,20 +1,20 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkcpio_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkcpio",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/fsspec:go_default_library",
-        "@com_github_cavaliergopher_cpio//:go_default_library",
-        "@com_github_pierrec_lz4_v4//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node/build/fsspec",
+        "@com_github_cavaliergopher_cpio//:cpio",
+        "@com_github_pierrec_lz4_v4//:lz4",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_binary(
     name = "mkcpio",
-    embed = [":go_default_library"],
+    embed = [":mkcpio_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/mkcpio/main.go b/metropolis/node/build/mkcpio/main.go
index 10deb5a..bde7082 100644
--- a/metropolis/node/build/mkcpio/main.go
+++ b/metropolis/node/build/mkcpio/main.go
@@ -174,7 +174,7 @@
 			inF.Close()
 		case *fsspec.Directory:
 			if err := cpioWriter.WriteHeader(&cpio.Header{
-				Mode: cpio.FileMode(i.Mode) | cpio.ModeDir,
+				Mode: cpio.FileMode(i.Mode) | cpio.TypeDir,
 				Name: strings.TrimPrefix(i.Path, "/"),
 			}); err != nil {
 				log.Fatalf("Failed to write cpio header for directory %q: %v", i.Path, err)
@@ -182,7 +182,7 @@
 		case *fsspec.SymbolicLink:
 			if err := cpioWriter.WriteHeader(&cpio.Header{
 				// Symlinks are 0777 by definition (from man 7 symlink on Linux)
-				Mode:     0777 | cpio.ModeSymlink,
+				Mode:     0777 | cpio.TypeSymlink,
 				Name:     strings.TrimPrefix(i.Path, "/"),
 				Linkname: i.TargetPath,
 			}); err != nil {
@@ -192,11 +192,11 @@
 			mode := cpio.FileMode(i.Mode)
 			switch i.Type {
 			case fsspec.SpecialFile_CHARACTER_DEV:
-				mode |= cpio.ModeCharDevice
+				mode |= cpio.TypeChar
 			case fsspec.SpecialFile_BLOCK_DEV:
-				mode |= cpio.ModeDevice
+				mode |= cpio.TypeBlock
 			case fsspec.SpecialFile_FIFO:
-				mode |= cpio.ModeNamedPipe
+				mode |= cpio.TypeFifo
 			}
 
 			if err := cpioWriter.WriteHeader(&cpio.Header{
diff --git a/metropolis/node/build/mkerofs/BUILD.bazel b/metropolis/node/build/mkerofs/BUILD.bazel
index 43e2f5c..73fda98 100644
--- a/metropolis/node/build/mkerofs/BUILD.bazel
+++ b/metropolis/node/build/mkerofs/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkerofs_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkerofs",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/build/fsspec:go_default_library",
-        "//metropolis/pkg/erofs:go_default_library",
+        "//metropolis/node/build/fsspec",
+        "//metropolis/pkg/erofs",
     ],
 )
 
 go_binary(
     name = "mkerofs",
-    embed = [":go_default_library"],
+    embed = [":mkerofs_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/mkimage/BUILD.bazel b/metropolis/node/build/mkimage/BUILD.bazel
index a18bb85..2bf8229 100644
--- a/metropolis/node/build/mkimage/BUILD.bazel
+++ b/metropolis/node/build/mkimage/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkimage_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkimage",
     visibility = ["//visibility:private"],
-    deps = ["//metropolis/node/build/mkimage/osimage:go_default_library"],
+    deps = ["//metropolis/node/build/mkimage/osimage"],
 )
 
 go_binary(
     name = "mkimage",
-    embed = [":go_default_library"],
+    embed = [":mkimage_lib"],
     visibility = ["//metropolis/node:__pkg__"],
 )
diff --git a/metropolis/node/build/mkimage/osimage/BUILD.bazel b/metropolis/node/build/mkimage/osimage/BUILD.bazel
index 88f1dd8..35bfb9c 100644
--- a/metropolis/node/build/mkimage/osimage/BUILD.bazel
+++ b/metropolis/node/build/mkimage/osimage/BUILD.bazel
@@ -1,16 +1,16 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "osimage",
     srcs = ["osimage.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkimage/osimage",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/pkg/efivarfs:go_default_library",
-        "@com_github_diskfs_go_diskfs//:go_default_library",
-        "@com_github_diskfs_go_diskfs//disk:go_default_library",
-        "@com_github_diskfs_go_diskfs//filesystem:go_default_library",
-        "@com_github_diskfs_go_diskfs//partition/gpt:go_default_library",
-        "@com_github_google_uuid//:go_default_library",
+        "//metropolis/pkg/efivarfs",
+        "@com_github_diskfs_go_diskfs//:go-diskfs",
+        "@com_github_diskfs_go_diskfs//disk",
+        "@com_github_diskfs_go_diskfs//filesystem",
+        "@com_github_diskfs_go_diskfs//partition/gpt",
+        "@com_github_google_uuid//:uuid",
     ],
 )
diff --git a/metropolis/node/build/mkpayload/BUILD.bazel b/metropolis/node/build/mkpayload/BUILD.bazel
index 7716e60..b092791 100644
--- a/metropolis/node/build/mkpayload/BUILD.bazel
+++ b/metropolis/node/build/mkpayload/BUILD.bazel
@@ -2,12 +2,12 @@
 
 go_binary(
     name = "mkpayload",
-    embed = [":go_default_library"],
+    embed = [":mkpayload_lib"],
     visibility = ["//visibility:public"],
 )
 
 go_library(
-    name = "go_default_library",
+    name = "mkpayload_lib",
     srcs = ["mkpayload.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkpayload",
     visibility = ["//visibility:private"],
diff --git a/metropolis/node/build/mkucode/BUILD.bazel b/metropolis/node/build/mkucode/BUILD.bazel
index 5f310c2..c1f5667 100644
--- a/metropolis/node/build/mkucode/BUILD.bazel
+++ b/metropolis/node/build/mkucode/BUILD.bazel
@@ -1,19 +1,19 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "mkucode_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkucode",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node/build/mkucode/spec:go_default_library",
-        "@com_github_cavaliergopher_cpio//:go_default_library",
-        "@org_golang_google_protobuf//encoding/prototext:go_default_library",
+        "//metropolis/node/build/mkucode/spec",
+        "@com_github_cavaliergopher_cpio//:cpio",
+        "@org_golang_google_protobuf//encoding/prototext",
     ],
 )
 
 go_binary(
     name = "mkucode",
-    embed = [":go_default_library"],
+    embed = [":mkucode_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/metropolis/node/build/mkucode/spec/BUILD.bazel b/metropolis/node/build/mkucode/spec/BUILD.bazel
index f41e2e9..84e7c7b 100644
--- a/metropolis/node/build/mkucode/spec/BUILD.bazel
+++ b/metropolis/node/build/mkucode/spec/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "spec",
     embed = [":spec_go_proto"],
     importpath = "source.monogon.dev/metropolis/node/build/mkucode/spec",
     visibility = ["//visibility:public"],
diff --git a/metropolis/node/build/mkverity/BUILD.bazel b/metropolis/node/build/mkverity/BUILD.bazel
index 2fe6768..faf7908 100644
--- a/metropolis/node/build/mkverity/BUILD.bazel
+++ b/metropolis/node/build/mkverity/BUILD.bazel
@@ -2,7 +2,7 @@
 
 go_binary(
     name = "mkverity",
-    embed = [":go_default_library"],
+    embed = [":mkverity_lib"],
     visibility = [
         "//metropolis/installer/test/testos:__pkg__",
         "//metropolis/node:__pkg__",
@@ -10,9 +10,9 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "mkverity_lib",
     srcs = ["mkverity.go"],
     importpath = "source.monogon.dev/metropolis/node/build/mkverity",
     visibility = ["//visibility:private"],
-    deps = ["//metropolis/pkg/verity:go_default_library"],
+    deps = ["//metropolis/pkg/verity"],
 )
diff --git a/metropolis/node/core/BUILD.bazel b/metropolis/node/core/BUILD.bazel
index 651e9df..6d2c9c3 100644
--- a/metropolis/node/core/BUILD.bazel
+++ b/metropolis/node/core/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "core_lib",
     # keep
     srcs = [
         "main.go",
@@ -19,30 +19,30 @@
     importpath = "source.monogon.dev/metropolis/node/core",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/cluster:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/node/core/localstorage/declarative:go_default_library",
-        "//metropolis/node/core/network:go_default_library",
-        "//metropolis/node/core/network/hostsfile:go_default_library",
-        "//metropolis/node/core/roleserve:go_default_library",
-        "//metropolis/node/core/time:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/pkg/tpm:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "@com_github_containerd_containerd//:go_default_library",
-        "@com_github_containerd_containerd//namespaces:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/cluster",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/node/core/localstorage/declarative",
+        "//metropolis/node/core/network",
+        "//metropolis/node/core/network/hostsfile",
+        "//metropolis/node/core/roleserve",
+        "//metropolis/node/core/time",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/pkg/tpm",
+        "//metropolis/proto/api",
+        "@com_github_containerd_containerd//:containerd",
+        "@com_github_containerd_containerd//namespaces",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_binary(
     name = "core",
-    embed = [":go_default_library"],
+    embed = [":core_lib"],
     pure = "on",  # keep
     visibility = ["//metropolis/node:__pkg__"],
 )
diff --git a/metropolis/node/core/cluster/BUILD.bazel b/metropolis/node/core/cluster/BUILD.bazel
index 93cc5de..78078bb 100644
--- a/metropolis/node/core/cluster/BUILD.bazel
+++ b/metropolis/node/core/cluster/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "cluster",
     srcs = [
         "cluster.go",
         "cluster_bootstrap.go",
@@ -11,20 +11,20 @@
     importpath = "source.monogon.dev/metropolis/node/core/cluster",
     visibility = ["//metropolis/node/core:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/consensus:go_default_library",
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/node/core/network:go_default_library",
-        "//metropolis/node/core/roleserve:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/pkg/event/memory:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/private:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/consensus",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/node/core/network",
+        "//metropolis/node/core/roleserve",
+        "//metropolis/node/core/rpc",
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/proto/api",
+        "//metropolis/proto/private",
+        "@com_github_cenkalti_backoff_v4//:backoff",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
+        "@org_golang_google_protobuf//proto",
     ],
 )
diff --git a/metropolis/node/core/consensus/BUILD.bazel b/metropolis/node/core/consensus/BUILD.bazel
index c4f65ec..693f789 100644
--- a/metropolis/node/core/consensus/BUILD.bazel
+++ b/metropolis/node/core/consensus/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "consensus",
     srcs = [
         "configuration.go",
         "consensus.go",
@@ -12,30 +12,30 @@
     importpath = "source.monogon.dev/metropolis/node/core/consensus",
     visibility = ["//:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "//metropolis/pkg/event/memory:go_default_library",
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/logtree/unraw:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
-        "@io_etcd_go_etcd//embed:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/consensus/client",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/pkg/event",
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/logtree/unraw",
+        "//metropolis/pkg/pki",
+        "//metropolis/pkg/supervisor",
+        "@io_etcd_go_etcd_client_v3//:client",
+        "@io_etcd_go_etcd_server_v3//embed",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "consensus_test",
     size = "small",
     srcs = [
         "consensus_test.go",
         "logparser_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":consensus"],
     tags = [
         # Enable network sandboxing by asking the Bazel executor to block any
         # network access. This is necessary as tests listen on static ports on
@@ -43,11 +43,11 @@
         "block-network",
     ],
     deps = [
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/node/core/localstorage/declarative:go_default_library",
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@com_github_google_go_cmp//cmp:go_default_library",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/node/core/localstorage/declarative",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
+        "@com_github_google_go_cmp//cmp",
     ],
 )
diff --git a/metropolis/node/core/consensus/client/BUILD.bazel b/metropolis/node/core/consensus/client/BUILD.bazel
index a98eaf5..23c6c14 100644
--- a/metropolis/node/core/consensus/client/BUILD.bazel
+++ b/metropolis/node/core/consensus/client/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "client",
     srcs = [
         "client.go",
         "unimplemented.go",
@@ -9,7 +9,7 @@
     importpath = "source.monogon.dev/metropolis/node/core/consensus/client",
     visibility = ["//visibility:public"],
     deps = [
-        "@io_etcd_go_etcd//clientv3:go_default_library",
-        "@io_etcd_go_etcd//clientv3/namespace:go_default_library",
+        "@io_etcd_go_etcd_client_v3//:client",
+        "@io_etcd_go_etcd_client_v3//namespace",
     ],
 )
diff --git a/metropolis/node/core/consensus/client/client.go b/metropolis/node/core/consensus/client/client.go
index 1304cf1..821919b 100644
--- a/metropolis/node/core/consensus/client/client.go
+++ b/metropolis/node/core/consensus/client/client.go
@@ -25,8 +25,8 @@
 	"fmt"
 	"strings"
 
-	"go.etcd.io/etcd/clientv3"
-	"go.etcd.io/etcd/clientv3/namespace"
+	clientv3 "go.etcd.io/etcd/client/v3"
+	"go.etcd.io/etcd/client/v3/namespace"
 )
 
 // Namespaced etcd/consensus client. Each Namespaced client allows access to a
diff --git a/metropolis/node/core/consensus/client/unimplemented.go b/metropolis/node/core/consensus/client/unimplemented.go
index b0bb695..047e8ee 100644
--- a/metropolis/node/core/consensus/client/unimplemented.go
+++ b/metropolis/node/core/consensus/client/unimplemented.go
@@ -5,7 +5,7 @@
 	"errors"
 	"io"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 )
 
 var (
@@ -59,6 +59,10 @@
 	panic(UnimplementedInNamespaced)
 }
 
+func (c *unimplementedAuth) AuthStatus(ctx context.Context) (*clientv3.AuthStatusResponse, error) {
+	panic(UnimplementedInNamespaced)
+}
+
 func (c *unimplementedAuth) UserAdd(ctx context.Context, name string, password string) (*clientv3.AuthUserAddResponse, error) {
 	panic(UnimplementedInNamespaced)
 }
diff --git a/metropolis/node/core/consensus/configuration.go b/metropolis/node/core/consensus/configuration.go
index 1e7cff6..552b81d 100644
--- a/metropolis/node/core/consensus/configuration.go
+++ b/metropolis/node/core/consensus/configuration.go
@@ -9,8 +9,8 @@
 	"strconv"
 	"time"
 
-	"go.etcd.io/etcd/clientv3"
-	"go.etcd.io/etcd/embed"
+	clientv3 "go.etcd.io/etcd/client/v3"
+	"go.etcd.io/etcd/server/v3/embed"
 
 	"source.monogon.dev/metropolis/node"
 	"source.monogon.dev/metropolis/node/core/identity"
diff --git a/metropolis/node/core/consensus/consensus.go b/metropolis/node/core/consensus/consensus.go
index d4ab964..1137556 100644
--- a/metropolis/node/core/consensus/consensus.go
+++ b/metropolis/node/core/consensus/consensus.go
@@ -94,8 +94,8 @@
 	"math/big"
 	"time"
 
-	"go.etcd.io/etcd/clientv3"
-	"go.etcd.io/etcd/embed"
+	clientv3 "go.etcd.io/etcd/client/v3"
+	"go.etcd.io/etcd/server/v3/embed"
 
 	"source.monogon.dev/metropolis/node/core/consensus/client"
 	"source.monogon.dev/metropolis/node/core/identity"
diff --git a/metropolis/node/core/consensus/status.go b/metropolis/node/core/consensus/status.go
index 43a70fd..e2b15f8 100644
--- a/metropolis/node/core/consensus/status.go
+++ b/metropolis/node/core/consensus/status.go
@@ -8,7 +8,7 @@
 	"net"
 	"strconv"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 
 	"source.monogon.dev/metropolis/node"
 	"source.monogon.dev/metropolis/node/core/consensus/client"
diff --git a/metropolis/node/core/consensus/testhelpers.go b/metropolis/node/core/consensus/testhelpers.go
index 627a278..32bbc46 100644
--- a/metropolis/node/core/consensus/testhelpers.go
+++ b/metropolis/node/core/consensus/testhelpers.go
@@ -4,7 +4,7 @@
 	"context"
 	"testing"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 
 	"source.monogon.dev/metropolis/pkg/event/memory"
 )
diff --git a/metropolis/node/core/curator/BUILD.bazel b/metropolis/node/core/curator/BUILD.bazel
index 90ae216..c13282e 100644
--- a/metropolis/node/core/curator/BUILD.bazel
+++ b/metropolis/node/core/curator/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "curator",
     srcs = [
         "bootstrap.go",
         "curator.go",
@@ -19,57 +19,58 @@
     importpath = "source.monogon.dev/metropolis/node/core/curator",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/consensus:go_default_library",
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/node/core/curator/proto/private:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/pkg/combinectx:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "//metropolis/pkg/event/etcd:go_default_library",
-        "//metropolis/pkg/event/memory:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/common:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
-        "@io_etcd_go_etcd//clientv3/concurrency:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/consensus",
+        "//metropolis/node/core/consensus/client",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/node/core/curator/proto/private",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/rpc",
+        "//metropolis/pkg/combinectx",
+        "//metropolis/pkg/event",
+        "//metropolis/pkg/event/etcd",
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/pki",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/proto/api",
+        "//metropolis/proto/common",
+        "@io_etcd_go_etcd_client_v3//:client",
+        "@io_etcd_go_etcd_client_v3//concurrency",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_google_protobuf//proto",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "curator_test",
     srcs = [
         "curator_test.go",
         "impl_leader_test.go",
         "listener_test.go",
         "state_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":curator"],
     deps = [
-        "//metropolis/node/core/consensus:go_default_library",
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/node/core/curator/proto/private:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/pkg/event/memory:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/common:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
-        "@io_etcd_go_etcd//integration:go_default_library",
+        "//metropolis/node/core/consensus",
+        "//metropolis/node/core/consensus/client",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/node/core/curator/proto/private",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/rpc",
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/pki",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/proto/api",
+        "//metropolis/proto/common",
+        "@io_etcd_go_etcd_client_pkg_v3//testutil",
+        "@io_etcd_go_etcd_client_v3//:client",
+        "@io_etcd_go_etcd_tests_v3//integration",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_google_grpc//test/bufconn:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_google_grpc//test/bufconn",
+        "@org_golang_google_protobuf//proto",
     ],
 )
diff --git a/metropolis/node/core/curator/bootstrap.go b/metropolis/node/core/curator/bootstrap.go
index d05a764..12b24fd 100644
--- a/metropolis/node/core/curator/bootstrap.go
+++ b/metropolis/node/core/curator/bootstrap.go
@@ -5,7 +5,7 @@
 	"crypto/x509"
 	"fmt"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 	"google.golang.org/protobuf/proto"
 
 	"source.monogon.dev/metropolis/node/core/consensus"
diff --git a/metropolis/node/core/curator/curator.go b/metropolis/node/core/curator/curator.go
index 5d6eedd..d6ec579 100644
--- a/metropolis/node/core/curator/curator.go
+++ b/metropolis/node/core/curator/curator.go
@@ -19,7 +19,7 @@
 	"fmt"
 	"time"
 
-	"go.etcd.io/etcd/clientv3/concurrency"
+	"go.etcd.io/etcd/client/v3/concurrency"
 	"google.golang.org/protobuf/proto"
 
 	"source.monogon.dev/metropolis/node/core/consensus"
diff --git a/metropolis/node/core/curator/curator_test.go b/metropolis/node/core/curator/curator_test.go
index cd5889b..3ea66a0 100644
--- a/metropolis/node/core/curator/curator_test.go
+++ b/metropolis/node/core/curator/curator_test.go
@@ -2,13 +2,15 @@
 
 import (
 	"context"
+	"flag"
 	"fmt"
 	"os"
 	"testing"
 	"time"
 
-	"go.etcd.io/etcd/clientv3"
-	"go.etcd.io/etcd/integration"
+	"go.etcd.io/etcd/client/pkg/v3/testutil"
+	clientv3 "go.etcd.io/etcd/client/v3"
+	"go.etcd.io/etcd/tests/v3/integration"
 
 	"source.monogon.dev/metropolis/node/core/consensus"
 	"source.monogon.dev/metropolis/node/core/identity"
@@ -29,14 +31,21 @@
 		Size:                 3,
 		GRPCKeepAliveMinTime: time.Millisecond,
 	}
-	cluster = integration.NewClusterV3(nil, &cfg)
+	t, cancel := testutil.NewTestingTBProthesis("curator")
+	defer cancel()
+
+	flag.Parse()
+
+	integration.BeforeTest(t)
+
+	cluster = integration.NewClusterV3(t, &cfg)
 	endpoints = make([]string, 3)
 	for i := range endpoints {
 		endpoints[i] = cluster.Client(i).Endpoints()[0]
 	}
 
 	v := m.Run()
-	cluster.Terminate(nil)
+	cluster.Terminate(t)
 	os.Exit(v)
 }
 
diff --git a/metropolis/node/core/curator/impl_leader.go b/metropolis/node/core/curator/impl_leader.go
index 75ede5d..d6894a2 100644
--- a/metropolis/node/core/curator/impl_leader.go
+++ b/metropolis/node/core/curator/impl_leader.go
@@ -7,7 +7,7 @@
 	"strings"
 	"sync"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/status"
 
diff --git a/metropolis/node/core/curator/impl_leader_test.go b/metropolis/node/core/curator/impl_leader_test.go
index b07b49f..7254fab 100644
--- a/metropolis/node/core/curator/impl_leader_test.go
+++ b/metropolis/node/core/curator/impl_leader_test.go
@@ -11,7 +11,7 @@
 	"net"
 	"testing"
 
-	"go.etcd.io/etcd/integration"
+	"go.etcd.io/etcd/tests/v3/integration"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/test/bufconn"
 	"google.golang.org/protobuf/proto"
@@ -44,13 +44,14 @@
 	ctx, ctxC := context.WithCancel(context.Background())
 
 	// Start a single-node etcd cluster.
-	cluster := integration.NewClusterV3(nil, &integration.ClusterConfig{
+	integration.BeforeTest(t)
+	cluster := integration.NewClusterV3(t, &integration.ClusterConfig{
 		Size: 1,
 	})
 	// Terminate the etcd cluster on context cancel.
 	go func() {
 		<-ctx.Done()
-		cluster.Terminate(nil)
+		cluster.Terminate(t)
 	}()
 
 	// Create etcd client to test cluster.
diff --git a/metropolis/node/core/curator/proto/api/BUILD.bazel b/metropolis/node/core/curator/proto/api/BUILD.bazel
index 2cec346..dbc1cbf 100644
--- a/metropolis/node/core/curator/proto/api/BUILD.bazel
+++ b/metropolis/node/core/curator/proto/api/BUILD.bazel
@@ -19,13 +19,13 @@
     proto = ":api_proto",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/proto/common:go_default_library",
-        "//metropolis/proto/ext:go_default_library",
+        "//metropolis/proto/common",
+        "//metropolis/proto/ext",
     ],
 )
 
 go_library(
-    name = "go_default_library",
+    name = "api",
     embed = [":api_go_proto"],
     importpath = "source.monogon.dev/metropolis/node/core/curator/proto/api",
     visibility = ["//visibility:public"],
diff --git a/metropolis/node/core/curator/proto/private/BUILD.bazel b/metropolis/node/core/curator/proto/private/BUILD.bazel
index e3c032d..a731e06 100644
--- a/metropolis/node/core/curator/proto/private/BUILD.bazel
+++ b/metropolis/node/core/curator/proto/private/BUILD.bazel
@@ -17,11 +17,11 @@
     importpath = "source.monogon.dev/metropolis/node/core/curator/proto/private",
     proto = ":private_proto",
     visibility = ["//visibility:public"],
-    deps = ["//metropolis/proto/common:go_default_library"],
+    deps = ["//metropolis/proto/common"],
 )
 
 go_library(
-    name = "go_default_library",
+    name = "private",
     embed = [":private_go_proto"],
     importpath = "source.monogon.dev/metropolis/node/core/curator/proto/private",
     visibility = ["//visibility:public"],
diff --git a/metropolis/node/core/curator/state.go b/metropolis/node/core/curator/state.go
index 0db9af5..c1969d4 100644
--- a/metropolis/node/core/curator/state.go
+++ b/metropolis/node/core/curator/state.go
@@ -4,7 +4,7 @@
 	"fmt"
 	"strings"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 )
 
 // etcdPrefix is the location of some data in etcd, with each data element keyed
diff --git a/metropolis/node/core/curator/state_node.go b/metropolis/node/core/curator/state_node.go
index f20f981..ce87723 100644
--- a/metropolis/node/core/curator/state_node.go
+++ b/metropolis/node/core/curator/state_node.go
@@ -21,7 +21,7 @@
 	"crypto/x509"
 	"fmt"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/status"
 	"google.golang.org/protobuf/proto"
diff --git a/metropolis/node/core/curator/state_registerticket.go b/metropolis/node/core/curator/state_registerticket.go
index 4b674aa..8b8ea15 100644
--- a/metropolis/node/core/curator/state_registerticket.go
+++ b/metropolis/node/core/curator/state_registerticket.go
@@ -4,7 +4,7 @@
 	"context"
 	"crypto/rand"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/status"
 	"google.golang.org/protobuf/proto"
diff --git a/metropolis/node/core/identity/BUILD.bazel b/metropolis/node/core/identity/BUILD.bazel
index c5b481a..92e8943 100644
--- a/metropolis/node/core/identity/BUILD.bazel
+++ b/metropolis/node/core/identity/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "identity",
     srcs = [
         "certificates.go",
         "identity.go",
     ],
     importpath = "source.monogon.dev/metropolis/node/core/identity",
     visibility = ["//visibility:public"],
-    deps = ["//metropolis/node/core/localstorage:go_default_library"],
+    deps = ["//metropolis/node/core/localstorage"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "identity_test",
     srcs = ["certificates_test.go"],
-    embed = [":go_default_library"],
+    embed = [":identity"],
 )
diff --git a/metropolis/node/core/localstorage/BUILD.bazel b/metropolis/node/core/localstorage/BUILD.bazel
index 13cd8a9..b360e2c 100644
--- a/metropolis/node/core/localstorage/BUILD.bazel
+++ b/metropolis/node/core/localstorage/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "localstorage",
     srcs = [
         "directory_data.go",
         "directory_pki.go",
@@ -12,19 +12,19 @@
     importpath = "source.monogon.dev/metropolis/node/core/localstorage",
     visibility = ["//metropolis/node:__subpackages__"],
     deps = [
-        "//metropolis/node/core/localstorage/crypt:go_default_library",
-        "//metropolis/node/core/localstorage/declarative:go_default_library",
-        "//metropolis/pkg/tpm:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/private:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node/core/localstorage/crypt",
+        "//metropolis/node/core/localstorage/declarative",
+        "//metropolis/pkg/tpm",
+        "//metropolis/proto/api",
+        "//metropolis/proto/private",
+        "@org_golang_google_protobuf//proto",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "localstorage_test",
     srcs = ["storage_test.go"],
-    embed = [":go_default_library"],
-    deps = ["//metropolis/node/core/localstorage/declarative:go_default_library"],
+    embed = [":localstorage"],
+    deps = ["//metropolis/node/core/localstorage/declarative"],
 )
diff --git a/metropolis/node/core/localstorage/crypt/BUILD.bazel b/metropolis/node/core/localstorage/crypt/BUILD.bazel
index 39afbb8..36e17bb 100644
--- a/metropolis/node/core/localstorage/crypt/BUILD.bazel
+++ b/metropolis/node/core/localstorage/crypt/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "crypt",
     # keep
     srcs = [
         "blockdev.go",
@@ -12,9 +12,9 @@
     importpath = "source.monogon.dev/metropolis/node/core/localstorage/crypt",
     visibility = ["//metropolis/node/core/localstorage:__subpackages__"],
     deps = [
-        "//metropolis/pkg/devicemapper:go_default_library",
-        "//metropolis/pkg/sysfs:go_default_library",
-        "@com_github_rekby_gpt//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/pkg/devicemapper",
+        "//metropolis/pkg/sysfs",
+        "@com_github_rekby_gpt//:gpt",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/node/core/localstorage/declarative/BUILD.bazel b/metropolis/node/core/localstorage/declarative/BUILD.bazel
index de35579..53d1608 100644
--- a/metropolis/node/core/localstorage/declarative/BUILD.bazel
+++ b/metropolis/node/core/localstorage/declarative/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "declarative",
     srcs = [
         "declarative.go",
         "placement.go",
@@ -9,5 +9,5 @@
     ],
     importpath = "source.monogon.dev/metropolis/node/core/localstorage/declarative",
     visibility = ["//metropolis/node:__subpackages__"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
diff --git a/metropolis/node/core/network/BUILD.bazel b/metropolis/node/core/network/BUILD.bazel
index 489f1d4..86ffda8 100644
--- a/metropolis/node/core/network/BUILD.bazel
+++ b/metropolis/node/core/network/BUILD.bazel
@@ -1,20 +1,20 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "network",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/core/network",
     visibility = ["//:__subpackages__"],
     deps = [
-        "//metropolis/node/core/network/dhcp4c:go_default_library",
-        "//metropolis/node/core/network/dhcp4c/callback:go_default_library",
-        "//metropolis/node/core/network/dns:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "//metropolis/pkg/event/memory:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@com_github_google_nftables//:go_default_library",
-        "@com_github_google_nftables//expr:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_vishvananda_netlink//:go_default_library",
+        "//metropolis/node/core/network/dhcp4c",
+        "//metropolis/node/core/network/dhcp4c/callback",
+        "//metropolis/node/core/network/dns",
+        "//metropolis/pkg/event",
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/supervisor",
+        "@com_github_google_nftables//:nftables",
+        "@com_github_google_nftables//expr",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_vishvananda_netlink//:netlink",
     ],
 )
diff --git a/metropolis/node/core/network/dhcp4c/BUILD.bazel b/metropolis/node/core/network/dhcp4c/BUILD.bazel
index 72e16f6..d514f2d 100644
--- a/metropolis/node/core/network/dhcp4c/BUILD.bazel
+++ b/metropolis/node/core/network/dhcp4c/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "dhcp4c",
     srcs = [
         "dhcpc.go",
         "doc.go",
@@ -14,26 +14,26 @@
         "//metropolis/test/nanoswitch:__subpackages__",
     ],
     deps = [
-        "//metropolis/node/core/network/dhcp4c/transport:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_insomniacslk_dhcp//iana:go_default_library",
+        "//metropolis/node/core/network/dhcp4c/transport",
+        "//metropolis/pkg/supervisor",
+        "@com_github_cenkalti_backoff_v4//:backoff",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_insomniacslk_dhcp//iana",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "dhcp4c_test",
     srcs = [
         "dhcpc_test.go",
         "lease_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":dhcp4c"],
     pure = "on",
     deps = [
-        "//metropolis/node/core/network/dhcp4c/transport:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_stretchr_testify//assert:go_default_library",
+        "//metropolis/node/core/network/dhcp4c/transport",
+        "@com_github_cenkalti_backoff_v4//:backoff",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_stretchr_testify//assert",
     ],
 )
diff --git a/metropolis/node/core/network/dhcp4c/callback/BUILD.bazel b/metropolis/node/core/network/dhcp4c/callback/BUILD.bazel
index 622fb48..d841c6e 100644
--- a/metropolis/node/core/network/dhcp4c/callback/BUILD.bazel
+++ b/metropolis/node/core/network/dhcp4c/callback/BUILD.bazel
@@ -2,7 +2,7 @@
 load("//metropolis/test/ktest:ktest.bzl", "ktest")
 
 go_library(
-    name = "go_default_library",
+    name = "callback",
     srcs = ["callback.go"],
     importpath = "source.monogon.dev/metropolis/node/core/network/dhcp4c/callback",
     visibility = [
@@ -11,27 +11,27 @@
         "//metropolis/test/nanoswitch:__subpackages__",
     ],
     deps = [
-        "//metropolis/node/core/network/dhcp4c:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_vishvananda_netlink//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node/core/network/dhcp4c",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_vishvananda_netlink//:netlink",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "callback_test",
     srcs = ["callback_test.go"],
-    embed = [":go_default_library"],
+    embed = [":callback"],
     pure = "on",
     deps = [
-        "//metropolis/node/core/network/dhcp4c:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_stretchr_testify//require:go_default_library",
-        "@com_github_vishvananda_netlink//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node/core/network/dhcp4c",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_stretchr_testify//require",
+        "@com_github_vishvananda_netlink//:netlink",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 ktest(
-    tester = ":go_default_test",
+    tester = ":callback_test",
 )
diff --git a/metropolis/node/core/network/dhcp4c/callback/callback_test.go b/metropolis/node/core/network/dhcp4c/callback/callback_test.go
index 7f5b5d3..7b06713 100644
--- a/metropolis/node/core/network/dhcp4c/callback/callback_test.go
+++ b/metropolis/node/core/network/dhcp4c/callback/callback_test.go
@@ -128,6 +128,7 @@
 			// Associate dynamically-generated interface name for later comparison
 			for i := range test.expectedAddrs {
 				test.expectedAddrs[i].Label = testLink.Name
+				test.expectedAddrs[i].LinkIndex = testLink.Index
 			}
 			cb := ManageIP(testLink)
 			if err := cb(test.oldLease, test.newLease); err != nil {
diff --git a/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel b/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel
index f9e3a74..8b8e02b 100644
--- a/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel
+++ b/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "transport",
     srcs = [
         "transport.go",
         "transport_broadcast.go",
@@ -10,11 +10,11 @@
     importpath = "source.monogon.dev/metropolis/node/core/network/dhcp4c/transport",
     visibility = ["//metropolis/node/core/network/dhcp4c:__subpackages__"],
     deps = [
-        "@com_github_google_gopacket//:go_default_library",
-        "@com_github_google_gopacket//layers:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_mdlayher_raw//:go_default_library",
-        "@org_golang_x_net//bpf:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@com_github_google_gopacket//:gopacket",
+        "@com_github_google_gopacket//layers",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_mdlayher_raw//:raw",
+        "@org_golang_x_net//bpf",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/node/core/network/dns/BUILD.bazel b/metropolis/node/core/network/dns/BUILD.bazel
index 1ef31f1..7d5419e 100644
--- a/metropolis/node/core/network/dns/BUILD.bazel
+++ b/metropolis/node/core/network/dns/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "dns",
     srcs = [
         "coredns.go",
         "directives.go",
@@ -9,8 +9,8 @@
     importpath = "source.monogon.dev/metropolis/node/core/network/dns",
     visibility = ["//metropolis/node:__subpackages__"],
     deps = [
-        "//metropolis/pkg/fileargs:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
+        "//metropolis/pkg/fileargs",
+        "//metropolis/pkg/supervisor",
     ],
 )
 
diff --git a/metropolis/node/core/network/hostsfile/BUILD.bazel b/metropolis/node/core/network/hostsfile/BUILD.bazel
index 5cfffc9..7c0b117 100644
--- a/metropolis/node/core/network/hostsfile/BUILD.bazel
+++ b/metropolis/node/core/network/hostsfile/BUILD.bazel
@@ -1,17 +1,17 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "hostsfile",
     srcs = ["hostsfile.go"],
     importpath = "source.monogon.dev/metropolis/node/core/network/hostsfile",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/node/core/network:go_default_library",
-        "//metropolis/node/core/roleserve:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/node/core/network",
+        "//metropolis/node/core/roleserve",
+        "//metropolis/pkg/supervisor",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/node/core/roleserve/BUILD.bazel b/metropolis/node/core/roleserve/BUILD.bazel
index ec1d443..4188202 100644
--- a/metropolis/node/core/roleserve/BUILD.bazel
+++ b/metropolis/node/core/roleserve/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "roleserve",
     srcs = [
         "roleserve.go",
         "value_bootstrapdata.go",
@@ -16,22 +16,22 @@
     importpath = "source.monogon.dev/metropolis/node/core/roleserve",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/consensus:go_default_library",
-        "//metropolis/node/core/curator:go_default_library",
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/node/core/network:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/node/kubernetes:go_default_library",
-        "//metropolis/node/kubernetes/containerd:go_default_library",
-        "//metropolis/node/kubernetes/pki:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "//metropolis/pkg/event/memory:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/proto/common:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/consensus",
+        "//metropolis/node/core/curator",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/node/core/network",
+        "//metropolis/node/core/rpc",
+        "//metropolis/node/kubernetes",
+        "//metropolis/node/kubernetes/containerd",
+        "//metropolis/node/kubernetes/pki",
+        "//metropolis/pkg/event",
+        "//metropolis/pkg/event/memory",
+        "//metropolis/pkg/pki",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/proto/common",
         "@org_golang_google_grpc//:go_default_library",
     ],
 )
diff --git a/metropolis/node/core/rpc/BUILD.bazel b/metropolis/node/core/rpc/BUILD.bazel
index 8ec88c0..9b171e3 100644
--- a/metropolis/node/core/rpc/BUILD.bazel
+++ b/metropolis/node/core/rpc/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "rpc",
     srcs = [
         "client.go",
         "methodinfo.go",
@@ -14,39 +14,39 @@
     importpath = "source.monogon.dev/metropolis/node/core/rpc",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/ext:go_default_library",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/node/core/identity",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/pki",
+        "//metropolis/proto/api",
+        "//metropolis/proto/ext",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//credentials:go_default_library",
-        "@org_golang_google_grpc//peer:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_google_protobuf//encoding/prototext:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
-        "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
-        "@org_golang_google_protobuf//reflect/protoregistry:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//credentials",
+        "@org_golang_google_grpc//peer",
+        "@org_golang_google_grpc//status",
+        "@org_golang_google_protobuf//encoding/prototext",
+        "@org_golang_google_protobuf//proto",
+        "@org_golang_google_protobuf//reflect/protoreflect",
+        "@org_golang_google_protobuf//reflect/protoregistry",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "rpc_test",
     srcs = [
         "server_authentication_test.go",
         "trace_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":rpc"],
     deps = [
-        "//metropolis/node/core/curator/proto/api:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/ext:go_default_library",
+        "//metropolis/node/core/curator/proto/api",
+        "//metropolis/pkg/logtree",
+        "//metropolis/proto/api",
+        "//metropolis/proto/ext",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_google_grpc//test/bufconn:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_google_grpc//test/bufconn",
     ],
 )
diff --git a/metropolis/node/core/time/BUILD.bazel b/metropolis/node/core/time/BUILD.bazel
index 05a938a..fb9af73 100644
--- a/metropolis/node/core/time/BUILD.bazel
+++ b/metropolis/node/core/time/BUILD.bazel
@@ -1,13 +1,13 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "time",
     srcs = ["time.go"],
     importpath = "source.monogon.dev/metropolis/node/core/time",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/pkg/fileargs:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
+        "//metropolis/node",
+        "//metropolis/pkg/fileargs",
+        "//metropolis/pkg/supervisor",
     ],
 )
diff --git a/metropolis/node/kubernetes/BUILD.bazel b/metropolis/node/kubernetes/BUILD.bazel
index 2a35c4b..c92ca06 100644
--- a/metropolis/node/kubernetes/BUILD.bazel
+++ b/metropolis/node/kubernetes/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "kubernetes",
     srcs = [
         "apiserver.go",
         "controller-manager.go",
@@ -14,46 +14,46 @@
     importpath = "source.monogon.dev/metropolis/node/kubernetes",
     visibility = ["//metropolis/node:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/node/core/network:go_default_library",
-        "//metropolis/node/core/network/dns:go_default_library",
-        "//metropolis/node/kubernetes/authproxy:go_default_library",
-        "//metropolis/node/kubernetes/clusternet:go_default_library",
-        "//metropolis/node/kubernetes/nfproxy:go_default_library",
-        "//metropolis/node/kubernetes/pki:go_default_library",
-        "//metropolis/node/kubernetes/plugins/kvmdevice:go_default_library",
-        "//metropolis/node/kubernetes/reconciler:go_default_library",
-        "//metropolis/pkg/fileargs:go_default_library",
-        "//metropolis/pkg/fsquota:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/loop:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "@com_github_container_storage_interface_spec//lib/go/csi:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/node/core/network",
+        "//metropolis/node/core/network/dns",
+        "//metropolis/node/kubernetes/authproxy",
+        "//metropolis/node/kubernetes/clusternet",
+        "//metropolis/node/kubernetes/nfproxy",
+        "//metropolis/node/kubernetes/pki",
+        "//metropolis/node/kubernetes/plugins/kvmdevice",
+        "//metropolis/node/kubernetes/reconciler",
+        "//metropolis/pkg/fileargs",
+        "//metropolis/pkg/fsquota",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/loop",
+        "//metropolis/pkg/pki",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/proto/api",
+        "@com_github_container_storage_interface_spec//lib/go/csi",
         "@io_bazel_rules_go//proto/wkt:wrappers_go_proto",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_api//storage/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/errors:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_client_go//informers:go_default_library",
-        "@io_k8s_client_go//informers/core/v1:go_default_library",
-        "@io_k8s_client_go//informers/storage/v1:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
-        "@io_k8s_client_go//kubernetes/scheme:go_default_library",
-        "@io_k8s_client_go//kubernetes/typed/core/v1:go_default_library",
-        "@io_k8s_client_go//tools/cache:go_default_library",
-        "@io_k8s_client_go//tools/clientcmd:go_default_library",
-        "@io_k8s_client_go//tools/record:go_default_library",
-        "@io_k8s_client_go//tools/reference:go_default_library",
-        "@io_k8s_client_go//util/workqueue:go_default_library",
-        "@io_k8s_kubelet//config/v1beta1:go_default_library",
-        "@io_k8s_kubelet//pkg/apis/pluginregistration/v1:go_default_library",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_api//storage/v1:storage",
+        "@io_k8s_apimachinery//pkg/api/errors",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_client_go//informers",
+        "@io_k8s_client_go//informers/core/v1:core",
+        "@io_k8s_client_go//informers/storage/v1:storage",
+        "@io_k8s_client_go//kubernetes",
+        "@io_k8s_client_go//kubernetes/scheme",
+        "@io_k8s_client_go//kubernetes/typed/core/v1:core",
+        "@io_k8s_client_go//tools/cache",
+        "@io_k8s_client_go//tools/clientcmd",
+        "@io_k8s_client_go//tools/record",
+        "@io_k8s_client_go//tools/reference",
+        "@io_k8s_client_go//util/workqueue",
+        "@io_k8s_kubelet//config/v1beta1",
+        "@io_k8s_kubelet//pkg/apis/pluginregistration/v1:pluginregistration",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/node/kubernetes/apiserver.go b/metropolis/node/kubernetes/apiserver.go
index cd4ff60..aeaa80e 100644
--- a/metropolis/node/kubernetes/apiserver.go
+++ b/metropolis/node/kubernetes/apiserver.go
@@ -97,7 +97,6 @@
 			pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: s.idCA})),
 		"--enable-admission-plugins=NodeRestriction,PodSecurityPolicy",
 		"--enable-aggregator-routing=true",
-		"--insecure-port=0",
 		fmt.Sprintf("--secure-port=%d", common.KubernetesAPIPort),
 		fmt.Sprintf("--etcd-servers=unix:///%s:0", s.EphemeralConsensusDirectory.ClientSocket.FullPath()),
 		args.FileOpt("--kubelet-client-certificate", "kubelet-client-cert.pem",
@@ -117,6 +116,9 @@
 		"--requestheader-username-headers=X-Remote-User",
 		args.FileOpt("--service-account-key-file", "service-account-pubkey.pem",
 			pem.EncodeToMemory(&pem.Block{Type: "PRIVATE KEY", Bytes: s.serviceAccountPrivKey})),
+		args.FileOpt("--service-account-signing-key-file", "service-account-signing-key.pem",
+			pem.EncodeToMemory(&pem.Block{Type: "PRIVATE KEY", Bytes: s.serviceAccountPrivKey})),
+		"--service-account-issuer", "https://metropolis.internal", // TODO: Figure out federation
 		fmt.Sprintf("--service-cluster-ip-range=%v", s.ServiceIPRange.String()),
 		args.FileOpt("--tls-cert-file", "server-cert.pem",
 			pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: s.serverCert})),
diff --git a/metropolis/node/kubernetes/authproxy/BUILD.bazel b/metropolis/node/kubernetes/authproxy/BUILD.bazel
index 965e8ad..9cf57cb 100644
--- a/metropolis/node/kubernetes/authproxy/BUILD.bazel
+++ b/metropolis/node/kubernetes/authproxy/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "authproxy",
     srcs = ["authproxy.go"],
     importpath = "source.monogon.dev/metropolis/node/kubernetes/authproxy",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/kubernetes/pki:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/kubernetes/pki",
+        "//metropolis/pkg/supervisor",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
     ],
 )
diff --git a/metropolis/node/kubernetes/clusternet/BUILD.bazel b/metropolis/node/kubernetes/clusternet/BUILD.bazel
index b2f0687..8e8f820 100644
--- a/metropolis/node/kubernetes/clusternet/BUILD.bazel
+++ b/metropolis/node/kubernetes/clusternet/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "clusternet",
     srcs = [
         "clusternet.go",
         "netlink_compat.go",
@@ -9,19 +9,19 @@
     importpath = "source.monogon.dev/metropolis/node/kubernetes/clusternet",
     visibility = ["//metropolis/node/kubernetes:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/pkg/jsonpatch:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@com_github_vishvananda_netlink//:go_default_library",
-        "@com_zx2c4_golang_wireguard_wgctrl//:go_default_library",
-        "@com_zx2c4_golang_wireguard_wgctrl//wgtypes:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/types:go_default_library",
-        "@io_k8s_client_go//informers:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
-        "@io_k8s_client_go//tools/cache:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/pkg/jsonpatch",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
+        "@com_github_vishvananda_netlink//:netlink",
+        "@com_zx2c4_golang_wireguard_wgctrl//:wgctrl",
+        "@com_zx2c4_golang_wireguard_wgctrl//wgtypes",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/types",
+        "@io_k8s_client_go//informers",
+        "@io_k8s_client_go//kubernetes",
+        "@io_k8s_client_go//tools/cache",
     ],
 )
diff --git a/metropolis/node/kubernetes/containerd/BUILD.bazel b/metropolis/node/kubernetes/containerd/BUILD.bazel
index 58534d7..ef6606d 100644
--- a/metropolis/node/kubernetes/containerd/BUILD.bazel
+++ b/metropolis/node/kubernetes/containerd/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "containerd",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/kubernetes/containerd",
     visibility = ["//metropolis/node/core:__subpackages__"],
     deps = [
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@com_github_containerd_containerd//:go_default_library",
-        "@com_github_containerd_containerd//namespaces:go_default_library",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/pkg/supervisor",
+        "@com_github_containerd_containerd//:containerd",
+        "@com_github_containerd_containerd//namespaces",
     ],
 )
 
diff --git a/metropolis/node/kubernetes/containerd/config.toml b/metropolis/node/kubernetes/containerd/config.toml
index da2bed7..98a11fe 100644
--- a/metropolis/node/kubernetes/containerd/config.toml
+++ b/metropolis/node/kubernetes/containerd/config.toml
@@ -58,6 +58,7 @@
     systemd_cgroup = false
     enable_tls_streaming = false
     ignore_image_defined_volumes = true
+    netns_mounts_under_state_dir = true
     max_container_log_line_size = 16384
     disable_cgroup = false
     disable_apparmor = true
diff --git a/metropolis/node/kubernetes/hyperkube/BUILD b/metropolis/node/kubernetes/hyperkube/BUILD
index 3b5deb3..ed27296 100644
--- a/metropolis/node/kubernetes/hyperkube/BUILD
+++ b/metropolis/node/kubernetes/hyperkube/BUILD
@@ -2,27 +2,27 @@
 load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
 
 go_library(
-    name = "go_default_library",
+    name = "hyperkube_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/node/kubernetes/hyperkube",
     visibility = ["//visibility:private"],
     deps = [
-        "@com_github_spf13_cobra//:go_default_library",
-        "@com_github_spf13_pflag//:go_default_library",
-        "@io_k8s_component_base//cli/flag:go_default_library",
-        "@io_k8s_component_base//logs:go_default_library",
-        "@io_k8s_component_base//metrics/prometheus/restclient:go_default_library",
-        "@io_k8s_component_base//metrics/prometheus/version:go_default_library",
-        "@io_k8s_kubernetes//cmd/kube-apiserver/app:go_default_library",
-        "@io_k8s_kubernetes//cmd/kube-controller-manager/app:go_default_library",
-        "@io_k8s_kubernetes//cmd/kube-scheduler/app:go_default_library",
-        "@io_k8s_kubernetes//cmd/kubelet/app:go_default_library",
+        "@com_github_spf13_cobra//:cobra",
+        "@com_github_spf13_pflag//:pflag",
+        "@io_k8s_component_base//cli/flag",
+        "@io_k8s_component_base//logs",
+        "@io_k8s_component_base//metrics/prometheus/restclient",
+        "@io_k8s_component_base//metrics/prometheus/version",
+        "@io_k8s_kubernetes//cmd/kube-apiserver/app",
+        "@io_k8s_kubernetes//cmd/kube-controller-manager/app",
+        "@io_k8s_kubernetes//cmd/kube-scheduler/app",
+        "@io_k8s_kubernetes//cmd/kubelet/app",
     ],
 )
 
 go_binary(
     name = "hyperkube",
-    embed = [":go_default_library"],
+    embed = [":hyperkube_lib"],
     pure = "on",
     visibility = ["//metropolis/node:__pkg__"],
     x_defs = version_x_defs(),
diff --git a/metropolis/node/kubernetes/nfproxy/BUILD.bazel b/metropolis/node/kubernetes/nfproxy/BUILD.bazel
index 1dc5bbc..e8dce41 100644
--- a/metropolis/node/kubernetes/nfproxy/BUILD.bazel
+++ b/metropolis/node/kubernetes/nfproxy/BUILD.bazel
@@ -1,22 +1,22 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "nfproxy",
     srcs = ["nfproxy.go"],
     importpath = "source.monogon.dev/metropolis/node/kubernetes/nfproxy",
     visibility = ["//metropolis/node/kubernetes:__subpackages__"],
     deps = [
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@com_github_sbezverk_nfproxy//pkg/controller:go_default_library",
-        "@com_github_sbezverk_nfproxy//pkg/nftables:go_default_library",
-        "@com_github_sbezverk_nfproxy//pkg/proxy:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/labels:go_default_library",
-        "@io_k8s_apimachinery//pkg/selection:go_default_library",
-        "@io_k8s_client_go//informers:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
-        "@io_k8s_client_go//kubernetes/scheme:go_default_library",
-        "@io_k8s_client_go//tools/record:go_default_library",
+        "//metropolis/pkg/supervisor",
+        "@com_github_sbezverk_nfproxy//pkg/controller",
+        "@com_github_sbezverk_nfproxy//pkg/nftables",
+        "@com_github_sbezverk_nfproxy//pkg/proxy",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/labels",
+        "@io_k8s_apimachinery//pkg/selection",
+        "@io_k8s_client_go//informers",
+        "@io_k8s_client_go//kubernetes",
+        "@io_k8s_client_go//kubernetes/scheme",
+        "@io_k8s_client_go//tools/record",
     ],
 )
diff --git a/metropolis/node/kubernetes/pki/BUILD.bazel b/metropolis/node/kubernetes/pki/BUILD.bazel
index cfbba0c..f2e4e3c 100644
--- a/metropolis/node/kubernetes/pki/BUILD.bazel
+++ b/metropolis/node/kubernetes/pki/BUILD.bazel
@@ -1,16 +1,16 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "pki",
     srcs = ["kubernetes.go"],
     importpath = "source.monogon.dev/metropolis/node/kubernetes/pki",
     visibility = ["//metropolis/node:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/pki:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
-        "@io_k8s_client_go//tools/clientcmd:go_default_library",
-        "@io_k8s_client_go//tools/clientcmd/api:go_default_library",
+        "//metropolis/node",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/pki",
+        "@io_etcd_go_etcd_client_v3//:client",
+        "@io_k8s_client_go//tools/clientcmd",
+        "@io_k8s_client_go//tools/clientcmd/api",
     ],
 )
diff --git a/metropolis/node/kubernetes/pki/kubernetes.go b/metropolis/node/kubernetes/pki/kubernetes.go
index 542c614..1a14f99 100644
--- a/metropolis/node/kubernetes/pki/kubernetes.go
+++ b/metropolis/node/kubernetes/pki/kubernetes.go
@@ -32,7 +32,7 @@
 	"fmt"
 	"net"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 	"k8s.io/client-go/tools/clientcmd"
 	configapi "k8s.io/client-go/tools/clientcmd/api"
 
diff --git a/metropolis/node/kubernetes/plugins/kvmdevice/BUILD.bazel b/metropolis/node/kubernetes/plugins/kvmdevice/BUILD.bazel
index a4e0f93..7d9b43f 100644
--- a/metropolis/node/kubernetes/plugins/kvmdevice/BUILD.bazel
+++ b/metropolis/node/kubernetes/plugins/kvmdevice/BUILD.bazel
@@ -1,18 +1,18 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "kvmdevice",
     srcs = ["kvmdevice.go"],
     importpath = "source.monogon.dev/metropolis/node/kubernetes/plugins/kvmdevice",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/core/localstorage:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_kubelet//pkg/apis/deviceplugin/v1beta1:go_default_library",
-        "@io_k8s_kubelet//pkg/apis/pluginregistration/v1:go_default_library",
+        "//metropolis/node/core/localstorage",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_kubelet//pkg/apis/deviceplugin/v1beta1",
+        "@io_k8s_kubelet//pkg/apis/pluginregistration/v1:pluginregistration",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/node/kubernetes/reconciler/BUILD.bazel b/metropolis/node/kubernetes/reconciler/BUILD.bazel
index fadcd96..bba9f4c 100644
--- a/metropolis/node/kubernetes/reconciler/BUILD.bazel
+++ b/metropolis/node/kubernetes/reconciler/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "reconciler",
     srcs = [
         "reconciler.go",
         "resources_csi.go",
@@ -13,26 +13,26 @@
     importpath = "source.monogon.dev/metropolis/node/kubernetes/reconciler",
     visibility = ["//metropolis/node:__subpackages__"],
     deps = [
-        "//metropolis/pkg/supervisor:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_api//node/v1beta1:go_default_library",
-        "@io_k8s_api//policy/v1beta1:go_default_library",
-        "@io_k8s_api//rbac/v1:go_default_library",
-        "@io_k8s_api//storage/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
+        "//metropolis/pkg/supervisor",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_api//node/v1beta1",
+        "@io_k8s_api//policy/v1beta1",
+        "@io_k8s_api//rbac/v1:rbac",
+        "@io_k8s_api//storage/v1:storage",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_client_go//kubernetes",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "reconciler_test",
     srcs = ["reconciler_test.go"],
-    embed = [":go_default_library"],
+    embed = [":reconciler"],
     deps = [
-        "@io_k8s_api//node/v1beta1:go_default_library",
-        "@io_k8s_api//policy/v1beta1:go_default_library",
-        "@io_k8s_api//rbac/v1:go_default_library",
-        "@io_k8s_api//storage/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
+        "@io_k8s_api//node/v1beta1",
+        "@io_k8s_api//policy/v1beta1",
+        "@io_k8s_api//rbac/v1:rbac",
+        "@io_k8s_api//storage/v1:storage",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
     ],
 )
diff --git a/metropolis/node/tools.go b/metropolis/node/tools.go
new file mode 100644
index 0000000..9dcb15c
--- /dev/null
+++ b/metropolis/node/tools.go
@@ -0,0 +1,15 @@
+//go:build tools
+// +build tools
+
+package node
+
+import (
+	_ "github.com/containerd/containerd"
+	_ "github.com/containernetworking/plugins/plugins/ipam/host-local"
+	_ "github.com/containernetworking/plugins/plugins/main/loopback"
+	_ "github.com/containernetworking/plugins/plugins/main/ptp"
+	_ "github.com/coredns/coredns"
+	_ "github.com/go-delve/delve/cmd/dlv"
+	_ "github.com/opencontainers/runc"
+	_ "gvisor.dev/gvisor/runsc"
+)
diff --git a/metropolis/pkg/combinectx/BUILD.bazel b/metropolis/pkg/combinectx/BUILD.bazel
index d467c47..4eeca7f 100644
--- a/metropolis/pkg/combinectx/BUILD.bazel
+++ b/metropolis/pkg/combinectx/BUILD.bazel
@@ -1,17 +1,17 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "combinectx",
     srcs = ["combinectx.go"],
     importpath = "source.monogon.dev/metropolis/pkg/combinectx",
     visibility = ["//visibility:public"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "combinectx_test",
     srcs = [
         "combinectx_test.go",
         "example_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":combinectx"],
 )
diff --git a/metropolis/pkg/devicemapper/BUILD.bazel b/metropolis/pkg/devicemapper/BUILD.bazel
index e0dca24..7d4c132 100644
--- a/metropolis/pkg/devicemapper/BUILD.bazel
+++ b/metropolis/pkg/devicemapper/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "devicemapper",
     srcs = [
         "ctype.go",
         "devicemapper.go",
@@ -9,8 +9,8 @@
     importpath = "source.monogon.dev/metropolis/pkg/devicemapper",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "@com_github_pkg_errors//:go_default_library",
-        "@com_github_yalue_native_endian//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@com_github_pkg_errors//:errors",
+        "@com_github_yalue_native_endian//:native_endian",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/pkg/efivarfs/BUILD.bazel b/metropolis/pkg/efivarfs/BUILD.bazel
index c41bb88..33b0685 100644
--- a/metropolis/pkg/efivarfs/BUILD.bazel
+++ b/metropolis/pkg/efivarfs/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "efivarfs",
     srcs = [
         "boot.go",
         "efivarfs.go",
@@ -10,8 +10,8 @@
     importpath = "source.monogon.dev/metropolis/pkg/efivarfs",
     visibility = ["//visibility:public"],
     deps = [
-        "@com_github_google_uuid//:go_default_library",
-        "@org_golang_x_text//encoding/unicode:go_default_library",
-        "@org_golang_x_text//transform:go_default_library",
+        "@com_github_google_uuid//:uuid",
+        "@org_golang_x_text//encoding/unicode",
+        "@org_golang_x_text//transform",
     ],
 )
diff --git a/metropolis/pkg/erofs/BUILD.bazel b/metropolis/pkg/erofs/BUILD.bazel
index af484a8..ce1622c 100644
--- a/metropolis/pkg/erofs/BUILD.bazel
+++ b/metropolis/pkg/erofs/BUILD.bazel
@@ -2,7 +2,7 @@
 load("//metropolis/test/ktest:ktest.bzl", "ktest")
 
 go_library(
-    name = "go_default_library",
+    name = "erofs",
     srcs = [
         "compression.go",
         "defs.go",
@@ -12,26 +12,26 @@
     ],
     importpath = "source.monogon.dev/metropolis/pkg/erofs",
     visibility = ["//visibility:public"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "erofs_test",
     srcs = [
         "compression_test.go",
         "defs_test.go",
         "erofs_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":erofs"],
     pure = "on",  # keep
     deps = [
-        "@com_github_stretchr_testify//assert:go_default_library",
-        "@com_github_stretchr_testify//require:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@com_github_stretchr_testify//assert",
+        "@com_github_stretchr_testify//require",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 ktest(
     cmdline = "ramdisk_size=128",
-    tester = ":go_default_test",
+    tester = ":erofs_test",
 )
diff --git a/metropolis/pkg/event/BUILD.bazel b/metropolis/pkg/event/BUILD.bazel
index 0217c8a..92405ff 100644
--- a/metropolis/pkg/event/BUILD.bazel
+++ b/metropolis/pkg/event/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "event",
     srcs = ["event.go"],
     importpath = "source.monogon.dev/metropolis/pkg/event",
     visibility = ["//visibility:public"],
diff --git a/metropolis/pkg/event/etcd/BUILD.bazel b/metropolis/pkg/event/etcd/BUILD.bazel
index b00bc47..51ad5c1 100644
--- a/metropolis/pkg/event/etcd/BUILD.bazel
+++ b/metropolis/pkg/event/etcd/BUILD.bazel
@@ -1,28 +1,29 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "etcd",
     srcs = ["etcd.go"],
     importpath = "source.monogon.dev/metropolis/pkg/event/etcd",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
+        "//metropolis/node/core/consensus/client",
+        "//metropolis/pkg/event",
+        "@com_github_cenkalti_backoff_v4//:backoff",
+        "@io_etcd_go_etcd_client_v3//:client",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "etcd_test",
     srcs = ["etcd_test.go"],
-    embed = [":go_default_library"],
+    embed = [":etcd"],
     deps = [
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
-        "@io_etcd_go_etcd//etcdserver/api/v3rpc/rpctypes:go_default_library",
-        "@io_etcd_go_etcd//integration:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
+        "//metropolis/node/core/consensus/client",
+        "//metropolis/pkg/event",
+        "@io_etcd_go_etcd_api_v3//v3rpc/rpctypes",
+        "@io_etcd_go_etcd_client_pkg_v3//testutil",
+        "@io_etcd_go_etcd_client_v3//:client",
+        "@io_etcd_go_etcd_tests_v3//integration",
+        "@org_golang_google_grpc//codes",
     ],
 )
diff --git a/metropolis/pkg/event/etcd/etcd.go b/metropolis/pkg/event/etcd/etcd.go
index 7b914f7..cb93325 100644
--- a/metropolis/pkg/event/etcd/etcd.go
+++ b/metropolis/pkg/event/etcd/etcd.go
@@ -7,7 +7,7 @@
 	"sync"
 
 	"github.com/cenkalti/backoff/v4"
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 
 	"source.monogon.dev/metropolis/node/core/consensus/client"
 	"source.monogon.dev/metropolis/pkg/event"
diff --git a/metropolis/pkg/event/etcd/etcd_test.go b/metropolis/pkg/event/etcd/etcd_test.go
index 4b620c0..faa9629 100644
--- a/metropolis/pkg/event/etcd/etcd_test.go
+++ b/metropolis/pkg/event/etcd/etcd_test.go
@@ -3,6 +3,7 @@
 import (
 	"context"
 	"errors"
+	"flag"
 	"fmt"
 	"log"
 	"os"
@@ -11,9 +12,10 @@
 	"testing"
 	"time"
 
-	"go.etcd.io/etcd/clientv3"
-	"go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes"
-	"go.etcd.io/etcd/integration"
+	"go.etcd.io/etcd/api/v3/v3rpc/rpctypes"
+	"go.etcd.io/etcd/client/pkg/v3/testutil"
+	clientv3 "go.etcd.io/etcd/client/v3"
+	"go.etcd.io/etcd/tests/v3/integration"
 	"google.golang.org/grpc/codes"
 
 	"source.monogon.dev/metropolis/node/core/consensus/client"
@@ -31,14 +33,18 @@
 		Size:                 3,
 		GRPCKeepAliveMinTime: time.Millisecond,
 	}
-	cluster = integration.NewClusterV3(nil, &cfg)
+	tb, cancel := testutil.NewTestingTBProthesis("curator")
+	defer cancel()
+	flag.Parse()
+	integration.BeforeTest(tb)
+	cluster = integration.NewClusterV3(tb, &cfg)
 	endpoints = make([]string, 3)
 	for i := range endpoints {
 		endpoints[i] = cluster.Client(i).Endpoints()[0]
 	}
 
 	v := m.Run()
-	cluster.Terminate(nil)
+	cluster.Terminate(tb)
 	os.Exit(v)
 }
 
diff --git a/metropolis/pkg/event/memory/BUILD.bazel b/metropolis/pkg/event/memory/BUILD.bazel
index 4ba79d2..da07dc3 100644
--- a/metropolis/pkg/event/memory/BUILD.bazel
+++ b/metropolis/pkg/event/memory/BUILD.bazel
@@ -1,19 +1,19 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "memory",
     srcs = ["memory.go"],
     importpath = "source.monogon.dev/metropolis/pkg/event/memory",
     visibility = ["//visibility:public"],
-    deps = ["//metropolis/pkg/event:go_default_library"],
+    deps = ["//metropolis/pkg/event"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "memory_test",
     srcs = [
         "example_test.go",
         "memory_test.go",
     ],
-    embed = [":go_default_library"],
-    deps = ["//metropolis/pkg/event:go_default_library"],
+    embed = [":memory"],
+    deps = ["//metropolis/pkg/event"],
 )
diff --git a/metropolis/pkg/fileargs/BUILD.bazel b/metropolis/pkg/fileargs/BUILD.bazel
index 3abaf26..0b7b2fc 100644
--- a/metropolis/pkg/fileargs/BUILD.bazel
+++ b/metropolis/pkg/fileargs/BUILD.bazel
@@ -1,9 +1,9 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "fileargs",
     srcs = ["fileargs.go"],
     importpath = "source.monogon.dev/metropolis/pkg/fileargs",
     visibility = ["//metropolis:__subpackages__"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
diff --git a/metropolis/pkg/freeport/BUILD.bazel b/metropolis/pkg/freeport/BUILD.bazel
index 990cfa8..6933128 100644
--- a/metropolis/pkg/freeport/BUILD.bazel
+++ b/metropolis/pkg/freeport/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "freeport",
     srcs = ["freeport.go"],
     importpath = "source.monogon.dev/metropolis/pkg/freeport",
     visibility = ["//metropolis:__subpackages__"],
diff --git a/metropolis/pkg/fsquota/BUILD.bazel b/metropolis/pkg/fsquota/BUILD.bazel
index b25d812..5fa7037 100644
--- a/metropolis/pkg/fsquota/BUILD.bazel
+++ b/metropolis/pkg/fsquota/BUILD.bazel
@@ -2,25 +2,25 @@
 load("//metropolis/test/ktest:ktest.bzl", "ktest")
 
 go_library(
-    name = "go_default_library",
+    name = "fsquota",
     srcs = ["fsquota.go"],
     importpath = "source.monogon.dev/metropolis/pkg/fsquota",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/pkg/fsquota/fsxattrs:go_default_library",
-        "//metropolis/pkg/fsquota/quotactl:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/pkg/fsquota/fsxattrs",
+        "//metropolis/pkg/fsquota/quotactl",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "fsquota_test",
     srcs = ["fsquota_test.go"],
-    embed = [":go_default_library"],
+    embed = [":fsquota"],
     pure = "on",
     deps = [
-        "@com_github_stretchr_testify//require:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@com_github_stretchr_testify//require",
+        "@org_golang_x_sys//unix",
     ],
 )
 
@@ -29,5 +29,5 @@
     files_cc = {
         "@xfsprogs//:mkfs": "/mkfs.xfs",
     },
-    tester = ":go_default_test",
+    tester = ":fsquota_test",
 )
diff --git a/metropolis/pkg/fsquota/fsxattrs/BUILD.bazel b/metropolis/pkg/fsquota/fsxattrs/BUILD.bazel
index 5af2ebb..2d23e99 100644
--- a/metropolis/pkg/fsquota/fsxattrs/BUILD.bazel
+++ b/metropolis/pkg/fsquota/fsxattrs/BUILD.bazel
@@ -1,9 +1,9 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "fsxattrs",
     srcs = ["fsxattrs.go"],
     importpath = "source.monogon.dev/metropolis/pkg/fsquota/fsxattrs",
     visibility = ["//metropolis:__subpackages__"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
diff --git a/metropolis/pkg/fsquota/quotactl/BUILD.bazel b/metropolis/pkg/fsquota/quotactl/BUILD.bazel
index 8c5205d..108b771 100644
--- a/metropolis/pkg/fsquota/quotactl/BUILD.bazel
+++ b/metropolis/pkg/fsquota/quotactl/BUILD.bazel
@@ -1,9 +1,9 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "quotactl",
     srcs = ["quotactl.go"],
     importpath = "source.monogon.dev/metropolis/pkg/fsquota/quotactl",
     visibility = ["//metropolis:__subpackages__"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
diff --git a/metropolis/pkg/jsonpatch/BUILD.bazel b/metropolis/pkg/jsonpatch/BUILD.bazel
index f9b6239..3aa6d95 100644
--- a/metropolis/pkg/jsonpatch/BUILD.bazel
+++ b/metropolis/pkg/jsonpatch/BUILD.bazel
@@ -1,14 +1,14 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "jsonpatch",
     srcs = ["jsonpatch.go.go"],
     importpath = "source.monogon.dev/metropolis/pkg/jsonpatch",
     visibility = ["//metropolis:__subpackages__"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "jsonpatch_test",
     srcs = ["jsonpatch_test.go"],
-    embed = [":go_default_library"],
+    embed = [":jsonpatch"],
 )
diff --git a/metropolis/pkg/logbuffer/BUILD.bazel b/metropolis/pkg/logbuffer/BUILD.bazel
index c3e9e2a..cd0e3af 100644
--- a/metropolis/pkg/logbuffer/BUILD.bazel
+++ b/metropolis/pkg/logbuffer/BUILD.bazel
@@ -1,22 +1,22 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "logbuffer",
     srcs = [
         "linebuffer.go",
         "logbuffer.go",
     ],
     importpath = "source.monogon.dev/metropolis/pkg/logbuffer",
     visibility = ["//metropolis:__subpackages__"],
-    deps = ["//metropolis/proto/api:go_default_library"],
+    deps = ["//metropolis/proto/api"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "logbuffer_test",
     srcs = [
         "linebuffer_test.go",
         "logbuffer_test.go",
     ],
-    embed = [":go_default_library"],
-    deps = ["@com_github_stretchr_testify//require:go_default_library"],
+    embed = [":logbuffer"],
+    deps = ["@com_github_stretchr_testify//require"],
 )
diff --git a/metropolis/pkg/logtree/BUILD.bazel b/metropolis/pkg/logtree/BUILD.bazel
index f49430e..0df5679 100644
--- a/metropolis/pkg/logtree/BUILD.bazel
+++ b/metropolis/pkg/logtree/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "logtree",
     srcs = [
         "doc.go",
         "journal.go",
@@ -19,18 +19,18 @@
     importpath = "source.monogon.dev/metropolis/pkg/logtree",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/proto/api:go_default_library",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/proto/api",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "logtree_test",
     srcs = [
         "journal_test.go",
         "klog_test.go",
         "logtree_test.go",
     ],
-    embed = [":go_default_library"],
-    deps = ["@com_github_google_go_cmp//cmp:go_default_library"],
+    embed = [":logtree"],
+    deps = ["@com_github_google_go_cmp//cmp"],
 )
diff --git a/metropolis/pkg/logtree/unraw/BUILD.bazel b/metropolis/pkg/logtree/unraw/BUILD.bazel
index 00a15d3..646d631 100644
--- a/metropolis/pkg/logtree/unraw/BUILD.bazel
+++ b/metropolis/pkg/logtree/unraw/BUILD.bazel
@@ -1,24 +1,24 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "unraw",
     srcs = ["unraw.go"],
     importpath = "source.monogon.dev/metropolis/pkg/logtree/unraw",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "unraw_test",
     srcs = ["unraw_test.go"],
-    embed = [":go_default_library"],
+    embed = [":unraw"],
     deps = [
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
     ],
 )
diff --git a/metropolis/pkg/loop/BUILD.bazel b/metropolis/pkg/loop/BUILD.bazel
index 1bf0722..8c4e10a 100644
--- a/metropolis/pkg/loop/BUILD.bazel
+++ b/metropolis/pkg/loop/BUILD.bazel
@@ -2,24 +2,24 @@
 load("//metropolis/test/ktest:ktest.bzl", "ktest")
 
 go_library(
-    name = "go_default_library",
+    name = "loop",
     srcs = ["loop.go"],
     importpath = "source.monogon.dev/metropolis/pkg/loop",
     visibility = ["//visibility:public"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "loop_test",
     srcs = ["loop_test.go"],
-    embed = [":go_default_library"],
+    embed = [":loop"],
     deps = [
-        "@com_github_stretchr_testify//assert:go_default_library",
-        "@com_github_stretchr_testify//require:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@com_github_stretchr_testify//assert",
+        "@com_github_stretchr_testify//require",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 ktest(
-    tester = ":go_default_test",
+    tester = ":loop_test",
 )
diff --git a/metropolis/pkg/pki/BUILD.bazel b/metropolis/pkg/pki/BUILD.bazel
index 04f02ae..ec3babe 100644
--- a/metropolis/pkg/pki/BUILD.bazel
+++ b/metropolis/pkg/pki/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "pki",
     srcs = [
         "ca.go",
         "certificate.go",
@@ -11,23 +11,24 @@
     importpath = "source.monogon.dev/metropolis/pkg/pki",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "//metropolis/pkg/event:go_default_library",
-        "//metropolis/pkg/event/etcd:go_default_library",
-        "//metropolis/pkg/fileargs:go_default_library",
-        "@io_etcd_go_etcd//clientv3:go_default_library",
+        "//metropolis/node/core/consensus/client",
+        "//metropolis/pkg/event",
+        "//metropolis/pkg/event/etcd",
+        "//metropolis/pkg/fileargs",
+        "@io_etcd_go_etcd_client_v3//:client",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "pki_test",
     srcs = [
         "certificate_test.go",
         "crl_test.go",
     ],
-    embed = [":go_default_library"],
+    embed = [":pki"],
     deps = [
-        "//metropolis/node/core/consensus/client:go_default_library",
-        "@io_etcd_go_etcd//integration:go_default_library",
+        "//metropolis/node/core/consensus/client",
+        "@io_etcd_go_etcd_client_pkg_v3//testutil",
+        "@io_etcd_go_etcd_tests_v3//integration",
     ],
 )
diff --git a/metropolis/pkg/pki/ca.go b/metropolis/pkg/pki/ca.go
index 7c03f9f..29d1335 100644
--- a/metropolis/pkg/pki/ca.go
+++ b/metropolis/pkg/pki/ca.go
@@ -25,7 +25,7 @@
 	"math/big"
 	"time"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 )
 
 // Issuer is an entity that can issue certificates. This interface is
diff --git a/metropolis/pkg/pki/certificate.go b/metropolis/pkg/pki/certificate.go
index f6d480a..a423680 100644
--- a/metropolis/pkg/pki/certificate.go
+++ b/metropolis/pkg/pki/certificate.go
@@ -29,7 +29,7 @@
 	"fmt"
 	"net"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 
 	"source.monogon.dev/metropolis/pkg/fileargs"
 )
diff --git a/metropolis/pkg/pki/certificate_test.go b/metropolis/pkg/pki/certificate_test.go
index da8dee9..d38b559 100644
--- a/metropolis/pkg/pki/certificate_test.go
+++ b/metropolis/pkg/pki/certificate_test.go
@@ -8,17 +8,20 @@
 	"crypto/x509"
 	"testing"
 
-	"go.etcd.io/etcd/integration"
+	"go.etcd.io/etcd/client/pkg/v3/testutil"
+	"go.etcd.io/etcd/tests/v3/integration"
 )
 
 // TestManaged ensures Managed Certificates work, including re-ensuring
 // certificates with the same data and issuing subordinate certificates.
 func TestManaged(t *testing.T) {
-	cluster := integration.NewClusterV3(nil, &integration.ClusterConfig{
+	tb, cancel := testutil.NewTestingTBProthesis("pki-managed")
+	defer cancel()
+	cluster := integration.NewClusterV3(tb, &integration.ClusterConfig{
 		Size: 1,
 	})
 	cl := cluster.Client(0)
-	defer cluster.Terminate(nil)
+	defer cluster.Terminate(tb)
 	ctx, ctxC := context.WithCancel(context.Background())
 	defer ctxC()
 	ns := Namespaced("/test-managed/")
@@ -100,11 +103,13 @@
 // re-Ensuring certificates with the same public key, and attempting to re-issue
 // the same certificate with a different public key (which should fail).
 func TestExternal(t *testing.T) {
-	cluster := integration.NewClusterV3(nil, &integration.ClusterConfig{
+	tb, cancel := testutil.NewTestingTBProthesis("pki-managed")
+	defer cancel()
+	cluster := integration.NewClusterV3(tb, &integration.ClusterConfig{
 		Size: 1,
 	})
 	cl := cluster.Client(0)
-	defer cluster.Terminate(nil)
+	defer cluster.Terminate(tb)
 	ctx, ctxC := context.WithCancel(context.Background())
 	defer ctxC()
 	ns := Namespaced("/test-external/")
diff --git a/metropolis/pkg/pki/crl.go b/metropolis/pkg/pki/crl.go
index 2627776..8b886bf 100644
--- a/metropolis/pkg/pki/crl.go
+++ b/metropolis/pkg/pki/crl.go
@@ -9,7 +9,7 @@
 	"math/big"
 	"time"
 
-	"go.etcd.io/etcd/clientv3"
+	clientv3 "go.etcd.io/etcd/client/v3"
 
 	"source.monogon.dev/metropolis/node/core/consensus/client"
 	"source.monogon.dev/metropolis/pkg/event"
diff --git a/metropolis/pkg/pki/crl_test.go b/metropolis/pkg/pki/crl_test.go
index 39a0b0e..8f9cf5d 100644
--- a/metropolis/pkg/pki/crl_test.go
+++ b/metropolis/pkg/pki/crl_test.go
@@ -5,7 +5,8 @@
 	"crypto/x509"
 	"testing"
 
-	"go.etcd.io/etcd/integration"
+	"go.etcd.io/etcd/client/pkg/v3/testutil"
+	"go.etcd.io/etcd/tests/v3/integration"
 
 	"source.monogon.dev/metropolis/node/core/consensus/client"
 )
@@ -13,11 +14,13 @@
 // TestRevoke exercises the CRL revocation and watching functionality of a CA
 // certificate.
 func TestRevoke(t *testing.T) {
-	cluster := integration.NewClusterV3(nil, &integration.ClusterConfig{
+	tb, cancel := testutil.NewTestingTBProthesis("pki-revoke")
+	defer cancel()
+	cluster := integration.NewClusterV3(tb, &integration.ClusterConfig{
 		Size: 1,
 	})
 	cl := client.NewLocal(cluster.Client(0))
-	defer cluster.Terminate(nil)
+	defer cluster.Terminate(tb)
 	ctx, ctxC := context.WithCancel(context.Background())
 	defer ctxC()
 	ns := Namespaced("/test-managed/")
diff --git a/metropolis/pkg/supervisor/BUILD.bazel b/metropolis/pkg/supervisor/BUILD.bazel
index fdac70f..f51612c 100644
--- a/metropolis/pkg/supervisor/BUILD.bazel
+++ b/metropolis/pkg/supervisor/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "supervisor",
     srcs = [
         "supervisor.go",
         "supervisor_node.go",
@@ -12,15 +12,15 @@
     importpath = "source.monogon.dev/metropolis/pkg/supervisor",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/pkg/logtree:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
+        "//metropolis/pkg/logtree",
+        "@com_github_cenkalti_backoff_v4//:backoff",
         "@org_golang_google_grpc//:go_default_library",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "supervisor_test",
     srcs = ["supervisor_test.go"],
-    embed = [":go_default_library"],
-    deps = ["//metropolis/pkg/logtree:go_default_library"],
+    embed = [":supervisor"],
+    deps = ["//metropolis/pkg/logtree"],
 )
diff --git a/metropolis/pkg/sysfs/BUILD.bazel b/metropolis/pkg/sysfs/BUILD.bazel
index 87fa937..068f9f6 100644
--- a/metropolis/pkg/sysfs/BUILD.bazel
+++ b/metropolis/pkg/sysfs/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "sysfs",
     srcs = [
         "block.go",
         "uevents.go",
diff --git a/metropolis/pkg/tpm/BUILD.bazel b/metropolis/pkg/tpm/BUILD.bazel
index da2154a..4873a82 100644
--- a/metropolis/pkg/tpm/BUILD.bazel
+++ b/metropolis/pkg/tpm/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "tpm",
     srcs = [
         "credactivation_compat.go",
         "tpm.go",
@@ -9,15 +9,15 @@
     importpath = "source.monogon.dev/metropolis/pkg/tpm",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/sysfs:go_default_library",
-        "//metropolis/pkg/tpm/proto:go_default_library",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/sysfs",
+        "//metropolis/pkg/tpm/proto",
         "@com_github_golang_protobuf//proto:go_default_library",
-        "@com_github_google_go_tpm//tpm2:go_default_library",
-        "@com_github_google_go_tpm//tpmutil:go_default_library",
-        "@com_github_google_go_tpm_tools//tpm2tools:go_default_library",
-        "@com_github_pkg_errors//:go_default_library",
-        "@org_golang_x_crypto//nacl/secretbox:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@com_github_google_go_tpm//tpm2",
+        "@com_github_google_go_tpm//tpmutil",
+        "@com_github_google_go_tpm_tools//client",
+        "@com_github_pkg_errors//:errors",
+        "@org_golang_x_crypto//nacl/secretbox",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/pkg/tpm/credactivation_compat.go b/metropolis/pkg/tpm/credactivation_compat.go
index a6710ae..24766a7 100644
--- a/metropolis/pkg/tpm/credactivation_compat.go
+++ b/metropolis/pkg/tpm/credactivation_compat.go
@@ -46,7 +46,7 @@
 )
 
 func generateRSA(aik *tpm2.HashValue, pub *rsa.PublicKey, symBlockSize int, secret []byte, rnd io.Reader) ([]byte, []byte, error) {
-	newAIKHash, err := aik.Alg.HashConstructor()
+	aikHash, err := aik.Alg.Hash()
 	if err != nil {
 		return nil, nil, err
 	}
@@ -63,7 +63,7 @@
 	// Encrypt the seed value using the provided public key.
 	// See annex B, section 10.4 of the TPM specification revision 2 part 1.
 	label := append([]byte(labelIdentity), 0)
-	encSecret, err := rsa.EncryptOAEP(newAIKHash(), rnd, pub, seed, label)
+	encSecret, err := rsa.EncryptOAEP(aikHash.New(), rnd, pub, seed, label)
 	if err != nil {
 		return nil, nil, fmt.Errorf("generating encrypted seed: %v", err)
 	}
@@ -95,12 +95,12 @@
 	// Generate the integrity HMAC, which is used to protect the integrity of the
 	// encrypted structure.
 	// See section 24.5 of the TPM specification revision 2 part 1.
-	macKey, err := tpm2.KDFa(aik.Alg, seed, labelIntegrity, nil, nil, newAIKHash().Size()*8)
+	macKey, err := tpm2.KDFa(aik.Alg, seed, labelIntegrity, nil, nil, aikHash.Size()*8)
 	if err != nil {
 		return nil, nil, fmt.Errorf("generating HMAC key: %v", err)
 	}
 
-	mac := hmac.New(newAIKHash, macKey)
+	mac := hmac.New(aikHash.New, macKey)
 	mac.Write(encIdentity)
 	mac.Write(aikNameEncoded)
 	integrityHMAC := mac.Sum(nil)
diff --git a/metropolis/pkg/tpm/eventlog/BUILD.bazel b/metropolis/pkg/tpm/eventlog/BUILD.bazel
index a678808..7bbd464 100644
--- a/metropolis/pkg/tpm/eventlog/BUILD.bazel
+++ b/metropolis/pkg/tpm/eventlog/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "eventlog",
     srcs = [
         "compat.go",
         "eventlog.go",
@@ -10,8 +10,8 @@
     importpath = "source.monogon.dev/metropolis/pkg/tpm/eventlog",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/pkg/tpm/eventlog/internal:go_default_library",
-        "@com_github_google_certificate_transparency_go//x509:go_default_library",
-        "@com_github_google_go_tpm//tpm2:go_default_library",
+        "//metropolis/pkg/tpm/eventlog/internal",
+        "@com_github_google_certificate_transparency_go//x509",
+        "@com_github_google_go_tpm//tpm2",
     ],
 )
diff --git a/metropolis/pkg/tpm/eventlog/internal/BUILD.bazel b/metropolis/pkg/tpm/eventlog/internal/BUILD.bazel
index d4730aa..f134e7c 100644
--- a/metropolis/pkg/tpm/eventlog/internal/BUILD.bazel
+++ b/metropolis/pkg/tpm/eventlog/internal/BUILD.bazel
@@ -1,12 +1,12 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "internal",
     srcs = ["events.go"],
     importpath = "source.monogon.dev/metropolis/pkg/tpm/eventlog/internal",
     visibility = ["//metropolis/pkg/tpm/eventlog:__subpackages__"],
     deps = [
-        "@com_github_google_certificate_transparency_go//asn1:go_default_library",
-        "@com_github_google_certificate_transparency_go//x509:go_default_library",
+        "@com_github_google_certificate_transparency_go//asn1",
+        "@com_github_google_certificate_transparency_go//x509",
     ],
 )
diff --git a/metropolis/pkg/tpm/proto/BUILD.bazel b/metropolis/pkg/tpm/proto/BUILD.bazel
index 7d7ee86..81c42e6 100644
--- a/metropolis/pkg/tpm/proto/BUILD.bazel
+++ b/metropolis/pkg/tpm/proto/BUILD.bazel
@@ -6,7 +6,7 @@
     name = "proto_proto",
     srcs = ["tpm.proto"],
     visibility = ["//visibility:public"],
-    deps = ["@com_github_google_go_tpm_tools//proto:proto_proto"],  #keep
+    deps = ["@com_github_google_go_tpm_tools//proto/tpm:tpm_proto"],  #keep
 )
 
 go_proto_library(
@@ -14,11 +14,11 @@
     importpath = "source.monogon.dev/metropolis/pkg/tpm/proto",
     proto = ":proto_proto",
     visibility = ["//visibility:public"],
-    deps = ["@com_github_google_go_tpm_tools//proto:go_default_library"],  #keep
+    deps = ["@com_github_google_go_tpm_tools//proto/tpm"],  #keep
 )
 
 go_library(
-    name = "go_default_library",
+    name = "proto",
     embed = [":proto_go_proto"],
     importpath = "source.monogon.dev/metropolis/pkg/tpm/proto",
     visibility = ["//visibility:public"],
diff --git a/metropolis/pkg/tpm/proto/tpm.proto b/metropolis/pkg/tpm/proto/tpm.proto
index 29b74aa..9f86291 100644
--- a/metropolis/pkg/tpm/proto/tpm.proto
+++ b/metropolis/pkg/tpm/proto/tpm.proto
@@ -2,7 +2,7 @@
 option go_package = "source.monogon.dev/metropolis/pkg/tpm/proto";
 package metropolis.pkg.tpm;
 
-import "proto/tpm.proto";
+import "proto/tpm/tpm.proto";
 
 // ExtendedSealedBytes contains data sealed by a TPM2 via an indirection to
 // allow for more than 128 bytes of payload. It seals an ephemeral key for
@@ -10,7 +10,7 @@
 // key.
 message ExtendedSealedBytes {
   // The secretbox key, as sealed by the TPM.
-  .proto.SealedBytes sealed_key = 1;
+  .tpm.SealedBytes sealed_key = 1;
   // The encrypted box contents.
   bytes encrypted_payload = 2;
 }
\ No newline at end of file
diff --git a/metropolis/pkg/tpm/tpm.go b/metropolis/pkg/tpm/tpm.go
index fe7c698..2b7d20d 100644
--- a/metropolis/pkg/tpm/tpm.go
+++ b/metropolis/pkg/tpm/tpm.go
@@ -32,7 +32,7 @@
 	"time"
 
 	"github.com/golang/protobuf/proto"
-	"github.com/google/go-tpm-tools/tpm2tools"
+	tpm2tools "github.com/google/go-tpm-tools/client"
 	"github.com/google/go-tpm/tpm2"
 	"github.com/google/go-tpm/tpmutil"
 	"github.com/pkg/errors"
@@ -247,7 +247,7 @@
 	// therefore we can just leave it all-zero.
 	var unusedNonce [24]byte
 	encryptedData := secretbox.Seal(nil, data, &unusedNonce, &boxKeyArr)
-	sealedKey, err := srk.Seal(pcrs, boxKey)
+	sealedKey, err := srk.Seal(boxKey, tpm2tools.SealOpts{Current: tpm2.PCRSelection{Hash: tpm2.AlgSHA256, PCRs: pcrs}})
 	if err != nil {
 		return []byte{}, fmt.Errorf("failed to seal boxKey: %w", err)
 	}
@@ -286,7 +286,7 @@
 		pcrList = append(pcrList, string(pcr))
 	}
 	tpm.logger.Infof("Attempting to unseal key protected with PCRs %s", strings.Join(pcrList, ","))
-	unsealedKey, err := srk.Unseal(sealedBytes.SealedKey)
+	unsealedKey, err := srk.Unseal(sealedBytes.SealedKey, tpm2tools.UnsealOpts{})
 	if err != nil {
 		return []byte{}, errors.Wrap(err, "failed to unseal key")
 	}
@@ -460,7 +460,7 @@
 	}
 	defer tpm2.FlushContext(tpm.device, endorsementSession)
 
-	_, err = tpm2.PolicySecret(tpm.device, tpm2.HandleEndorsement, tpm2.AuthCommand{Session: tpm2.HandlePasswordSession, Attributes: tpm2.AttrContinueSession}, endorsementSession, nil, nil, nil, 0)
+	_, _, err = tpm2.PolicySecret(tpm.device, tpm2.HandleEndorsement, tpm2.AuthCommand{Session: tpm2.HandlePasswordSession, Attributes: tpm2.AttrContinueSession}, endorsementSession, nil, nil, nil, 0)
 	if err != nil {
 		return []byte{}, fmt.Errorf("failed to make a policy secret session: %w", err)
 	}
diff --git a/metropolis/pkg/verity/BUILD.bazel b/metropolis/pkg/verity/BUILD.bazel
index b500b31..7e0e465 100644
--- a/metropolis/pkg/verity/BUILD.bazel
+++ b/metropolis/pkg/verity/BUILD.bazel
@@ -2,24 +2,24 @@
 load("//metropolis/test/ktest:ktest.bzl", "ktest")
 
 go_library(
-    name = "go_default_library",
+    name = "verity",
     srcs = ["encoder.go"],
     importpath = "source.monogon.dev/metropolis/pkg/verity",
     visibility = ["//visibility:public"],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "verity_test",
     srcs = ["encoder_test.go"],
-    embed = [":go_default_library"],
+    embed = [":verity"],
     deps = [
-        "//metropolis/pkg/devicemapper:go_default_library",
-        "@com_github_stretchr_testify//require:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/pkg/devicemapper",
+        "@com_github_stretchr_testify//require",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 ktest(
     cmdline = "ramdisk_size=16384",
-    tester = ":go_default_test",
+    tester = ":verity_test",
 )
diff --git a/metropolis/proto/api/BUILD.bazel b/metropolis/proto/api/BUILD.bazel
index 9f46fb4..b732f18 100644
--- a/metropolis/proto/api/BUILD.bazel
+++ b/metropolis/proto/api/BUILD.bazel
@@ -24,13 +24,13 @@
     proto = ":api_proto",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/proto/common:go_default_library",
-        "//metropolis/proto/ext:go_default_library",
+        "//metropolis/proto/common",
+        "//metropolis/proto/ext",
     ],
 )
 
 go_library(
-    name = "go_default_library",
+    name = "api",
     embed = [":api_go_proto"],
     importpath = "source.monogon.dev/metropolis/proto/api",
     visibility = ["//visibility:public"],
diff --git a/metropolis/proto/common/BUILD.bazel b/metropolis/proto/common/BUILD.bazel
index b451dd4..45dafd8 100644
--- a/metropolis/proto/common/BUILD.bazel
+++ b/metropolis/proto/common/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "common",
     embed = [":common_go_proto"],
     importpath = "source.monogon.dev/metropolis/proto/common",
     visibility = ["//metropolis:__subpackages__"],
diff --git a/metropolis/proto/ext/BUILD.bazel b/metropolis/proto/ext/BUILD.bazel
index c93882e..e84153b 100644
--- a/metropolis/proto/ext/BUILD.bazel
+++ b/metropolis/proto/ext/BUILD.bazel
@@ -17,7 +17,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "ext",
     embed = [":ext_go_proto"],
     importpath = "source.monogon.dev/metropolis/proto/ext",
     visibility = ["//visibility:public"],
diff --git a/metropolis/proto/private/BUILD.bazel b/metropolis/proto/private/BUILD.bazel
index 8f7cd50..57b7ba4 100644
--- a/metropolis/proto/private/BUILD.bazel
+++ b/metropolis/proto/private/BUILD.bazel
@@ -16,7 +16,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "private",
     embed = [":private_go_proto"],
     importpath = "source.monogon.dev/metropolis/proto/private",
     visibility = ["//metropolis:__subpackages__"],
diff --git a/metropolis/test/e2e/BUILD.bazel b/metropolis/test/e2e/BUILD.bazel
index 138fd4a..30932de 100644
--- a/metropolis/test/e2e/BUILD.bazel
+++ b/metropolis/test/e2e/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "e2e",
     srcs = [
         "kubernetes_helpers.go",
         "utils.go",
@@ -9,19 +9,19 @@
     importpath = "source.monogon.dev/metropolis/test/e2e",
     visibility = ["//metropolis/test:__subpackages__"],
     deps = [
-        "//metropolis/test/launch/cluster:go_default_library",
-        "@io_k8s_api//apps/v1:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/resource:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/util/intstr:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
-        "@io_k8s_client_go//rest:go_default_library",
+        "//metropolis/test/launch/cluster",
+        "@io_k8s_api//apps/v1:apps",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/api/resource",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/util/intstr",
+        "@io_k8s_client_go//kubernetes",
+        "@io_k8s_client_go//rest",
     ],
 )
 
 go_test(
-    name = "go_default_test",
+    name = "e2e_test",
     size = "large",
     srcs = ["main_test.go"],
     data = [
@@ -29,16 +29,16 @@
         "//metropolis/node:swtpm_data",
         "//third_party/edk2:firmware",
     ],
-    embed = [":go_default_library"],
+    embed = [":e2e"],
     rundir = ".",
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/resource:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_kubernetes//pkg/api/v1/pod:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/identity",
+        "//metropolis/proto/api",
+        "//metropolis/test/launch/cluster",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/api/resource",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_kubernetes//pkg/api/v1/pod",
     ],
 )
diff --git a/metropolis/test/e2e/k8s_cts/BUILD.bazel b/metropolis/test/e2e/k8s_cts/BUILD.bazel
index 2d8ac79..6cc4080 100644
--- a/metropolis/test/e2e/k8s_cts/BUILD.bazel
+++ b/metropolis/test/e2e/k8s_cts/BUILD.bazel
@@ -1,47 +1,22 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
-load("@io_bazel_rules_docker//go:image.bzl", "go_image")
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-
-go_image(
-    name = "kubectl",
-    binary = "@io_k8s_kubernetes//cmd/kubectl",
-    pure = "on",
-)
-
-container_image(
-    name = "kubectl_in_path",
-    base = ":kubectl",
-    env = {
-        # Don't include FHS paths since they aren't available anyways
-        "PATH": "/app/cmd/kubectl",
-    },
-)
-
-go_image(
-    name = "k8s_cts_image",
-    base = ":kubectl_in_path",
-    binary = "@io_k8s_kubernetes//test/e2e:e2e.test",
-    pure = "on",
-    visibility = ["//metropolis/node:__pkg__"],
-)
 
 go_library(
-    name = "go_default_library",
+    name = "k8s_cts_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/e2e/k8s_cts",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/test/e2e:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_api//rbac/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
+        "//metropolis/node",
+        "//metropolis/test/e2e",
+        "//metropolis/test/launch/cluster",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_api//rbac/v1:rbac",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
     ],
 )
 
 go_binary(
     name = "k8s_cts",
-    embed = [":go_default_library"],
+    embed = [":k8s_cts_lib"],
     visibility = ["//visibility:private"],
 )
diff --git a/metropolis/test/e2e/kubernetes_helpers.go b/metropolis/test/e2e/kubernetes_helpers.go
index ec12ca0..44fa660 100644
--- a/metropolis/test/e2e/kubernetes_helpers.go
+++ b/metropolis/test/e2e/kubernetes_helpers.go
@@ -79,7 +79,7 @@
 							// TODO(phab/T793): Build and preseed our own container images
 							Image: "nginx:alpine",
 							ReadinessProbe: &corev1.Probe{
-								Handler: corev1.Handler{
+								ProbeHandler: corev1.ProbeHandler{
 									HTTPGet: &corev1.HTTPGetAction{Port: intstr.FromInt(80)},
 								},
 							},
@@ -123,7 +123,7 @@
 							Name:  "test",
 							Image: "nginx:alpine",
 							ReadinessProbe: &corev1.Probe{
-								Handler: corev1.Handler{
+								ProbeHandler: corev1.ProbeHandler{
 									HTTPGet: &corev1.HTTPGetAction{Port: intstr.FromInt(80)},
 								},
 							},
diff --git a/metropolis/test/e2e/main_test.go b/metropolis/test/e2e/main_test.go
index 80140a3..f7dfff8 100644
--- a/metropolis/test/e2e/main_test.go
+++ b/metropolis/test/e2e/main_test.go
@@ -265,7 +265,7 @@
 						Containers: []corev1.Container{{
 							Name:            "preseed-test-1",
 							ImagePullPolicy: corev1.PullNever,
-							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest",
+							Image:           "bazel/metropolis/test/e2e/preseedtest:preseedtest_image",
 						}},
 						RestartPolicy: corev1.RestartPolicyNever,
 					},
diff --git a/metropolis/test/e2e/preseedtest/BUILD.bazel b/metropolis/test/e2e/preseedtest/BUILD.bazel
index f88d9ad..8f13e23 100644
--- a/metropolis/test/e2e/preseedtest/BUILD.bazel
+++ b/metropolis/test/e2e/preseedtest/BUILD.bazel
@@ -2,15 +2,15 @@
 load("@io_bazel_rules_docker//go:image.bzl", "go_image")
 
 go_library(
-    name = "go_default_library",
+    name = "preseedtest",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/e2e/preseedtest",
     visibility = ["//visibility:private"],
 )
 
 go_image(
-    name = "preseedtest",
-    embed = [":go_default_library"],
+    name = "preseedtest_image",
+    embed = [":preseedtest"],
     pure = "on",
     visibility = ["//metropolis/node:__pkg__"],
 )
diff --git a/metropolis/test/ktest/BUILD b/metropolis/test/ktest/BUILD
index e994c48..0a5f5b3 100644
--- a/metropolis/test/ktest/BUILD
+++ b/metropolis/test/ktest/BUILD
@@ -3,16 +3,16 @@
 load("//third_party/linux:def.bzl", "linux_image")
 
 go_library(
-    name = "go_default_library",
+    name = "ktest_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/ktest",
     visibility = ["//visibility:private"],
-    deps = ["//metropolis/test/launch:go_default_library"],
+    deps = ["//metropolis/test/launch"],
 )
 
 go_binary(
     name = "ktest",
-    embed = [":go_default_library"],
+    embed = [":ktest_lib"],
     pure = "on",
     visibility = ["//metropolis:__subpackages__"],
 )
diff --git a/metropolis/test/ktest/init/BUILD.bazel b/metropolis/test/ktest/init/BUILD.bazel
index 93637aa..f6b540f 100644
--- a/metropolis/test/ktest/init/BUILD.bazel
+++ b/metropolis/test/ktest/init/BUILD.bazel
@@ -1,16 +1,16 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "init_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/ktest/init",
     visibility = ["//visibility:private"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
 
 go_binary(
     name = "init",
-    embed = [":go_default_library"],
+    embed = [":init_lib"],
     pure = "on",
     visibility = ["//metropolis:__subpackages__"],
 )
diff --git a/metropolis/test/launch/BUILD.bazel b/metropolis/test/launch/BUILD.bazel
index 1cb6b24..4508dd5 100644
--- a/metropolis/test/launch/BUILD.bazel
+++ b/metropolis/test/launch/BUILD.bazel
@@ -1,14 +1,14 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "launch",
     srcs = ["launch.go"],
     importpath = "source.monogon.dev/metropolis/test/launch",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/pkg/freeport:go_default_library",
+        "//metropolis/node",
+        "//metropolis/pkg/freeport",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "@org_golang_x_sys//unix",
     ],
 )
diff --git a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
index 932b57b..c53b626 100644
--- a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
+++ b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
@@ -1,13 +1,13 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "launch-multi2_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/launch/cli/launch-multi2",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/cli/pkg/context:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
+        "//metropolis/cli/pkg/context",
+        "//metropolis/test/launch/cluster",
     ],
 )
 
@@ -21,6 +21,6 @@
         "//third_party/edk2:firmware",
         "@com_github_bonzini_qboot//:qboot-bin",
     ],
-    embed = [":go_default_library"],
+    embed = [":launch-multi2_lib"],
     visibility = ["//:__pkg__"],
 )
diff --git a/metropolis/test/launch/cli/launch/BUILD.bazel b/metropolis/test/launch/cli/launch/BUILD.bazel
index cb2cbb5..31d491a 100644
--- a/metropolis/test/launch/cli/launch/BUILD.bazel
+++ b/metropolis/test/launch/cli/launch/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "launch_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/launch/cli/launch",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/cli/pkg/context:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "//metropolis/test/launch/cluster:go_default_library",
+        "//metropolis/cli/pkg/context",
+        "//metropolis/proto/api",
+        "//metropolis/test/launch",
+        "//metropolis/test/launch/cluster",
     ],
 )
 
@@ -20,6 +20,6 @@
         "//metropolis/node:swtpm_data",
         "//third_party/edk2:firmware",
     ],
-    embed = [":go_default_library"],
+    embed = [":launch_lib"],
     visibility = ["//:__pkg__"],
 )
diff --git a/metropolis/test/launch/cluster/BUILD.bazel b/metropolis/test/launch/cluster/BUILD.bazel
index 8e829df..2ca9816 100644
--- a/metropolis/test/launch/cluster/BUILD.bazel
+++ b/metropolis/test/launch/cluster/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "cluster",
     srcs = [
         "cluster.go",
         "insecure_key.go",
@@ -18,19 +18,19 @@
     importpath = "source.monogon.dev/metropolis/test/launch/cluster",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/identity:go_default_library",
-        "//metropolis/node/core/rpc:go_default_library",
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/proto/common:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "@com_github_cenkalti_backoff_v4//:go_default_library",
-        "@com_github_grpc_ecosystem_go_grpc_middleware//retry:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/identity",
+        "//metropolis/node/core/rpc",
+        "//metropolis/pkg/logbuffer",
+        "//metropolis/proto/api",
+        "//metropolis/proto/common",
+        "//metropolis/test/launch",
+        "@com_github_cenkalti_backoff_v4//:backoff",
+        "@com_github_grpc_ecosystem_go_grpc_middleware//retry",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
-        "@org_golang_google_protobuf//proto:go_default_library",
-        "@org_uber_go_multierr//:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//status",
+        "@org_golang_google_protobuf//proto",
+        "@org_uber_go_multierr//:multierr",
     ],
 )
diff --git a/metropolis/test/nanoswitch/BUILD b/metropolis/test/nanoswitch/BUILD
index 5a71c94..ce22acd 100644
--- a/metropolis/test/nanoswitch/BUILD
+++ b/metropolis/test/nanoswitch/BUILD
@@ -2,29 +2,29 @@
 load("//metropolis/node/build:def.bzl", "node_initramfs")
 
 go_library(
-    name = "go_default_library",
+    name = "nanoswitch_lib",
     srcs = ["nanoswitch.go"],
     importpath = "source.monogon.dev/metropolis/test/nanoswitch",
     visibility = ["//visibility:private"],
     deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/node/core/network/dhcp4c:go_default_library",
-        "//metropolis/node/core/network/dhcp4c/callback:go_default_library",
-        "//metropolis/pkg/logtree:go_default_library",
-        "//metropolis/pkg/supervisor:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "@com_github_google_nftables//:go_default_library",
-        "@com_github_google_nftables//expr:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4:go_default_library",
-        "@com_github_insomniacslk_dhcp//dhcpv4/server4:go_default_library",
-        "@com_github_vishvananda_netlink//:go_default_library",
-        "@org_golang_x_sys//unix:go_default_library",
+        "//metropolis/node",
+        "//metropolis/node/core/network/dhcp4c",
+        "//metropolis/node/core/network/dhcp4c/callback",
+        "//metropolis/pkg/logtree",
+        "//metropolis/pkg/supervisor",
+        "//metropolis/test/launch",
+        "@com_github_google_nftables//:nftables",
+        "@com_github_google_nftables//expr",
+        "@com_github_insomniacslk_dhcp//dhcpv4",
+        "@com_github_insomniacslk_dhcp//dhcpv4/server4",
+        "@com_github_vishvananda_netlink//:netlink",
+        "@org_golang_x_sys//unix",
     ],
 )
 
 go_binary(
     name = "nanoswitch",
-    embed = [":go_default_library"],
+    embed = [":nanoswitch_lib"],
     pure = "on",
     visibility = ["//visibility:private"],
 )
diff --git a/metropolis/vm/kube/apis/vm/BUILD.bazel b/metropolis/vm/kube/apis/vm/BUILD.bazel
index 3b758f3..35fab05 100644
--- a/metropolis/vm/kube/apis/vm/BUILD.bazel
+++ b/metropolis/vm/kube/apis/vm/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "vm",
     srcs = ["register.go"],
     importpath = "source.monogon.dev/metropolis/vm/kube/apis/vm",
     visibility = ["//visibility:public"],
diff --git a/metropolis/vm/kube/apis/vm/v1alpha1/BUILD.bazel b/metropolis/vm/kube/apis/vm/v1alpha1/BUILD.bazel
index 4b4bfd4..64b7a9b 100644
--- a/metropolis/vm/kube/apis/vm/v1alpha1/BUILD.bazel
+++ b/metropolis/vm/kube/apis/vm/v1alpha1/BUILD.bazel
@@ -2,7 +2,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "v1alpha1",
     srcs = [
         "doc.go",
         "register.go",
@@ -15,11 +15,11 @@
     importpath = "source.monogon.dev/metropolis/vm/kube/apis/vm/v1alpha1",
     visibility = ["//visibility:public"],
     deps = [
-        "//metropolis/vm/kube/apis/vm:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime/schema:go_default_library",
+        "//metropolis/vm/kube/apis/vm",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/runtime",
+        "@io_k8s_apimachinery//pkg/runtime/schema",
     ],
 )
 
diff --git a/metropolis/vm/kube/generated/BUILD.bazel b/metropolis/vm/kube/generated/BUILD.bazel
index 5e30cdc..7e4d8f3 100644
--- a/metropolis/vm/kube/generated/BUILD.bazel
+++ b/metropolis/vm/kube/generated/BUILD.bazel
@@ -15,6 +15,6 @@
 go_path(
     name = "go_path",
     deps = [
-        "//metropolis/vm/kube/apis/vm/v1alpha1:go_default_library",
+        "//metropolis/vm/kube/apis/vm/v1alpha1",
     ],
 )
diff --git a/metropolis/vm/kube/generated/clientset/versioned/scheme/BUILD.bazel b/metropolis/vm/kube/generated/clientset/versioned/scheme/BUILD.bazel
index 49f7a99..1d2daa7 100644
--- a/metropolis/vm/kube/generated/clientset/versioned/scheme/BUILD.bazel
+++ b/metropolis/vm/kube/generated/clientset/versioned/scheme/BUILD.bazel
@@ -13,11 +13,11 @@
     bundle = "//metropolis/vm/kube/generated:bundle",
     importpath = "source.monogon.dev/metropolis/vm/kube/generated/clientset/versioned/scheme",
     deps = [
-        "//metropolis/vm/kube/apis/vm/v1alpha1:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime/schema:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime/serializer:go_default_library",
-        "@io_k8s_apimachinery//pkg/util/runtime:go_default_library",
+        "//metropolis/vm/kube/apis/vm/v1alpha1",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/runtime",
+        "@io_k8s_apimachinery//pkg/runtime/schema",
+        "@io_k8s_apimachinery//pkg/runtime/serializer",
+        "@io_k8s_apimachinery//pkg/util/runtime",
     ],
 )
diff --git a/metropolis/vm/kube/generated/clientset/versioned/typed/vm/v1alpha1/BUILD.bazel b/metropolis/vm/kube/generated/clientset/versioned/typed/vm/v1alpha1/BUILD.bazel
index 312009d..6ffcb60 100644
--- a/metropolis/vm/kube/generated/clientset/versioned/typed/vm/v1alpha1/BUILD.bazel
+++ b/metropolis/vm/kube/generated/clientset/versioned/typed/vm/v1alpha1/BUILD.bazel
@@ -13,11 +13,11 @@
     bundle = "//metropolis/vm/kube/generated:bundle",
     importpath = "source.monogon.dev/metropolis/vm/kube/generated/clientset/versioned/typed/vm/v1alpha1",
     deps = [
-        "//metropolis/vm/kube/apis/vm/v1alpha1:go_default_library",
+        "//metropolis/vm/kube/apis/vm/v1alpha1",
         "//metropolis/vm/kube/generated/clientset/versioned/scheme:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/types:go_default_library",
-        "@io_k8s_apimachinery//pkg/watch:go_default_library",
-        "@io_k8s_client_go//rest:go_default_library",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/types",
+        "@io_k8s_apimachinery//pkg/watch",
+        "@io_k8s_client_go//rest",
     ],
 )
diff --git a/metropolis/vm/kube/generated/informers/externalversions/BUILD.bazel b/metropolis/vm/kube/generated/informers/externalversions/BUILD.bazel
index 290b40a..78516e0 100644
--- a/metropolis/vm/kube/generated/informers/externalversions/BUILD.bazel
+++ b/metropolis/vm/kube/generated/informers/externalversions/BUILD.bazel
@@ -13,13 +13,13 @@
     bundle = "//metropolis/vm/kube/generated:bundle",
     importpath = "source.monogon.dev/metropolis/vm/kube/generated/informers/externalversions",
     deps = [
-        "//metropolis/vm/kube/apis/vm/v1alpha1:go_default_library",
+        "//metropolis/vm/kube/apis/vm/v1alpha1",
         "//metropolis/vm/kube/generated/clientset/versioned:go_default_library",
         "//metropolis/vm/kube/generated/informers/externalversions/internalinterfaces:go_default_library",
         "//metropolis/vm/kube/generated/informers/externalversions/vm:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime:go_default_library",
-        "@io_k8s_apimachinery//pkg/runtime/schema:go_default_library",
-        "@io_k8s_client_go//tools/cache:go_default_library",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_apimachinery//pkg/runtime",
+        "@io_k8s_apimachinery//pkg/runtime/schema",
+        "@io_k8s_client_go//tools/cache",
     ],
 )
diff --git a/metropolis/vm/kube/generated/informers/externalversions/vm/v1alpha1/BUILD.bazel b/metropolis/vm/kube/generated/informers/externalversions/vm/v1alpha1/BUILD.bazel
index a4c5f12..d51c170 100644
--- a/metropolis/vm/kube/generated/informers/externalversions/vm/v1alpha1/BUILD.bazel
+++ b/metropolis/vm/kube/generated/informers/externalversions/vm/v1alpha1/BUILD.bazel
@@ -13,7 +13,7 @@
     bundle = "//metropolis/vm/kube/generated:bundle",
     importpath = "source.monogon.dev/metropolis/vm/kube/generated/informers/externalversions/vm/v1alpha1",
     deps = [
-        "//metropolis/vm/kube/apis/vm/v1alpha1:go_default_library",
+        "//metropolis/vm/kube/apis/vm/v1alpha1",
         "//metropolis/vm/kube/generated/clientset/versioned:go_default_library",
         "//metropolis/vm/kube/generated/informers/externalversions/internalinterfaces:go_default_library",
         "//metropolis/vm/kube/generated/listers/vm/v1alpha1:go_default_library",
diff --git a/metropolis/vm/kube/generated/listers/vm/v1alpha1/BUILD.bazel b/metropolis/vm/kube/generated/listers/vm/v1alpha1/BUILD.bazel
index 8b60875..d9fa05a 100644
--- a/metropolis/vm/kube/generated/listers/vm/v1alpha1/BUILD.bazel
+++ b/metropolis/vm/kube/generated/listers/vm/v1alpha1/BUILD.bazel
@@ -13,9 +13,9 @@
     bundle = "//metropolis/vm/kube/generated:bundle",
     importpath = "source.monogon.dev/metropolis/vm/kube/generated/listers/vm/v1alpha1",
     deps = [
-        "//metropolis/vm/kube/apis/vm/v1alpha1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/errors:go_default_library",
-        "@io_k8s_apimachinery//pkg/labels:go_default_library",
-        "@io_k8s_client_go//tools/cache:go_default_library",
+        "//metropolis/vm/kube/apis/vm/v1alpha1",
+        "@io_k8s_apimachinery//pkg/api/errors",
+        "@io_k8s_apimachinery//pkg/labels",
+        "@io_k8s_client_go//tools/cache",
     ],
 )
diff --git a/metropolis/vm/proto/BUILD.bazel b/metropolis/vm/proto/BUILD.bazel
index 0ad5b7b..be0ceec 100644
--- a/metropolis/vm/proto/BUILD.bazel
+++ b/metropolis/vm/proto/BUILD.bazel
@@ -17,7 +17,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "proto",
     embed = [":metropolis_vm_go_proto"],
     importpath = "source.monogon.dev/metropolis/vm/proto",
     visibility = ["//visibility:public"],
diff --git a/metropolis/vm/smoketest/BUILD.bazel b/metropolis/vm/smoketest/BUILD.bazel
index 7fe529d..d594e58 100644
--- a/metropolis/vm/smoketest/BUILD.bazel
+++ b/metropolis/vm/smoketest/BUILD.bazel
@@ -4,7 +4,7 @@
 load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
 
 go_library(
-    name = "go_default_library",
+    name = "smoketest_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/vm/smoketest",
     visibility = ["//visibility:private"],
@@ -24,7 +24,7 @@
         "//metropolis/test/ktest:linux-testing",
         "@qemu//:qemu-x86_64-softmmu",
     ],
-    embed = [":go_default_library"],
+    embed = [":smoketest_lib"],
     visibility = ["//visibility:public"],
 )
 
diff --git a/metropolis/vm/smoketest/payload/BUILD.bazel b/metropolis/vm/smoketest/payload/BUILD.bazel
index 52b27e1..b2cb04b 100644
--- a/metropolis/vm/smoketest/payload/BUILD.bazel
+++ b/metropolis/vm/smoketest/payload/BUILD.bazel
@@ -1,15 +1,15 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "payload_lib",
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/vm/smoketest/payload",
     visibility = ["//visibility:private"],
-    deps = ["@org_golang_x_sys//unix:go_default_library"],
+    deps = ["@org_golang_x_sys//unix"],
 )
 
 go_binary(
     name = "payload",
-    embed = [":go_default_library"],
+    embed = [":payload_lib"],
     visibility = ["//visibility:public"],
 )
diff --git a/third_party/gazelle/add-prepatching.patch b/third_party/gazelle/add-prepatching.patch
index 2150e96..dd2b1e0 100644
--- a/third_party/gazelle/add-prepatching.patch
+++ b/third_party/gazelle/add-prepatching.patch
@@ -1,34 +1,18 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 2cb763552e2e386928e6c2211c4fb056b9ca7971 Mon Sep 17 00:00:00 2001
-From: Serge Bazanski <serge@nexantic.com>
-Date: Thu, 14 Jan 2021 16:30:32 +0100
+From bf6362aa01dd00c82996dcabfb1cb20d7919c552 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@nexantic.com>
+Date: Wed, 22 Jul 2020 09:46:56 +0200
 Subject: [PATCH] Add support for prepatching
-Company: nexantic GmbH
 
 ---
  internal/go_repository.bzl | 14 +++++++++++---
  1 file changed, 11 insertions(+), 3 deletions(-)
 
 diff --git a/internal/go_repository.bzl b/internal/go_repository.bzl
-index 7f87ed1..a0ef36d 100644
+index 9928fa8..a3af13d 100644
 --- a/internal/go_repository.bzl
 +++ b/internal/go_repository.bzl
-@@ -130,6 +130,8 @@ def _go_repository_impl(ctx):
-         if result.stderr:
+@@ -213,6 +213,8 @@ def _go_repository_impl(ctx):
+         if ctx.attr.debug_mode and result.stderr:
              print("fetch_repo: " + result.stderr)
  
 +    patch(ctx, True)
@@ -36,19 +20,19 @@
      # Repositories are fetched. Determine if build file generation is needed.
      build_file_names = ctx.attr.build_file_name.split(",")
      existing_build_file = ""
-@@ -263,6 +265,10 @@ go_repository = repository_rule(
-         "build_config": attr.label(default = "@bazel_gazelle_go_repository_config//:WORKSPACE"),
-         "build_directives": attr.string_list(default = []),
+@@ -474,6 +476,10 @@ go_repository = repository_rule(
+             Gazelle directives.""",
+         ),
  
 +        # Patches to apply before running gazelle.
 +        "pre_patches": attr.label_list(),
 +        "pre_patch_cmds": attr.string_list(default = []),
 +
          # Patches to apply after running gazelle.
-         "patches": attr.label_list(),
-         "patch_tool": attr.string(default = "patch"),
-@@ -273,10 +279,11 @@ go_repository = repository_rule(
- """See repository.rst#go-repository for full documentation."""
+         "patches": attr.label_list(
+             doc = "A list of patches to apply to the repository after gazelle runs.",
+@@ -504,10 +510,11 @@ go_repository = repository_rule(
+ """See repository.md#go-repository for full documentation."""
  
  # Copied from @bazel_tools//tools/build_defs/repo:utils.bzl
 -def patch(ctx):
@@ -61,7 +45,7 @@
          command = "{patchtool} {patch_args} < {patchfile}".format(
              patchtool = ctx.attr.patch_tool,
              patchfile = ctx.path(patchfile),
-@@ -289,7 +296,8 @@ def patch(ctx):
+@@ -520,7 +527,8 @@ def patch(ctx):
          if st.return_code:
              fail("Error applying patch %s:\n%s%s" %
                   (str(patchfile), st.stderr, st.stdout))
@@ -72,5 +56,5 @@
          if st.return_code:
              fail("Error applying patch command %s:\n%s%s" %
 -- 
-2.26.2
+2.25.1
 
diff --git a/third_party/go/patches/cel-fix-antlr.patch b/third_party/go/patches/cel-fix-antlr.patch
new file mode 100644
index 0000000..5c5636a
--- /dev/null
+++ b/third_party/go/patches/cel-fix-antlr.patch
@@ -0,0 +1,83 @@
+From a0f8916f104566a2538a70153c016de7c5d9f304 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:54:11 +0100
+Subject: [PATCH] Use conventional import path for antlr
+
+---
+ WORKSPACE              | 9 +++++----
+ checker/BUILD.bazel    | 2 +-
+ parser/BUILD.bazel     | 4 ++--
+ parser/gen/BUILD.bazel | 2 +-
+ 4 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/WORKSPACE b/WORKSPACE
+index 4238e7a..b62cf15 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -99,11 +99,12 @@ go_repository(
+     version = "v0.3.2",
+ )
+ 
+-# Antlr deps to pickup golang concurrency fixes 4/30/2020
++# Antlr deps
+ go_repository(
+-    name = "com_github_antlr",
+-    commit = "621b933c7a7f01c67ae9de15103151fa0f9d6d90",
+-    importpath = "github.com/antlr/antlr4",
++    name = "com_github_antlr_antlr4_runtime_go_antlr",
++    importpath = "github.com/antlr/antlr4/runtime/Go/antlr",
++    sum = "h1:zvkJv+9Pxm1nnEMcKnShREt4qtduHKz4iw4AB4ul0Ao=",
++    version = "v0.0.0-20220209173558-ad29539cd2e9",
+ )
+ 
+ # CEL Spec deps
+diff --git a/checker/BUILD.bazel b/checker/BUILD.bazel
+index 2ef326b..bec40b6 100644
+--- a/checker/BUILD.bazel
++++ b/checker/BUILD.bazel
+@@ -54,7 +54,7 @@ go_test(
+         "//test:go_default_library",
+         "//test/proto2pb:go_default_library",
+         "//test/proto3pb:go_default_library",
+-        "@com_github_antlr//runtime/Go/antlr:go_default_library",
++        "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+         "@org_golang_google_protobuf//proto:go_default_library",
+     ],
+ )
+diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel
+index a1917b4..b76e6e4 100644
+--- a/parser/BUILD.bazel
++++ b/parser/BUILD.bazel
+@@ -23,7 +23,7 @@ go_library(
+         "//common/operators:go_default_library",
+         "//common/runes:go_default_library",
+         "//parser/gen:go_default_library",
+-        "@com_github_antlr//runtime/Go/antlr:go_default_library",
++        "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+         "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+@@ -45,7 +45,7 @@ go_test(
+         "//common/debug:go_default_library",
+         "//parser/gen:go_default_library",
+         "//test:go_default_library",
+-        "@com_github_antlr//runtime/Go/antlr:go_default_library",
++        "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+         "@org_golang_google_protobuf//proto:go_default_library",
+     ],
+ )
+diff --git a/parser/gen/BUILD.bazel b/parser/gen/BUILD.bazel
+index 78e0432..2271131 100644
+--- a/parser/gen/BUILD.bazel
++++ b/parser/gen/BUILD.bazel
+@@ -21,6 +21,6 @@ go_library(
+     ],
+     importpath = "github.com/google/cel-go/parser/gen",
+     deps = [
+-        "@com_github_antlr//runtime/Go/antlr:go_default_library",
++        "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+     ],
+ )
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/cel-fix-googleapis.patch b/third_party/go/patches/cel-fix-googleapis.patch
new file mode 100644
index 0000000..518cdd0
--- /dev/null
+++ b/third_party/go/patches/cel-fix-googleapis.patch
@@ -0,0 +1,256 @@
+From 86ef097e120745353232555f1d87382cac5ce2f0 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Mon, 21 Mar 2022 16:11:14 +0100
+Subject: [PATCH] Fix googleapis import paths
+
+---
+ cel/BUILD.bazel               |  4 ++--
+ checker/BUILD.bazel           |  2 +-
+ checker/decls/BUILD.bazel     |  2 +-
+ common/BUILD.bazel            |  2 +-
+ common/containers/BUILD.bazel |  4 ++--
+ common/debug/BUILD.bazel      |  2 +-
+ common/types/BUILD.bazel      |  4 ++--
+ common/types/pb/BUILD.bazel   |  2 +-
+ common/types/ref/BUILD.bazel  |  2 +-
+ ext/BUILD.bazel               |  2 +-
+ interpreter/BUILD.bazel       |  4 ++--
+ parser/BUILD.bazel            |  2 +-
+ server/BUILD.bazel            | 12 ++++++------
+ test/BUILD.bazel              |  2 +-
+ 14 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/cel/BUILD.bazel b/cel/BUILD.bazel
+index aed8274..6a5b8f2 100644
+--- a/cel/BUILD.bazel
++++ b/cel/BUILD.bazel
+@@ -27,7 +27,7 @@ go_library(
+         "//interpreter:go_default_library",
+         "//interpreter/functions:go_default_library",
+         "//parser:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//reflect/protodesc:go_default_library",
+         "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+@@ -59,6 +59,6 @@ go_test(
+         "//test/proto2pb:go_default_library",
+         "//test/proto3pb:go_default_library",
+         "@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+     ],
+ )
+diff --git a/checker/BUILD.bazel b/checker/BUILD.bazel
+index 0f6e469..0873707 100644
+--- a/checker/BUILD.bazel
++++ b/checker/BUILD.bazel
+@@ -28,7 +28,7 @@ go_library(
+         "//common/types/pb:go_default_library",
+         "//common/types/ref:go_default_library",
+         "//parser:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//types/known/emptypb:go_default_library",
+         "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+diff --git a/checker/decls/BUILD.bazel b/checker/decls/BUILD.bazel
+index 5a24f1d..9c6bfbc 100644
+--- a/checker/decls/BUILD.bazel
++++ b/checker/decls/BUILD.bazel
+@@ -13,7 +13,7 @@ go_library(
+     ],
+     importpath = "github.com/google/cel-go/checker/decls",
+     deps = [
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//types/known/emptypb:go_default_library",
+         "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+     ],
+diff --git a/common/BUILD.bazel b/common/BUILD.bazel
+index 9e4ad65..d306934 100644
+--- a/common/BUILD.bazel
++++ b/common/BUILD.bazel
+@@ -16,7 +16,7 @@ go_library(
+     importpath = "github.com/google/cel-go/common",
+     deps = [
+         "//common/runes:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_x_text//width:go_default_library",
+     ],
+ )
+diff --git a/common/containers/BUILD.bazel b/common/containers/BUILD.bazel
+index 18142d9..3c45794 100644
+--- a/common/containers/BUILD.bazel
++++ b/common/containers/BUILD.bazel
+@@ -12,7 +12,7 @@ go_library(
+     ],
+     importpath = "github.com/google/cel-go/common/containers",
+     deps = [
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+     ],
+ )
+ 
+@@ -26,6 +26,6 @@ go_test(
+         ":go_default_library",
+     ],
+     deps = [
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+     ],
+ )
+diff --git a/common/debug/BUILD.bazel b/common/debug/BUILD.bazel
+index cf5c5d2..6db7f55 100644
+--- a/common/debug/BUILD.bazel
++++ b/common/debug/BUILD.bazel
+@@ -13,6 +13,6 @@ go_library(
+     importpath = "github.com/google/cel-go/common/debug",
+     deps = [
+         "//common:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+     ],
+ )
+diff --git a/common/types/BUILD.bazel b/common/types/BUILD.bazel
+index 32789f5..e3970fd 100644
+--- a/common/types/BUILD.bazel
++++ b/common/types/BUILD.bazel
+@@ -37,7 +37,7 @@ go_library(
+         "//common/types/ref:go_default_library",
+         "//common/types/traits:go_default_library",
+         "@com_github_stoewer_go_strcase//:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//encoding/protojson:go_default_library",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+@@ -75,7 +75,7 @@ go_test(
+         "//common/types/ref:go_default_library",
+         "//test:go_default_library",
+         "//test/proto3pb:test_all_types_go_proto",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//encoding/protojson:go_default_library",
+         "@org_golang_google_protobuf//types/known/anypb:go_default_library",
+         "@org_golang_google_protobuf//types/known/durationpb:go_default_library",
+diff --git a/common/types/pb/BUILD.bazel b/common/types/pb/BUILD.bazel
+index b0c79a7..37cd0a7 100644
+--- a/common/types/pb/BUILD.bazel
++++ b/common/types/pb/BUILD.bazel
+@@ -16,7 +16,7 @@ go_library(
+     ],
+     importpath = "github.com/google/cel-go/common/types/pb",
+     deps = [
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+         "@org_golang_google_protobuf//reflect/protoregistry:go_default_library",
+diff --git a/common/types/ref/BUILD.bazel b/common/types/ref/BUILD.bazel
+index 1d0f468..9243b47 100644
+--- a/common/types/ref/BUILD.bazel
++++ b/common/types/ref/BUILD.bazel
+@@ -13,7 +13,7 @@ go_library(
+     ],
+     importpath = "github.com/google/cel-go/common/types/ref",
+     deps = [
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+     ],
+diff --git a/ext/BUILD.bazel b/ext/BUILD.bazel
+index 2b98ad3..68a9d72 100644
+--- a/ext/BUILD.bazel
++++ b/ext/BUILD.bazel
+@@ -19,7 +19,7 @@ go_library(
+         "//common/types:go_default_library",
+         "//common/types/ref:go_default_library",
+         "//interpreter/functions:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+     ],
+ )
+ 
+diff --git a/interpreter/BUILD.bazel b/interpreter/BUILD.bazel
+index 2f4079f..6b30db8 100644
+--- a/interpreter/BUILD.bazel
++++ b/interpreter/BUILD.bazel
+@@ -30,7 +30,7 @@ go_library(
+         "//common/types/ref:go_default_library",
+         "//common/types/traits:go_default_library",
+         "//interpreter/functions:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//types/known/durationpb:go_default_library",
+         "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+@@ -63,7 +63,7 @@ go_test(
+         "//test:go_default_library",
+         "//test/proto2pb:go_default_library",
+         "//test/proto3pb:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//types/known/anypb:go_default_library",
+     ],
+diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel
+index b76e6e4..c098fe6 100644
+--- a/parser/BUILD.bazel
++++ b/parser/BUILD.bazel
+@@ -24,7 +24,7 @@ go_library(
+         "//common/runes:go_default_library",
+         "//parser/gen:go_default_library",
+         "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+     ],
+diff --git a/server/BUILD.bazel b/server/BUILD.bazel
+index 7174aa9..a4d9ff6 100644
+--- a/server/BUILD.bazel
++++ b/server/BUILD.bazel
+@@ -19,9 +19,9 @@ go_library(
+         "//common/types/traits:go_default_library",
+         "@com_google_cel_spec//proto/test/v1/proto2:test_all_types_go_proto",
+         "@com_google_cel_spec//proto/test/v1/proto3:test_all_types_go_proto",
+-        "@org_golang_google_genproto//googleapis/api/expr/conformance/v1alpha1:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
+-        "@org_golang_google_genproto//googleapis/rpc/status:go_default_library",
++        "@go_googleapis//google/api/expr/conformance/v1alpha1:conformance_go_proto",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
++        "@go_googleapis//google/rpc/status:status_go_proto",
+         "@org_golang_google_grpc//codes:go_default_library",
+         "@org_golang_google_grpc//status:go_default_library",
+         "@org_golang_google_protobuf//proto:go_default_library",
+@@ -44,8 +44,8 @@ go_test(
+         "//common/operators:go_default_library",
+         "//test:go_default_library",
+         "@com_google_cel_spec//tools/celrpc:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/conformance/v1alpha1:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
+-        "@org_golang_google_genproto//googleapis/rpc/status:go_default_library",
++        "@go_googleapis//google/api/expr/conformance/v1alpha1:conformance_go_proto",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
++        "@go_googleapis//google/rpc/status:status_go_proto",
+     ],
+ )
+diff --git a/test/BUILD.bazel b/test/BUILD.bazel
+index 0d39c70..3b8c460 100644
+--- a/test/BUILD.bazel
++++ b/test/BUILD.bazel
+@@ -20,7 +20,7 @@ go_library(
+     importpath = "github.com/google/cel-go/test",
+     deps = [
+         "//common/operators:go_default_library",
+-        "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++        "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+         "@org_golang_google_protobuf//proto:go_default_library",
+         "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+     ],
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/containerd-netns-statedir.patch b/third_party/go/patches/containerd-netns-statedir.patch
deleted file mode 100644
index a693eb7..0000000
--- a/third_party/go/patches/containerd-netns-statedir.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 3e7a8cebf9d40487adc7d4a22b5c628add5e7eac Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Wed, 27 Jan 2021 13:05:30 +0100
-Subject: [PATCH] Move netns directory into StateDir
-
----
- pkg/netns/netns_unix.go   | 12 +++++-------
- pkg/server/sandbox_run.go |  3 ++-
- 2 files changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/pkg/netns/netns_unix.go b/pkg/netns/netns_unix.go
-index 7449e235..b31716cb 100644
---- a/pkg/netns/netns_unix.go
-+++ b/pkg/netns/netns_unix.go
-@@ -48,14 +48,12 @@ import (
- 	osinterface "github.com/containerd/cri/pkg/os"
- )
- 
--const nsRunDir = "/var/run/netns"
--
- // Some of the following functions are migrated from
- // https://github.com/containernetworking/plugins/blob/master/pkg/testutils/netns_linux.go
- 
- // newNS creates a new persistent (bind-mounted) network namespace and returns the
- // path to the network namespace.
--func newNS() (nsPath string, err error) {
-+func newNS(baseDir string) (nsPath string, err error) {
- 	b := make([]byte, 16)
- 	if _, err := rand.Reader.Read(b); err != nil {
- 		return "", errors.Wrap(err, "failed to generate random netns name")
-@@ -64,13 +62,13 @@ func newNS() (nsPath string, err error) {
- 	// Create the directory for mounting network namespaces
- 	// This needs to be a shared mountpoint in case it is mounted in to
- 	// other namespaces (containers)
--	if err := os.MkdirAll(nsRunDir, 0755); err != nil {
-+	if err := os.MkdirAll(baseDir, 0755); err != nil {
- 		return "", err
- 	}
- 
- 	// create an empty file at the mount point
- 	nsName := fmt.Sprintf("cni-%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
--	nsPath = path.Join(nsRunDir, nsName)
-+	nsPath = path.Join(baseDir, nsName)
- 	mountPointFd, err := os.Create(nsPath)
- 	if err != nil {
- 		return "", err
-@@ -164,8 +162,8 @@ type NetNS struct {
- }
- 
- // NewNetNS creates a network namespace.
--func NewNetNS() (*NetNS, error) {
--	path, err := newNS()
-+func NewNetNS(baseDir string) (*NetNS, error) {
-+	path, err := newNS(baseDir)
- 	if err != nil {
- 		return nil, errors.Wrap(err, "failed to setup netns")
- 	}
-diff --git a/pkg/server/sandbox_run.go b/pkg/server/sandbox_run.go
-index dd4c51e3..32a2d6e8 100644
---- a/pkg/server/sandbox_run.go
-+++ b/pkg/server/sandbox_run.go
-@@ -19,6 +19,7 @@ package server
- import (
- 	"encoding/json"
- 	"math"
-+	"path/filepath"
- 	goruntime "runtime"
- 	"strings"
- 
-@@ -117,7 +118,7 @@ func (c *criService) RunPodSandbox(ctx context.Context, r *runtime.RunPodSandbox
- 		// handle. NetNSPath in sandbox metadata and NetNS is non empty only for non host network
- 		// namespaces. If the pod is in host network namespace then both are empty and should not
- 		// be used.
--		sandbox.NetNS, err = netns.NewNetNS()
-+		sandbox.NetNS, err = netns.NewNetNS(filepath.Join(c.config.StateDir, "netns"))
- 		if err != nil {
- 			return nil, errors.Wrapf(err, "failed to create network namespace for sandbox %q", id)
- 		}
--- 
-2.25.1
-
diff --git a/third_party/go/patches/containerd-no-tracing.patch b/third_party/go/patches/containerd-no-tracing.patch
new file mode 100644
index 0000000..ee6f8c8
--- /dev/null
+++ b/third_party/go/patches/containerd-no-tracing.patch
@@ -0,0 +1,43 @@
+From 26ac5a008b349b77288d29cc483ea5d6129f298c Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:35:44 +0100
+Subject: [PATCH] Disable tracing for otel compatibility
+
+---
+ cmd/containerd/builtins.go     | 1 -
+ cmd/containerd/command/main.go | 2 --
+ 2 files changed, 3 deletions(-)
+
+diff --git a/cmd/containerd/builtins.go b/cmd/containerd/builtins.go
+index 8c6f1fe86..dd8b1d3d9 100644
+--- a/cmd/containerd/builtins.go
++++ b/cmd/containerd/builtins.go
+@@ -36,5 +36,4 @@ import (
+ 	_ "github.com/containerd/containerd/services/snapshots"
+ 	_ "github.com/containerd/containerd/services/tasks"
+ 	_ "github.com/containerd/containerd/services/version"
+-	_ "github.com/containerd/containerd/tracing/plugin"
+ )
+diff --git a/cmd/containerd/command/main.go b/cmd/containerd/command/main.go
+index f549e08a3..dfde3599e 100644
+--- a/cmd/containerd/command/main.go
++++ b/cmd/containerd/command/main.go
+@@ -35,7 +35,6 @@ import (
+ 	"github.com/containerd/containerd/services/server"
+ 	srvconfig "github.com/containerd/containerd/services/server/config"
+ 	"github.com/containerd/containerd/sys"
+-	"github.com/containerd/containerd/tracing"
+ 	"github.com/containerd/containerd/version"
+ 	"github.com/sirupsen/logrus"
+ 	"github.com/urfave/cli"
+@@ -370,7 +369,6 @@ func setLogFormat(config *srvconfig.Config) error {
+ }
+ 
+ func setLogHooks() {
+-	logrus.StandardLogger().AddHook(tracing.NewLogrusHook())
+ }
+ 
+ func dumpStacks(writeToFile bool) {
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/coredns-remove-unused-plugins.patch b/third_party/go/patches/coredns-remove-unused-plugins.patch
index 9180d48..e952585 100644
--- a/third_party/go/patches/coredns-remove-unused-plugins.patch
+++ b/third_party/go/patches/coredns-remove-unused-plugins.patch
@@ -1,202 +1,156 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From b8a216a10775163dac6267127c35c9230ccbc5f7 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Mon, 27 Jul 2020 14:25:03 +0200
-Subject: [PATCH] Removed unused plugins
+From 355d38f38cf241b91a862795892bcb87c5729d2e Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 13:39:39 +0100
+Subject: [PATCH] Remove unused plugins
 
 ---
- core/dnsserver/zdirectives.go | 26 --------------------------
- core/plugin/zplugin.go        | 26 --------------------------
- plugin.cfg                    | 26 --------------------------
- plugin/kubernetes/setup.go    |  3 ---
- 4 files changed, 81 deletions(-)
+ core/dnsserver/zdirectives.go | 7 -------
+ core/plugin/zplugin.go        | 7 -------
+ plugin.cfg                    | 7 -------
+ plugin/kubernetes/setup.go    | 3 ---
+ 4 files changed, 24 deletions(-)
 
 diff --git a/core/dnsserver/zdirectives.go b/core/dnsserver/zdirectives.go
-index 1bf449cb..c3619160 100644
+index bca21718..678c02c6 100644
 --- a/core/dnsserver/zdirectives.go
 +++ b/core/dnsserver/zdirectives.go
-@@ -11,48 +11,22 @@ package dnsserver
+@@ -11,7 +11,6 @@ package dnsserver
  // care what plugin above them are doing.
  var Directives = []string{
  	"metadata",
--	"cancel",
--	"tls",
+-	"geoip",
+ 	"cancel",
+ 	"tls",
  	"reload",
- 	"nsid",
- 	"bufsize",
--	"root",
+@@ -20,14 +19,12 @@ var Directives = []string{
+ 	"root",
  	"bind",
  	"debug",
 -	"trace",
--	"ready",
+ 	"ready",
  	"health",
--	"pprof",
--	"prometheus",
+ 	"pprof",
+ 	"prometheus",
  	"errors",
  	"log",
 -	"dnstap",
+ 	"local",
  	"dns64",
  	"acl",
- 	"any",
--	"chaos",
- 	"loadbalance",
- 	"cache",
--	"rewrite",
--	"dnssec",
--	"autopath",
+@@ -43,15 +40,11 @@ var Directives = []string{
  	"template",
--	"transfer",
+ 	"transfer",
  	"hosts",
 -	"route53",
 -	"azure",
 -	"clouddns",
--	"k8s_external",
+ 	"k8s_external",
  	"kubernetes",
--	"file",
--	"auto",
--	"secondary",
+ 	"file",
+ 	"auto",
+ 	"secondary",
 -	"etcd",
--	"loop",
+ 	"loop",
  	"forward",
--	"grpc",
--	"erratic",
- 	"whoami",
--	"on",
--	"sign",
- }
+ 	"grpc",
 diff --git a/core/plugin/zplugin.go b/core/plugin/zplugin.go
-index cf83be70..de026516 100644
+index a9167eea..2a5d0b13 100644
 --- a/core/plugin/zplugin.go
 +++ b/core/plugin/zplugin.go
-@@ -4,49 +4,23 @@ package plugin
-
- import (
- 	// Include all plugins.
--	_ "github.com/caddyserver/caddy/onevent"
- 	_ "github.com/coredns/coredns/plugin/acl"
+@@ -9,23 +9,18 @@ import (
  	_ "github.com/coredns/coredns/plugin/any"
--	_ "github.com/coredns/coredns/plugin/auto"
--	_ "github.com/coredns/coredns/plugin/autopath"
+ 	_ "github.com/coredns/coredns/plugin/auto"
+ 	_ "github.com/coredns/coredns/plugin/autopath"
 -	_ "github.com/coredns/coredns/plugin/azure"
  	_ "github.com/coredns/coredns/plugin/bind"
  	_ "github.com/coredns/coredns/plugin/bufsize"
  	_ "github.com/coredns/coredns/plugin/cache"
--	_ "github.com/coredns/coredns/plugin/cancel"
--	_ "github.com/coredns/coredns/plugin/chaos"
+ 	_ "github.com/coredns/coredns/plugin/cancel"
+ 	_ "github.com/coredns/coredns/plugin/chaos"
 -	_ "github.com/coredns/coredns/plugin/clouddns"
  	_ "github.com/coredns/coredns/plugin/debug"
  	_ "github.com/coredns/coredns/plugin/dns64"
--	_ "github.com/coredns/coredns/plugin/dnssec"
+ 	_ "github.com/coredns/coredns/plugin/dnssec"
 -	_ "github.com/coredns/coredns/plugin/dnstap"
--	_ "github.com/coredns/coredns/plugin/erratic"
+ 	_ "github.com/coredns/coredns/plugin/erratic"
  	_ "github.com/coredns/coredns/plugin/errors"
 -	_ "github.com/coredns/coredns/plugin/etcd"
--	_ "github.com/coredns/coredns/plugin/file"
+ 	_ "github.com/coredns/coredns/plugin/file"
  	_ "github.com/coredns/coredns/plugin/forward"
--	_ "github.com/coredns/coredns/plugin/grpc"
+-	_ "github.com/coredns/coredns/plugin/geoip"
+ 	_ "github.com/coredns/coredns/plugin/grpc"
+ 	_ "github.com/coredns/coredns/plugin/header"
  	_ "github.com/coredns/coredns/plugin/health"
- 	_ "github.com/coredns/coredns/plugin/hosts"
--	_ "github.com/coredns/coredns/plugin/k8s_external"
- 	_ "github.com/coredns/coredns/plugin/kubernetes"
- 	_ "github.com/coredns/coredns/plugin/loadbalance"
- 	_ "github.com/coredns/coredns/plugin/log"
--	_ "github.com/coredns/coredns/plugin/loop"
- 	_ "github.com/coredns/coredns/plugin/metadata"
--	_ "github.com/coredns/coredns/plugin/metrics"
- 	_ "github.com/coredns/coredns/plugin/nsid"
--	_ "github.com/coredns/coredns/plugin/pprof"
--	_ "github.com/coredns/coredns/plugin/ready"
+@@ -45,12 +40,10 @@ import (
  	_ "github.com/coredns/coredns/plugin/reload"
--	_ "github.com/coredns/coredns/plugin/rewrite"
--	_ "github.com/coredns/coredns/plugin/root"
+ 	_ "github.com/coredns/coredns/plugin/rewrite"
+ 	_ "github.com/coredns/coredns/plugin/root"
 -	_ "github.com/coredns/coredns/plugin/route53"
--	_ "github.com/coredns/coredns/plugin/secondary"
--	_ "github.com/coredns/coredns/plugin/sign"
+ 	_ "github.com/coredns/coredns/plugin/secondary"
+ 	_ "github.com/coredns/coredns/plugin/sign"
  	_ "github.com/coredns/coredns/plugin/template"
--	_ "github.com/coredns/coredns/plugin/tls"
+ 	_ "github.com/coredns/coredns/plugin/tls"
 -	_ "github.com/coredns/coredns/plugin/trace"
--	_ "github.com/coredns/coredns/plugin/transfer"
+ 	_ "github.com/coredns/coredns/plugin/transfer"
  	_ "github.com/coredns/coredns/plugin/whoami"
  )
 diff --git a/plugin.cfg b/plugin.cfg
-index c389d74e..80a8bc51 100644
+index 628e7141..d4ce1c89 100644
 --- a/plugin.cfg
 +++ b/plugin.cfg
-@@ -20,47 +20,21 @@
+@@ -20,7 +20,6 @@
  # log:log
-
+ 
  metadata:metadata
--cancel:cancel
--tls:tls
+-geoip:geoip
+ cancel:cancel
+ tls:tls
  reload:reload
- nsid:nsid
- bufsize:bufsize
--root:root
+@@ -29,14 +28,12 @@ bufsize:bufsize
+ root:root
  bind:bind
  debug:debug
 -trace:trace
--ready:ready
+ ready:ready
  health:health
--pprof:pprof
--prometheus:metrics
+ pprof:pprof
+ prometheus:metrics
  errors:errors
  log:log
 -dnstap:dnstap
+ local:local
  dns64:dns64
  acl:acl
- any:any
--chaos:chaos
- loadbalance:loadbalance
- cache:cache
--rewrite:rewrite
--dnssec:dnssec
--autopath:autopath
+@@ -52,15 +49,11 @@ minimal:minimal
  template:template
--transfer:transfer
+ transfer:transfer
  hosts:hosts
 -route53:route53
 -azure:azure
 -clouddns:clouddns
--k8s_external:k8s_external
+ k8s_external:k8s_external
  kubernetes:kubernetes
--file:file
--auto:auto
--secondary:secondary
+ file:file
+ auto:auto
+ secondary:secondary
 -etcd:etcd
--loop:loop
+ loop:loop
  forward:forward
--grpc:grpc
--erratic:erratic
- whoami:whoami
--on:github.com/caddyserver/caddy/onevent
--sign:sign
+ grpc:grpc
 diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go
-index 0c46a3ab..827fc141 100644
+index 5f5ab058..ae1a7cf8 100644
 --- a/plugin/kubernetes/setup.go
 +++ b/plugin/kubernetes/setup.go
-@@ -20,9 +20,6 @@ import (
- 	"github.com/caddyserver/caddy"
+@@ -17,9 +17,6 @@ import (
+ 
  	"github.com/miekg/dns"
  	meta "k8s.io/apimachinery/pkg/apis/meta/v1"
 -	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"       // pull this in here, because we want it excluded if plugin.cfg doesn't have k8s
 -	_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"      // pull this in here, because we want it excluded if plugin.cfg doesn't have k8s
 -	_ "k8s.io/client-go/plugin/pkg/client/auth/openstack" // pull this in here, because we want it excluded if plugin.cfg doesn't have k8s
  	"k8s.io/client-go/tools/clientcmd"
- 	"k8s.io/klog"
+ 	"k8s.io/klog/v2"
  )
---
+-- 
 2.25.1
+
diff --git a/third_party/go/patches/delve-fix-cgo.patch b/third_party/go/patches/delve-fix-cgo.patch
new file mode 100644
index 0000000..d8a5254
--- /dev/null
+++ b/third_party/go/patches/delve-fix-cgo.patch
@@ -0,0 +1,11 @@
+diff -urN b/pkg/proc/internal/ebpf/BUILD.bazel c/pkg/proc/internal/ebpf/BUILD.bazel
+--- b/pkg/proc/internal/ebpf/BUILD.bazel  2022-01-14 23:29:02.948089761 +0000
++++ c/pkg/proc/internal/ebpf/BUILD.bazel  2022-01-14 23:13:52.964810803 +0000
+@@ -7,6 +7,7 @@
+         "helpers.go",
+         "helpers_disabled.go",
+         "trace_bpfel_x86.go",
++        "bpf/include/function_vals.bpf.h",
+     ],
+     cgo = True,
+     embedsrcs = select({
\ No newline at end of file
diff --git a/third_party/go/patches/etcd-fix-stub.patch b/third_party/go/patches/etcd-fix-stub.patch
new file mode 100644
index 0000000..bb47ac4
--- /dev/null
+++ b/third_party/go/patches/etcd-fix-stub.patch
@@ -0,0 +1,9 @@
+--- a/grpc_testing/stub_server.go
++++ b/grpc_testing/stub_server.go
+@@ -86,5 +86,5 @@ func (d dummyStubServer) UnaryCall(context.Context, *testpb.SimpleRequest) (*tes
+ // NewDummyStubServer creates a simple test server that serves Unary calls with
+ // responses with the given payload.
+ func NewDummyStubServer(body []byte) *StubServer {
+-	return New(dummyStubServer{body: body})
++	return New(&dummyStubServer{body: body})
+ }
diff --git a/third_party/go/patches/go-proto-validators-default-alias.patch b/third_party/go/patches/go-proto-validators-default-alias.patch
deleted file mode 100644
index 46f21a9..0000000
--- a/third_party/go/patches/go-proto-validators-default-alias.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 49b5f957d01cd50e5303cfc0e6c7f350d7e1c24e Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@monogon.tech>
-Date: Tue, 30 Nov 2021 03:19:37 +0100
-Subject: [PATCH] Alias go_default_library in BUILD to make Gazelle work
-
----
- BUILD.bazel | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/BUILD.bazel b/BUILD.bazel
-index 9a1edd4..e5b8f96 100644
---- a/BUILD.bazel
-+++ b/BUILD.bazel
-@@ -14,6 +14,12 @@ gazelle(
- # By default resolve the top-level package to the gogo variant as it's required for the plugin compilation.
- # gazelle:resolve go github.com/mwitkow/go-proto-validators //:validators_gogo
- 
-+alias(
-+    name = "go_default_library",
-+    actual = "validators_golang",
-+    visibility = ["//visibility:public"],
-+)
-+
- go_proto_compiler(
-     name = "go_proto_validators",
-     options = ["gogoimport=false"],
--- 
-2.25.1
-
diff --git a/third_party/go/patches/go-tpm-tools-fix-proto-paths.patch b/third_party/go/patches/go-tpm-tools-fix-proto-paths.patch
new file mode 100644
index 0000000..ae7fcf3
--- /dev/null
+++ b/third_party/go/patches/go-tpm-tools-fix-proto-paths.patch
@@ -0,0 +1,66 @@
+From a799a94b7b67b21d1eecfe66dbe264ef3e276cd3 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 30 Mar 2022 15:48:23 +0200
+Subject: [PATCH] Fix proto file paths
+
+---
+ proto/0001-Fix-proto-file-paths.patch | 23 +++++++++++++++++++++++
+ proto/{ => attest}/attest.proto       |  2 +-
+ proto/{ => tpm}/tpm.proto             |  0
+ 3 files changed, 24 insertions(+), 1 deletion(-)
+ create mode 100644 proto/0001-Fix-proto-file-paths.patch
+ rename proto/{ => attest}/attest.proto (99%)
+ rename proto/{ => tpm}/tpm.proto (100%)
+
+diff --git a/proto/0001-Fix-proto-file-paths.patch b/proto/0001-Fix-proto-file-paths.patch
+new file mode 100644
+index 0000000..22e3b45
+--- /dev/null
++++ b/proto/0001-Fix-proto-file-paths.patch
+@@ -0,0 +1,23 @@
++From ba5bf5ac1e0b3d92e8f19a0feb2307515c0e2baf Mon Sep 17 00:00:00 2001
++From: Lorenz Brun <lorenz@monogon.tech>
++Date: Wed, 30 Mar 2022 15:48:23 +0200
++Subject: [PATCH] Fix proto file paths
++
++---
++ proto/{ => attest}/attest.proto | 0
++ proto/{ => tpm}/tpm.proto       | 0
++ 2 files changed, 0 insertions(+), 0 deletions(-)
++ rename proto/{ => attest}/attest.proto (100%)
++ rename proto/{ => tpm}/tpm.proto (100%)
++
++diff --git a/proto/attest.proto b/proto/attest/attest.proto
++similarity index 100%
++rename from proto/attest.proto
++rename to proto/attest/attest.proto
++diff --git a/proto/tpm.proto b/proto/tpm/tpm.proto
++similarity index 100%
++rename from proto/tpm.proto
++rename to proto/tpm/tpm.proto
++-- 
++2.25.1
++
+diff --git a/proto/attest.proto b/proto/attest/attest.proto
+similarity index 99%
+rename from proto/attest.proto
+rename to proto/attest/attest.proto
+index fbaf5bd..7960297 100644
+--- a/proto/attest.proto
++++ b/proto/attest/attest.proto
+@@ -3,7 +3,7 @@ syntax = "proto3";
+ package attest;
+ option go_package = "github.com/google/go-tpm-tools/proto/attest";
+ 
+-import "tpm.proto";
++import "proto/tpm/tpm.proto";
+ 
+ // Information uniquely identifying a GCE instance. Can be used to create an
+ // instance URL, which can then be used with GCE APIs. Formatted like:
+diff --git a/proto/tpm.proto b/proto/tpm/tpm.proto
+similarity index 100%
+rename from proto/tpm.proto
+rename to proto/tpm/tpm.proto
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/gvisor-build-against-newer-runtime-specs.patch b/third_party/go/patches/gvisor-build-against-newer-runtime-specs.patch
deleted file mode 100644
index f653492..0000000
--- a/third_party/go/patches/gvisor-build-against-newer-runtime-specs.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 9fc5e36f4e0bd691fc502372ebf837d24fbe5297 Mon Sep 17 00:00:00 2001
-From: Serge Bazanski <serge@nexantic.com>
-Date: Fri, 15 Jan 2021 16:22:33 +0100
-Subject: [PATCH] Build against new opencontainers runtime-specs
-Company: nexantic GmbH
-
----
- runsc/container/container.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/runsc/container/container.go b/runsc/container/container.go
-index 418a27beb..8508ded5a 100644
---- a/runsc/container/container.go
-+++ b/runsc/container/container.go
-@@ -747,7 +747,7 @@ func (c *Container) State() specs.State {
- 	return specs.State{
- 		Version: specs.Version,
- 		ID:      c.ID,
--		Status:  c.Status.String(),
-+		Status:  specs.ContainerState(c.Status.String()),
- 		Pid:     c.SandboxPid(),
- 		Bundle:  c.BundleDir,
- 	}
--- 
-2.26.2
-
diff --git a/third_party/go/patches/gvisor-cgroup-fix.patch b/third_party/go/patches/gvisor-cgroup-fix.patch
deleted file mode 100644
index aba0b4a..0000000
--- a/third_party/go/patches/gvisor-cgroup-fix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From fcd48e672489f41c9977e092937ff806a7e772bd Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@monogon.tech>
-Date: Thu, 11 Nov 2021 13:58:50 +0100
-Subject: [PATCH] Make systemd cgroup optional
-
-This breaks gVisor on systems that use custom inits/cgroup setups which
-don't have this cgroup and don't need it.
----
- runsc/cgroup/cgroup.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/runsc/cgroup/cgroup.go b/runsc/cgroup/cgroup.go
-index 0eb5821a9..2116bddca 100644
---- a/runsc/cgroup/cgroup.go
-+++ b/runsc/cgroup/cgroup.go
-@@ -58,7 +58,7 @@ var controllers = map[string]controller{
- 	"freezer":    &noop{},
- 	"perf_event": &noop{},
- 	"rdma":       &noop{isOptional: true},
--	"systemd":    &noop{},
-+	"systemd":    &noop{isOptional: true},
- }
- 
- // IsOnlyV2 checks whether cgroups V2 is enabled and V1 is not.
--- 
-2.25.1
-
diff --git a/third_party/go/patches/gvisor-containerd-compat.patch b/third_party/go/patches/gvisor-containerd-compat.patch
new file mode 100644
index 0000000..89eb40f
--- /dev/null
+++ b/third_party/go/patches/gvisor-containerd-compat.patch
@@ -0,0 +1,114 @@
+From bf861ce45721791336b617a44844613bb74c677a Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Tue, 22 Mar 2022 00:52:48 +0100
+Subject: [PATCH] containerd 1.6 compatibility
+
+---
+ pkg/shim/proc/exec.go     |  2 +-
+ pkg/shim/proc/init.go     |  2 +-
+ pkg/shim/service.go       | 17 +++++++++--------
+ pkg/shim/service_linux.go |  2 +-
+ 4 files changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/pkg/shim/proc/exec.go b/pkg/shim/proc/exec.go
+index da2e21598..d0d14dd24 100644
+--- a/pkg/shim/proc/exec.go
++++ b/pkg/shim/proc/exec.go
+@@ -238,7 +238,7 @@ func (e *execProcess) start(ctx context.Context) error {
+ 		if err != nil {
+ 			return fmt.Errorf("failed to retrieve console master: %w", err)
+ 		}
+-		if e.console, err = e.parent.Platform.CopyConsole(ctx, console, e.stdio.Stdin, e.stdio.Stdout, e.stdio.Stderr, &e.wg); err != nil {
++		if e.console, err = e.parent.Platform.CopyConsole(ctx, console, e.id, e.stdio.Stdin, e.stdio.Stdout, e.stdio.Stderr, &e.wg); err != nil {
+ 			return fmt.Errorf("failed to start console copy: %w", err)
+ 		}
+ 	} else if !e.stdio.IsNull() {
+diff --git a/pkg/shim/proc/init.go b/pkg/shim/proc/init.go
+index 6bf090813..76df1101a 100644
+--- a/pkg/shim/proc/init.go
++++ b/pkg/shim/proc/init.go
+@@ -152,7 +152,7 @@ func (p *Init) Create(ctx context.Context, r *CreateConfig) (err error) {
+ 		if err != nil {
+ 			return fmt.Errorf("failed to retrieve console master: %w", err)
+ 		}
+-		console, err = p.Platform.CopyConsole(ctx, console, r.Stdin, r.Stdout, r.Stderr, &p.wg)
++		console, err = p.Platform.CopyConsole(ctx, console, r.ID, r.Stdin, r.Stdout, r.Stderr, &p.wg)
+ 		if err != nil {
+ 			return fmt.Errorf("failed to start console copy: %w", err)
+ 		}
+diff --git a/pkg/shim/service.go b/pkg/shim/service.go
+index 68966afdf..772168052 100644
+--- a/pkg/shim/service.go
++++ b/pkg/shim/service.go
+@@ -50,7 +50,7 @@ import (
+ 	"github.com/sirupsen/logrus"
+ 	"golang.org/x/sys/unix"
+ 	"gvisor.dev/gvisor/pkg/cleanup"
+-	"gvisor.dev/gvisor/pkg/shim/runtimeoptions/v14"
++	v14 "gvisor.dev/gvisor/pkg/shim/runtimeoptions/v14"
+ 
+ 	"gvisor.dev/gvisor/pkg/shim/proc"
+ 	"gvisor.dev/gvisor/pkg/shim/runsc"
+@@ -189,7 +189,7 @@ type service struct {
+ 	shimAddress string
+ }
+ 
+-func (s *service) newCommand(ctx context.Context, containerdBinary, containerdAddress string) (*exec.Cmd, error) {
++func (s *service) newCommand(ctx context.Context, id, containerdBinary, containerdAddress string) (*exec.Cmd, error) {
+ 	ns, err := namespaces.NamespaceRequired(ctx)
+ 	if err != nil {
+ 		return nil, err
+@@ -204,6 +204,7 @@ func (s *service) newCommand(ctx context.Context, containerdBinary, containerdAd
+ 	}
+ 	args := []string{
+ 		"-namespace", ns,
++		"-id", id,
+ 		"-address", containerdAddress,
+ 		"-publish-binary", containerdBinary,
+ 	}
+@@ -219,14 +220,14 @@ func (s *service) newCommand(ctx context.Context, containerdBinary, containerdAd
+ 	return cmd, nil
+ }
+ 
+-func (s *service) StartShim(ctx context.Context, id, containerdBinary, containerdAddress, containerdTTRPCAddress string) (string, error) {
+-	log.L.Debugf("StartShim, id: %s, binary: %q, address: %q", id, containerdBinary, containerdAddress)
++func (s *service) StartShim(ctx context.Context, opts shim.StartOpts) (string, error) {
++	log.L.Debugf("StartShim, id: %s, binary: %q, address: %q", opts.ID, opts.ContainerdBinary, opts.Address)
+ 
+-	cmd, err := s.newCommand(ctx, containerdBinary, containerdAddress)
++	cmd, err := s.newCommand(ctx, opts.ID, opts.ContainerdBinary, opts.Address)
+ 	if err != nil {
+ 		return "", err
+ 	}
+-	address, err := shim.SocketAddress(ctx, containerdAddress, id)
++	address, err := shim.SocketAddress(ctx, opts.Address, opts.ID)
+ 	if err != nil {
+ 		return "", err
+ 	}
+@@ -280,8 +281,8 @@ func (s *service) StartShim(ctx context.Context, id, containerdBinary, container
+ 	if err := shim.WriteAddress(shimAddressPath, address); err != nil {
+ 		return "", err
+ 	}
+-	if err := shim.SetScore(cmd.Process.Pid); err != nil {
+-		return "", fmt.Errorf("failed to set OOM Score on shim: %w", err)
++	if err := shim.AdjustOOMScore(cmd.Process.Pid); err != nil {
++		return "", fmt.Errorf("failed to adjust OOM score for shim: %w", err)
+ 	}
+ 	cu.Release()
+ 	return address, nil
+diff --git a/pkg/shim/service_linux.go b/pkg/shim/service_linux.go
+index fb2f8b062..52c82ca90 100644
+--- a/pkg/shim/service_linux.go
++++ b/pkg/shim/service_linux.go
+@@ -33,7 +33,7 @@ type linuxPlatform struct {
+ 	epoller *console.Epoller
+ }
+ 
+-func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console, stdin, stdout, stderr string, wg *sync.WaitGroup) (console.Console, error) {
++func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console, id, stdin, stdout, stderr string, wg *sync.WaitGroup) (console.Console, error) {
+ 	if p.epoller == nil {
+ 		return nil, fmt.Errorf("uninitialized epoller")
+ 	}
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/gvisor-fix-resolution.patch b/third_party/go/patches/gvisor-fix-resolution.patch
new file mode 100644
index 0000000..71e0af5
--- /dev/null
+++ b/third_party/go/patches/gvisor-fix-resolution.patch
@@ -0,0 +1,10 @@
+--- a/pkg/coverage/BUILD.bazel
++++ b/pkg/coverage/BUILD.bazel
+@@ -11,7 +11,7 @@ go_library(
+     deps = [
+         "//pkg/hostarch",
+         "//pkg/sync",
+-        "@io_bazel_rules_go//go/tools/coverdata:go_default_library",
++        "@io_bazel_rules_go//go/tools/coverdata",
+     ],
+ )
diff --git a/third_party/go/patches/gvisor-shim-root.patch b/third_party/go/patches/gvisor-shim-root.patch
deleted file mode 100644
index 6b10797..0000000
--- a/third_party/go/patches/gvisor-shim-root.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 6cbcb8e61b60046e51ff79674b78031707739401 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Wed, 6 May 2020 18:52:14 +0200
-Subject: [PATCH] Fix externally-configured non-standard root paths
-
-Going upstream as https://github.com/google/gvisor-containerd-shim/pull/60
-
----
- pkg/v2/service.go | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/pkg/v2/service.go b/pkg/v2/service.go
-index c1df4b8..f7f5847 100644
---- a/pkg/v2/service.go
-+++ b/pkg/v2/service.go
-@@ -103,6 +103,7 @@ type service struct {
- 	processes map[string]process.Process
- 	events    chan interface{}
- 	platform  stdio.Platform
-+	opts      options.Options
- 	ec        chan proc.Exit
- 
- 	id     string
-@@ -194,7 +195,7 @@ func (s *service) Cleanup(ctx context.Context) (*taskAPI.DeleteResponse, error)
- 	if err != nil {
- 		return nil, err
- 	}
--	r := proc.NewRunsc(proc.RunscRoot, path, ns, runtime, nil)
-+	r := proc.NewRunsc(s.opts.Root, path, ns, runtime, nil)
- 	if err := r.Delete(ctx, s.id, &runsc.DeleteOpts{
- 		Force: true,
- 	}); err != nil {
-@@ -344,6 +345,7 @@ func (s *service) Create(ctx context.Context, r *taskAPI.CreateTaskRequest) (_ *
- 	s.id = r.ID
- 	s.bundle = r.Bundle
- 	s.task = process
-+	s.opts = opts
- 	return &taskAPI.CreateTaskResponse{
- 		Pid: uint32(process.Pid()),
- 	}, nil
-@@ -577,7 +579,7 @@ func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (*taskAPI.
- 	if err != nil {
- 		return nil, err
- 	}
--	rs := proc.NewRunsc(proc.RunscRoot, path, ns, runtime, nil)
-+	rs := proc.NewRunsc(s.opts.Root, path, ns, runtime, nil)
- 	stats, err := rs.Stats(ctx, s.id)
- 	if err != nil {
- 		return nil, err
--- 
-2.25.1
-
diff --git a/third_party/go/patches/gvisor.patch b/third_party/go/patches/gvisor.patch
deleted file mode 100644
index 143ee59..0000000
--- a/third_party/go/patches/gvisor.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 69b2c3b6e2594a3f28e4ea1141bef542456b3eb2 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Wed, 5 Feb 2020 17:14:19 +0100
-Subject: [PATCH] Fix vdso include that breaks in an external
-
----
- vdso/cycle_clock.h | 2 +-
- vdso/seqlock.h     | 4 ++--
- vdso/vdso.cc       | 4 ++--
- vdso/vdso_time.cc  | 8 ++++----
- 4 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/vdso/cycle_clock.h b/vdso/cycle_clock.h
-index 5d3fbb25..fe15812c 100644
---- a/vdso/cycle_clock.h
-+++ b/vdso/cycle_clock.h
-@@ -17,7 +17,7 @@
- 
- #include <stdint.h>
- 
--#include "vdso/barrier.h"
-+#include "barrier.h"
- 
- namespace vdso {
- 
-diff --git a/vdso/seqlock.h b/vdso/seqlock.h
-index 7a173174..fff99748 100644
---- a/vdso/seqlock.h
-+++ b/vdso/seqlock.h
-@@ -18,8 +18,8 @@
- 
- #include <stdint.h>
- 
--#include "vdso/barrier.h"
--#include "vdso/compiler.h"
-+#include "barrier.h"
-+#include "compiler.h"
- 
- namespace vdso {
- 
-diff --git a/vdso/vdso.cc b/vdso/vdso.cc
-index 8bb80a7a..210d31ff 100644
---- a/vdso/vdso.cc
-+++ b/vdso/vdso.cc
-@@ -19,8 +19,8 @@
- #include <sys/time.h>
- #include <time.h>
- 
--#include "vdso/syscalls.h"
--#include "vdso/vdso_time.h"
-+#include "syscalls.h"
-+#include "vdso_time.h"
- 
- namespace vdso {
- namespace {
-diff --git a/vdso/vdso_time.cc b/vdso/vdso_time.cc
-index 1bb4bb86..fb5b281f 100644
---- a/vdso/vdso_time.cc
-+++ b/vdso/vdso_time.cc
-@@ -12,15 +12,15 @@
- // See the License for the specific language governing permissions and
- // limitations under the License.
- 
--#include "vdso/vdso_time.h"
-+#include "vdso_time.h"
- 
- #include <stdint.h>
- #include <sys/time.h>
- #include <time.h>
- 
--#include "vdso/cycle_clock.h"
--#include "vdso/seqlock.h"
--#include "vdso/syscalls.h"
-+#include "cycle_clock.h"
-+#include "seqlock.h"
-+#include "syscalls.h"
- 
- // struct params defines the layout of the parameter page maintained by the
- // kernel (i.e., sentry).
--- 
-2.20.1
-
diff --git a/third_party/go/patches/k8s-adopt-to-go-jose-2.3.patch b/third_party/go/patches/k8s-adopt-to-go-jose-2.3.patch
new file mode 100644
index 0000000..9efd08a
--- /dev/null
+++ b/third_party/go/patches/k8s-adopt-to-go-jose-2.3.patch
@@ -0,0 +1,136 @@
+From a1411288423dfc4062844b9f699a30fd7cbe090d Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Mon, 21 Mar 2022 15:20:19 +0100
+Subject: [PATCH 1/2] Adopt to API breakage in go-jose 2.3.0
+
+---
+ pkg/serviceaccount/claims_test.go          | 40 +++++++++++-----------
+ test/integration/auth/svcaccttoken_test.go |  6 ++--
+ 2 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/pkg/serviceaccount/claims_test.go b/pkg/serviceaccount/claims_test.go
+index 2e968f60335..a0b5a595c2f 100644
+--- a/pkg/serviceaccount/claims_test.go
++++ b/pkg/serviceaccount/claims_test.go
+@@ -85,9 +85,9 @@ func TestClaims(t *testing.T) {
+ 
+ 			sc: &jwt.Claims{
+ 				Subject:   "system:serviceaccount:myns:mysvcacct",
+-				IssuedAt:  jwt.NumericDate(1514764800),
+-				NotBefore: jwt.NumericDate(1514764800),
+-				Expiry:    jwt.NumericDate(1514764800),
++				IssuedAt:  jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				Expiry:    jwt.NewNumericDate(time.Unix(1514764800, 0)),
+ 			},
+ 			pc: &privateClaims{
+ 				Kubernetes: kubernetes{
+@@ -107,9 +107,9 @@ func TestClaims(t *testing.T) {
+ 
+ 			sc: &jwt.Claims{
+ 				Subject:   "system:serviceaccount:myns:mysvcacct",
+-				IssuedAt:  jwt.NumericDate(1514764800),
+-				NotBefore: jwt.NumericDate(1514764800),
+-				Expiry:    jwt.NumericDate(1514764800 + 100),
++				IssuedAt:  jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				Expiry:    jwt.NewNumericDate(time.Unix(1514764800+100, 0)),
+ 			},
+ 			pc: &privateClaims{
+ 				Kubernetes: kubernetes{
+@@ -130,9 +130,9 @@ func TestClaims(t *testing.T) {
+ 			sc: &jwt.Claims{
+ 				Subject:   "system:serviceaccount:myns:mysvcacct",
+ 				Audience:  []string{"1"},
+-				IssuedAt:  jwt.NumericDate(1514764800),
+-				NotBefore: jwt.NumericDate(1514764800),
+-				Expiry:    jwt.NumericDate(1514764800 + 100),
++				IssuedAt:  jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				Expiry:    jwt.NewNumericDate(time.Unix(1514764800+100, 0)),
+ 			},
+ 			pc: &privateClaims{
+ 				Kubernetes: kubernetes{
+@@ -152,9 +152,9 @@ func TestClaims(t *testing.T) {
+ 			sc: &jwt.Claims{
+ 				Subject:   "system:serviceaccount:myns:mysvcacct",
+ 				Audience:  []string{"1", "2"},
+-				IssuedAt:  jwt.NumericDate(1514764800),
+-				NotBefore: jwt.NumericDate(1514764800),
+-				Expiry:    jwt.NumericDate(1514764800 + 100),
++				IssuedAt:  jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				Expiry:    jwt.NewNumericDate(time.Unix(1514764800+100, 0)),
+ 			},
+ 			pc: &privateClaims{
+ 				Kubernetes: kubernetes{
+@@ -175,16 +175,16 @@ func TestClaims(t *testing.T) {
+ 
+ 			sc: &jwt.Claims{
+ 				Subject:   "system:serviceaccount:myns:mysvcacct",
+-				IssuedAt:  jwt.NumericDate(1514764800),
+-				NotBefore: jwt.NumericDate(1514764800),
+-				Expiry:    jwt.NumericDate(1514764800 + 60*60*24),
++				IssuedAt:  jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++				Expiry:    jwt.NewNumericDate(time.Unix(1514764800+60*60*24, 0)),
+ 			},
+ 			pc: &privateClaims{
+ 				Kubernetes: kubernetes{
+ 					Namespace: "myns",
+ 					Svcacct:   ref{Name: "mysvcacct", UID: "mysvcacct-uid"},
+ 					Pod:       &ref{Name: "mypod", UID: "mypod-uid"},
+-					WarnAfter: jwt.NumericDate(1514764800 + 60*60),
++					WarnAfter: jwt.NewNumericDate(time.Unix(1514764800+60*60, 0)),
+ 				},
+ 			},
+ 		},
+@@ -223,8 +223,8 @@ type claimTestCase struct {
+ 	name      string
+ 	getter    ServiceAccountTokenGetter
+ 	private   *privateClaims
+-	expiry    jwt.NumericDate
+-	notBefore jwt.NumericDate
++	expiry    *jwt.NumericDate
++	notBefore *jwt.NumericDate
+ 	expectErr string
+ }
+ 
+@@ -365,8 +365,8 @@ func TestValidatePrivateClaims(t *testing.T) {
+ 	for _, tc := range testcases {
+ 		t.Run(tc.name, func(t *testing.T) {
+ 			v := &validator{tc.getter}
+-			expiry := jwt.NumericDate(nowUnix)
+-			if tc.expiry != 0 {
++			expiry := jwt.NewNumericDate(time.Unix(nowUnix, 0))
++			if tc.expiry != nil {
+ 				expiry = tc.expiry
+ 			}
+ 			_, err := v.Validate(context.Background(), "", &jwt.Claims{Expiry: expiry, NotBefore: tc.notBefore}, tc.private)
+diff --git a/test/integration/auth/svcaccttoken_test.go b/test/integration/auth/svcaccttoken_test.go
+index da50bf4736e..5311b6c90c3 100644
+--- a/test/integration/auth/svcaccttoken_test.go
++++ b/test/integration/auth/svcaccttoken_test.go
+@@ -421,16 +421,16 @@ func TestServiceAccountTokenCreate(t *testing.T) {
+ 			t.Fatalf("error parsing warnafter: %v", err)
+ 		}
+ 
+-		if exp < int64(actualExpiry)-leeway || exp > int64(actualExpiry)+leeway {
++		if exp < int64(*actualExpiry)-leeway || exp > int64(*actualExpiry)+leeway {
+ 			t.Errorf("unexpected token exp %d, should within range of %d +- %d seconds", exp, actualExpiry, leeway)
+ 		}
+-		if warnafter < int64(assumedExpiry)-leeway || warnafter > int64(assumedExpiry)+leeway {
++		if warnafter < int64(*assumedExpiry)-leeway || warnafter > int64(*assumedExpiry)+leeway {
+ 			t.Errorf("unexpected token warnafter %d, should within range of %d +- %d seconds", warnafter, assumedExpiry, leeway)
+ 		}
+ 
+ 		checkExpiration(t, treq, requestExp)
+ 		expStatus := treq.Status.ExpirationTimestamp.Time.Unix()
+-		if expStatus < int64(assumedExpiry)-leeway || warnafter > int64(assumedExpiry)+leeway {
++		if expStatus < int64(*assumedExpiry)-leeway || warnafter > int64(*assumedExpiry)+leeway {
+ 			t.Errorf("unexpected expiration returned in tokenrequest status %d, should within range of %d +- %d seconds", expStatus, assumedExpiry, leeway)
+ 		}
+ 	})
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/k8s-adopt-to-runc-1.1.patch b/third_party/go/patches/k8s-adopt-to-runc-1.1.patch
new file mode 100644
index 0000000..8bfdcf2
--- /dev/null
+++ b/third_party/go/patches/k8s-adopt-to-runc-1.1.patch
@@ -0,0 +1,168 @@
+From 1564b39d0fbeac776a0d92236a0ca0c7cbdc6c5c Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Mon, 21 Mar 2022 15:21:25 +0100
+Subject: [PATCH 2/2] Adopt to API breakage in runc 1.1.0
+
+---
+ pkg/kubelet/cm/cgroup_manager_linux.go                | 11 ++++++-----
+ pkg/kubelet/cm/container_manager_linux.go             |  4 ++--
+ pkg/kubelet/cm/qos_container_manager_linux.go         |  4 ++--
+ pkg/kubelet/dockershim/cm/container_manager_linux.go  |  2 +-
+ .../kuberuntime/kuberuntime_container_linux.go        |  4 ++--
+ .../kuberuntime/kuberuntime_container_linux_test.go   |  6 +++---
+ 6 files changed, 16 insertions(+), 15 deletions(-)
+
+diff --git a/pkg/kubelet/cm/cgroup_manager_linux.go b/pkg/kubelet/cm/cgroup_manager_linux.go
+index 230173690d5..4bd50db5050 100644
+--- a/pkg/kubelet/cm/cgroup_manager_linux.go
++++ b/pkg/kubelet/cm/cgroup_manager_linux.go
+@@ -27,6 +27,7 @@ import (
+ 	"sync"
+ 	"time"
+ 
++	"github.com/opencontainers/runc/libcontainer/cgroups"
+ 	libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
+ 	cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
+ 	cgroupfs2 "github.com/opencontainers/runc/libcontainer/cgroups/fs2"
+@@ -150,18 +151,18 @@ func (l *libcontainerAdapter) newManager(cgroups *libcontainerconfigs.Cgroup, pa
+ 	switch l.cgroupManagerType {
+ 	case libcontainerCgroupfs:
+ 		if libcontainercgroups.IsCgroup2UnifiedMode() {
+-			return cgroupfs2.NewManager(cgroups, paths["memory"], false)
++			return cgroupfs2.NewManager(cgroups, paths["memory"])
+ 		}
+-		return cgroupfs.NewManager(cgroups, paths, false), nil
++		return cgroupfs.NewManager(cgroups, paths)
+ 	case libcontainerSystemd:
+ 		// this means you asked systemd to manage cgroups, but systemd was not on the host, so all you can do is panic...
+ 		if !cgroupsystemd.IsRunningSystemd() {
+ 			panic("systemd cgroup manager not available")
+ 		}
+ 		if libcontainercgroups.IsCgroup2UnifiedMode() {
+-			return cgroupsystemd.NewUnifiedManager(cgroups, paths["memory"], false), nil
++			return cgroupsystemd.NewUnifiedManager(cgroups, paths["memory"])
+ 		}
+-		return cgroupsystemd.NewLegacyManager(cgroups, paths), nil
++		return cgroupsystemd.NewLegacyManager(cgroups, paths)
+ 	}
+ 	return nil, fmt.Errorf("invalid cgroup manager configuration")
+ }
+@@ -420,7 +421,7 @@ func (m *cgroupManagerImpl) toResources(resourceConfig *ResourceConfig) *libcont
+ 		pageSizes.Insert(sizeString)
+ 	}
+ 	// for each page size omitted, limit to 0
+-	for _, pageSize := range cgroupfs.HugePageSizes {
++	for _, pageSize := range cgroups.HugePageSizes() {
+ 		if pageSizes.Has(pageSize) {
+ 			continue
+ 		}
+diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go
+index 3892bae081d..4c79f212ab5 100644
+--- a/pkg/kubelet/cm/container_manager_linux.go
++++ b/pkg/kubelet/cm/container_manager_linux.go
+@@ -401,10 +401,10 @@ func createManager(containerName string) (cgroups.Manager, error) {
+ 	}
+ 
+ 	if cgroups.IsCgroup2UnifiedMode() {
+-		return cgroupfs2.NewManager(cg, "", false)
++		return cgroupfs2.NewManager(cg, "")
+ 
+ 	}
+-	return cgroupfs.NewManager(cg, nil, false), nil
++	return cgroupfs.NewManager(cg, nil)
+ }
+ 
+ type KernelTunableBehavior string
+diff --git a/pkg/kubelet/cm/qos_container_manager_linux.go b/pkg/kubelet/cm/qos_container_manager_linux.go
+index bb79109b141..d0a78db2483 100644
+--- a/pkg/kubelet/cm/qos_container_manager_linux.go
++++ b/pkg/kubelet/cm/qos_container_manager_linux.go
+@@ -28,8 +28,8 @@ import (
+ 	"k8s.io/apimachinery/pkg/util/wait"
+ 
+ 	units "github.com/docker/go-units"
++	"github.com/opencontainers/runc/libcontainer/cgroups"
+ 	libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
+-	cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
+ 	v1 "k8s.io/api/core/v1"
+ 	utilfeature "k8s.io/apiserver/pkg/util/feature"
+ 	"k8s.io/kubernetes/pkg/api/v1/resource"
+@@ -147,7 +147,7 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis
+ // setHugePagesUnbounded ensures hugetlb is effectively unbounded
+ func (m *qosContainerManagerImpl) setHugePagesUnbounded(cgroupConfig *CgroupConfig) error {
+ 	hugePageLimit := map[int64]int64{}
+-	for _, pageSize := range cgroupfs.HugePageSizes {
++	for _, pageSize := range cgroups.HugePageSizes() {
+ 		pageSizeBytes, err := units.RAMInBytes(pageSize)
+ 		if err != nil {
+ 			return err
+diff --git a/pkg/kubelet/dockershim/cm/container_manager_linux.go b/pkg/kubelet/dockershim/cm/container_manager_linux.go
+index 759e27f26c5..93d6c51ac00 100644
+--- a/pkg/kubelet/dockershim/cm/container_manager_linux.go
++++ b/pkg/kubelet/dockershim/cm/container_manager_linux.go
+@@ -129,7 +129,7 @@ func createCgroupManager(name string) (cgroups.Manager, error) {
+ 			SkipDevices: true,
+ 		},
+ 	}
+-	return cgroupfs.NewManager(cg, nil, false), nil
++	return cgroupfs.NewManager(cg, nil)
+ }
+ 
+ // getMemoryCapacity returns the memory capacity on the machine in bytes.
+diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
+index 6cb9e54729e..fd922f07c7c 100644
+--- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
++++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
+@@ -23,8 +23,8 @@ import (
+ 	"strconv"
+ 	"time"
+ 
++	"github.com/opencontainers/runc/libcontainer/cgroups"
+ 	libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
+-	cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
+ 	v1 "k8s.io/api/core/v1"
+ 	"k8s.io/apimachinery/pkg/api/resource"
+ 	utilfeature "k8s.io/apiserver/pkg/util/feature"
+@@ -170,7 +170,7 @@ func GetHugepageLimitsFromResources(resources v1.ResourceRequirements) []*runtim
+ 	var hugepageLimits []*runtimeapi.HugepageLimit
+ 
+ 	// For each page size, limit to 0.
+-	for _, pageSize := range cgroupfs.HugePageSizes {
++	for _, pageSize := range cgroups.HugePageSizes() {
+ 		hugepageLimits = append(hugepageLimits, &runtimeapi.HugepageLimit{
+ 			PageSize: pageSize,
+ 			Limit:    uint64(0),
+diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
+index 46817e00fb0..f166adc6fe1 100644
+--- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
++++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
+@@ -25,7 +25,7 @@ import (
+ 	"testing"
+ 
+ 	"github.com/google/go-cmp/cmp"
+-	cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
++	"github.com/opencontainers/runc/libcontainer/cgroups"
+ 	"github.com/stretchr/testify/assert"
+ 	v1 "k8s.io/api/core/v1"
+ 	"k8s.io/apimachinery/pkg/api/resource"
+@@ -366,7 +366,7 @@ func TestGetHugepageLimitsFromResources(t *testing.T) {
+ 	var baseHugepage []*runtimeapi.HugepageLimit
+ 
+ 	// For each page size, limit to 0.
+-	for _, pageSize := range cgroupfs.HugePageSizes {
++	for _, pageSize := range cgroups.HugePageSizes() {
+ 		baseHugepage = append(baseHugepage, &runtimeapi.HugepageLimit{
+ 			PageSize: pageSize,
+ 			Limit:    uint64(0),
+@@ -481,7 +481,7 @@ func TestGetHugepageLimitsFromResources(t *testing.T) {
+ 		machineHugepageSupport := true
+ 		for _, hugepageLimit := range test.expected {
+ 			hugepageSupport := false
+-			for _, pageSize := range cgroupfs.HugePageSizes {
++			for _, pageSize := range cgroups.HugePageSizes() {
+ 				if pageSize == hugepageLimit.PageSize {
+ 					hugepageSupport = true
+ 					break
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/k8s-backport-no-dockershim.patch b/third_party/go/patches/k8s-backport-no-dockershim.patch
new file mode 100644
index 0000000..452c7e1
--- /dev/null
+++ b/third_party/go/patches/k8s-backport-no-dockershim.patch
@@ -0,0 +1,191 @@
+From bc78dff42ec6be929648e91f3ef2dd6dae5169fb Mon Sep 17 00:00:00 2001
+From: Davanum Srinivas <davanum@gmail.com>
+Date: Tue, 7 Dec 2021 14:48:57 -0500
+Subject: [PATCH] update files to drop dockershim
+
+Signed-off-by: Davanum Srinivas <davanum@gmail.com>
+---
+ build/dependencies.yaml                       |  2 --
+ cmd/kubelet/app/options/globalflags_linux.go  | 11 --------
+ go.mod                                        |  5 ----
+ go.sum                                        |  3 ---
+ pkg/kubelet/kubelet.go                        | 26 +------------------
+ .../legacy-cloud-providers/aws/aws_fakes.go   |  1 +
+ test/e2e/framework/.import-restrictions       | 10 -------
+ 7 files changed, 2 insertions(+), 56 deletions(-)
+
+diff --git a/build/dependencies.yaml b/build/dependencies.yaml
+index ff296e255b961..b0b1b5a6d41b8 100644
+--- a/build/dependencies.yaml
++++ b/build/dependencies.yaml
+@@ -172,8 +172,6 @@ dependencies:
+       match: defaultPodSandboxImageVersion\s+=
+     - path: hack/testdata/pod-with-precision.json
+       match: k8s.gcr.io\/pause:\d+\.\d+
+-    - path: pkg/kubelet/dockershim/docker_sandbox.go
+-      match: k8s.gcr.io\/pause:\d+\.\d+
+     - path: staging/src/k8s.io/kubectl/testdata/set/multi-resource-yaml.yaml
+       match: k8s.gcr.io\/pause:\d+\.\d+
+     - path: staging/src/k8s.io/kubectl/testdata/set/namespaced-resource.yaml
+diff --git a/cmd/kubelet/app/options/globalflags_linux.go b/cmd/kubelet/app/options/globalflags_linux.go
+index ad3b68628f661..e75e65ec37cd0 100644
+--- a/cmd/kubelet/app/options/globalflags_linux.go
++++ b/cmd/kubelet/app/options/globalflags_linux.go
+@@ -28,7 +28,6 @@ import (
+ 	// ensure libs have a chance to globally register their flags
+ 	_ "github.com/google/cadvisor/container/common"
+ 	_ "github.com/google/cadvisor/container/containerd"
+-	_ "github.com/google/cadvisor/container/docker"
+ 	_ "github.com/google/cadvisor/container/raw"
+ 	_ "github.com/google/cadvisor/machine"
+ 	_ "github.com/google/cadvisor/manager"
+@@ -41,9 +40,6 @@ func addCadvisorFlags(fs *pflag.FlagSet) {
+ 	global := flag.CommandLine
+ 	local := pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
+ 
+-	// These flags were also implicit from cadvisor, but are actually used by something in the core repo:
+-	// TODO(mtaufen): This one is stil used by our salt, but for heaven's sake it's even deprecated in cadvisor
+-	register(global, local, "docker_root")
+ 	// e2e node tests rely on this
+ 	register(global, local, "housekeeping_interval")
+ 
+@@ -54,13 +50,6 @@ func addCadvisorFlags(fs *pflag.FlagSet) {
+ 	registerDeprecated(global, local, "boot_id_file", deprecated)
+ 	registerDeprecated(global, local, "container_hints", deprecated)
+ 	registerDeprecated(global, local, "containerd", deprecated)
+-	registerDeprecated(global, local, "docker", deprecated)
+-	registerDeprecated(global, local, "docker_env_metadata_whitelist", deprecated)
+-	registerDeprecated(global, local, "docker_only", deprecated)
+-	registerDeprecated(global, local, "docker-tls", deprecated)
+-	registerDeprecated(global, local, "docker-tls-ca", deprecated)
+-	registerDeprecated(global, local, "docker-tls-cert", deprecated)
+-	registerDeprecated(global, local, "docker-tls-key", deprecated)
+ 	registerDeprecated(global, local, "enable_load_reader", deprecated)
+ 	registerDeprecated(global, local, "event_storage_age_limit", deprecated)
+ 	registerDeprecated(global, local, "event_storage_event_limit", deprecated)
+diff --git a/go.mod b/go.mod
+index a17878d68d030..7dccd35bb6b91 100644
+--- a/go.mod
++++ b/go.mod
+@@ -25,15 +25,12 @@ require (
+ 	github.com/boltdb/bolt v1.3.1 // indirect
+ 	github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313
+ 	github.com/container-storage-interface/spec v1.5.0
+-	github.com/containernetworking/cni v0.8.1
+ 	github.com/coredns/corefile-migration v1.0.14
+ 	github.com/coreos/go-oidc v2.1.0+incompatible
+ 	github.com/coreos/go-systemd/v22 v22.3.2
+ 	github.com/cpuguy83/go-md2man/v2 v2.0.0
+ 	github.com/davecgh/go-spew v1.1.1
+ 	github.com/docker/distribution v2.7.1+incompatible
+-	github.com/docker/docker v20.10.7+incompatible
+-	github.com/docker/go-connections v0.4.0
+ 	github.com/docker/go-units v0.4.0
+ 	github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153
+ 	github.com/emicklei/go-restful v2.9.5+incompatible
+@@ -63,7 +60,6 @@ require (
+ 	github.com/mvdan/xurls v1.1.0
+ 	github.com/onsi/ginkgo v1.14.0
+ 	github.com/onsi/gomega v1.10.1
+-	github.com/opencontainers/go-digest v1.0.0
+ 	github.com/opencontainers/runc v1.0.2
+ 	github.com/opencontainers/selinux v1.8.2
+ 	github.com/pkg/errors v0.9.1
+@@ -209,7 +205,6 @@ replace (
+ 	github.com/containerd/go-runc => github.com/containerd/go-runc v1.0.0
+ 	github.com/containerd/ttrpc => github.com/containerd/ttrpc v1.0.2
+ 	github.com/containerd/typeurl => github.com/containerd/typeurl v1.0.2
+-	github.com/containernetworking/cni => github.com/containernetworking/cni v0.8.1
+ 	github.com/coredns/caddy => github.com/coredns/caddy v1.1.0
+ 	github.com/coredns/corefile-migration => github.com/coredns/corefile-migration v1.0.14
+ 	github.com/coreos/go-oidc => github.com/coreos/go-oidc v2.1.0+incompatible
+diff --git a/go.sum b/go.sum
+index b458fb06802b3..9121b2f4ac81a 100644
+--- a/go.sum
++++ b/go.sum
+@@ -116,8 +116,6 @@ github.com/containerd/ttrpc v1.0.2 h1:2/O3oTZN36q2xRolk0a2WWGgh7/Vf/liElg5hFYLX9
+ github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
+ github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
+ github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
+-github.com/containernetworking/cni v0.8.1 h1:7zpDnQ3T3s4ucOuJ/ZCLrYBxzkg0AELFfII3Epo9TmI=
+-github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
+ github.com/coredns/caddy v1.1.0 h1:ezvsPrT/tA/7pYDBZxu0cT0VmWk75AfIaf6GSYCNMf0=
+ github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
+ github.com/coredns/corefile-migration v1.0.14 h1:Tz3WZhoj2NdP8drrQH86NgnCng+VrPjNeg2Oe1ALKag=
+@@ -353,7 +351,6 @@ github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb h1:e+l77LJOEqXTIQih
+ github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
+ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
+ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
+-github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
+ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
+ github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
+ github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
+diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go
+index 2013c871a608a..0e6f5f946dea0 100644
+--- a/pkg/kubelet/kubelet.go
++++ b/pkg/kubelet/kubelet.go
+@@ -73,7 +73,6 @@ import (
+ 	"k8s.io/kubernetes/pkg/kubelet/configmap"
+ 	kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
+ 	"k8s.io/kubernetes/pkg/kubelet/cri/remote"
+-	"k8s.io/kubernetes/pkg/kubelet/cri/streaming"
+ 	"k8s.io/kubernetes/pkg/kubelet/events"
+ 	"k8s.io/kubernetes/pkg/kubelet/eviction"
+ 	"k8s.io/kubernetes/pkg/kubelet/images"
+@@ -310,18 +309,7 @@ func PreInitRuntimeService(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
+ 
+ 	switch containerRuntime {
+ 	case kubetypes.DockerContainerRuntime:
+-		klog.InfoS("Using dockershim is deprecated, please consider using a full-fledged CRI implementation")
+-		if err := runDockershim(
+-			kubeCfg,
+-			kubeDeps,
+-			crOptions,
+-			runtimeCgroups,
+-			remoteRuntimeEndpoint,
+-			remoteImageEndpoint,
+-			nonMasqueradeCIDR,
+-		); err != nil {
+-			return err
+-		}
++		return fmt.Errorf("using dockershim is not supported, please consider using a full-fledged CRI implementation")
+ 	case kubetypes.RemoteContainerRuntime:
+ 		// No-op.
+ 		break
+@@ -2440,15 +2428,3 @@ func isSyncPodWorthy(event *pleg.PodLifecycleEvent) bool {
+ 	// ContainerRemoved doesn't affect pod state
+ 	return event.Type != pleg.ContainerRemoved
+ }
+-
+-// Gets the streaming server configuration to use with in-process CRI shims.
+-func getStreamingConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, crOptions *config.ContainerRuntimeOptions) *streaming.Config {
+-	config := &streaming.Config{
+-		StreamIdleTimeout:               kubeCfg.StreamingConnectionIdleTimeout.Duration,
+-		StreamCreationTimeout:           streaming.DefaultConfig.StreamCreationTimeout,
+-		SupportedRemoteCommandProtocols: streaming.DefaultConfig.SupportedRemoteCommandProtocols,
+-		SupportedPortForwardProtocols:   streaming.DefaultConfig.SupportedPortForwardProtocols,
+-	}
+-	config.Addr = net.JoinHostPort("localhost", "0")
+-	return config
+-}
+diff --git a/test/e2e/framework/.import-restrictions b/test/e2e/framework/.import-restrictions
+index a60fb9d790847..1353f40df9ddf 100644
+--- a/test/e2e/framework/.import-restrictions
++++ b/test/e2e/framework/.import-restrictions
+@@ -86,16 +86,6 @@ rules:
+       - k8s.io/kubernetes/pkg/kubelet/config
+       - k8s.io/kubernetes/pkg/kubelet/configmap
+       - k8s.io/kubernetes/pkg/kubelet/container
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/cm
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/metrics
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/network
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/network/cni
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/network/hostport
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/network/kubenet
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/network/metrics
+-      - k8s.io/kubernetes/pkg/kubelet/dockershim/remote
+       - k8s.io/kubernetes/pkg/kubelet/envvars
+       - k8s.io/kubernetes/pkg/kubelet/eviction
+       - k8s.io/kubernetes/pkg/kubelet/eviction/api
diff --git a/third_party/go/patches/k8s-client-go.patch b/third_party/go/patches/k8s-client-go.patch
deleted file mode 100644
index ebfae0e..0000000
--- a/third_party/go/patches/k8s-client-go.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-This patch rips out azure/openstack auth support for k8s.io/client-go. This should be made configurable upstream.
-
-diff -ur io_k8s_client_go.orig/plugin/pkg/client/auth/plugins.go io_k8s_client_go/plugin/pkg/client/auth/plugins.go
---- io_k8s_client_go.orig/plugin/pkg/client/auth/plugins.go	2020-04-16 17:46:53.965434780 +0200
-+++ io_k8s_client_go/plugin/pkg/client/auth/plugins.go	2020-04-16 17:47:21.720538171 +0200
-@@ -18,8 +18,6 @@
- 
- import (
- 	// Initialize all known client auth plugins.
--	_ "k8s.io/client-go/plugin/pkg/client/auth/azure"
- 	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
- 	_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
--	_ "k8s.io/client-go/plugin/pkg/client/auth/openstack"
- )
diff --git a/third_party/go/patches/k8s-drop-legacy-log-path.patch b/third_party/go/patches/k8s-drop-legacy-log-path.patch
index af7b007..356a681 100644
--- a/third_party/go/patches/k8s-drop-legacy-log-path.patch
+++ b/third_party/go/patches/k8s-drop-legacy-log-path.patch
@@ -1,21 +1,6 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 227ccd88e378a002b7c23703eec96aa1d25949eb Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Wed, 3 Feb 2021 16:47:38 +0100
+From b2d875981cec8eda9c041f858004f613ea928895 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:10:09 +0100
 Subject: [PATCH] Drop legacy log path
 
 ---
@@ -23,14 +8,14 @@
  .../kuberuntime/kuberuntime_container.go      | 32 ---------------
  pkg/kubelet/kuberuntime/kuberuntime_gc.go     | 39 -------------------
  pkg/kubelet/runonce.go                        |  8 ----
- test/e2e_node/log_path_test.go                | 19 +--------
- 5 files changed, 1 insertion(+), 104 deletions(-)
+ test/e2e_node/log_path_test.go                | 18 ---------
+ 5 files changed, 104 deletions(-)
 
 diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go
-index 902dc7532e1..2d582f65b19 100644
+index 2013c871a60..c3fd4221544 100644
 --- a/pkg/kubelet/kubelet.go
 +++ b/pkg/kubelet/kubelet.go
-@@ -1250,13 +1250,6 @@ func (kl *Kubelet) initializeModules() error {
+@@ -1379,13 +1379,6 @@ func (kl *Kubelet) initializeModules() error {
  		return err
  	}
  
@@ -45,10 +30,10 @@
  	kl.imageManager.Start()
  
 diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container.go b/pkg/kubelet/kuberuntime/kuberuntime_container.go
-index af361122c35..d5b2d245219 100644
+index 9c762ac309e..d1148cc7de5 100644
 --- a/pkg/kubelet/kuberuntime/kuberuntime_container.go
 +++ b/pkg/kubelet/kuberuntime/kuberuntime_container.go
-@@ -190,25 +190,6 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
+@@ -254,25 +254,6 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
  	}
  	m.recordContainerEvent(pod, container, containerID, v1.EventTypeNormal, events.StartedContainer, fmt.Sprintf("Started container %s", container.Name))
  
@@ -66,15 +51,15 @@
 -	// to create it in the first place. it happens when journald logging driver is used with docker.
 -	if _, err := m.osInterface.Stat(containerLog); !os.IsNotExist(err) {
 -		if err := m.osInterface.Symlink(containerLog, legacySymlink); err != nil {
--			klog.Errorf("Failed to create legacy symbolic link %q to container %q log %q: %v",
--				legacySymlink, containerID, containerLog, err)
+-			klog.ErrorS(err, "Failed to create legacy symbolic link", "path", legacySymlink,
+-				"containerID", containerID, "containerLogPath", containerLog)
 -		}
 -	}
 -
  	// Step 4: execute the post start hook.
  	if container.Lifecycle != nil && container.Lifecycle.PostStart != nil {
  		kubeContainerID := kubecontainer.ContainerID{
-@@ -861,19 +842,6 @@ func (m *kubeGenericRuntimeManager) removeContainerLog(containerID string) error
+@@ -967,19 +948,6 @@ func (m *kubeGenericRuntimeManager) removeContainerLog(containerID string) error
  		return err
  	}
  
@@ -95,7 +80,7 @@
  }
  
 diff --git a/pkg/kubelet/kuberuntime/kuberuntime_gc.go b/pkg/kubelet/kuberuntime/kuberuntime_gc.go
-index 8c4f786db9b..b5b104ee6a6 100644
+index 610026661b7..a09dec91fbb 100644
 --- a/pkg/kubelet/kuberuntime/kuberuntime_gc.go
 +++ b/pkg/kubelet/kuberuntime/kuberuntime_gc.go
 @@ -18,7 +18,6 @@ package kuberuntime
@@ -106,7 +91,7 @@
  	"path/filepath"
  	"sort"
  	"time"
-@@ -346,44 +345,6 @@ func (cgc *containerGC) evictPodLogsDirectories(allSourcesReady bool) error {
+@@ -347,44 +346,6 @@ func (cgc *containerGC) evictPodLogsDirectories(allSourcesReady bool) error {
  			}
  		}
  	}
@@ -121,7 +106,7 @@
 -				if err != nil {
 -					// TODO: we should handle container not found (i.e. container was deleted) case differently
 -					// once https://github.com/kubernetes/kubernetes/issues/63336 is resolved
--					klog.Infof("Error getting ContainerStatus for containerID %q: %v", containerID, err)
+-					klog.InfoS("Error getting ContainerStatus for containerID", "containerID", containerID, "err", err)
 -				} else if status.State != runtimeapi.ContainerState_CONTAINER_EXITED {
 -					// Here is how container log rotation works (see containerLogManager#rotateLatestLog):
 -					//
@@ -134,17 +119,17 @@
 -					// See https://github.com/kubernetes/kubernetes/issues/52172
 -					//
 -					// We only remove unhealthy symlink for dead containers
--					klog.V(5).Infof("Container %q is still running, not removing symlink %q.", containerID, logSymlink)
+-					klog.V(5).InfoS("Container is still running, not removing symlink", "containerID", containerID, "path", logSymlink)
 -					continue
 -				}
 -			} else {
--				klog.V(4).Infof("unable to obtain container Id: %v", err)
+-				klog.V(4).InfoS("Unable to obtain container ID", "err", err)
 -			}
 -			err := osInterface.Remove(logSymlink)
 -			if err != nil {
--				klog.Errorf("Failed to remove container log dead symlink %q: %v", logSymlink, err)
+-				klog.ErrorS(err, "Failed to remove container log dead symlink", "path", logSymlink)
 -			} else {
--				klog.V(4).Infof("removed symlink %s", logSymlink)
+-				klog.V(4).InfoS("Removed symlink", "path", logSymlink)
 -			}
 -		}
 -	}
@@ -152,40 +137,36 @@
  }
  
 diff --git a/pkg/kubelet/runonce.go b/pkg/kubelet/runonce.go
-index 1da9c225186..d6a5a63e92d 100644
+index 19b8a4f6a7b..2f0aad713e3 100644
 --- a/pkg/kubelet/runonce.go
 +++ b/pkg/kubelet/runonce.go
-@@ -18,7 +18,6 @@ package kubelet
- 
+@@ -19,7 +19,6 @@ package kubelet
  import (
+ 	"context"
  	"fmt"
 -	"os"
  	"time"
  
- 	"k8s.io/api/core/v1"
-@@ -48,13 +47,6 @@ func (kl *Kubelet) RunOnce(updates <-chan kubetypes.PodUpdate) ([]RunPodResult,
+ 	v1 "k8s.io/api/core/v1"
+@@ -49,13 +48,6 @@ func (kl *Kubelet) RunOnce(updates <-chan kubetypes.PodUpdate) ([]RunPodResult,
  		return nil, err
  	}
  
 -	// If the container logs directory does not exist, create it.
 -	if _, err := os.Stat(ContainerLogsDir); err != nil {
 -		if err := kl.os.MkdirAll(ContainerLogsDir, 0755); err != nil {
--			klog.Errorf("Failed to create directory %q: %v", ContainerLogsDir, err)
+-			klog.ErrorS(err, "Failed to create directory", "path", ContainerLogsDir)
 -		}
 -	}
 -
  	select {
  	case u := <-updates:
- 		klog.Infof("processing manifest with %d pods", len(u.Pods))
+ 		klog.InfoS("Processing manifest with pods", "numPods", len(u.Pods))
 diff --git a/test/e2e_node/log_path_test.go b/test/e2e_node/log_path_test.go
-index 41646f326a5..6568d31e242 100644
+index cfdd9823cb1..35f3b7be465 100644
 --- a/test/e2e_node/log_path_test.go
 +++ b/test/e2e_node/log_path_test.go
-@@ -18,11 +18,10 @@ package e2enode
- 
- import (
- 	"context"
-+
+@@ -22,8 +22,6 @@ import (
  	v1 "k8s.io/api/core/v1"
  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  	"k8s.io/apimachinery/pkg/util/uuid"
@@ -194,7 +175,7 @@
  	"k8s.io/kubernetes/test/e2e/framework"
  	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
  	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-@@ -138,22 +137,6 @@ var _ = framework.KubeDescribe("ContainerLogPath [NodeConformance]", func() {
+@@ -144,22 +142,6 @@ var _ = SIGDescribe("ContainerLogPath [NodeConformance]", func() {
  				err := createAndWaitPod(makeLogPod(logPodName, logString))
  				framework.ExpectNoError(err, "Failed waiting for pod: %s to enter success state", logPodName)
  			})
diff --git a/third_party/go/patches/k8s-e2e-tests-providerless.patch b/third_party/go/patches/k8s-e2e-tests-providerless.patch
deleted file mode 100644
index b761257..0000000
--- a/third_party/go/patches/k8s-e2e-tests-providerless.patch
+++ /dev/null
@@ -1,5147 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 65e40a970e3f33f44423653767c9ca8ff792bf70 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Mon, 20 Jul 2020 16:50:56 +0200
-Subject: [PATCH] POC Make e2e test suite support providerless
-
----
- .../custom_metrics_stackdriver_autoscaling.go |   2 +
- test/e2e/cloud/imports.go                     |   2 +
- test/e2e/e2e.go                               |  10 -
- test/e2e/e2e_providers.go                     |  32 +
- .../framework/providers/gce/firewall_test.go  |   2 +
- test/e2e/instrumentation/logging/imports.go   |   2 +
- .../instrumentation/monitoring/accelerator.go |   2 +
- .../monitoring/custom_metrics_deployments.go  |   2 +
- .../monitoring/custom_metrics_stackdriver.go  |   4 +-
- .../instrumentation/monitoring/stackdriver.go |   2 +
- .../monitoring/stackdriver_metadata_agent.go  |   4 +-
- test/e2e/network/firewall.go                  |   2 +
- test/e2e/network/ingress.go                   |   2 +
- test/e2e/network/ingress_scale.go             |   2 +
- test/e2e/network/network_tiers.go             |   2 +
- test/e2e/network/scale/ingress.go             |   2 +
- .../network/scale/localrun/ingress_scale.go   |   2 +-
- test/e2e/network/service.go                   | 955 -----------------
- test/e2e/network/service_providers.go         | 980 ++++++++++++++++++
- test/e2e/node/recreate_node.go                |   2 +
- test/e2e/scheduling/nvidia-gpus.go            |   2 +
- test/e2e/scheduling/ubernetes_lite_volumes.go |   2 +
- test/e2e/storage/drivers/in_tree.go           | 732 -------------
- test/e2e/storage/drivers/in_tree_providers.go | 751 ++++++++++++++
- test/e2e/storage/in_tree_volumes.go           |   5 -
- test/e2e/storage/in_tree_volumes_providers.go |  46 +
- .../nfs_persistent_volume-disruptive.go       |   2 +-
- test/e2e/storage/pd.go                        |   2 +
- test/e2e/storage/persistent_volumes-gce.go    |   2 +
- test/e2e/storage/regional_pd.go               |   3 +
- test/e2e/storage/utils/BUILD                  |   3 -
- test/e2e/storage/utils/ebs.go                 |   2 +
- test/e2e/storage/volume_provisioning.go       | 527 ----------
- .../storage/volume_provisioning_providers.go  | 577 +++++++++++
- test/e2e/upgrades/nvidia-gpu.go               |   2 +
- 35 files changed, 2435 insertions(+), 2236 deletions(-)
- create mode 100644 test/e2e/e2e_providers.go
- create mode 100644 test/e2e/network/service_providers.go
- create mode 100644 test/e2e/storage/drivers/in_tree_providers.go
- create mode 100644 test/e2e/storage/in_tree_volumes_providers.go
- create mode 100644 test/e2e/storage/volume_provisioning_providers.go
-
-diff --git a/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go b/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go
-index d3a7862d338..8bacec7fe1d 100644
---- a/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go
-+++ b/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/cloud/imports.go b/test/e2e/cloud/imports.go
-index 5aa1def97d1..382cb1a2264 100644
---- a/test/e2e/cloud/imports.go
-+++ b/test/e2e/cloud/imports.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2019 The Kubernetes Authors.
- 
-diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go
-index d1e23325d69..f5717e417e7 100644
---- a/test/e2e/e2e.go
-+++ b/test/e2e/e2e.go
-@@ -53,16 +53,6 @@ import (
- 	utilnet "k8s.io/utils/net"
- 
- 	clientset "k8s.io/client-go/kubernetes"
--	// ensure auth plugins are loaded
--	_ "k8s.io/client-go/plugin/pkg/client/auth"
--
--	// ensure that cloud providers are loaded
--	_ "k8s.io/kubernetes/test/e2e/framework/providers/aws"
--	_ "k8s.io/kubernetes/test/e2e/framework/providers/azure"
--	_ "k8s.io/kubernetes/test/e2e/framework/providers/gce"
--	_ "k8s.io/kubernetes/test/e2e/framework/providers/kubemark"
--	_ "k8s.io/kubernetes/test/e2e/framework/providers/openstack"
--	_ "k8s.io/kubernetes/test/e2e/framework/providers/vsphere"
- )
- 
- const (
-diff --git a/test/e2e/e2e_providers.go b/test/e2e/e2e_providers.go
-new file mode 100644
-index 00000000000..cf96642b110
---- /dev/null
-+++ b/test/e2e/e2e_providers.go
-@@ -0,0 +1,32 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2020 The Kubernetes 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.
-+*/
-+
-+package e2e
-+
-+import (
-+	// ensure auth plugins are loaded
-+	_ "k8s.io/client-go/plugin/pkg/client/auth"
-+
-+	// ensure that cloud providers are loaded
-+	_ "k8s.io/kubernetes/test/e2e/framework/providers/aws"
-+	_ "k8s.io/kubernetes/test/e2e/framework/providers/azure"
-+	_ "k8s.io/kubernetes/test/e2e/framework/providers/gce"
-+	_ "k8s.io/kubernetes/test/e2e/framework/providers/kubemark"
-+	_ "k8s.io/kubernetes/test/e2e/framework/providers/openstack"
-+	_ "k8s.io/kubernetes/test/e2e/framework/providers/vsphere"
-+)
-diff --git a/test/e2e/framework/providers/gce/firewall_test.go b/test/e2e/framework/providers/gce/firewall_test.go
-index 647441dc962..2a92543a5a7 100644
---- a/test/e2e/framework/providers/gce/firewall_test.go
-+++ b/test/e2e/framework/providers/gce/firewall_test.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
- 
-diff --git a/test/e2e/instrumentation/logging/imports.go b/test/e2e/instrumentation/logging/imports.go
-index 5dd66717db1..fc15c04bfef 100644
---- a/test/e2e/instrumentation/logging/imports.go
-+++ b/test/e2e/instrumentation/logging/imports.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/instrumentation/monitoring/accelerator.go b/test/e2e/instrumentation/monitoring/accelerator.go
-index 90047e46ea1..6fa094e6a18 100644
---- a/test/e2e/instrumentation/monitoring/accelerator.go
-+++ b/test/e2e/instrumentation/monitoring/accelerator.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go b/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go
-index de80b129315..8d96b93bf11 100644
---- a/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go
-+++ b/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go b/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go
-index 277b5a0ab24..ddbc3f20802 100644
---- a/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go
-+++ b/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-@@ -21,7 +23,7 @@ import (
- 	"time"
- 
- 	gcm "google.golang.org/api/monitoring/v3"
--	"k8s.io/api/core/v1"
-+	v1 "k8s.io/api/core/v1"
- 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- 	"k8s.io/apimachinery/pkg/labels"
- 	"k8s.io/apimachinery/pkg/runtime/schema"
-diff --git a/test/e2e/instrumentation/monitoring/stackdriver.go b/test/e2e/instrumentation/monitoring/stackdriver.go
-index dbc5e51c20d..3db0120900b 100644
---- a/test/e2e/instrumentation/monitoring/stackdriver.go
-+++ b/test/e2e/instrumentation/monitoring/stackdriver.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go b/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go
-index 321591344db..bad9be5b5bf 100644
---- a/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go
-+++ b/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-@@ -24,7 +26,7 @@ import (
- 	"reflect"
- 	"time"
- 
--	"k8s.io/api/core/v1"
-+	v1 "k8s.io/api/core/v1"
- 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- 	clientset "k8s.io/client-go/kubernetes"
- 	"k8s.io/kubernetes/test/e2e/framework"
-diff --git a/test/e2e/network/firewall.go b/test/e2e/network/firewall.go
-index f4200f5a30c..f8612ed75a9 100644
---- a/test/e2e/network/firewall.go
-+++ b/test/e2e/network/firewall.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2016 The Kubernetes Authors.
- 
-diff --git a/test/e2e/network/ingress.go b/test/e2e/network/ingress.go
-index 6c3b09e41f2..8485f8ce50e 100644
---- a/test/e2e/network/ingress.go
-+++ b/test/e2e/network/ingress.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2015 The Kubernetes Authors.
- 
-diff --git a/test/e2e/network/ingress_scale.go b/test/e2e/network/ingress_scale.go
-index 6cc8585b7b2..867c834868c 100644
---- a/test/e2e/network/ingress_scale.go
-+++ b/test/e2e/network/ingress_scale.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
- 
-diff --git a/test/e2e/network/network_tiers.go b/test/e2e/network/network_tiers.go
-index 5ae68a5a1ee..f3ea1f72a6b 100644
---- a/test/e2e/network/network_tiers.go
-+++ b/test/e2e/network/network_tiers.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/network/scale/ingress.go b/test/e2e/network/scale/ingress.go
-index 954296beb52..43ad9c9b618 100644
---- a/test/e2e/network/scale/ingress.go
-+++ b/test/e2e/network/scale/ingress.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
- 
-diff --git a/test/e2e/network/scale/localrun/ingress_scale.go b/test/e2e/network/scale/localrun/ingress_scale.go
-index 2e2c39884da..5a27f5f4cb2 100644
---- a/test/e2e/network/scale/localrun/ingress_scale.go
-+++ b/test/e2e/network/scale/localrun/ingress_scale.go
-@@ -27,7 +27,7 @@ import (
- 
- 	"k8s.io/klog/v2"
- 
--	"k8s.io/api/core/v1"
-+	v1 "k8s.io/api/core/v1"
- 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- 	clientset "k8s.io/client-go/kubernetes"
- 	"k8s.io/client-go/tools/clientcmd"
-diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go
-index 35ac43001d2..b458347a9f9 100644
---- a/test/e2e/network/service.go
-+++ b/test/e2e/network/service.go
-@@ -31,8 +31,6 @@ import (
- 
- 	utilnet "k8s.io/apimachinery/pkg/util/net"
- 
--	compute "google.golang.org/api/compute/v1"
--
- 	"k8s.io/client-go/tools/cache"
- 
- 	appsv1 "k8s.io/api/apps/v1"
-@@ -52,11 +50,9 @@ import (
- 	e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
- 	e2eendpoints "k8s.io/kubernetes/test/e2e/framework/endpoints"
- 	e2eendpointslice "k8s.io/kubernetes/test/e2e/framework/endpointslice"
--	e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
- 	e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
- 	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
- 	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
--	"k8s.io/kubernetes/test/e2e/framework/providers/gce"
- 	e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
- 	e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
- 	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-@@ -64,7 +60,6 @@ import (
- 	"k8s.io/kubernetes/test/e2e/storage/utils"
- 	testutils "k8s.io/kubernetes/test/utils"
- 	imageutils "k8s.io/kubernetes/test/utils/image"
--	gcecloud "k8s.io/legacy-cloud-providers/gce"
- 
- 	"github.com/onsi/ginkgo"
- 	"github.com/onsi/gomega"
-@@ -1242,375 +1237,6 @@ var _ = SIGDescribe("Services", func() {
- 		framework.ExpectNoError(err)
- 	})
- 
--	// TODO: Get rid of [DisabledForLargeClusters] tag when issue #56138 is fixed.
--	ginkgo.It("should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters]", func() {
--		// requires cloud load-balancer support
--		e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
--
--		loadBalancerSupportsUDP := !framework.ProviderIs("aws")
--
--		loadBalancerLagTimeout := e2eservice.LoadBalancerLagTimeoutDefault
--		if framework.ProviderIs("aws") {
--			loadBalancerLagTimeout = e2eservice.LoadBalancerLagTimeoutAWS
--		}
--		loadBalancerCreateTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
--
--		// This test is more monolithic than we'd like because LB turnup can be
--		// very slow, so we lumped all the tests into one LB lifecycle.
--
--		serviceName := "mutability-test"
--		ns1 := f.Namespace.Name // LB1 in ns1 on TCP
--		framework.Logf("namespace for TCP test: %s", ns1)
--
--		ginkgo.By("creating a second namespace")
--		namespacePtr, err := f.CreateNamespace("services", nil)
--		framework.ExpectNoError(err, "failed to create namespace")
--		ns2 := namespacePtr.Name // LB2 in ns2 on UDP
--		framework.Logf("namespace for UDP test: %s", ns2)
--
--		nodeIP, err := e2enode.PickIP(cs) // for later
--		framework.ExpectNoError(err)
--
--		// Test TCP and UDP Services.  Services with the same name in different
--		// namespaces should get different node ports and load balancers.
--
--		ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns1)
--		tcpJig := e2eservice.NewTestJig(cs, ns1, serviceName)
--		tcpService, err := tcpJig.CreateTCPService(nil)
--		framework.ExpectNoError(err)
--
--		ginkgo.By("creating a UDP service " + serviceName + " with type=ClusterIP in namespace " + ns2)
--		udpJig := e2eservice.NewTestJig(cs, ns2, serviceName)
--		udpService, err := udpJig.CreateUDPService(nil)
--		framework.ExpectNoError(err)
--
--		ginkgo.By("verifying that TCP and UDP use the same port")
--		if tcpService.Spec.Ports[0].Port != udpService.Spec.Ports[0].Port {
--			framework.Failf("expected to use the same port for TCP and UDP")
--		}
--		svcPort := int(tcpService.Spec.Ports[0].Port)
--		framework.Logf("service port (TCP and UDP): %d", svcPort)
--
--		ginkgo.By("creating a pod to be part of the TCP service " + serviceName)
--		_, err = tcpJig.Run(nil)
--		framework.ExpectNoError(err)
--
--		ginkgo.By("creating a pod to be part of the UDP service " + serviceName)
--		_, err = udpJig.Run(nil)
--		framework.ExpectNoError(err)
--
--		// Change the services to NodePort.
--
--		ginkgo.By("changing the TCP service to type=NodePort")
--		tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.Type = v1.ServiceTypeNodePort
--		})
--		framework.ExpectNoError(err)
--		tcpNodePort := int(tcpService.Spec.Ports[0].NodePort)
--		framework.Logf("TCP node port: %d", tcpNodePort)
--
--		ginkgo.By("changing the UDP service to type=NodePort")
--		udpService, err = udpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.Type = v1.ServiceTypeNodePort
--		})
--		framework.ExpectNoError(err)
--		udpNodePort := int(udpService.Spec.Ports[0].NodePort)
--		framework.Logf("UDP node port: %d", udpNodePort)
--
--		ginkgo.By("hitting the TCP service's NodePort")
--		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the UDP service's NodePort")
--		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		// Change the services to LoadBalancer.
--
--		// Here we test that LoadBalancers can receive static IP addresses.  This isn't
--		// necessary, but is an additional feature this monolithic test checks.
--		requestedIP := ""
--		staticIPName := ""
--		if framework.ProviderIs("gce", "gke") {
--			ginkgo.By("creating a static load balancer IP")
--			staticIPName = fmt.Sprintf("e2e-external-lb-test-%s", framework.RunID)
--			gceCloud, err := gce.GetGCECloud()
--			framework.ExpectNoError(err, "failed to get GCE cloud provider")
--
--			err = gceCloud.ReserveRegionAddress(&compute.Address{Name: staticIPName}, gceCloud.Region())
--			defer func() {
--				if staticIPName != "" {
--					// Release GCE static IP - this is not kube-managed and will not be automatically released.
--					if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
--						framework.Logf("failed to release static IP %s: %v", staticIPName, err)
--					}
--				}
--			}()
--			framework.ExpectNoError(err, "failed to create region address: %s", staticIPName)
--			reservedAddr, err := gceCloud.GetRegionAddress(staticIPName, gceCloud.Region())
--			framework.ExpectNoError(err, "failed to get region address: %s", staticIPName)
--
--			requestedIP = reservedAddr.Address
--			framework.Logf("Allocated static load balancer IP: %s", requestedIP)
--		}
--
--		ginkgo.By("changing the TCP service to type=LoadBalancer")
--		tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
--			s.Spec.Type = v1.ServiceTypeLoadBalancer
--		})
--		framework.ExpectNoError(err)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("changing the UDP service to type=LoadBalancer")
--			udpService, err = udpJig.UpdateService(func(s *v1.Service) {
--				s.Spec.Type = v1.ServiceTypeLoadBalancer
--			})
--			framework.ExpectNoError(err)
--		}
--		serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(tcpService))
--		if loadBalancerSupportsUDP {
--			serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(udpService))
--		}
--
--		ginkgo.By("waiting for the TCP service to have a load balancer")
--		// Wait for the load balancer to be created asynchronously
--		tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
--		framework.ExpectNoError(err)
--		if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
--			framework.Failf("TCP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", tcpNodePort, tcpService.Spec.Ports[0].NodePort)
--		}
--		if requestedIP != "" && e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != requestedIP {
--			framework.Failf("unexpected TCP Status.LoadBalancer.Ingress (expected %s, got %s)", requestedIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
--		}
--		tcpIngressIP := e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0])
--		framework.Logf("TCP load balancer: %s", tcpIngressIP)
--
--		if framework.ProviderIs("gce", "gke") {
--			// Do this as early as possible, which overrides the `defer` above.
--			// This is mostly out of fear of leaking the IP in a timeout case
--			// (as of this writing we're not 100% sure where the leaks are
--			// coming from, so this is first-aid rather than surgery).
--			ginkgo.By("demoting the static IP to ephemeral")
--			if staticIPName != "" {
--				gceCloud, err := gce.GetGCECloud()
--				framework.ExpectNoError(err, "failed to get GCE cloud provider")
--				// Deleting it after it is attached "demotes" it to an
--				// ephemeral IP, which can be auto-released.
--				if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
--					framework.Failf("failed to release static IP %s: %v", staticIPName, err)
--				}
--				staticIPName = ""
--			}
--		}
--
--		var udpIngressIP string
--		if loadBalancerSupportsUDP {
--			ginkgo.By("waiting for the UDP service to have a load balancer")
--			// 2nd one should be faster since they ran in parallel.
--			udpService, err = udpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
--			framework.ExpectNoError(err)
--			if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
--				framework.Failf("UDP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", udpNodePort, udpService.Spec.Ports[0].NodePort)
--			}
--			udpIngressIP = e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0])
--			framework.Logf("UDP load balancer: %s", udpIngressIP)
--
--			ginkgo.By("verifying that TCP and UDP use different load balancers")
--			if tcpIngressIP == udpIngressIP {
--				framework.Failf("Load balancers are not different: %s", e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
--			}
--		}
--
--		ginkgo.By("hitting the TCP service's NodePort")
--		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the UDP service's NodePort")
--		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the TCP service's LoadBalancer")
--		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("hitting the UDP service's LoadBalancer")
--			testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
--		}
--
--		// Change the services' node ports.
--
--		ginkgo.By("changing the TCP service's NodePort")
--		tcpService, err = tcpJig.ChangeServiceNodePort(tcpNodePort)
--		framework.ExpectNoError(err)
--		tcpNodePortOld := tcpNodePort
--		tcpNodePort = int(tcpService.Spec.Ports[0].NodePort)
--		if tcpNodePort == tcpNodePortOld {
--			framework.Failf("TCP Spec.Ports[0].NodePort (%d) did not change", tcpNodePort)
--		}
--		if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
--			framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
--		}
--		framework.Logf("TCP node port: %d", tcpNodePort)
--
--		ginkgo.By("changing the UDP service's NodePort")
--		udpService, err = udpJig.ChangeServiceNodePort(udpNodePort)
--		framework.ExpectNoError(err)
--		udpNodePortOld := udpNodePort
--		udpNodePort = int(udpService.Spec.Ports[0].NodePort)
--		if udpNodePort == udpNodePortOld {
--			framework.Failf("UDP Spec.Ports[0].NodePort (%d) did not change", udpNodePort)
--		}
--		if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
--			framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
--		}
--		framework.Logf("UDP node port: %d", udpNodePort)
--
--		ginkgo.By("hitting the TCP service's new NodePort")
--		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the UDP service's new NodePort")
--		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("checking the old TCP NodePort is closed")
--		testNotReachableHTTP(nodeIP, tcpNodePortOld, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("checking the old UDP NodePort is closed")
--		testNotReachableUDP(nodeIP, udpNodePortOld, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the TCP service's LoadBalancer")
--		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("hitting the UDP service's LoadBalancer")
--			testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
--		}
--
--		// Change the services' main ports.
--
--		ginkgo.By("changing the TCP service's port")
--		tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.Ports[0].Port++
--		})
--		framework.ExpectNoError(err)
--		svcPortOld := svcPort
--		svcPort = int(tcpService.Spec.Ports[0].Port)
--		if svcPort == svcPortOld {
--			framework.Failf("TCP Spec.Ports[0].Port (%d) did not change", svcPort)
--		}
--		if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
--			framework.Failf("TCP Spec.Ports[0].NodePort (%d) changed", tcpService.Spec.Ports[0].NodePort)
--		}
--		if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
--			framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
--		}
--
--		ginkgo.By("changing the UDP service's port")
--		udpService, err = udpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.Ports[0].Port++
--		})
--		framework.ExpectNoError(err)
--		if int(udpService.Spec.Ports[0].Port) != svcPort {
--			framework.Failf("UDP Spec.Ports[0].Port (%d) did not change", udpService.Spec.Ports[0].Port)
--		}
--		if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
--			framework.Failf("UDP Spec.Ports[0].NodePort (%d) changed", udpService.Spec.Ports[0].NodePort)
--		}
--		if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
--			framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
--		}
--
--		framework.Logf("service port (TCP and UDP): %d", svcPort)
--
--		ginkgo.By("hitting the TCP service's NodePort")
--		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the UDP service's NodePort")
--		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the TCP service's LoadBalancer")
--		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("hitting the UDP service's LoadBalancer")
--			testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
--		}
--
--		ginkgo.By("Scaling the pods to 0")
--		err = tcpJig.Scale(0)
--		framework.ExpectNoError(err)
--		err = udpJig.Scale(0)
--		framework.ExpectNoError(err)
--
--		ginkgo.By("looking for ICMP REJECT on the TCP service's NodePort")
--		testRejectedHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("looking for ICMP REJECT on the UDP service's NodePort")
--		testRejectedUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("looking for ICMP REJECT on the TCP service's LoadBalancer")
--		testRejectedHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("looking for ICMP REJECT on the UDP service's LoadBalancer")
--			testRejectedUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
--		}
--
--		ginkgo.By("Scaling the pods to 1")
--		err = tcpJig.Scale(1)
--		framework.ExpectNoError(err)
--		err = udpJig.Scale(1)
--		framework.ExpectNoError(err)
--
--		ginkgo.By("hitting the TCP service's NodePort")
--		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the UDP service's NodePort")
--		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("hitting the TCP service's LoadBalancer")
--		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("hitting the UDP service's LoadBalancer")
--			testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
--		}
--
--		// Change the services back to ClusterIP.
--
--		ginkgo.By("changing TCP service back to type=ClusterIP")
--		_, err = tcpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.Type = v1.ServiceTypeClusterIP
--			s.Spec.Ports[0].NodePort = 0
--		})
--		framework.ExpectNoError(err)
--		// Wait for the load balancer to be destroyed asynchronously
--		_, err = tcpJig.WaitForLoadBalancerDestroy(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--		framework.ExpectNoError(err)
--
--		ginkgo.By("changing UDP service back to type=ClusterIP")
--		_, err = udpJig.UpdateService(func(s *v1.Service) {
--			s.Spec.Type = v1.ServiceTypeClusterIP
--			s.Spec.Ports[0].NodePort = 0
--		})
--		framework.ExpectNoError(err)
--		if loadBalancerSupportsUDP {
--			// Wait for the load balancer to be destroyed asynchronously
--			_, err = udpJig.WaitForLoadBalancerDestroy(udpIngressIP, svcPort, loadBalancerCreateTimeout)
--			framework.ExpectNoError(err)
--		}
--
--		ginkgo.By("checking the TCP NodePort is closed")
--		testNotReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("checking the UDP NodePort is closed")
--		testNotReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
--		ginkgo.By("checking the TCP LoadBalancer is closed")
--		testNotReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
--
--		if loadBalancerSupportsUDP {
--			ginkgo.By("checking the UDP LoadBalancer is closed")
--			testNotReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
--		}
--	})
--
- 	/*
- 		Testname: Service, update NodePort, same port different protocol
- 		Description: Create a service to accept TCP requests. By default, created service MUST be of type ClusterIP and an ClusterIP MUST be assigned to the service.
-@@ -2253,199 +1879,6 @@ var _ = SIGDescribe("Services", func() {
- 		checkReachabilityFromPod(true, normalReachabilityTimeout, namespace, dropPod.Name, svcIP)
- 	})
- 
--	ginkgo.It("should be able to create an internal type load balancer [Slow]", func() {
--		e2eskipper.SkipUnlessProviderIs("azure", "gke", "gce")
--
--		createTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
--		pollInterval := framework.Poll * 10
--
--		namespace := f.Namespace.Name
--		serviceName := "lb-internal"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
--		ginkgo.By("creating pod to be part of service " + serviceName)
--		_, err := jig.Run(nil)
--		framework.ExpectNoError(err)
--
--		enableILB, disableILB := enableAndDisableInternalLB()
--
--		isInternalEndpoint := func(lbIngress *v1.LoadBalancerIngress) bool {
--			ingressEndpoint := e2eservice.GetIngressPoint(lbIngress)
--			// Needs update for providers using hostname as endpoint.
--			return strings.HasPrefix(ingressEndpoint, "10.")
--		}
--
--		ginkgo.By("creating a service with type LoadBalancer and cloud specific Internal-LB annotation enabled")
--		svc, err := jig.CreateTCPService(func(svc *v1.Service) {
--			svc.Spec.Type = v1.ServiceTypeLoadBalancer
--			enableILB(svc)
--		})
--		framework.ExpectNoError(err)
--
--		defer func() {
--			ginkgo.By("Clean up loadbalancer service")
--			e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
--		}()
--
--		svc, err = jig.WaitForLoadBalancer(createTimeout)
--		framework.ExpectNoError(err)
--		lbIngress := &svc.Status.LoadBalancer.Ingress[0]
--		svcPort := int(svc.Spec.Ports[0].Port)
--		// should have an internal IP.
--		framework.ExpectEqual(isInternalEndpoint(lbIngress), true)
--
--		// ILBs are not accessible from the test orchestrator, so it's necessary to use
--		//  a pod to test the service.
--		ginkgo.By("hitting the internal load balancer from pod")
--		framework.Logf("creating pod with host network")
--		hostExec := launchHostExecPod(f.ClientSet, f.Namespace.Name, "ilb-host-exec")
--
--		framework.Logf("Waiting up to %v for service %q's internal LB to respond to requests", createTimeout, serviceName)
--		tcpIngressIP := e2eservice.GetIngressPoint(lbIngress)
--		if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
--			cmd := fmt.Sprintf(`curl -m 5 'http://%v:%v/echo?msg=hello'`, tcpIngressIP, svcPort)
--			stdout, err := framework.RunHostCmd(hostExec.Namespace, hostExec.Name, cmd)
--			if err != nil {
--				framework.Logf("error curling; stdout: %v. err: %v", stdout, err)
--				return false, nil
--			}
--
--			if !strings.Contains(stdout, "hello") {
--				framework.Logf("Expected output to contain 'hello', got %q; retrying...", stdout)
--				return false, nil
--			}
--
--			framework.Logf("Successful curl; stdout: %v", stdout)
--			return true, nil
--		}); pollErr != nil {
--			framework.Failf("ginkgo.Failed to hit ILB IP, err: %v", pollErr)
--		}
--
--		ginkgo.By("switching to external type LoadBalancer")
--		svc, err = jig.UpdateService(func(svc *v1.Service) {
--			disableILB(svc)
--		})
--		framework.ExpectNoError(err)
--		framework.Logf("Waiting up to %v for service %q to have an external LoadBalancer", createTimeout, serviceName)
--		if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
--			svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
--			if err != nil {
--				return false, err
--			}
--			lbIngress = &svc.Status.LoadBalancer.Ingress[0]
--			return !isInternalEndpoint(lbIngress), nil
--		}); pollErr != nil {
--			framework.Failf("Loadbalancer IP not changed to external.")
--		}
--		// should have an external IP.
--		gomega.Expect(isInternalEndpoint(lbIngress)).To(gomega.BeFalse())
--
--		ginkgo.By("hitting the external load balancer")
--		framework.Logf("Waiting up to %v for service %q's external LB to respond to requests", createTimeout, serviceName)
--		tcpIngressIP = e2eservice.GetIngressPoint(lbIngress)
--		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, e2eservice.LoadBalancerLagTimeoutDefault)
--
--		// GCE cannot test a specific IP because the test may not own it. This cloud specific condition
--		// will be removed when GCP supports similar functionality.
--		if framework.ProviderIs("azure") {
--			ginkgo.By("switching back to interal type LoadBalancer, with static IP specified.")
--			internalStaticIP := "10.240.11.11"
--			svc, err = jig.UpdateService(func(svc *v1.Service) {
--				svc.Spec.LoadBalancerIP = internalStaticIP
--				enableILB(svc)
--			})
--			framework.ExpectNoError(err)
--			framework.Logf("Waiting up to %v for service %q to have an internal LoadBalancer", createTimeout, serviceName)
--			if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
--				svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
--				if err != nil {
--					return false, err
--				}
--				lbIngress = &svc.Status.LoadBalancer.Ingress[0]
--				return isInternalEndpoint(lbIngress), nil
--			}); pollErr != nil {
--				framework.Failf("Loadbalancer IP not changed to internal.")
--			}
--			// should have the given static internal IP.
--			framework.ExpectEqual(e2eservice.GetIngressPoint(lbIngress), internalStaticIP)
--		}
--	})
--
--	// This test creates a load balancer, make sure its health check interval
--	// equals to gceHcCheckIntervalSeconds. Then the interval is manipulated
--	// to be something else, see if the interval will be reconciled.
--	ginkgo.It("should reconcile LB health check interval [Slow][Serial]", func() {
--		const gceHcCheckIntervalSeconds = int64(8)
--		// This test is for clusters on GCE.
--		// (It restarts kube-controller-manager, which we don't support on GKE)
--		e2eskipper.SkipUnlessProviderIs("gce")
--		e2eskipper.SkipUnlessSSHKeyPresent()
--
--		clusterID, err := gce.GetClusterID(cs)
--		if err != nil {
--			framework.Failf("framework.GetClusterID(cs) = _, %v; want nil", err)
--		}
--		gceCloud, err := gce.GetGCECloud()
--		if err != nil {
--			framework.Failf("framework.GetGCECloud() = _, %v; want nil", err)
--		}
--
--		namespace := f.Namespace.Name
--		serviceName := "lb-hc-int"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
--		ginkgo.By("create load balancer service")
--		// Create loadbalancer service with source range from node[0] and podAccept
--		svc, err := jig.CreateTCPService(func(svc *v1.Service) {
--			svc.Spec.Type = v1.ServiceTypeLoadBalancer
--		})
--		framework.ExpectNoError(err)
--
--		defer func() {
--			ginkgo.By("Clean up loadbalancer service")
--			e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
--		}()
--
--		svc, err = jig.WaitForLoadBalancer(e2eservice.GetServiceLoadBalancerCreationTimeout(cs))
--		framework.ExpectNoError(err)
--
--		hcName := gcecloud.MakeNodesHealthCheckName(clusterID)
--		hc, err := gceCloud.GetHTTPHealthCheck(hcName)
--		if err != nil {
--			framework.Failf("gceCloud.GetHttpHealthCheck(%q) = _, %v; want nil", hcName, err)
--		}
--		framework.ExpectEqual(hc.CheckIntervalSec, gceHcCheckIntervalSeconds)
--
--		ginkgo.By("modify the health check interval")
--		hc.CheckIntervalSec = gceHcCheckIntervalSeconds - 1
--		if err = gceCloud.UpdateHTTPHealthCheck(hc); err != nil {
--			framework.Failf("gcecloud.UpdateHttpHealthCheck(%#v) = %v; want nil", hc, err)
--		}
--
--		ginkgo.By("restart kube-controller-manager")
--		if err := e2ekubesystem.RestartControllerManager(); err != nil {
--			framework.Failf("e2ekubesystem.RestartControllerManager() = %v; want nil", err)
--		}
--		if err := e2ekubesystem.WaitForControllerManagerUp(); err != nil {
--			framework.Failf("e2ekubesystem.WaitForControllerManagerUp() = %v; want nil", err)
--		}
--
--		ginkgo.By("health check should be reconciled")
--		pollInterval := framework.Poll * 10
--		loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
--		if pollErr := wait.PollImmediate(pollInterval, loadBalancerPropagationTimeout, func() (bool, error) {
--			hc, err := gceCloud.GetHTTPHealthCheck(hcName)
--			if err != nil {
--				framework.Logf("ginkgo.Failed to get HttpHealthCheck(%q): %v", hcName, err)
--				return false, err
--			}
--			framework.Logf("hc.CheckIntervalSec = %v", hc.CheckIntervalSec)
--			return hc.CheckIntervalSec == gceHcCheckIntervalSeconds, nil
--		}); pollErr != nil {
--			framework.Failf("Health check %q does not reconcile its check interval to %d.", hcName, gceHcCheckIntervalSeconds)
--		}
--	})
--
- 	/*
- 		Release: v1.19
- 		Testname: Service, ClusterIP type, session affinity to ClientIP
-@@ -2999,394 +2432,6 @@ var _ = SIGDescribe("Services", func() {
- 	})
- })
- 
--var _ = SIGDescribe("ESIPP [Slow]", func() {
--	f := framework.NewDefaultFramework("esipp")
--	var loadBalancerCreateTimeout time.Duration
--
--	var cs clientset.Interface
--	serviceLBNames := []string{}
--
--	ginkgo.BeforeEach(func() {
--		// requires cloud load-balancer support - this feature currently supported only on GCE/GKE
--		e2eskipper.SkipUnlessProviderIs("gce", "gke")
--
--		cs = f.ClientSet
--		loadBalancerCreateTimeout = e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
--	})
--
--	ginkgo.AfterEach(func() {
--		if ginkgo.CurrentGinkgoTestDescription().Failed {
--			DescribeSvc(f.Namespace.Name)
--		}
--		for _, lb := range serviceLBNames {
--			framework.Logf("cleaning load balancer resource for %s", lb)
--			e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
--		}
--		//reset serviceLBNames
--		serviceLBNames = []string{}
--	})
--
--	ginkgo.It("should work for type=LoadBalancer", func() {
--		namespace := f.Namespace.Name
--		serviceName := "external-local-lb"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
--		svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
--		framework.ExpectNoError(err)
--		serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
--		healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
--		if healthCheckNodePort == 0 {
--			framework.Failf("Service HealthCheck NodePort was not allocated")
--		}
--		defer func() {
--			err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
--			framework.ExpectNoError(err)
--
--			// Make sure we didn't leak the health check node port.
--			const threshold = 2
--			nodes, err := getEndpointNodesWithInternalIP(jig)
--			framework.ExpectNoError(err)
--			config := e2enetwork.NewNetworkingTestConfig(f, false, false)
--			for _, internalIP := range nodes {
--				err := testHTTPHealthCheckNodePortFromTestContainer(
--					config,
--					internalIP,
--					healthCheckNodePort,
--					e2eservice.KubeProxyLagTimeout,
--					false,
--					threshold)
--				framework.ExpectNoError(err)
--			}
--			err = cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
--			framework.ExpectNoError(err)
--		}()
--
--		svcTCPPort := int(svc.Spec.Ports[0].Port)
--		ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
--
--		ginkgo.By("reading clientIP using the TCP service's service port via its external VIP")
--		content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
--		clientIP := content.String()
--		framework.Logf("ClientIP detected by target pod using VIP:SvcPort is %s", clientIP)
--
--		ginkgo.By("checking if Source IP is preserved")
--		if strings.HasPrefix(clientIP, "10.") {
--			framework.Failf("Source IP was NOT preserved")
--		}
--	})
--
--	ginkgo.It("should work for type=NodePort", func() {
--		namespace := f.Namespace.Name
--		serviceName := "external-local-nodeport"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
--		svc, err := jig.CreateOnlyLocalNodePortService(true)
--		framework.ExpectNoError(err)
--		defer func() {
--			err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
--			framework.ExpectNoError(err)
--		}()
--
--		tcpNodePort := int(svc.Spec.Ports[0].NodePort)
--
--		endpointsNodeMap, err := getEndpointNodesWithInternalIP(jig)
--		framework.ExpectNoError(err)
--
--		dialCmd := "clientip"
--		config := e2enetwork.NewNetworkingTestConfig(f, false, false)
--
--		for nodeName, nodeIP := range endpointsNodeMap {
--			ginkgo.By(fmt.Sprintf("reading clientIP using the TCP service's NodePort, on node %v: %v:%v/%v", nodeName, nodeIP, tcpNodePort, dialCmd))
--			clientIP, err := GetHTTPContentFromTestContainer(config, nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout, dialCmd)
--			framework.ExpectNoError(err)
--			framework.Logf("ClientIP detected by target pod using NodePort is %s, the ip of test container is %s", clientIP, config.TestContainerPod.Status.PodIP)
--			// the clientIP returned by agnhost contains port
--			if !strings.HasPrefix(clientIP, config.TestContainerPod.Status.PodIP) {
--				framework.Failf("Source IP was NOT preserved")
--			}
--		}
--	})
--
--	ginkgo.It("should only target nodes with endpoints", func() {
--		namespace := f.Namespace.Name
--		serviceName := "external-local-nodes"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--		nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
--		framework.ExpectNoError(err)
--
--		svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, false,
--			func(svc *v1.Service) {
--				// Change service port to avoid collision with opened hostPorts
--				// in other tests that run in parallel.
--				if len(svc.Spec.Ports) != 0 {
--					svc.Spec.Ports[0].TargetPort = intstr.FromInt(int(svc.Spec.Ports[0].Port))
--					svc.Spec.Ports[0].Port = 8081
--				}
--
--			})
--		framework.ExpectNoError(err)
--		serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
--		defer func() {
--			err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
--			framework.ExpectNoError(err)
--			err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
--			framework.ExpectNoError(err)
--		}()
--
--		healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
--		if healthCheckNodePort == 0 {
--			framework.Failf("Service HealthCheck NodePort was not allocated")
--		}
--
--		ips := e2enode.CollectAddresses(nodes, v1.NodeInternalIP)
--
--		ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
--		svcTCPPort := int(svc.Spec.Ports[0].Port)
--
--		const threshold = 2
--		config := e2enetwork.NewNetworkingTestConfig(f, false, false)
--		for i := 0; i < len(nodes.Items); i++ {
--			endpointNodeName := nodes.Items[i].Name
--
--			ginkgo.By("creating a pod to be part of the service " + serviceName + " on node " + endpointNodeName)
--			_, err = jig.Run(func(rc *v1.ReplicationController) {
--				rc.Name = serviceName
--				if endpointNodeName != "" {
--					rc.Spec.Template.Spec.NodeName = endpointNodeName
--				}
--			})
--			framework.ExpectNoError(err)
--
--			ginkgo.By(fmt.Sprintf("waiting for service endpoint on node %v", endpointNodeName))
--			err = jig.WaitForEndpointOnNode(endpointNodeName)
--			framework.ExpectNoError(err)
--
--			// HealthCheck should pass only on the node where num(endpoints) > 0
--			// All other nodes should fail the healthcheck on the service healthCheckNodePort
--			for n, internalIP := range ips {
--				// Make sure the loadbalancer picked up the health check change.
--				// Confirm traffic can reach backend through LB before checking healthcheck nodeport.
--				e2eservice.TestReachableHTTP(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout)
--				expectedSuccess := nodes.Items[n].Name == endpointNodeName
--				port := strconv.Itoa(healthCheckNodePort)
--				ipPort := net.JoinHostPort(internalIP, port)
--				framework.Logf("Health checking %s, http://%s/healthz, expectedSuccess %v", nodes.Items[n].Name, ipPort, expectedSuccess)
--				err := testHTTPHealthCheckNodePortFromTestContainer(
--					config,
--					internalIP,
--					healthCheckNodePort,
--					e2eservice.KubeProxyEndpointLagTimeout,
--					expectedSuccess,
--					threshold)
--				framework.ExpectNoError(err)
--			}
--			framework.ExpectNoError(e2erc.DeleteRCAndWaitForGC(f.ClientSet, namespace, serviceName))
--		}
--	})
--
--	ginkgo.It("should work from pods", func() {
--		var err error
--		namespace := f.Namespace.Name
--		serviceName := "external-local-pods"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
--		svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
--		framework.ExpectNoError(err)
--		serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
--		defer func() {
--			err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
--			framework.ExpectNoError(err)
--			err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
--			framework.ExpectNoError(err)
--		}()
--
--		ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
--		port := strconv.Itoa(int(svc.Spec.Ports[0].Port))
--		ipPort := net.JoinHostPort(ingressIP, port)
--		path := fmt.Sprintf("%s/clientip", ipPort)
--
--		ginkgo.By("Creating pause pod deployment to make sure, pausePods are in desired state")
--		deployment := createPausePodDeployment(cs, "pause-pod-deployment", namespace, 1)
--		framework.ExpectNoError(e2edeployment.WaitForDeploymentComplete(cs, deployment), "Failed to complete pause pod deployment")
--
--		defer func() {
--			framework.Logf("Deleting deployment")
--			err = cs.AppsV1().Deployments(namespace).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{})
--			framework.ExpectNoError(err, "Failed to delete deployment %s", deployment.Name)
--		}()
--
--		deployment, err = cs.AppsV1().Deployments(namespace).Get(context.TODO(), deployment.Name, metav1.GetOptions{})
--		framework.ExpectNoError(err, "Error in retrieving pause pod deployment")
--		labelSelector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector)
--		framework.ExpectNoError(err, "Error in setting LabelSelector as selector from deployment")
--
--		pausePods, err := cs.CoreV1().Pods(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: labelSelector.String()})
--		framework.ExpectNoError(err, "Error in listing pods associated with pause pod deployments")
--
--		pausePod := pausePods.Items[0]
--		framework.Logf("Waiting up to %v curl %v", e2eservice.KubeProxyLagTimeout, path)
--		cmd := fmt.Sprintf(`curl -q -s --connect-timeout 30 %v`, path)
--
--		var srcIP string
--		loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
--		ginkgo.By(fmt.Sprintf("Hitting external lb %v from pod %v on node %v", ingressIP, pausePod.Name, pausePod.Spec.NodeName))
--		if pollErr := wait.PollImmediate(framework.Poll, loadBalancerPropagationTimeout, func() (bool, error) {
--			stdout, err := framework.RunHostCmd(pausePod.Namespace, pausePod.Name, cmd)
--			if err != nil {
--				framework.Logf("got err: %v, retry until timeout", err)
--				return false, nil
--			}
--			srcIP = strings.TrimSpace(strings.Split(stdout, ":")[0])
--			return srcIP == pausePod.Status.PodIP, nil
--		}); pollErr != nil {
--			framework.Failf("Source IP not preserved from %v, expected '%v' got '%v'", pausePod.Name, pausePod.Status.PodIP, srcIP)
--		}
--	})
--
--	ginkgo.It("should handle updates to ExternalTrafficPolicy field", func() {
--		namespace := f.Namespace.Name
--		serviceName := "external-local-update"
--		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
--		nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
--		framework.ExpectNoError(err)
--		if len(nodes.Items) < 2 {
--			framework.Failf("Need at least 2 nodes to verify source ip from a node without endpoint")
--		}
--
--		svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
--		framework.ExpectNoError(err)
--		serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
--		defer func() {
--			err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
--			framework.ExpectNoError(err)
--			err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
--			framework.ExpectNoError(err)
--		}()
--
--		// save the health check node port because it disappears when ESIPP is turned off.
--		healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
--
--		ginkgo.By("turning ESIPP off")
--		svc, err = jig.UpdateService(func(svc *v1.Service) {
--			svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster
--		})
--		framework.ExpectNoError(err)
--		if svc.Spec.HealthCheckNodePort > 0 {
--			framework.Failf("Service HealthCheck NodePort still present")
--		}
--
--		epNodes, err := jig.ListNodesWithEndpoint()
--		framework.ExpectNoError(err)
--		// map from name of nodes with endpoint to internal ip
--		// it is assumed that there is only a single node with the endpoint
--		endpointNodeMap := make(map[string]string)
--		// map from name of nodes without endpoint to internal ip
--		noEndpointNodeMap := make(map[string]string)
--		for _, node := range epNodes {
--			ips := e2enode.GetAddresses(&node, v1.NodeInternalIP)
--			if len(ips) < 1 {
--				framework.Failf("No internal ip found for node %s", node.Name)
--			}
--			endpointNodeMap[node.Name] = ips[0]
--		}
--		for _, n := range nodes.Items {
--			ips := e2enode.GetAddresses(&n, v1.NodeInternalIP)
--			if len(ips) < 1 {
--				framework.Failf("No internal ip found for node %s", n.Name)
--			}
--			if _, ok := endpointNodeMap[n.Name]; !ok {
--				noEndpointNodeMap[n.Name] = ips[0]
--			}
--		}
--		framework.ExpectNotEqual(len(endpointNodeMap), 0)
--		framework.ExpectNotEqual(len(noEndpointNodeMap), 0)
--
--		svcTCPPort := int(svc.Spec.Ports[0].Port)
--		svcNodePort := int(svc.Spec.Ports[0].NodePort)
--		ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
--		path := "/clientip"
--		dialCmd := "clientip"
--
--		config := e2enetwork.NewNetworkingTestConfig(f, false, false)
--
--		ginkgo.By(fmt.Sprintf("endpoints present on nodes %v, absent on nodes %v", endpointNodeMap, noEndpointNodeMap))
--		for nodeName, nodeIP := range noEndpointNodeMap {
--			ginkgo.By(fmt.Sprintf("Checking %v (%v:%v/%v) proxies to endpoints on another node", nodeName, nodeIP[0], svcNodePort, dialCmd))
--			_, err := GetHTTPContentFromTestContainer(config, nodeIP, svcNodePort, e2eservice.KubeProxyLagTimeout, dialCmd)
--			framework.ExpectNoError(err, "Could not reach HTTP service through %v:%v/%v after %v", nodeIP, svcNodePort, dialCmd, e2eservice.KubeProxyLagTimeout)
--		}
--
--		for nodeName, nodeIP := range endpointNodeMap {
--			ginkgo.By(fmt.Sprintf("checking kube-proxy health check fails on node with endpoint (%s), public IP %s", nodeName, nodeIP))
--			var body string
--			pollFn := func() (bool, error) {
--				// we expect connection failure here, but not other errors
--				resp, err := config.GetResponseFromTestContainer(
--					"http",
--					"healthz",
--					nodeIP,
--					healthCheckNodePort)
--				if err != nil {
--					return false, nil
--				}
--				if len(resp.Errors) > 0 {
--					return true, nil
--				}
--				if len(resp.Responses) > 0 {
--					body = resp.Responses[0]
--				}
--				return false, nil
--			}
--			if pollErr := wait.PollImmediate(framework.Poll, e2eservice.TestTimeout, pollFn); pollErr != nil {
--				framework.Failf("Kube-proxy still exposing health check on node %v:%v, after ESIPP was turned off. body %s",
--					nodeName, healthCheckNodePort, body)
--			}
--		}
--
--		// Poll till kube-proxy re-adds the MASQUERADE rule on the node.
--		ginkgo.By(fmt.Sprintf("checking source ip is NOT preserved through loadbalancer %v", ingressIP))
--		var clientIP string
--		pollErr := wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
--			content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
--			clientIP = content.String()
--			if strings.HasPrefix(clientIP, "10.") {
--				return true, nil
--			}
--			return false, nil
--		})
--		if pollErr != nil {
--			framework.Failf("Source IP WAS preserved even after ESIPP turned off. Got %v, expected a ten-dot cluster ip.", clientIP)
--		}
--
--		// TODO: We need to attempt to create another service with the previously
--		// allocated healthcheck nodePort. If the health check nodePort has been
--		// freed, the new service creation will succeed, upon which we cleanup.
--		// If the health check nodePort has NOT been freed, the new service
--		// creation will fail.
--
--		ginkgo.By("setting ExternalTraffic field back to OnlyLocal")
--		svc, err = jig.UpdateService(func(svc *v1.Service) {
--			svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
--			// Request the same healthCheckNodePort as before, to test the user-requested allocation path
--			svc.Spec.HealthCheckNodePort = int32(healthCheckNodePort)
--		})
--		framework.ExpectNoError(err)
--		pollErr = wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
--			content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, path)
--			clientIP = content.String()
--			ginkgo.By(fmt.Sprintf("Endpoint %v:%v%v returned client ip %v", ingressIP, svcTCPPort, path, clientIP))
--			if !strings.HasPrefix(clientIP, "10.") {
--				return true, nil
--			}
--			return false, nil
--		})
--		if pollErr != nil {
--			framework.Failf("Source IP (%v) is not the client IP even after ESIPP turned on, expected a public IP.", clientIP)
--		}
--	})
--})
--
- // execAffinityTestForSessionAffinityTimeout is a helper function that wrap the logic of
- // affinity test for non-load-balancer services. Session afinity will be
- // enabled when the service is created and a short timeout will be configured so
-diff --git a/test/e2e/network/service_providers.go b/test/e2e/network/service_providers.go
-new file mode 100644
-index 00000000000..b7eae6feb2c
---- /dev/null
-+++ b/test/e2e/network/service_providers.go
-@@ -0,0 +1,980 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2020 The Kubernetes 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.
-+*/
-+
-+package network
-+
-+import (
-+	"bytes"
-+	"context"
-+	"fmt"
-+	"net"
-+	"strconv"
-+	"strings"
-+	"time"
-+
-+	compute "google.golang.org/api/compute/v1"
-+	v1 "k8s.io/api/core/v1"
-+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-+	"k8s.io/apimachinery/pkg/util/intstr"
-+	"k8s.io/apimachinery/pkg/util/wait"
-+	clientset "k8s.io/client-go/kubernetes"
-+	cloudprovider "k8s.io/cloud-provider"
-+	"k8s.io/kubernetes/test/e2e/framework"
-+	e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
-+	e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
-+	e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
-+	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
-+	"k8s.io/kubernetes/test/e2e/framework/providers/gce"
-+	e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
-+	e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
-+	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-+	gcecloud "k8s.io/legacy-cloud-providers/gce"
-+
-+	"github.com/onsi/ginkgo"
-+	"github.com/onsi/gomega"
-+)
-+
-+var _ = SIGDescribe("Services with Cloud LoadBalancers", func() {
-+
-+	f := framework.NewDefaultFramework("services")
-+
-+	var cs clientset.Interface
-+	serviceLBNames := []string{}
-+
-+	ginkgo.BeforeEach(func() {
-+		cs = f.ClientSet
-+	})
-+
-+	ginkgo.AfterEach(func() {
-+		if ginkgo.CurrentGinkgoTestDescription().Failed {
-+			DescribeSvc(f.Namespace.Name)
-+		}
-+		for _, lb := range serviceLBNames {
-+			framework.Logf("cleaning load balancer resource for %s", lb)
-+			e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
-+		}
-+		//reset serviceLBNames
-+		serviceLBNames = []string{}
-+	})
-+
-+	// TODO: Get rid of [DisabledForLargeClusters] tag when issue #56138 is fixed
-+	ginkgo.It("should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters]", func() {
-+		// requires cloud load-balancer support
-+		e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
-+
-+		loadBalancerSupportsUDP := !framework.ProviderIs("aws")
-+
-+		loadBalancerLagTimeout := e2eservice.LoadBalancerLagTimeoutDefault
-+		if framework.ProviderIs("aws") {
-+			loadBalancerLagTimeout = e2eservice.LoadBalancerLagTimeoutAWS
-+		}
-+		loadBalancerCreateTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-+
-+		// This test is more monolithic than we'd like because LB turnup can be
-+		// very slow, so we lumped all the tests into one LB lifecycle.
-+
-+		serviceName := "mutability-test"
-+		ns1 := f.Namespace.Name // LB1 in ns1 on TCP
-+		framework.Logf("namespace for TCP test: %s", ns1)
-+
-+		ginkgo.By("creating a second namespace")
-+		namespacePtr, err := f.CreateNamespace("services", nil)
-+		framework.ExpectNoError(err, "failed to create namespace")
-+		ns2 := namespacePtr.Name // LB2 in ns2 on UDP
-+		framework.Logf("namespace for UDP test: %s", ns2)
-+
-+		nodeIP, err := e2enode.PickIP(cs) // for later
-+		framework.ExpectNoError(err)
-+
-+		// Test TCP and UDP Services.  Services with the same name in different
-+		// namespaces should get different node ports and load balancers.
-+
-+		ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns1)
-+		tcpJig := e2eservice.NewTestJig(cs, ns1, serviceName)
-+		tcpService, err := tcpJig.CreateTCPService(nil)
-+		framework.ExpectNoError(err)
-+
-+		ginkgo.By("creating a UDP service " + serviceName + " with type=ClusterIP in namespace " + ns2)
-+		udpJig := e2eservice.NewTestJig(cs, ns2, serviceName)
-+		udpService, err := udpJig.CreateUDPService(nil)
-+		framework.ExpectNoError(err)
-+
-+		ginkgo.By("verifying that TCP and UDP use the same port")
-+		if tcpService.Spec.Ports[0].Port != udpService.Spec.Ports[0].Port {
-+			framework.Failf("expected to use the same port for TCP and UDP")
-+		}
-+		svcPort := int(tcpService.Spec.Ports[0].Port)
-+		framework.Logf("service port (TCP and UDP): %d", svcPort)
-+
-+		ginkgo.By("creating a pod to be part of the TCP service " + serviceName)
-+		_, err = tcpJig.Run(nil)
-+		framework.ExpectNoError(err)
-+
-+		ginkgo.By("creating a pod to be part of the UDP service " + serviceName)
-+		_, err = udpJig.Run(nil)
-+		framework.ExpectNoError(err)
-+
-+		// Change the services to NodePort.
-+
-+		ginkgo.By("changing the TCP service to type=NodePort")
-+		tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.Type = v1.ServiceTypeNodePort
-+		})
-+		framework.ExpectNoError(err)
-+		tcpNodePort := int(tcpService.Spec.Ports[0].NodePort)
-+		framework.Logf("TCP node port: %d", tcpNodePort)
-+
-+		ginkgo.By("changing the UDP service to type=NodePort")
-+		udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.Type = v1.ServiceTypeNodePort
-+		})
-+		framework.ExpectNoError(err)
-+		udpNodePort := int(udpService.Spec.Ports[0].NodePort)
-+		framework.Logf("UDP node port: %d", udpNodePort)
-+
-+		ginkgo.By("hitting the TCP service's NodePort")
-+		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the UDP service's NodePort")
-+		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		// Change the services to LoadBalancer.
-+
-+		// Here we test that LoadBalancers can receive static IP addresses.  This isn't
-+		// necessary, but is an additional feature this monolithic test checks.
-+		requestedIP := ""
-+		staticIPName := ""
-+		if framework.ProviderIs("gce", "gke") {
-+			ginkgo.By("creating a static load balancer IP")
-+			staticIPName = fmt.Sprintf("e2e-external-lb-test-%s", framework.RunID)
-+			gceCloud, err := gce.GetGCECloud()
-+			framework.ExpectNoError(err, "failed to get GCE cloud provider")
-+
-+			err = gceCloud.ReserveRegionAddress(&compute.Address{Name: staticIPName}, gceCloud.Region())
-+			defer func() {
-+				if staticIPName != "" {
-+					// Release GCE static IP - this is not kube-managed and will not be automatically released.
-+					if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
-+						framework.Logf("failed to release static IP %s: %v", staticIPName, err)
-+					}
-+				}
-+			}()
-+			framework.ExpectNoError(err, "failed to create region address: %s", staticIPName)
-+			reservedAddr, err := gceCloud.GetRegionAddress(staticIPName, gceCloud.Region())
-+			framework.ExpectNoError(err, "failed to get region address: %s", staticIPName)
-+
-+			requestedIP = reservedAddr.Address
-+			framework.Logf("Allocated static load balancer IP: %s", requestedIP)
-+		}
-+
-+		ginkgo.By("changing the TCP service to type=LoadBalancer")
-+		tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
-+			s.Spec.Type = v1.ServiceTypeLoadBalancer
-+		})
-+		framework.ExpectNoError(err)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("changing the UDP service to type=LoadBalancer")
-+			udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-+				s.Spec.Type = v1.ServiceTypeLoadBalancer
-+			})
-+			framework.ExpectNoError(err)
-+		}
-+		serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(tcpService))
-+		if loadBalancerSupportsUDP {
-+			serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(udpService))
-+		}
-+
-+		ginkgo.By("waiting for the TCP service to have a load balancer")
-+		// Wait for the load balancer to be created asynchronously
-+		tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
-+		framework.ExpectNoError(err)
-+		if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
-+			framework.Failf("TCP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", tcpNodePort, tcpService.Spec.Ports[0].NodePort)
-+		}
-+		if requestedIP != "" && e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != requestedIP {
-+			framework.Failf("unexpected TCP Status.LoadBalancer.Ingress (expected %s, got %s)", requestedIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+		}
-+		tcpIngressIP := e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0])
-+		framework.Logf("TCP load balancer: %s", tcpIngressIP)
-+
-+		if framework.ProviderIs("gce", "gke") {
-+			// Do this as early as possible, which overrides the `defer` above.
-+			// This is mostly out of fear of leaking the IP in a timeout case
-+			// (as of this writing we're not 100% sure where the leaks are
-+			// coming from, so this is first-aid rather than surgery).
-+			ginkgo.By("demoting the static IP to ephemeral")
-+			if staticIPName != "" {
-+				gceCloud, err := gce.GetGCECloud()
-+				framework.ExpectNoError(err, "failed to get GCE cloud provider")
-+				// Deleting it after it is attached "demotes" it to an
-+				// ephemeral IP, which can be auto-released.
-+				if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
-+					framework.Failf("failed to release static IP %s: %v", staticIPName, err)
-+				}
-+				staticIPName = ""
-+			}
-+		}
-+
-+		var udpIngressIP string
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("waiting for the UDP service to have a load balancer")
-+			// 2nd one should be faster since they ran in parallel.
-+			udpService, err = udpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
-+			framework.ExpectNoError(err)
-+			if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
-+				framework.Failf("UDP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", udpNodePort, udpService.Spec.Ports[0].NodePort)
-+			}
-+			udpIngressIP = e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0])
-+			framework.Logf("UDP load balancer: %s", udpIngressIP)
-+
-+			ginkgo.By("verifying that TCP and UDP use different load balancers")
-+			if tcpIngressIP == udpIngressIP {
-+				framework.Failf("Load balancers are not different: %s", e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+			}
-+		}
-+
-+		ginkgo.By("hitting the TCP service's NodePort")
-+		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the UDP service's NodePort")
-+		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the TCP service's LoadBalancer")
-+		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("hitting the UDP service's LoadBalancer")
-+			testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-+		}
-+
-+		// Change the services' node ports.
-+
-+		ginkgo.By("changing the TCP service's NodePort")
-+		tcpService, err = tcpJig.ChangeServiceNodePort(tcpNodePort)
-+		framework.ExpectNoError(err)
-+		tcpNodePortOld := tcpNodePort
-+		tcpNodePort = int(tcpService.Spec.Ports[0].NodePort)
-+		if tcpNodePort == tcpNodePortOld {
-+			framework.Failf("TCP Spec.Ports[0].NodePort (%d) did not change", tcpNodePort)
-+		}
-+		if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
-+			framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+		}
-+		framework.Logf("TCP node port: %d", tcpNodePort)
-+
-+		ginkgo.By("changing the UDP service's NodePort")
-+		udpService, err = udpJig.ChangeServiceNodePort(udpNodePort)
-+		framework.ExpectNoError(err)
-+		udpNodePortOld := udpNodePort
-+		udpNodePort = int(udpService.Spec.Ports[0].NodePort)
-+		if udpNodePort == udpNodePortOld {
-+			framework.Failf("UDP Spec.Ports[0].NodePort (%d) did not change", udpNodePort)
-+		}
-+		if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
-+			framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
-+		}
-+		framework.Logf("UDP node port: %d", udpNodePort)
-+
-+		ginkgo.By("hitting the TCP service's new NodePort")
-+		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the UDP service's new NodePort")
-+		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("checking the old TCP NodePort is closed")
-+		testNotReachableHTTP(nodeIP, tcpNodePortOld, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("checking the old UDP NodePort is closed")
-+		testNotReachableUDP(nodeIP, udpNodePortOld, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the TCP service's LoadBalancer")
-+		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("hitting the UDP service's LoadBalancer")
-+			testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-+		}
-+
-+		// Change the services' main ports.
-+
-+		ginkgo.By("changing the TCP service's port")
-+		tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.Ports[0].Port++
-+		})
-+		framework.ExpectNoError(err)
-+		svcPortOld := svcPort
-+		svcPort = int(tcpService.Spec.Ports[0].Port)
-+		if svcPort == svcPortOld {
-+			framework.Failf("TCP Spec.Ports[0].Port (%d) did not change", svcPort)
-+		}
-+		if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
-+			framework.Failf("TCP Spec.Ports[0].NodePort (%d) changed", tcpService.Spec.Ports[0].NodePort)
-+		}
-+		if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
-+			framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+		}
-+
-+		ginkgo.By("changing the UDP service's port")
-+		udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.Ports[0].Port++
-+		})
-+		framework.ExpectNoError(err)
-+		if int(udpService.Spec.Ports[0].Port) != svcPort {
-+			framework.Failf("UDP Spec.Ports[0].Port (%d) did not change", udpService.Spec.Ports[0].Port)
-+		}
-+		if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
-+			framework.Failf("UDP Spec.Ports[0].NodePort (%d) changed", udpService.Spec.Ports[0].NodePort)
-+		}
-+		if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
-+			framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
-+		}
-+
-+		framework.Logf("service port (TCP and UDP): %d", svcPort)
-+
-+		ginkgo.By("hitting the TCP service's NodePort")
-+		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the UDP service's NodePort")
-+		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the TCP service's LoadBalancer")
-+		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("hitting the UDP service's LoadBalancer")
-+			testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+		}
-+
-+		ginkgo.By("Scaling the pods to 0")
-+		err = tcpJig.Scale(0)
-+		framework.ExpectNoError(err)
-+		err = udpJig.Scale(0)
-+		framework.ExpectNoError(err)
-+
-+		ginkgo.By("looking for ICMP REJECT on the TCP service's NodePort")
-+		testRejectedHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("looking for ICMP REJECT on the UDP service's NodePort")
-+		testRejectedUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("looking for ICMP REJECT on the TCP service's LoadBalancer")
-+		testRejectedHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("looking for ICMP REJECT on the UDP service's LoadBalancer")
-+			testRejectedUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+		}
-+
-+		ginkgo.By("Scaling the pods to 1")
-+		err = tcpJig.Scale(1)
-+		framework.ExpectNoError(err)
-+		err = udpJig.Scale(1)
-+		framework.ExpectNoError(err)
-+
-+		ginkgo.By("hitting the TCP service's NodePort")
-+		e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the UDP service's NodePort")
-+		testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("hitting the TCP service's LoadBalancer")
-+		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("hitting the UDP service's LoadBalancer")
-+			testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+		}
-+
-+		// Change the services back to ClusterIP.
-+
-+		ginkgo.By("changing TCP service back to type=ClusterIP")
-+		_, err = tcpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.Type = v1.ServiceTypeClusterIP
-+			s.Spec.Ports[0].NodePort = 0
-+		})
-+		framework.ExpectNoError(err)
-+		// Wait for the load balancer to be destroyed asynchronously
-+		_, err = tcpJig.WaitForLoadBalancerDestroy(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+		framework.ExpectNoError(err)
-+
-+		ginkgo.By("changing UDP service back to type=ClusterIP")
-+		_, err = udpJig.UpdateService(func(s *v1.Service) {
-+			s.Spec.Type = v1.ServiceTypeClusterIP
-+			s.Spec.Ports[0].NodePort = 0
-+		})
-+		framework.ExpectNoError(err)
-+		if loadBalancerSupportsUDP {
-+			// Wait for the load balancer to be destroyed asynchronously
-+			_, err = udpJig.WaitForLoadBalancerDestroy(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+			framework.ExpectNoError(err)
-+		}
-+
-+		ginkgo.By("checking the TCP NodePort is closed")
-+		testNotReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("checking the UDP NodePort is closed")
-+		testNotReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+		ginkgo.By("checking the TCP LoadBalancer is closed")
-+		testNotReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
-+
-+		if loadBalancerSupportsUDP {
-+			ginkgo.By("checking the UDP LoadBalancer is closed")
-+			testNotReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-+		}
-+	})
-+
-+	ginkgo.It("should be able to create an internal type load balancer [Slow]", func() {
-+		e2eskipper.SkipUnlessProviderIs("azure", "gke", "gce")
-+
-+		createTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-+		pollInterval := framework.Poll * 10
-+
-+		namespace := f.Namespace.Name
-+		serviceName := "lb-internal"
-+		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+		ginkgo.By("creating pod to be part of service " + serviceName)
-+		_, err := jig.Run(nil)
-+		framework.ExpectNoError(err)
-+
-+		enableILB, disableILB := enableAndDisableInternalLB()
-+
-+		isInternalEndpoint := func(lbIngress *v1.LoadBalancerIngress) bool {
-+			ingressEndpoint := e2eservice.GetIngressPoint(lbIngress)
-+			// Needs update for providers using hostname as endpoint.
-+			return strings.HasPrefix(ingressEndpoint, "10.")
-+		}
-+
-+		ginkgo.By("creating a service with type LoadBalancer and cloud specific Internal-LB annotation enabled")
-+		svc, err := jig.CreateTCPService(func(svc *v1.Service) {
-+			svc.Spec.Type = v1.ServiceTypeLoadBalancer
-+			enableILB(svc)
-+		})
-+		framework.ExpectNoError(err)
-+
-+		defer func() {
-+			ginkgo.By("Clean up loadbalancer service")
-+			e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
-+		}()
-+
-+		svc, err = jig.WaitForLoadBalancer(createTimeout)
-+		framework.ExpectNoError(err)
-+		lbIngress := &svc.Status.LoadBalancer.Ingress[0]
-+		svcPort := int(svc.Spec.Ports[0].Port)
-+		// should have an internal IP.
-+		framework.ExpectEqual(isInternalEndpoint(lbIngress), true)
-+
-+		// ILBs are not accessible from the test orchestrator, so it's necessary to use
-+		//  a pod to test the service.
-+		ginkgo.By("hitting the internal load balancer from pod")
-+		framework.Logf("creating pod with host network")
-+		hostExec := launchHostExecPod(f.ClientSet, f.Namespace.Name, "ilb-host-exec")
-+
-+		framework.Logf("Waiting up to %v for service %q's internal LB to respond to requests", createTimeout, serviceName)
-+		tcpIngressIP := e2eservice.GetIngressPoint(lbIngress)
-+		if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-+			cmd := fmt.Sprintf(`curl -m 5 'http://%v:%v/echo?msg=hello'`, tcpIngressIP, svcPort)
-+			stdout, err := framework.RunHostCmd(hostExec.Namespace, hostExec.Name, cmd)
-+			if err != nil {
-+				framework.Logf("error curling; stdout: %v. err: %v", stdout, err)
-+				return false, nil
-+			}
-+
-+			if !strings.Contains(stdout, "hello") {
-+				framework.Logf("Expected output to contain 'hello', got %q; retrying...", stdout)
-+				return false, nil
-+			}
-+
-+			framework.Logf("Successful curl; stdout: %v", stdout)
-+			return true, nil
-+		}); pollErr != nil {
-+			framework.Failf("ginkgo.Failed to hit ILB IP, err: %v", pollErr)
-+		}
-+
-+		ginkgo.By("switching to external type LoadBalancer")
-+		svc, err = jig.UpdateService(func(svc *v1.Service) {
-+			disableILB(svc)
-+		})
-+		framework.ExpectNoError(err)
-+		framework.Logf("Waiting up to %v for service %q to have an external LoadBalancer", createTimeout, serviceName)
-+		if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-+			svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
-+			if err != nil {
-+				return false, err
-+			}
-+			lbIngress = &svc.Status.LoadBalancer.Ingress[0]
-+			return !isInternalEndpoint(lbIngress), nil
-+		}); pollErr != nil {
-+			framework.Failf("Loadbalancer IP not changed to external.")
-+		}
-+		// should have an external IP.
-+		gomega.Expect(isInternalEndpoint(lbIngress)).To(gomega.BeFalse())
-+
-+		ginkgo.By("hitting the external load balancer")
-+		framework.Logf("Waiting up to %v for service %q's external LB to respond to requests", createTimeout, serviceName)
-+		tcpIngressIP = e2eservice.GetIngressPoint(lbIngress)
-+		e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, e2eservice.LoadBalancerLagTimeoutDefault)
-+
-+		// GCE cannot test a specific IP because the test may not own it. This cloud specific condition
-+		// will be removed when GCP supports similar functionality.
-+		if framework.ProviderIs("azure") {
-+			ginkgo.By("switching back to interal type LoadBalancer, with static IP specified.")
-+			internalStaticIP := "10.240.11.11"
-+			svc, err = jig.UpdateService(func(svc *v1.Service) {
-+				svc.Spec.LoadBalancerIP = internalStaticIP
-+				enableILB(svc)
-+			})
-+			framework.ExpectNoError(err)
-+			framework.Logf("Waiting up to %v for service %q to have an internal LoadBalancer", createTimeout, serviceName)
-+			if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-+				svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
-+				if err != nil {
-+					return false, err
-+				}
-+				lbIngress = &svc.Status.LoadBalancer.Ingress[0]
-+				return isInternalEndpoint(lbIngress), nil
-+			}); pollErr != nil {
-+				framework.Failf("Loadbalancer IP not changed to internal.")
-+			}
-+			// should have the given static internal IP.
-+			framework.ExpectEqual(e2eservice.GetIngressPoint(lbIngress), internalStaticIP)
-+		}
-+	})
-+
-+	// This test creates a load balancer, make sure its health check interval
-+	// equals to gceHcCheckIntervalSeconds. Then the interval is manipulated
-+	// to be something else, see if the interval will be reconciled.
-+	ginkgo.It("should reconcile LB health check interval [Slow][Serial]", func() {
-+		const gceHcCheckIntervalSeconds = int64(8)
-+		// This test is for clusters on GCE.
-+		// (It restarts kube-controller-manager, which we don't support on GKE)
-+		e2eskipper.SkipUnlessProviderIs("gce")
-+		e2eskipper.SkipUnlessSSHKeyPresent()
-+
-+		clusterID, err := gce.GetClusterID(cs)
-+		if err != nil {
-+			framework.Failf("framework.GetClusterID(cs) = _, %v; want nil", err)
-+		}
-+		gceCloud, err := gce.GetGCECloud()
-+		if err != nil {
-+			framework.Failf("framework.GetGCECloud() = _, %v; want nil", err)
-+		}
-+
-+		namespace := f.Namespace.Name
-+		serviceName := "lb-hc-int"
-+		jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+		ginkgo.By("create load balancer service")
-+		// Create loadbalancer service with source range from node[0] and podAccept
-+		svc, err := jig.CreateTCPService(func(svc *v1.Service) {
-+			svc.Spec.Type = v1.ServiceTypeLoadBalancer
-+		})
-+		framework.ExpectNoError(err)
-+
-+		defer func() {
-+			ginkgo.By("Clean up loadbalancer service")
-+			e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
-+		}()
-+
-+		svc, err = jig.WaitForLoadBalancer(e2eservice.GetServiceLoadBalancerCreationTimeout(cs))
-+		framework.ExpectNoError(err)
-+
-+		hcName := gcecloud.MakeNodesHealthCheckName(clusterID)
-+		hc, err := gceCloud.GetHTTPHealthCheck(hcName)
-+		if err != nil {
-+			framework.Failf("gceCloud.GetHttpHealthCheck(%q) = _, %v; want nil", hcName, err)
-+		}
-+		framework.ExpectEqual(hc.CheckIntervalSec, gceHcCheckIntervalSeconds)
-+
-+		ginkgo.By("modify the health check interval")
-+		hc.CheckIntervalSec = gceHcCheckIntervalSeconds - 1
-+		if err = gceCloud.UpdateHTTPHealthCheck(hc); err != nil {
-+			framework.Failf("gcecloud.UpdateHttpHealthCheck(%#v) = %v; want nil", hc, err)
-+		}
-+
-+		ginkgo.By("restart kube-controller-manager")
-+		if err := e2ekubesystem.RestartControllerManager(); err != nil {
-+			framework.Failf("e2ekubesystem.RestartControllerManager() = %v; want nil", err)
-+		}
-+		if err := e2ekubesystem.WaitForControllerManagerUp(); err != nil {
-+			framework.Failf("e2ekubesystem.WaitForControllerManagerUp() = %v; want nil", err)
-+		}
-+
-+		ginkgo.By("health check should be reconciled")
-+		pollInterval := framework.Poll * 10
-+		loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
-+		if pollErr := wait.PollImmediate(pollInterval, loadBalancerPropagationTimeout, func() (bool, error) {
-+			hc, err := gceCloud.GetHTTPHealthCheck(hcName)
-+			if err != nil {
-+				framework.Logf("ginkgo.Failed to get HttpHealthCheck(%q): %v", hcName, err)
-+				return false, err
-+			}
-+			framework.Logf("hc.CheckIntervalSec = %v", hc.CheckIntervalSec)
-+			return hc.CheckIntervalSec == gceHcCheckIntervalSeconds, nil
-+		}); pollErr != nil {
-+			framework.Failf("Health check %q does not reconcile its check interval to %d.", hcName, gceHcCheckIntervalSeconds)
-+		}
-+	})
-+
-+	var _ = SIGDescribe("ESIPP [Slow]", func() {
-+		f := framework.NewDefaultFramework("esipp")
-+		var loadBalancerCreateTimeout time.Duration
-+
-+		var cs clientset.Interface
-+		serviceLBNames := []string{}
-+
-+		ginkgo.BeforeEach(func() {
-+			// requires cloud load-balancer support - this feature currently supported only on GCE/GKE
-+			e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+
-+			cs = f.ClientSet
-+			loadBalancerCreateTimeout = e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-+		})
-+
-+		ginkgo.AfterEach(func() {
-+			if ginkgo.CurrentGinkgoTestDescription().Failed {
-+				DescribeSvc(f.Namespace.Name)
-+			}
-+			for _, lb := range serviceLBNames {
-+				framework.Logf("cleaning load balancer resource for %s", lb)
-+				e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
-+			}
-+			//reset serviceLBNames
-+			serviceLBNames = []string{}
-+		})
-+
-+		ginkgo.It("should work for type=LoadBalancer", func() {
-+			namespace := f.Namespace.Name
-+			serviceName := "external-local-lb"
-+			jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+			svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-+			framework.ExpectNoError(err)
-+			serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+			healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-+			if healthCheckNodePort == 0 {
-+				framework.Failf("Service HealthCheck NodePort was not allocated")
-+			}
-+			defer func() {
-+				err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+				framework.ExpectNoError(err)
-+
-+				// Make sure we didn't leak the health check node port.
-+				threshold := 2
-+				nodes, err := jig.GetEndpointNodes()
-+				framework.ExpectNoError(err)
-+				for _, ips := range nodes {
-+					err := TestHTTPHealthCheckNodePort(ips[0], healthCheckNodePort, "/healthz", e2eservice.KubeProxyEndpointLagTimeout, false, threshold)
-+					framework.ExpectNoError(err)
-+				}
-+				err = cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+				framework.ExpectNoError(err)
-+			}()
-+
-+			svcTCPPort := int(svc.Spec.Ports[0].Port)
-+			ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+
-+			ginkgo.By("reading clientIP using the TCP service's service port via its external VIP")
-+			content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
-+			clientIP := content.String()
-+			framework.Logf("ClientIP detected by target pod using VIP:SvcPort is %s", clientIP)
-+
-+			ginkgo.By("checking if Source IP is preserved")
-+			if strings.HasPrefix(clientIP, "10.") {
-+				framework.Failf("Source IP was NOT preserved")
-+			}
-+		})
-+
-+		ginkgo.It("should work for type=NodePort", func() {
-+			namespace := f.Namespace.Name
-+			serviceName := "external-local-nodeport"
-+			jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+			svc, err := jig.CreateOnlyLocalNodePortService(true)
-+			framework.ExpectNoError(err)
-+			defer func() {
-+				err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+				framework.ExpectNoError(err)
-+			}()
-+
-+			tcpNodePort := int(svc.Spec.Ports[0].NodePort)
-+			endpointsNodeMap, err := jig.GetEndpointNodes()
-+			framework.ExpectNoError(err)
-+			path := "/clientip"
-+
-+			for nodeName, nodeIPs := range endpointsNodeMap {
-+				nodeIP := nodeIPs[0]
-+				ginkgo.By(fmt.Sprintf("reading clientIP using the TCP service's NodePort, on node %v: %v%v%v", nodeName, nodeIP, tcpNodePort, path))
-+				content := GetHTTPContent(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout, path)
-+				clientIP := content.String()
-+				framework.Logf("ClientIP detected by target pod using NodePort is %s", clientIP)
-+				if strings.HasPrefix(clientIP, "10.") {
-+					framework.Failf("Source IP was NOT preserved")
-+				}
-+			}
-+		})
-+
-+		ginkgo.It("should only target nodes with endpoints", func() {
-+			namespace := f.Namespace.Name
-+			serviceName := "external-local-nodes"
-+			jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+			nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
-+			framework.ExpectNoError(err)
-+
-+			svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, false,
-+				func(svc *v1.Service) {
-+					// Change service port to avoid collision with opened hostPorts
-+					// in other tests that run in parallel.
-+					if len(svc.Spec.Ports) != 0 {
-+						svc.Spec.Ports[0].TargetPort = intstr.FromInt(int(svc.Spec.Ports[0].Port))
-+						svc.Spec.Ports[0].Port = 8081
-+					}
-+
-+				})
-+			framework.ExpectNoError(err)
-+			serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+			defer func() {
-+				err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+				framework.ExpectNoError(err)
-+				err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+				framework.ExpectNoError(err)
-+			}()
-+
-+			healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-+			if healthCheckNodePort == 0 {
-+				framework.Failf("Service HealthCheck NodePort was not allocated")
-+			}
-+
-+			ips := e2enode.CollectAddresses(nodes, v1.NodeExternalIP)
-+
-+			ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+			svcTCPPort := int(svc.Spec.Ports[0].Port)
-+
-+			threshold := 2
-+			path := "/healthz"
-+			for i := 0; i < len(nodes.Items); i++ {
-+				endpointNodeName := nodes.Items[i].Name
-+
-+				ginkgo.By("creating a pod to be part of the service " + serviceName + " on node " + endpointNodeName)
-+				_, err = jig.Run(func(rc *v1.ReplicationController) {
-+					rc.Name = serviceName
-+					if endpointNodeName != "" {
-+						rc.Spec.Template.Spec.NodeName = endpointNodeName
-+					}
-+				})
-+				framework.ExpectNoError(err)
-+
-+				ginkgo.By(fmt.Sprintf("waiting for service endpoint on node %v", endpointNodeName))
-+				err = jig.WaitForEndpointOnNode(endpointNodeName)
-+				framework.ExpectNoError(err)
-+
-+				// HealthCheck should pass only on the node where num(endpoints) > 0
-+				// All other nodes should fail the healthcheck on the service healthCheckNodePort
-+				for n, publicIP := range ips {
-+					// Make sure the loadbalancer picked up the health check change.
-+					// Confirm traffic can reach backend through LB before checking healthcheck nodeport.
-+					e2eservice.TestReachableHTTP(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout)
-+					expectedSuccess := nodes.Items[n].Name == endpointNodeName
-+					port := strconv.Itoa(healthCheckNodePort)
-+					ipPort := net.JoinHostPort(publicIP, port)
-+					framework.Logf("Health checking %s, http://%s%s, expectedSuccess %v", nodes.Items[n].Name, ipPort, path, expectedSuccess)
-+					err := TestHTTPHealthCheckNodePort(publicIP, healthCheckNodePort, path, e2eservice.KubeProxyEndpointLagTimeout, expectedSuccess, threshold)
-+					framework.ExpectNoError(err)
-+				}
-+				framework.ExpectNoError(e2erc.DeleteRCAndWaitForGC(f.ClientSet, namespace, serviceName))
-+			}
-+		})
-+
-+		ginkgo.It("should work from pods", func() {
-+			var err error
-+			namespace := f.Namespace.Name
-+			serviceName := "external-local-pods"
-+			jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+			svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-+			framework.ExpectNoError(err)
-+			serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+			defer func() {
-+				err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+				framework.ExpectNoError(err)
-+				err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+				framework.ExpectNoError(err)
-+			}()
-+
-+			ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+			port := strconv.Itoa(int(svc.Spec.Ports[0].Port))
-+			ipPort := net.JoinHostPort(ingressIP, port)
-+			path := fmt.Sprintf("%s/clientip", ipPort)
-+
-+			ginkgo.By("Creating pause pod deployment to make sure, pausePods are in desired state")
-+			deployment := createPausePodDeployment(cs, "pause-pod-deployment", namespace, 1)
-+			framework.ExpectNoError(e2edeployment.WaitForDeploymentComplete(cs, deployment), "Failed to complete pause pod deployment")
-+
-+			defer func() {
-+				framework.Logf("Deleting deployment")
-+				err = cs.AppsV1().Deployments(namespace).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{})
-+				framework.ExpectNoError(err, "Failed to delete deployment %s", deployment.Name)
-+			}()
-+
-+			deployment, err = cs.AppsV1().Deployments(namespace).Get(context.TODO(), deployment.Name, metav1.GetOptions{})
-+			framework.ExpectNoError(err, "Error in retrieving pause pod deployment")
-+			labelSelector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector)
-+			framework.ExpectNoError(err, "Error in setting LabelSelector as selector from deployment")
-+
-+			pausePods, err := cs.CoreV1().Pods(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: labelSelector.String()})
-+			framework.ExpectNoError(err, "Error in listing pods associated with pause pod deployments")
-+
-+			pausePod := pausePods.Items[0]
-+			framework.Logf("Waiting up to %v curl %v", e2eservice.KubeProxyLagTimeout, path)
-+			cmd := fmt.Sprintf(`curl -q -s --connect-timeout 30 %v`, path)
-+
-+			var srcIP string
-+			loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
-+			ginkgo.By(fmt.Sprintf("Hitting external lb %v from pod %v on node %v", ingressIP, pausePod.Name, pausePod.Spec.NodeName))
-+			if pollErr := wait.PollImmediate(framework.Poll, loadBalancerPropagationTimeout, func() (bool, error) {
-+				stdout, err := framework.RunHostCmd(pausePod.Namespace, pausePod.Name, cmd)
-+				if err != nil {
-+					framework.Logf("got err: %v, retry until timeout", err)
-+					return false, nil
-+				}
-+				srcIP = strings.TrimSpace(strings.Split(stdout, ":")[0])
-+				return srcIP == pausePod.Status.PodIP, nil
-+			}); pollErr != nil {
-+				framework.Failf("Source IP not preserved from %v, expected '%v' got '%v'", pausePod.Name, pausePod.Status.PodIP, srcIP)
-+			}
-+		})
-+
-+		// TODO: Get rid of [DisabledForLargeClusters] tag when issue #90047 is fixed.
-+		ginkgo.It("should handle updates to ExternalTrafficPolicy field [DisabledForLargeClusters]", func() {
-+			namespace := f.Namespace.Name
-+			serviceName := "external-local-update"
-+			jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+			nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
-+			framework.ExpectNoError(err)
-+			if len(nodes.Items) < 2 {
-+				framework.Failf("Need at least 2 nodes to verify source ip from a node without endpoint")
-+			}
-+
-+			svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-+			framework.ExpectNoError(err)
-+			serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+			defer func() {
-+				err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+				framework.ExpectNoError(err)
-+				err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+				framework.ExpectNoError(err)
-+			}()
-+
-+			// save the health check node port because it disappears when ESIPP is turned off.
-+			healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-+
-+			ginkgo.By("turning ESIPP off")
-+			svc, err = jig.UpdateService(func(svc *v1.Service) {
-+				svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster
-+			})
-+			framework.ExpectNoError(err)
-+			if svc.Spec.HealthCheckNodePort > 0 {
-+				framework.Failf("Service HealthCheck NodePort still present")
-+			}
-+
-+			endpointNodeMap, err := jig.GetEndpointNodes()
-+			framework.ExpectNoError(err)
-+			noEndpointNodeMap := map[string][]string{}
-+			for _, n := range nodes.Items {
-+				if _, ok := endpointNodeMap[n.Name]; ok {
-+					continue
-+				}
-+				noEndpointNodeMap[n.Name] = e2enode.GetAddresses(&n, v1.NodeExternalIP)
-+			}
-+
-+			svcTCPPort := int(svc.Spec.Ports[0].Port)
-+			svcNodePort := int(svc.Spec.Ports[0].NodePort)
-+			ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+			path := "/clientip"
-+
-+			ginkgo.By(fmt.Sprintf("endpoints present on nodes %v, absent on nodes %v", endpointNodeMap, noEndpointNodeMap))
-+			for nodeName, nodeIPs := range noEndpointNodeMap {
-+				ginkgo.By(fmt.Sprintf("Checking %v (%v:%v%v) proxies to endpoints on another node", nodeName, nodeIPs[0], svcNodePort, path))
-+				GetHTTPContent(nodeIPs[0], svcNodePort, e2eservice.KubeProxyLagTimeout, path)
-+			}
-+
-+			for nodeName, nodeIPs := range endpointNodeMap {
-+				ginkgo.By(fmt.Sprintf("checking kube-proxy health check fails on node with endpoint (%s), public IP %s", nodeName, nodeIPs[0]))
-+				var body bytes.Buffer
-+				pollfn := func() (bool, error) {
-+					result := e2enetwork.PokeHTTP(nodeIPs[0], healthCheckNodePort, "/healthz", nil)
-+					if result.Code == 0 {
-+						return true, nil
-+					}
-+					body.Reset()
-+					body.Write(result.Body)
-+					return false, nil
-+				}
-+				if pollErr := wait.PollImmediate(framework.Poll, e2eservice.TestTimeout, pollfn); pollErr != nil {
-+					framework.Failf("Kube-proxy still exposing health check on node %v:%v, after ESIPP was turned off. body %s",
-+						nodeName, healthCheckNodePort, body.String())
-+				}
-+			}
-+
-+			// Poll till kube-proxy re-adds the MASQUERADE rule on the node.
-+			ginkgo.By(fmt.Sprintf("checking source ip is NOT preserved through loadbalancer %v", ingressIP))
-+			var clientIP string
-+			pollErr := wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
-+				content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
-+				clientIP = content.String()
-+				if strings.HasPrefix(clientIP, "10.") {
-+					return true, nil
-+				}
-+				return false, nil
-+			})
-+			if pollErr != nil {
-+				framework.Failf("Source IP WAS preserved even after ESIPP turned off. Got %v, expected a ten-dot cluster ip.", clientIP)
-+			}
-+
-+			// TODO: We need to attempt to create another service with the previously
-+			// allocated healthcheck nodePort. If the health check nodePort has been
-+			// freed, the new service creation will succeed, upon which we cleanup.
-+			// If the health check nodePort has NOT been freed, the new service
-+			// creation will fail.
-+
-+			ginkgo.By("setting ExternalTraffic field back to OnlyLocal")
-+			svc, err = jig.UpdateService(func(svc *v1.Service) {
-+				svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
-+				// Request the same healthCheckNodePort as before, to test the user-requested allocation path
-+				svc.Spec.HealthCheckNodePort = int32(healthCheckNodePort)
-+			})
-+			framework.ExpectNoError(err)
-+			pollErr = wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
-+				content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, path)
-+				clientIP = content.String()
-+				ginkgo.By(fmt.Sprintf("Endpoint %v:%v%v returned client ip %v", ingressIP, svcTCPPort, path, clientIP))
-+				if !strings.HasPrefix(clientIP, "10.") {
-+					return true, nil
-+				}
-+				return false, nil
-+			})
-+			if pollErr != nil {
-+				framework.Failf("Source IP (%v) is not the client IP even after ESIPP turned on, expected a public IP.", clientIP)
-+			}
-+		})
-+	})
-+})
-diff --git a/test/e2e/node/recreate_node.go b/test/e2e/node/recreate_node.go
-index da3fc974485..b403fa7f737 100644
---- a/test/e2e/node/recreate_node.go
-+++ b/test/e2e/node/recreate_node.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2019 The Kubernetes Authors.
- 
-diff --git a/test/e2e/scheduling/nvidia-gpus.go b/test/e2e/scheduling/nvidia-gpus.go
-index 313e773b8e2..bbf66b59aac 100644
---- a/test/e2e/scheduling/nvidia-gpus.go
-+++ b/test/e2e/scheduling/nvidia-gpus.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/scheduling/ubernetes_lite_volumes.go b/test/e2e/scheduling/ubernetes_lite_volumes.go
-index 513ed07543f..78c0f081990 100644
---- a/test/e2e/scheduling/ubernetes_lite_volumes.go
-+++ b/test/e2e/scheduling/ubernetes_lite_volumes.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go
-index a866266c1f1..28e26a10c35 100644
---- a/test/e2e/storage/drivers/in_tree.go
-+++ b/test/e2e/storage/drivers/in_tree.go
-@@ -38,10 +38,8 @@ package drivers
- import (
- 	"context"
- 	"fmt"
--	"os/exec"
- 	"strconv"
- 	"strings"
--	"time"
- 
- 	"github.com/onsi/ginkgo"
- 	v1 "k8s.io/api/core/v1"
-@@ -57,13 +55,11 @@ import (
- 	e2eauth "k8s.io/kubernetes/test/e2e/framework/auth"
- 	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
- 	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
--	e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
- 	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
- 	e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
- 	"k8s.io/kubernetes/test/e2e/storage/testpatterns"
- 	"k8s.io/kubernetes/test/e2e/storage/testsuites"
- 	"k8s.io/kubernetes/test/e2e/storage/utils"
--	vspheretest "k8s.io/kubernetes/test/e2e/storage/vsphere"
- 	imageutils "k8s.io/kubernetes/test/utils/image"
- )
- 
-@@ -1044,734 +1040,6 @@ func (e *emptydirDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTes
- 	}, func() {}
- }
- 
--// Cinder
--// This driver assumes that OpenStack client tools are installed
--// (/usr/bin/nova, /usr/bin/cinder and /usr/bin/keystone)
--// and that the usual OpenStack authentication env. variables are set
--// (OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME at least).
--type cinderDriver struct {
--	driverInfo testsuites.DriverInfo
--}
--
--type cinderVolume struct {
--	volumeName string
--	volumeID   string
--}
--
--var _ testsuites.TestDriver = &cinderDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &cinderDriver{}
--var _ testsuites.InlineVolumeTestDriver = &cinderDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &cinderDriver{}
--var _ testsuites.DynamicPVTestDriver = &cinderDriver{}
--
--// InitCinderDriver returns cinderDriver that implements TestDriver interface
--func InitCinderDriver() testsuites.TestDriver {
--	return &cinderDriver{
--		driverInfo: testsuites.DriverInfo{
--			Name:             "cinder",
--			InTreePluginName: "kubernetes.io/cinder",
--			MaxFileSize:      testpatterns.FileSizeMedium,
--			SupportedSizeRange: e2evolume.SizeRange{
--				Min: "5Gi",
--			},
--			SupportedFsType: sets.NewString(
--				"", // Default fsType
--				"ext3",
--			),
--			TopologyKeys: []string{v1.LabelZoneFailureDomain},
--			Capabilities: map[testsuites.Capability]bool{
--				testsuites.CapPersistence: true,
--				testsuites.CapFsGroup:     true,
--				testsuites.CapExec:        true,
--				testsuites.CapBlock:       true,
--				// Cinder supports volume limits, but the test creates large
--				// number of volumes and times out test suites.
--				testsuites.CapVolumeLimits: false,
--				testsuites.CapTopology:     true,
--			},
--		},
--	}
--}
--
--func (c *cinderDriver) GetDriverInfo() *testsuites.DriverInfo {
--	return &c.driverInfo
--}
--
--func (c *cinderDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
--	e2eskipper.SkipUnlessProviderIs("openstack")
--}
--
--func (c *cinderDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
--	cv, ok := e2evolume.(*cinderVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
--
--	volSource := v1.VolumeSource{
--		Cinder: &v1.CinderVolumeSource{
--			VolumeID: cv.volumeID,
--			ReadOnly: readOnly,
--		},
--	}
--	if fsType != "" {
--		volSource.Cinder.FSType = fsType
--	}
--	return &volSource
--}
--
--func (c *cinderDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
--	cv, ok := e2evolume.(*cinderVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
--
--	pvSource := v1.PersistentVolumeSource{
--		Cinder: &v1.CinderPersistentVolumeSource{
--			VolumeID: cv.volumeID,
--			ReadOnly: readOnly,
--		},
--	}
--	if fsType != "" {
--		pvSource.Cinder.FSType = fsType
--	}
--	return &pvSource, nil
--}
--
--func (c *cinderDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
--	provisioner := "kubernetes.io/cinder"
--	parameters := map[string]string{}
--	if fsType != "" {
--		parameters["fsType"] = fsType
--	}
--	ns := config.Framework.Namespace.Name
--	suffix := fmt.Sprintf("%s-sc", c.driverInfo.Name)
--
--	return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
--}
--
--func (c *cinderDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
--	return &testsuites.PerTestConfig{
--		Driver:    c,
--		Prefix:    "cinder",
--		Framework: f,
--	}, func() {}
--}
--
--func (c *cinderDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
--	f := config.Framework
--	ns := f.Namespace
--
--	// We assume that namespace.Name is a random string
--	volumeName := ns.Name
--	ginkgo.By("creating a test Cinder volume")
--	output, err := exec.Command("cinder", "create", "--display-name="+volumeName, "1").CombinedOutput()
--	outputString := string(output[:])
--	framework.Logf("cinder output:\n%s", outputString)
--	framework.ExpectNoError(err)
--
--	// Parse 'id'' from stdout. Expected format:
--	// |     attachments     |                  []                  |
--	// |  availability_zone  |                 nova                 |
--	// ...
--	// |          id         | 1d6ff08f-5d1c-41a4-ad72-4ef872cae685 |
--	volumeID := ""
--	for _, line := range strings.Split(outputString, "\n") {
--		fields := strings.Fields(line)
--		if len(fields) != 5 {
--			continue
--		}
--		if fields[1] != "id" {
--			continue
--		}
--		volumeID = fields[3]
--		break
--	}
--	framework.Logf("Volume ID: %s", volumeID)
--	framework.ExpectNotEqual(volumeID, "")
--	return &cinderVolume{
--		volumeName: volumeName,
--		volumeID:   volumeID,
--	}
--}
--
--func (v *cinderVolume) DeleteVolume() {
--	name := v.volumeName
--
--	// Try to delete the volume for several seconds - it takes
--	// a while for the plugin to detach it.
--	var output []byte
--	var err error
--	timeout := time.Second * 120
--
--	framework.Logf("Waiting up to %v for removal of cinder volume %s", timeout, name)
--	for start := time.Now(); time.Since(start) < timeout; time.Sleep(5 * time.Second) {
--		output, err = exec.Command("cinder", "delete", name).CombinedOutput()
--		if err == nil {
--			framework.Logf("Cinder volume %s deleted", name)
--			return
--		}
--		framework.Logf("Failed to delete volume %s: %v", name, err)
--	}
--	framework.Logf("Giving up deleting volume %s: %v\n%s", name, err, string(output[:]))
--}
--
--// GCE
--type gcePdDriver struct {
--	driverInfo testsuites.DriverInfo
--}
--
--type gcePdVolume struct {
--	volumeName string
--}
--
--var _ testsuites.TestDriver = &gcePdDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &gcePdDriver{}
--var _ testsuites.InlineVolumeTestDriver = &gcePdDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &gcePdDriver{}
--var _ testsuites.DynamicPVTestDriver = &gcePdDriver{}
--
--// InitGcePdDriver returns gcePdDriver that implements TestDriver interface
--func InitGcePdDriver() testsuites.TestDriver {
--	// In current test structure, it first initialize the driver and then set up
--	// the new framework, so we cannot get the correct OS here. So here set to
--	// support all fs types including both linux and windows. We have code to check Node OS later
--	// during test.
--	supportedTypes := sets.NewString(
--		"", // Default fsType
--		"ext2",
--		"ext3",
--		"ext4",
--		"xfs",
--		"ntfs",
--	)
--	return &gcePdDriver{
--		driverInfo: testsuites.DriverInfo{
--			Name:             "gcepd",
--			InTreePluginName: "kubernetes.io/gce-pd",
--			MaxFileSize:      testpatterns.FileSizeMedium,
--			SupportedSizeRange: e2evolume.SizeRange{
--				Min: "5Gi",
--			},
--			SupportedFsType:      supportedTypes,
--			SupportedMountOption: sets.NewString("debug", "nouid32"),
--			TopologyKeys:         []string{v1.LabelZoneFailureDomain},
--			Capabilities: map[testsuites.Capability]bool{
--				testsuites.CapPersistence:         true,
--				testsuites.CapFsGroup:             true,
--				testsuites.CapBlock:               true,
--				testsuites.CapExec:                true,
--				testsuites.CapMultiPODs:           true,
--				testsuites.CapControllerExpansion: true,
--				testsuites.CapNodeExpansion:       true,
--				// GCE supports volume limits, but the test creates large
--				// number of volumes and times out test suites.
--				testsuites.CapVolumeLimits: false,
--				testsuites.CapTopology:     true,
--			},
--		},
--	}
--}
--
--func (g *gcePdDriver) GetDriverInfo() *testsuites.DriverInfo {
--	return &g.driverInfo
--}
--
--func (g *gcePdDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
--	e2eskipper.SkipUnlessProviderIs("gce", "gke")
--	if pattern.FeatureTag == "[sig-windows]" {
--		e2eskipper.SkipUnlessNodeOSDistroIs("windows")
--	}
--}
--
--func (g *gcePdDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
--	gv, ok := e2evolume.(*gcePdVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
--	volSource := v1.VolumeSource{
--		GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
--			PDName:   gv.volumeName,
--			ReadOnly: readOnly,
--		},
--	}
--	if fsType != "" {
--		volSource.GCEPersistentDisk.FSType = fsType
--	}
--	return &volSource
--}
--
--func (g *gcePdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
--	gv, ok := e2evolume.(*gcePdVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
--	pvSource := v1.PersistentVolumeSource{
--		GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
--			PDName:   gv.volumeName,
--			ReadOnly: readOnly,
--		},
--	}
--	if fsType != "" {
--		pvSource.GCEPersistentDisk.FSType = fsType
--	}
--	return &pvSource, nil
--}
--
--func (g *gcePdDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
--	provisioner := "kubernetes.io/gce-pd"
--	parameters := map[string]string{}
--	if fsType != "" {
--		parameters["fsType"] = fsType
--	}
--	ns := config.Framework.Namespace.Name
--	suffix := fmt.Sprintf("%s-sc", g.driverInfo.Name)
--	delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
--
--	return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
--}
--
--func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
--	config := &testsuites.PerTestConfig{
--		Driver:    g,
--		Prefix:    "gcepd",
--		Framework: f,
--	}
--
--	if framework.NodeOSDistroIs("windows") {
--		config.ClientNodeSelection = e2epod.NodeSelection{
--			Selector: map[string]string{
--				"kubernetes.io/os": "windows",
--			},
--		}
--	}
--	return config, func() {}
--
--}
--
--func (g *gcePdDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
--	zone := getInlineVolumeZone(config.Framework)
--	if volType == testpatterns.InlineVolume {
--		// PD will be created in framework.TestContext.CloudConfig.Zone zone,
--		// so pods should be also scheduled there.
--		config.ClientNodeSelection = e2epod.NodeSelection{
--			Selector: map[string]string{
--				v1.LabelZoneFailureDomain: zone,
--			},
--		}
--	}
--	ginkgo.By("creating a test gce pd volume")
--	vname, err := e2epv.CreatePDWithRetryAndZone(zone)
--	framework.ExpectNoError(err)
--	return &gcePdVolume{
--		volumeName: vname,
--	}
--}
--
--func (v *gcePdVolume) DeleteVolume() {
--	e2epv.DeletePDWithRetry(v.volumeName)
--}
--
--// vSphere
--type vSphereDriver struct {
--	driverInfo testsuites.DriverInfo
--}
--
--type vSphereVolume struct {
--	volumePath string
--	nodeInfo   *vspheretest.NodeInfo
--}
--
--var _ testsuites.TestDriver = &vSphereDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &vSphereDriver{}
--var _ testsuites.InlineVolumeTestDriver = &vSphereDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &vSphereDriver{}
--var _ testsuites.DynamicPVTestDriver = &vSphereDriver{}
--
--// InitVSphereDriver returns vSphereDriver that implements TestDriver interface
--func InitVSphereDriver() testsuites.TestDriver {
--	return &vSphereDriver{
--		driverInfo: testsuites.DriverInfo{
--			Name:             "vsphere",
--			InTreePluginName: "kubernetes.io/vsphere-volume",
--			MaxFileSize:      testpatterns.FileSizeMedium,
--			SupportedSizeRange: e2evolume.SizeRange{
--				Min: "5Gi",
--			},
--			SupportedFsType: sets.NewString(
--				"", // Default fsType
--				"ext4",
--			),
--			TopologyKeys: []string{v1.LabelZoneFailureDomain},
--			Capabilities: map[testsuites.Capability]bool{
--				testsuites.CapPersistence: true,
--				testsuites.CapFsGroup:     true,
--				testsuites.CapExec:        true,
--				testsuites.CapMultiPODs:   true,
--				testsuites.CapTopology:    true,
--			},
--		},
--	}
--}
--func (v *vSphereDriver) GetDriverInfo() *testsuites.DriverInfo {
--	return &v.driverInfo
--}
--
--func (v *vSphereDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
--	e2eskipper.SkipUnlessProviderIs("vsphere")
--}
--
--func (v *vSphereDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
--	vsv, ok := e2evolume.(*vSphereVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
--
--	// vSphere driver doesn't seem to support readOnly volume
--	// TODO: check if it is correct
--	if readOnly {
--		return nil
--	}
--	volSource := v1.VolumeSource{
--		VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
--			VolumePath: vsv.volumePath,
--		},
--	}
--	if fsType != "" {
--		volSource.VsphereVolume.FSType = fsType
--	}
--	return &volSource
--}
--
--func (v *vSphereDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
--	vsv, ok := e2evolume.(*vSphereVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
--
--	// vSphere driver doesn't seem to support readOnly volume
--	// TODO: check if it is correct
--	if readOnly {
--		return nil, nil
--	}
--	pvSource := v1.PersistentVolumeSource{
--		VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
--			VolumePath: vsv.volumePath,
--		},
--	}
--	if fsType != "" {
--		pvSource.VsphereVolume.FSType = fsType
--	}
--	return &pvSource, nil
--}
--
--func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
--	provisioner := "kubernetes.io/vsphere-volume"
--	parameters := map[string]string{}
--	if fsType != "" {
--		parameters["fsType"] = fsType
--	}
--	ns := config.Framework.Namespace.Name
--	suffix := fmt.Sprintf("%s-sc", v.driverInfo.Name)
--
--	return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
--}
--
--func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
--	return &testsuites.PerTestConfig{
--		Driver:    v,
--		Prefix:    "vsphere",
--		Framework: f,
--	}, func() {}
--}
--
--func (v *vSphereDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
--	f := config.Framework
--	vspheretest.Bootstrap(f)
--	nodeInfo := vspheretest.GetReadySchedulableRandomNodeInfo()
--	volumePath, err := nodeInfo.VSphere.CreateVolume(&vspheretest.VolumeOptions{}, nodeInfo.DataCenterRef)
--	framework.ExpectNoError(err)
--	return &vSphereVolume{
--		volumePath: volumePath,
--		nodeInfo:   nodeInfo,
--	}
--}
--
--func (v *vSphereVolume) DeleteVolume() {
--	v.nodeInfo.VSphere.DeleteVolume(v.volumePath, v.nodeInfo.DataCenterRef)
--}
--
--// Azure Disk
--type azureDiskDriver struct {
--	driverInfo testsuites.DriverInfo
--}
--
--type azureDiskVolume struct {
--	volumeName string
--}
--
--var _ testsuites.TestDriver = &azureDiskDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &azureDiskDriver{}
--var _ testsuites.InlineVolumeTestDriver = &azureDiskDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &azureDiskDriver{}
--var _ testsuites.DynamicPVTestDriver = &azureDiskDriver{}
--
--// InitAzureDiskDriver returns azureDiskDriver that implements TestDriver interface
--func InitAzureDiskDriver() testsuites.TestDriver {
--	return &azureDiskDriver{
--		driverInfo: testsuites.DriverInfo{
--			Name:             "azure-disk",
--			InTreePluginName: "kubernetes.io/azure-disk",
--			MaxFileSize:      testpatterns.FileSizeMedium,
--			SupportedSizeRange: e2evolume.SizeRange{
--				Min: "5Gi",
--			},
--			SupportedFsType: sets.NewString(
--				"", // Default fsType
--				"ext3",
--				"ext4",
--				"xfs",
--			),
--			TopologyKeys: []string{v1.LabelZoneFailureDomain},
--			Capabilities: map[testsuites.Capability]bool{
--				testsuites.CapPersistence: true,
--				testsuites.CapFsGroup:     true,
--				testsuites.CapBlock:       true,
--				testsuites.CapExec:        true,
--				testsuites.CapMultiPODs:   true,
--				// Azure supports volume limits, but the test creates large
--				// number of volumes and times out test suites.
--				testsuites.CapVolumeLimits: false,
--				testsuites.CapTopology:     true,
--			},
--		},
--	}
--}
--
--func (a *azureDiskDriver) GetDriverInfo() *testsuites.DriverInfo {
--	return &a.driverInfo
--}
--
--func (a *azureDiskDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
--	e2eskipper.SkipUnlessProviderIs("azure")
--}
--
--func (a *azureDiskDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
--	av, ok := e2evolume.(*azureDiskVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
--	diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
--
--	kind := v1.AzureManagedDisk
--	volSource := v1.VolumeSource{
--		AzureDisk: &v1.AzureDiskVolumeSource{
--			DiskName:    diskName,
--			DataDiskURI: av.volumeName,
--			Kind:        &kind,
--			ReadOnly:    &readOnly,
--		},
--	}
--	if fsType != "" {
--		volSource.AzureDisk.FSType = &fsType
--	}
--	return &volSource
--}
--
--func (a *azureDiskDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
--	av, ok := e2evolume.(*azureDiskVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
--
--	diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
--
--	kind := v1.AzureManagedDisk
--	pvSource := v1.PersistentVolumeSource{
--		AzureDisk: &v1.AzureDiskVolumeSource{
--			DiskName:    diskName,
--			DataDiskURI: av.volumeName,
--			Kind:        &kind,
--			ReadOnly:    &readOnly,
--		},
--	}
--	if fsType != "" {
--		pvSource.AzureDisk.FSType = &fsType
--	}
--	return &pvSource, nil
--}
--
--func (a *azureDiskDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
--	provisioner := "kubernetes.io/azure-disk"
--	parameters := map[string]string{}
--	if fsType != "" {
--		parameters["fsType"] = fsType
--	}
--	ns := config.Framework.Namespace.Name
--	suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
--	delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
--
--	return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
--}
--
--func (a *azureDiskDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
--	return &testsuites.PerTestConfig{
--		Driver:    a,
--		Prefix:    "azure",
--		Framework: f,
--	}, func() {}
--}
--
--func (a *azureDiskDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
--	ginkgo.By("creating a test azure disk volume")
--	zone := getInlineVolumeZone(config.Framework)
--	if volType == testpatterns.InlineVolume {
--		// PD will be created in framework.TestContext.CloudConfig.Zone zone,
--		// so pods should be also scheduled there.
--		config.ClientNodeSelection = e2epod.NodeSelection{
--			Selector: map[string]string{
--				v1.LabelZoneFailureDomain: zone,
--			},
--		}
--	}
--	volumeName, err := e2epv.CreatePDWithRetryAndZone(zone)
--	framework.ExpectNoError(err)
--	return &azureDiskVolume{
--		volumeName: volumeName,
--	}
--}
--
--func (v *azureDiskVolume) DeleteVolume() {
--	e2epv.DeletePDWithRetry(v.volumeName)
--}
--
--// AWS
--type awsDriver struct {
--	driverInfo testsuites.DriverInfo
--}
--
--type awsVolume struct {
--	volumeName string
--}
--
--var _ testsuites.TestDriver = &awsDriver{}
--
--var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
--var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
--var _ testsuites.DynamicPVTestDriver = &awsDriver{}
--
--// InitAwsDriver returns awsDriver that implements TestDriver interface
--func InitAwsDriver() testsuites.TestDriver {
--	return &awsDriver{
--		driverInfo: testsuites.DriverInfo{
--			Name:             "aws",
--			InTreePluginName: "kubernetes.io/aws-ebs",
--			MaxFileSize:      testpatterns.FileSizeMedium,
--			SupportedSizeRange: e2evolume.SizeRange{
--				Min: "5Gi",
--			},
--			SupportedFsType: sets.NewString(
--				"", // Default fsType
--				"ext2",
--				"ext3",
--				"ext4",
--				"xfs",
--				"ntfs",
--			),
--			SupportedMountOption: sets.NewString("debug", "nouid32"),
--			TopologyKeys:         []string{v1.LabelZoneFailureDomain},
--			Capabilities: map[testsuites.Capability]bool{
--				testsuites.CapPersistence:         true,
--				testsuites.CapFsGroup:             true,
--				testsuites.CapBlock:               true,
--				testsuites.CapExec:                true,
--				testsuites.CapMultiPODs:           true,
--				testsuites.CapControllerExpansion: true,
--				testsuites.CapNodeExpansion:       true,
--				// AWS supports volume limits, but the test creates large
--				// number of volumes and times out test suites.
--				testsuites.CapVolumeLimits: false,
--				testsuites.CapTopology:     true,
--			},
--		},
--	}
--}
--
--func (a *awsDriver) GetDriverInfo() *testsuites.DriverInfo {
--	return &a.driverInfo
--}
--
--func (a *awsDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
--	e2eskipper.SkipUnlessProviderIs("aws")
--}
--
--func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
--	av, ok := e2evolume.(*awsVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
--	volSource := v1.VolumeSource{
--		AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
--			VolumeID: av.volumeName,
--			ReadOnly: readOnly,
--		},
--	}
--	if fsType != "" {
--		volSource.AWSElasticBlockStore.FSType = fsType
--	}
--	return &volSource
--}
--
--func (a *awsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
--	av, ok := e2evolume.(*awsVolume)
--	framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
--	pvSource := v1.PersistentVolumeSource{
--		AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
--			VolumeID: av.volumeName,
--			ReadOnly: readOnly,
--		},
--	}
--	if fsType != "" {
--		pvSource.AWSElasticBlockStore.FSType = fsType
--	}
--	return &pvSource, nil
--}
--
--func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
--	provisioner := "kubernetes.io/aws-ebs"
--	parameters := map[string]string{}
--	if fsType != "" {
--		parameters["fsType"] = fsType
--	}
--	ns := config.Framework.Namespace.Name
--	suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
--	delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
--
--	return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
--}
--
--func (a *awsDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
--	config := &testsuites.PerTestConfig{
--		Driver:    a,
--		Prefix:    "aws",
--		Framework: f,
--	}
--
--	if framework.NodeOSDistroIs("windows") {
--		config.ClientNodeSelection = e2epod.NodeSelection{
--			Selector: map[string]string{
--				"kubernetes.io/os": "windows",
--			},
--		}
--	}
--	return config, func() {}
--}
--
--func (a *awsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
--	zone := getInlineVolumeZone(config.Framework)
--	if volType == testpatterns.InlineVolume {
--		// PD will be created in framework.TestContext.CloudConfig.Zone zone,
--		// so pods should be also scheduled there.
--		config.ClientNodeSelection = e2epod.NodeSelection{
--			Selector: map[string]string{
--				v1.LabelZoneFailureDomain: zone,
--			},
--		}
--	}
--	ginkgo.By("creating a test aws volume")
--	vname, err := e2epv.CreatePDWithRetryAndZone(zone)
--	framework.ExpectNoError(err)
--	return &awsVolume{
--		volumeName: vname,
--	}
--}
--
--func (v *awsVolume) DeleteVolume() {
--	e2epv.DeletePDWithRetry(v.volumeName)
--}
--
- // local
- type localDriver struct {
- 	driverInfo testsuites.DriverInfo
-diff --git a/test/e2e/storage/drivers/in_tree_providers.go b/test/e2e/storage/drivers/in_tree_providers.go
-new file mode 100644
-index 00000000000..c7f5dd3052e
---- /dev/null
-+++ b/test/e2e/storage/drivers/in_tree_providers.go
-@@ -0,0 +1,751 @@
-+// +build !providerless
-+
-+package drivers
-+
-+import (
-+	"fmt"
-+	"os/exec"
-+	"strings"
-+	"time"
-+
-+	"github.com/onsi/ginkgo"
-+	v1 "k8s.io/api/core/v1"
-+	storagev1 "k8s.io/api/storage/v1"
-+	"k8s.io/apimachinery/pkg/util/sets"
-+	"k8s.io/kubernetes/test/e2e/framework"
-+	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-+	e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
-+	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-+	e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
-+	"k8s.io/kubernetes/test/e2e/storage/testpatterns"
-+	"k8s.io/kubernetes/test/e2e/storage/testsuites"
-+	vspheretest "k8s.io/kubernetes/test/e2e/storage/vsphere"
-+)
-+
-+// Cinder
-+// This driver assumes that OpenStack client tools are installed
-+// (/usr/bin/nova, /usr/bin/cinder and /usr/bin/keystone)
-+// and that the usual OpenStack authentication env. variables are set
-+// (OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME at least).
-+type cinderDriver struct {
-+	driverInfo testsuites.DriverInfo
-+}
-+
-+type cinderVolume struct {
-+	volumeName string
-+	volumeID   string
-+}
-+
-+var _ testsuites.TestDriver = &cinderDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &cinderDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &cinderDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &cinderDriver{}
-+var _ testsuites.DynamicPVTestDriver = &cinderDriver{}
-+
-+// InitCinderDriver returns cinderDriver that implements TestDriver interface
-+func InitCinderDriver() testsuites.TestDriver {
-+	return &cinderDriver{
-+		driverInfo: testsuites.DriverInfo{
-+			Name:             "cinder",
-+			InTreePluginName: "kubernetes.io/cinder",
-+			MaxFileSize:      testpatterns.FileSizeMedium,
-+			SupportedSizeRange: e2evolume.SizeRange{
-+				Min: "5Gi",
-+			},
-+			SupportedFsType: sets.NewString(
-+				"", // Default fsType
-+				"ext3",
-+			),
-+			TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+			Capabilities: map[testsuites.Capability]bool{
-+				testsuites.CapPersistence: true,
-+				testsuites.CapFsGroup:     true,
-+				testsuites.CapExec:        true,
-+				testsuites.CapBlock:       true,
-+				// Cinder supports volume limits, but the test creates large
-+				// number of volumes and times out test suites.
-+				testsuites.CapVolumeLimits: false,
-+				testsuites.CapTopology:     true,
-+			},
-+		},
-+	}
-+}
-+
-+func (c *cinderDriver) GetDriverInfo() *testsuites.DriverInfo {
-+	return &c.driverInfo
-+}
-+
-+func (c *cinderDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+	e2eskipper.SkipUnlessProviderIs("openstack")
-+}
-+
-+func (c *cinderDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+	cv, ok := e2evolume.(*cinderVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
-+
-+	volSource := v1.VolumeSource{
-+		Cinder: &v1.CinderVolumeSource{
-+			VolumeID: cv.volumeID,
-+			ReadOnly: readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		volSource.Cinder.FSType = fsType
-+	}
-+	return &volSource
-+}
-+
-+func (c *cinderDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+	cv, ok := e2evolume.(*cinderVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
-+
-+	pvSource := v1.PersistentVolumeSource{
-+		Cinder: &v1.CinderPersistentVolumeSource{
-+			VolumeID: cv.volumeID,
-+			ReadOnly: readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		pvSource.Cinder.FSType = fsType
-+	}
-+	return &pvSource, nil
-+}
-+
-+func (c *cinderDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+	provisioner := "kubernetes.io/cinder"
-+	parameters := map[string]string{}
-+	if fsType != "" {
-+		parameters["fsType"] = fsType
-+	}
-+	ns := config.Framework.Namespace.Name
-+	suffix := fmt.Sprintf("%s-sc", c.driverInfo.Name)
-+
-+	return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
-+}
-+
-+func (c *cinderDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+	return &testsuites.PerTestConfig{
-+		Driver:    c,
-+		Prefix:    "cinder",
-+		Framework: f,
-+	}, func() {}
-+}
-+
-+func (c *cinderDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+	f := config.Framework
-+	ns := f.Namespace
-+
-+	// We assume that namespace.Name is a random string
-+	volumeName := ns.Name
-+	ginkgo.By("creating a test Cinder volume")
-+	output, err := exec.Command("cinder", "create", "--display-name="+volumeName, "1").CombinedOutput()
-+	outputString := string(output[:])
-+	framework.Logf("cinder output:\n%s", outputString)
-+	framework.ExpectNoError(err)
-+
-+	// Parse 'id'' from stdout. Expected format:
-+	// |     attachments     |                  []                  |
-+	// |  availability_zone  |                 nova                 |
-+	// ...
-+	// |          id         | 1d6ff08f-5d1c-41a4-ad72-4ef872cae685 |
-+	volumeID := ""
-+	for _, line := range strings.Split(outputString, "\n") {
-+		fields := strings.Fields(line)
-+		if len(fields) != 5 {
-+			continue
-+		}
-+		if fields[1] != "id" {
-+			continue
-+		}
-+		volumeID = fields[3]
-+		break
-+	}
-+	framework.Logf("Volume ID: %s", volumeID)
-+	framework.ExpectNotEqual(volumeID, "")
-+	return &cinderVolume{
-+		volumeName: volumeName,
-+		volumeID:   volumeID,
-+	}
-+}
-+
-+func (v *cinderVolume) DeleteVolume() {
-+	name := v.volumeName
-+
-+	// Try to delete the volume for several seconds - it takes
-+	// a while for the plugin to detach it.
-+	var output []byte
-+	var err error
-+	timeout := time.Second * 120
-+
-+	framework.Logf("Waiting up to %v for removal of cinder volume %s", timeout, name)
-+	for start := time.Now(); time.Since(start) < timeout; time.Sleep(5 * time.Second) {
-+		output, err = exec.Command("cinder", "delete", name).CombinedOutput()
-+		if err == nil {
-+			framework.Logf("Cinder volume %s deleted", name)
-+			return
-+		}
-+		framework.Logf("Failed to delete volume %s: %v", name, err)
-+	}
-+	framework.Logf("Giving up deleting volume %s: %v\n%s", name, err, string(output[:]))
-+}
-+
-+// GCE
-+type gcePdDriver struct {
-+	driverInfo testsuites.DriverInfo
-+}
-+
-+type gcePdVolume struct {
-+	volumeName string
-+}
-+
-+var _ testsuites.TestDriver = &gcePdDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &gcePdDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &gcePdDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &gcePdDriver{}
-+var _ testsuites.DynamicPVTestDriver = &gcePdDriver{}
-+
-+// InitGcePdDriver returns gcePdDriver that implements TestDriver interface
-+func InitGcePdDriver() testsuites.TestDriver {
-+	// In current test structure, it first initialize the driver and then set up
-+	// the new framework, so we cannot get the correct OS here. So here set to
-+	// support all fs types including both linux and windows. We have code to check Node OS later
-+	// during test.
-+	supportedTypes := sets.NewString(
-+		"", // Default fsType
-+		"ext2",
-+		"ext3",
-+		"ext4",
-+		"xfs",
-+		"ntfs",
-+	)
-+	return &gcePdDriver{
-+		driverInfo: testsuites.DriverInfo{
-+			Name:             "gcepd",
-+			InTreePluginName: "kubernetes.io/gce-pd",
-+			MaxFileSize:      testpatterns.FileSizeMedium,
-+			SupportedSizeRange: e2evolume.SizeRange{
-+				Min: "5Gi",
-+			},
-+			SupportedFsType:      supportedTypes,
-+			SupportedMountOption: sets.NewString("debug", "nouid32"),
-+			TopologyKeys:         []string{v1.LabelZoneFailureDomain},
-+			Capabilities: map[testsuites.Capability]bool{
-+				testsuites.CapPersistence:         true,
-+				testsuites.CapFsGroup:             true,
-+				testsuites.CapBlock:               true,
-+				testsuites.CapExec:                true,
-+				testsuites.CapMultiPODs:           true,
-+				testsuites.CapControllerExpansion: true,
-+				testsuites.CapNodeExpansion:       true,
-+				// GCE supports volume limits, but the test creates large
-+				// number of volumes and times out test suites.
-+				testsuites.CapVolumeLimits: false,
-+				testsuites.CapTopology:     true,
-+			},
-+		},
-+	}
-+}
-+
-+func (g *gcePdDriver) GetDriverInfo() *testsuites.DriverInfo {
-+	return &g.driverInfo
-+}
-+
-+func (g *gcePdDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+	e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+	if pattern.FeatureTag == "[sig-windows]" {
-+		e2eskipper.SkipUnlessNodeOSDistroIs("windows")
-+	}
-+}
-+
-+func (g *gcePdDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+	gv, ok := e2evolume.(*gcePdVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
-+	volSource := v1.VolumeSource{
-+		GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-+			PDName:   gv.volumeName,
-+			ReadOnly: readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		volSource.GCEPersistentDisk.FSType = fsType
-+	}
-+	return &volSource
-+}
-+
-+func (g *gcePdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+	gv, ok := e2evolume.(*gcePdVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
-+	pvSource := v1.PersistentVolumeSource{
-+		GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-+			PDName:   gv.volumeName,
-+			ReadOnly: readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		pvSource.GCEPersistentDisk.FSType = fsType
-+	}
-+	return &pvSource, nil
-+}
-+
-+func (g *gcePdDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+	provisioner := "kubernetes.io/gce-pd"
-+	parameters := map[string]string{}
-+	if fsType != "" {
-+		parameters["fsType"] = fsType
-+	}
-+	ns := config.Framework.Namespace.Name
-+	suffix := fmt.Sprintf("%s-sc", g.driverInfo.Name)
-+	delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
-+
-+	return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
-+}
-+
-+func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+	config := &testsuites.PerTestConfig{
-+		Driver:    g,
-+		Prefix:    "gcepd",
-+		Framework: f,
-+	}
-+
-+	if framework.NodeOSDistroIs("windows") {
-+		config.ClientNodeSelection = e2epod.NodeSelection{
-+			Selector: map[string]string{
-+				"kubernetes.io/os": "windows",
-+			},
-+		}
-+	}
-+	return config, func() {}
-+
-+}
-+
-+func (g *gcePdDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+	zone := getInlineVolumeZone(config.Framework)
-+	if volType == testpatterns.InlineVolume {
-+		// PD will be created in framework.TestContext.CloudConfig.Zone zone,
-+		// so pods should be also scheduled there.
-+		config.ClientNodeSelection = e2epod.NodeSelection{
-+			Selector: map[string]string{
-+				v1.LabelZoneFailureDomain: zone,
-+			},
-+		}
-+	}
-+	ginkgo.By("creating a test gce pd volume")
-+	vname, err := e2epv.CreatePDWithRetryAndZone(zone)
-+	framework.ExpectNoError(err)
-+	return &gcePdVolume{
-+		volumeName: vname,
-+	}
-+}
-+
-+func (v *gcePdVolume) DeleteVolume() {
-+	e2epv.DeletePDWithRetry(v.volumeName)
-+}
-+
-+// vSphere
-+type vSphereDriver struct {
-+	driverInfo testsuites.DriverInfo
-+}
-+
-+type vSphereVolume struct {
-+	volumePath string
-+	nodeInfo   *vspheretest.NodeInfo
-+}
-+
-+var _ testsuites.TestDriver = &vSphereDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &vSphereDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &vSphereDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &vSphereDriver{}
-+var _ testsuites.DynamicPVTestDriver = &vSphereDriver{}
-+
-+// InitVSphereDriver returns vSphereDriver that implements TestDriver interface
-+func InitVSphereDriver() testsuites.TestDriver {
-+	return &vSphereDriver{
-+		driverInfo: testsuites.DriverInfo{
-+			Name:             "vsphere",
-+			InTreePluginName: "kubernetes.io/vsphere-volume",
-+			MaxFileSize:      testpatterns.FileSizeMedium,
-+			SupportedSizeRange: e2evolume.SizeRange{
-+				Min: "5Gi",
-+			},
-+			SupportedFsType: sets.NewString(
-+				"", // Default fsType
-+				"ext4",
-+			),
-+			TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+			Capabilities: map[testsuites.Capability]bool{
-+				testsuites.CapPersistence: true,
-+				testsuites.CapFsGroup:     true,
-+				testsuites.CapExec:        true,
-+				testsuites.CapMultiPODs:   true,
-+				testsuites.CapTopology:    true,
-+			},
-+		},
-+	}
-+}
-+func (v *vSphereDriver) GetDriverInfo() *testsuites.DriverInfo {
-+	return &v.driverInfo
-+}
-+
-+func (v *vSphereDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+	e2eskipper.SkipUnlessProviderIs("vsphere")
-+}
-+
-+func (v *vSphereDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+	vsv, ok := e2evolume.(*vSphereVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
-+
-+	// vSphere driver doesn't seem to support readOnly volume
-+	// TODO: check if it is correct
-+	if readOnly {
-+		return nil
-+	}
-+	volSource := v1.VolumeSource{
-+		VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
-+			VolumePath: vsv.volumePath,
-+		},
-+	}
-+	if fsType != "" {
-+		volSource.VsphereVolume.FSType = fsType
-+	}
-+	return &volSource
-+}
-+
-+func (v *vSphereDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+	vsv, ok := e2evolume.(*vSphereVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
-+
-+	// vSphere driver doesn't seem to support readOnly volume
-+	// TODO: check if it is correct
-+	if readOnly {
-+		return nil, nil
-+	}
-+	pvSource := v1.PersistentVolumeSource{
-+		VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
-+			VolumePath: vsv.volumePath,
-+		},
-+	}
-+	if fsType != "" {
-+		pvSource.VsphereVolume.FSType = fsType
-+	}
-+	return &pvSource, nil
-+}
-+
-+func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+	provisioner := "kubernetes.io/vsphere-volume"
-+	parameters := map[string]string{}
-+	if fsType != "" {
-+		parameters["fsType"] = fsType
-+	}
-+	ns := config.Framework.Namespace.Name
-+	suffix := fmt.Sprintf("%s-sc", v.driverInfo.Name)
-+
-+	return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
-+}
-+
-+func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+	return &testsuites.PerTestConfig{
-+		Driver:    v,
-+		Prefix:    "vsphere",
-+		Framework: f,
-+	}, func() {}
-+}
-+
-+func (v *vSphereDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+	f := config.Framework
-+	vspheretest.Bootstrap(f)
-+	nodeInfo := vspheretest.GetReadySchedulableRandomNodeInfo()
-+	volumePath, err := nodeInfo.VSphere.CreateVolume(&vspheretest.VolumeOptions{}, nodeInfo.DataCenterRef)
-+	framework.ExpectNoError(err)
-+	return &vSphereVolume{
-+		volumePath: volumePath,
-+		nodeInfo:   nodeInfo,
-+	}
-+}
-+
-+func (v *vSphereVolume) DeleteVolume() {
-+	v.nodeInfo.VSphere.DeleteVolume(v.volumePath, v.nodeInfo.DataCenterRef)
-+}
-+
-+// Azure Disk
-+type azureDiskDriver struct {
-+	driverInfo testsuites.DriverInfo
-+}
-+
-+type azureDiskVolume struct {
-+	volumeName string
-+}
-+
-+var _ testsuites.TestDriver = &azureDiskDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &azureDiskDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &azureDiskDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &azureDiskDriver{}
-+var _ testsuites.DynamicPVTestDriver = &azureDiskDriver{}
-+
-+// InitAzureDiskDriver returns azureDiskDriver that implements TestDriver interface
-+func InitAzureDiskDriver() testsuites.TestDriver {
-+	return &azureDiskDriver{
-+		driverInfo: testsuites.DriverInfo{
-+			Name:             "azure-disk",
-+			InTreePluginName: "kubernetes.io/azure-disk",
-+			MaxFileSize:      testpatterns.FileSizeMedium,
-+			SupportedSizeRange: e2evolume.SizeRange{
-+				Min: "5Gi",
-+			},
-+			SupportedFsType: sets.NewString(
-+				"", // Default fsType
-+				"ext3",
-+				"ext4",
-+				"xfs",
-+			),
-+			TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+			Capabilities: map[testsuites.Capability]bool{
-+				testsuites.CapPersistence: true,
-+				testsuites.CapFsGroup:     true,
-+				testsuites.CapBlock:       true,
-+				testsuites.CapExec:        true,
-+				testsuites.CapMultiPODs:   true,
-+				// Azure supports volume limits, but the test creates large
-+				// number of volumes and times out test suites.
-+				testsuites.CapVolumeLimits: false,
-+				testsuites.CapTopology:     true,
-+			},
-+		},
-+	}
-+}
-+
-+func (a *azureDiskDriver) GetDriverInfo() *testsuites.DriverInfo {
-+	return &a.driverInfo
-+}
-+
-+func (a *azureDiskDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+	e2eskipper.SkipUnlessProviderIs("azure")
-+}
-+
-+func (a *azureDiskDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+	av, ok := e2evolume.(*azureDiskVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
-+	diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
-+
-+	kind := v1.AzureManagedDisk
-+	volSource := v1.VolumeSource{
-+		AzureDisk: &v1.AzureDiskVolumeSource{
-+			DiskName:    diskName,
-+			DataDiskURI: av.volumeName,
-+			Kind:        &kind,
-+			ReadOnly:    &readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		volSource.AzureDisk.FSType = &fsType
-+	}
-+	return &volSource
-+}
-+
-+func (a *azureDiskDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+	av, ok := e2evolume.(*azureDiskVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
-+
-+	diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
-+
-+	kind := v1.AzureManagedDisk
-+	pvSource := v1.PersistentVolumeSource{
-+		AzureDisk: &v1.AzureDiskVolumeSource{
-+			DiskName:    diskName,
-+			DataDiskURI: av.volumeName,
-+			Kind:        &kind,
-+			ReadOnly:    &readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		pvSource.AzureDisk.FSType = &fsType
-+	}
-+	return &pvSource, nil
-+}
-+
-+func (a *azureDiskDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+	provisioner := "kubernetes.io/azure-disk"
-+	parameters := map[string]string{}
-+	if fsType != "" {
-+		parameters["fsType"] = fsType
-+	}
-+	ns := config.Framework.Namespace.Name
-+	suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
-+	delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
-+
-+	return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
-+}
-+
-+func (a *azureDiskDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+	return &testsuites.PerTestConfig{
-+		Driver:    a,
-+		Prefix:    "azure",
-+		Framework: f,
-+	}, func() {}
-+}
-+
-+func (a *azureDiskDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+	ginkgo.By("creating a test azure disk volume")
-+	zone := getInlineVolumeZone(config.Framework)
-+	if volType == testpatterns.InlineVolume {
-+		// PD will be created in framework.TestContext.CloudConfig.Zone zone,
-+		// so pods should be also scheduled there.
-+		config.ClientNodeSelection = e2epod.NodeSelection{
-+			Selector: map[string]string{
-+				v1.LabelZoneFailureDomain: zone,
-+			},
-+		}
-+	}
-+	volumeName, err := e2epv.CreatePDWithRetryAndZone(zone)
-+	framework.ExpectNoError(err)
-+	return &azureDiskVolume{
-+		volumeName: volumeName,
-+	}
-+}
-+
-+func (v *azureDiskVolume) DeleteVolume() {
-+	e2epv.DeletePDWithRetry(v.volumeName)
-+}
-+
-+// AWS
-+type awsDriver struct {
-+	driverInfo testsuites.DriverInfo
-+}
-+
-+type awsVolume struct {
-+	volumeName string
-+}
-+
-+var _ testsuites.TestDriver = &awsDriver{}
-+
-+var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
-+var _ testsuites.DynamicPVTestDriver = &awsDriver{}
-+
-+// InitAwsDriver returns awsDriver that implements TestDriver interface
-+func InitAwsDriver() testsuites.TestDriver {
-+	return &awsDriver{
-+		driverInfo: testsuites.DriverInfo{
-+			Name:             "aws",
-+			InTreePluginName: "kubernetes.io/aws-ebs",
-+			MaxFileSize:      testpatterns.FileSizeMedium,
-+			SupportedSizeRange: e2evolume.SizeRange{
-+				Min: "5Gi",
-+			},
-+			SupportedFsType: sets.NewString(
-+				"", // Default fsType
-+				"ext2",
-+				"ext3",
-+				"ext4",
-+				"xfs",
-+				"ntfs",
-+			),
-+			SupportedMountOption: sets.NewString("debug", "nouid32"),
-+			TopologyKeys:         []string{v1.LabelZoneFailureDomain},
-+			Capabilities: map[testsuites.Capability]bool{
-+				testsuites.CapPersistence:         true,
-+				testsuites.CapFsGroup:             true,
-+				testsuites.CapBlock:               true,
-+				testsuites.CapExec:                true,
-+				testsuites.CapMultiPODs:           true,
-+				testsuites.CapControllerExpansion: true,
-+				testsuites.CapNodeExpansion:       true,
-+				// AWS supports volume limits, but the test creates large
-+				// number of volumes and times out test suites.
-+				testsuites.CapVolumeLimits: false,
-+				testsuites.CapTopology:     true,
-+			},
-+		},
-+	}
-+}
-+
-+func (a *awsDriver) GetDriverInfo() *testsuites.DriverInfo {
-+	return &a.driverInfo
-+}
-+
-+func (a *awsDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+	e2eskipper.SkipUnlessProviderIs("aws")
-+}
-+
-+func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+	av, ok := e2evolume.(*awsVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
-+	volSource := v1.VolumeSource{
-+		AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-+			VolumeID: av.volumeName,
-+			ReadOnly: readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		volSource.AWSElasticBlockStore.FSType = fsType
-+	}
-+	return &volSource
-+}
-+
-+func (a *awsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+	av, ok := e2evolume.(*awsVolume)
-+	framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
-+	pvSource := v1.PersistentVolumeSource{
-+		AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-+			VolumeID: av.volumeName,
-+			ReadOnly: readOnly,
-+		},
-+	}
-+	if fsType != "" {
-+		pvSource.AWSElasticBlockStore.FSType = fsType
-+	}
-+	return &pvSource, nil
-+}
-+
-+func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+	provisioner := "kubernetes.io/aws-ebs"
-+	parameters := map[string]string{}
-+	if fsType != "" {
-+		parameters["fsType"] = fsType
-+	}
-+	ns := config.Framework.Namespace.Name
-+	suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
-+	delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
-+
-+	return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
-+}
-+
-+func (a *awsDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+	config := &testsuites.PerTestConfig{
-+		Driver:    a,
-+		Prefix:    "aws",
-+		Framework: f,
-+	}
-+
-+	if framework.NodeOSDistroIs("windows") {
-+		config.ClientNodeSelection = e2epod.NodeSelection{
-+			Selector: map[string]string{
-+				"kubernetes.io/os": "windows",
-+			},
-+		}
-+	}
-+	return config, func() {}
-+}
-+
-+func (a *awsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+	zone := getInlineVolumeZone(config.Framework)
-+	if volType == testpatterns.InlineVolume {
-+		// PD will be created in framework.TestContext.CloudConfig.Zone zone,
-+		// so pods should be also scheduled there.
-+		config.ClientNodeSelection = e2epod.NodeSelection{
-+			Selector: map[string]string{
-+				v1.LabelZoneFailureDomain: zone,
-+			},
-+		}
-+	}
-+	ginkgo.By("creating a test aws volume")
-+	vname, err := e2epv.CreatePDWithRetryAndZone(zone)
-+	framework.ExpectNoError(err)
-+	return &awsVolume{
-+		volumeName: vname,
-+	}
-+}
-+
-+func (v *awsVolume) DeleteVolume() {
-+	e2epv.DeletePDWithRetry(v.volumeName)
-+}
-diff --git a/test/e2e/storage/in_tree_volumes.go b/test/e2e/storage/in_tree_volumes.go
-index 19372062407..8322db743cd 100644
---- a/test/e2e/storage/in_tree_volumes.go
-+++ b/test/e2e/storage/in_tree_volumes.go
-@@ -33,11 +33,6 @@ var testDrivers = []func() testsuites.TestDriver{
- 	drivers.InitHostPathDriver,
- 	drivers.InitHostPathSymlinkDriver,
- 	drivers.InitEmptydirDriver,
--	drivers.InitCinderDriver,
--	drivers.InitGcePdDriver,
--	drivers.InitVSphereDriver,
--	drivers.InitAzureDiskDriver,
--	drivers.InitAwsDriver,
- 	drivers.InitLocalDriverWithVolumeType(utils.LocalVolumeDirectory),
- 	drivers.InitLocalDriverWithVolumeType(utils.LocalVolumeDirectoryLink),
- 	drivers.InitLocalDriverWithVolumeType(utils.LocalVolumeDirectoryBindMounted),
-diff --git a/test/e2e/storage/in_tree_volumes_providers.go b/test/e2e/storage/in_tree_volumes_providers.go
-new file mode 100644
-index 00000000000..d6a5dbca191
---- /dev/null
-+++ b/test/e2e/storage/in_tree_volumes_providers.go
-@@ -0,0 +1,46 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2020 The Kubernetes 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.
-+*/
-+
-+package storage
-+
-+import (
-+	"github.com/onsi/ginkgo"
-+	"k8s.io/kubernetes/test/e2e/storage/drivers"
-+	"k8s.io/kubernetes/test/e2e/storage/testsuites"
-+	"k8s.io/kubernetes/test/e2e/storage/utils"
-+)
-+
-+// List of testDrivers to be executed in below loop
-+var testDriversProviders = []func() testsuites.TestDriver{
-+	drivers.InitCinderDriver,
-+	drivers.InitGcePdDriver,
-+	drivers.InitVSphereDriver,
-+	drivers.InitAzureDiskDriver,
-+	drivers.InitAwsDriver,
-+}
-+
-+// This executes testSuites for in-tree volumes.
-+var _ = utils.SIGDescribe("In-tree Volumes for Cloud Providers", func() {
-+	for _, initDriver := range testDriversProviders {
-+		curDriver := initDriver()
-+
-+		ginkgo.Context(testsuites.GetDriverNameWithFeatureTags(curDriver), func() {
-+			testsuites.DefineTestSuite(curDriver, testsuites.BaseSuites)
-+		})
-+	}
-+})
-diff --git a/test/e2e/storage/nfs_persistent_volume-disruptive.go b/test/e2e/storage/nfs_persistent_volume-disruptive.go
-index 5afebb5e903..b197eee99a6 100644
---- a/test/e2e/storage/nfs_persistent_volume-disruptive.go
-+++ b/test/e2e/storage/nfs_persistent_volume-disruptive.go
-@@ -91,7 +91,7 @@ var _ = utils.SIGDescribe("NFSPersistentVolumes[Disruptive][Flaky]", func() {
- 
- 	ginkgo.BeforeEach(func() {
- 		// To protect the NFS volume pod from the kubelet restart, we isolate it on its own node.
--		e2eskipper.SkipUnlessNodeCountIsAtLeast(minNodes)
-+		e2eskipper.SkipUnlessNodeCountIsAtLeast(2)
- 		e2eskipper.SkipIfProviderIs("local")
- 
- 		c = f.ClientSet
-diff --git a/test/e2e/storage/pd.go b/test/e2e/storage/pd.go
-index f5b6060a834..addd304147c 100644
---- a/test/e2e/storage/pd.go
-+++ b/test/e2e/storage/pd.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2015 The Kubernetes Authors.
- 
-diff --git a/test/e2e/storage/persistent_volumes-gce.go b/test/e2e/storage/persistent_volumes-gce.go
-index b8bc887384e..f572754c5e8 100644
---- a/test/e2e/storage/persistent_volumes-gce.go
-+++ b/test/e2e/storage/persistent_volumes-gce.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
- 
-diff --git a/test/e2e/storage/regional_pd.go b/test/e2e/storage/regional_pd.go
-index 7763afaf6b1..a042dcc9d4a 100644
---- a/test/e2e/storage/regional_pd.go
-+++ b/test/e2e/storage/regional_pd.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2016 The Kubernetes Authors.
- 
-@@ -18,6 +20,7 @@ package storage
- 
- import (
- 	"context"
-+
- 	"github.com/onsi/ginkgo"
- 	"github.com/onsi/gomega"
- 
-diff --git a/test/e2e/storage/utils/BUILD b/test/e2e/storage/utils/BUILD
-index bdc78982dcb..c57ff325f76 100644
---- a/test/e2e/storage/utils/BUILD
-+++ b/test/e2e/storage/utils/BUILD
-@@ -7,7 +7,6 @@ go_library(
-     srcs = [
-         "create.go",
-         "deployment.go",
--        "ebs.go",
-         "framework.go",
-         "host_exec.go",
-         "local.go",
-@@ -37,8 +36,6 @@ go_library(
-         "//test/e2e/framework/ssh:go_default_library",
-         "//test/e2e/framework/testfiles:go_default_library",
-         "//test/utils/image:go_default_library",
--        "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
--        "//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
-         "//vendor/github.com/onsi/ginkgo:go_default_library",
-         "//vendor/github.com/onsi/gomega:go_default_library",
-         "//vendor/github.com/pkg/errors:go_default_library",
-diff --git a/test/e2e/storage/utils/ebs.go b/test/e2e/storage/utils/ebs.go
-index 39e223f36aa..55065ea07b7 100644
---- a/test/e2e/storage/utils/ebs.go
-+++ b/test/e2e/storage/utils/ebs.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2020 The Kubernetes Authors.
- 
-diff --git a/test/e2e/storage/volume_provisioning.go b/test/e2e/storage/volume_provisioning.go
-index a8b494eb3ac..c070a81283c 100644
---- a/test/e2e/storage/volume_provisioning.go
-+++ b/test/e2e/storage/volume_provisioning.go
-@@ -24,11 +24,6 @@ import (
- 	"time"
- 
- 	"github.com/onsi/ginkgo"
--	"github.com/onsi/gomega"
--
--	"github.com/aws/aws-sdk-go/aws"
--	"github.com/aws/aws-sdk-go/aws/session"
--	"github.com/aws/aws-sdk-go/service/ec2"
- 
- 	v1 "k8s.io/api/core/v1"
- 	rbacv1 "k8s.io/api/rbac/v1"
-@@ -37,9 +32,7 @@ import (
- 	apierrors "k8s.io/apimachinery/pkg/api/errors"
- 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- 	"k8s.io/apimachinery/pkg/runtime/schema"
--	"k8s.io/apimachinery/pkg/types"
- 	"k8s.io/apimachinery/pkg/util/rand"
--	"k8s.io/apimachinery/pkg/util/sets"
- 	"k8s.io/apimachinery/pkg/util/wait"
- 	"k8s.io/apiserver/pkg/authentication/serviceaccount"
- 	clientset "k8s.io/client-go/kubernetes"
-@@ -48,7 +41,6 @@ import (
- 	e2eauth "k8s.io/kubernetes/test/e2e/framework/auth"
- 	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
- 	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
--	"k8s.io/kubernetes/test/e2e/framework/providers/gce"
- 	e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
- 	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
- 	"k8s.io/kubernetes/test/e2e/storage/testsuites"
-@@ -61,80 +53,6 @@ const (
- 	externalPluginName = "example.com/nfs"
- )
- 
--// checkAWSEBS checks properties of an AWS EBS. Test framework does not
--// instantiate full AWS provider, therefore we need use ec2 API directly.
--func checkAWSEBS(volume *v1.PersistentVolume, volumeType string, encrypted bool) error {
--	diskName := volume.Spec.AWSElasticBlockStore.VolumeID
--
--	var client *ec2.EC2
--
--	tokens := strings.Split(diskName, "/")
--	volumeID := tokens[len(tokens)-1]
--
--	zone := framework.TestContext.CloudConfig.Zone
--
--	awsSession, err := session.NewSession()
--	if err != nil {
--		return fmt.Errorf("error creating session: %v", err)
--	}
--
--	if len(zone) > 0 {
--		region := zone[:len(zone)-1]
--		cfg := aws.Config{Region: &region}
--		framework.Logf("using region %s", region)
--		client = ec2.New(awsSession, &cfg)
--	} else {
--		framework.Logf("no region configured")
--		client = ec2.New(awsSession)
--	}
--
--	request := &ec2.DescribeVolumesInput{
--		VolumeIds: []*string{&volumeID},
--	}
--	info, err := client.DescribeVolumes(request)
--	if err != nil {
--		return fmt.Errorf("error querying ec2 for volume %q: %v", volumeID, err)
--	}
--	if len(info.Volumes) == 0 {
--		return fmt.Errorf("no volumes found for volume %q", volumeID)
--	}
--	if len(info.Volumes) > 1 {
--		return fmt.Errorf("multiple volumes found for volume %q", volumeID)
--	}
--
--	awsVolume := info.Volumes[0]
--	if awsVolume.VolumeType == nil {
--		return fmt.Errorf("expected volume type %q, got nil", volumeType)
--	}
--	if *awsVolume.VolumeType != volumeType {
--		return fmt.Errorf("expected volume type %q, got %q", volumeType, *awsVolume.VolumeType)
--	}
--	if encrypted && awsVolume.Encrypted == nil {
--		return fmt.Errorf("expected encrypted volume, got no encryption")
--	}
--	if encrypted && !*awsVolume.Encrypted {
--		return fmt.Errorf("expected encrypted volume, got %v", *awsVolume.Encrypted)
--	}
--	return nil
--}
--
--func checkGCEPD(volume *v1.PersistentVolume, volumeType string) error {
--	cloud, err := gce.GetGCECloud()
--	if err != nil {
--		return err
--	}
--	diskName := volume.Spec.GCEPersistentDisk.PDName
--	disk, err := cloud.GetDiskByNameUnknownZone(diskName)
--	if err != nil {
--		return err
--	}
--
--	if !strings.HasSuffix(disk.Type, volumeType) {
--		return fmt.Errorf("unexpected disk type %q, expected suffix %q", disk.Type, volumeType)
--	}
--	return nil
--}
--
- var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
- 	f := framework.NewDefaultFramework("volume-provisioning")
- 
-@@ -147,451 +65,6 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
- 		ns = f.Namespace.Name
- 	})
- 
--	ginkgo.Describe("DynamicProvisioner [Slow]", func() {
--		ginkgo.It("should provision storage with different parameters", func() {
--
--			// This test checks that dynamic provisioning can provision a volume
--			// that can be used to persist data among pods.
--			tests := []testsuites.StorageClassTest{
--				// GCE/GKE
--				{
--					Name:           "SSD PD on GCE/GKE",
--					CloudProviders: []string{"gce", "gke"},
--					Provisioner:    "kubernetes.io/gce-pd",
--					Parameters: map[string]string{
--						"type": "pd-ssd",
--						"zone": getRandomClusterZone(c),
--					},
--					ClaimSize:    "1.5Gi",
--					ExpectedSize: "2Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkGCEPD(volume, "pd-ssd")
--						framework.ExpectNoError(err, "checkGCEPD pd-ssd")
--					},
--				},
--				{
--					Name:           "HDD PD on GCE/GKE",
--					CloudProviders: []string{"gce", "gke"},
--					Provisioner:    "kubernetes.io/gce-pd",
--					Parameters: map[string]string{
--						"type": "pd-standard",
--					},
--					ClaimSize:    "1.5Gi",
--					ExpectedSize: "2Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkGCEPD(volume, "pd-standard")
--						framework.ExpectNoError(err, "checkGCEPD pd-standard")
--					},
--				},
--				// AWS
--				{
--					Name:           "gp2 EBS on AWS",
--					CloudProviders: []string{"aws"},
--					Provisioner:    "kubernetes.io/aws-ebs",
--					Parameters: map[string]string{
--						"type": "gp2",
--						"zone": getRandomClusterZone(c),
--					},
--					ClaimSize:    "1.5Gi",
--					ExpectedSize: "2Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkAWSEBS(volume, "gp2", false)
--						framework.ExpectNoError(err, "checkAWSEBS gp2")
--					},
--				},
--				{
--					Name:           "io1 EBS on AWS",
--					CloudProviders: []string{"aws"},
--					Provisioner:    "kubernetes.io/aws-ebs",
--					Parameters: map[string]string{
--						"type":      "io1",
--						"iopsPerGB": "50",
--					},
--					ClaimSize:    "3.5Gi",
--					ExpectedSize: "4Gi", // 4 GiB is minimum for io1
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkAWSEBS(volume, "io1", false)
--						framework.ExpectNoError(err, "checkAWSEBS io1")
--					},
--				},
--				{
--					Name:           "sc1 EBS on AWS",
--					CloudProviders: []string{"aws"},
--					Provisioner:    "kubernetes.io/aws-ebs",
--					Parameters: map[string]string{
--						"type": "sc1",
--					},
--					ClaimSize:    "500Gi", // minimum for sc1
--					ExpectedSize: "500Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkAWSEBS(volume, "sc1", false)
--						framework.ExpectNoError(err, "checkAWSEBS sc1")
--					},
--				},
--				{
--					Name:           "st1 EBS on AWS",
--					CloudProviders: []string{"aws"},
--					Provisioner:    "kubernetes.io/aws-ebs",
--					Parameters: map[string]string{
--						"type": "st1",
--					},
--					ClaimSize:    "500Gi", // minimum for st1
--					ExpectedSize: "500Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkAWSEBS(volume, "st1", false)
--						framework.ExpectNoError(err, "checkAWSEBS st1")
--					},
--				},
--				{
--					Name:           "encrypted EBS on AWS",
--					CloudProviders: []string{"aws"},
--					Provisioner:    "kubernetes.io/aws-ebs",
--					Parameters: map[string]string{
--						"encrypted": "true",
--					},
--					ClaimSize:    "1Gi",
--					ExpectedSize: "1Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--						err := checkAWSEBS(volume, "gp2", true)
--						framework.ExpectNoError(err, "checkAWSEBS gp2 encrypted")
--					},
--				},
--				// OpenStack generic tests (works on all OpenStack deployments)
--				{
--					Name:           "generic Cinder volume on OpenStack",
--					CloudProviders: []string{"openstack"},
--					Provisioner:    "kubernetes.io/cinder",
--					Parameters:     map[string]string{},
--					ClaimSize:      "1.5Gi",
--					ExpectedSize:   "2Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--					},
--				},
--				{
--					Name:           "Cinder volume with empty volume type and zone on OpenStack",
--					CloudProviders: []string{"openstack"},
--					Provisioner:    "kubernetes.io/cinder",
--					Parameters: map[string]string{
--						"type":         "",
--						"availability": "",
--					},
--					ClaimSize:    "1.5Gi",
--					ExpectedSize: "2Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--					},
--				},
--				// vSphere generic test
--				{
--					Name:           "generic vSphere volume",
--					CloudProviders: []string{"vsphere"},
--					Provisioner:    "kubernetes.io/vsphere-volume",
--					Parameters:     map[string]string{},
--					ClaimSize:      "1.5Gi",
--					ExpectedSize:   "1.5Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--					},
--				},
--				// Azure
--				{
--					Name:           "Azure disk volume with empty sku and location",
--					CloudProviders: []string{"azure"},
--					Provisioner:    "kubernetes.io/azure-disk",
--					Parameters:     map[string]string{},
--					ClaimSize:      "1Gi",
--					ExpectedSize:   "1Gi",
--					PvCheck: func(claim *v1.PersistentVolumeClaim) {
--						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--					},
--				},
--			}
--
--			var betaTest *testsuites.StorageClassTest
--			for i, t := range tests {
--				// Beware of clojure, use local variables instead of those from
--				// outer scope
--				test := t
--
--				if !framework.ProviderIs(test.CloudProviders...) {
--					framework.Logf("Skipping %q: cloud providers is not %v", test.Name, test.CloudProviders)
--					continue
--				}
--
--				// Remember the last supported test for subsequent test of beta API
--				betaTest = &test
--
--				ginkgo.By("Testing " + test.Name)
--				suffix := fmt.Sprintf("%d", i)
--				test.Client = c
--				test.Class = newStorageClass(test, ns, suffix)
--				test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
--					ClaimSize:        test.ClaimSize,
--					StorageClassName: &test.Class.Name,
--					VolumeMode:       &test.VolumeMode,
--				}, ns)
--				test.TestDynamicProvisioning()
--			}
--
--			// Run the last test with storage.k8s.io/v1beta1 on pvc
--			if betaTest != nil {
--				ginkgo.By("Testing " + betaTest.Name + " with beta volume provisioning")
--				class := newBetaStorageClass(*betaTest, "beta")
--				// we need to create the class manually, testDynamicProvisioning does not accept beta class
--				class, err := c.StorageV1beta1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
--				framework.ExpectNoError(err)
--				defer deleteStorageClass(c, class.Name)
--
--				betaTest.Client = c
--				betaTest.Class = nil
--				betaTest.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
--					ClaimSize:        betaTest.ClaimSize,
--					StorageClassName: &class.Name,
--					VolumeMode:       &betaTest.VolumeMode,
--				}, ns)
--				betaTest.Claim.Spec.StorageClassName = &(class.Name)
--				(*betaTest).TestDynamicProvisioning()
--			}
--		})
--
--		ginkgo.It("should provision storage with non-default reclaim policy Retain", func() {
--			e2eskipper.SkipUnlessProviderIs("gce", "gke")
--
--			test := testsuites.StorageClassTest{
--				Client:         c,
--				Name:           "HDD PD on GCE/GKE",
--				CloudProviders: []string{"gce", "gke"},
--				Provisioner:    "kubernetes.io/gce-pd",
--				Parameters: map[string]string{
--					"type": "pd-standard",
--				},
--				ClaimSize:    "1Gi",
--				ExpectedSize: "1Gi",
--				PvCheck: func(claim *v1.PersistentVolumeClaim) {
--					volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
--					gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
--					err := checkGCEPD(volume, "pd-standard")
--					framework.ExpectNoError(err, "checkGCEPD")
--				},
--			}
--			test.Class = newStorageClass(test, ns, "reclaimpolicy")
--			retain := v1.PersistentVolumeReclaimRetain
--			test.Class.ReclaimPolicy = &retain
--			test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
--				ClaimSize:        test.ClaimSize,
--				StorageClassName: &test.Class.Name,
--				VolumeMode:       &test.VolumeMode,
--			}, ns)
--			pv := test.TestDynamicProvisioning()
--
--			ginkgo.By(fmt.Sprintf("waiting for the provisioned PV %q to enter phase %s", pv.Name, v1.VolumeReleased))
--			framework.ExpectNoError(e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 1*time.Second, 30*time.Second))
--
--			ginkgo.By(fmt.Sprintf("deleting the storage asset backing the PV %q", pv.Name))
--			framework.ExpectNoError(e2epv.DeletePDWithRetry(pv.Spec.GCEPersistentDisk.PDName))
--
--			ginkgo.By(fmt.Sprintf("deleting the PV %q", pv.Name))
--			framework.ExpectNoError(e2epv.DeletePersistentVolume(c, pv.Name), "Failed to delete PV ", pv.Name)
--			framework.ExpectNoError(e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second))
--		})
--
--		ginkgo.It("should not provision a volume in an unmanaged GCE zone.", func() {
--			e2eskipper.SkipUnlessProviderIs("gce", "gke")
--			var suffix string = "unmananged"
--
--			ginkgo.By("Discovering an unmanaged zone")
--			allZones := sets.NewString() // all zones in the project
--
--			gceCloud, err := gce.GetGCECloud()
--			framework.ExpectNoError(err)
--
--			// Get all k8s managed zones (same as zones with nodes in them for test)
--			managedZones, err := gceCloud.GetAllZonesFromCloudProvider()
--			framework.ExpectNoError(err)
--
--			// Get a list of all zones in the project
--			zones, err := gceCloud.ComputeServices().GA.Zones.List(framework.TestContext.CloudConfig.ProjectID).Do()
--			framework.ExpectNoError(err)
--			for _, z := range zones.Items {
--				allZones.Insert(z.Name)
--			}
--
--			// Get the subset of zones not managed by k8s
--			var unmanagedZone string
--			var popped bool
--			unmanagedZones := allZones.Difference(managedZones)
--			// And select one of them at random.
--			if unmanagedZone, popped = unmanagedZones.PopAny(); !popped {
--				e2eskipper.Skipf("No unmanaged zones found.")
--			}
--
--			ginkgo.By("Creating a StorageClass for the unmanaged zone")
--			test := testsuites.StorageClassTest{
--				Name:        "unmanaged_zone",
--				Provisioner: "kubernetes.io/gce-pd",
--				Parameters:  map[string]string{"zone": unmanagedZone},
--				ClaimSize:   "1Gi",
--			}
--			sc := newStorageClass(test, ns, suffix)
--			sc, err = c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{})
--			framework.ExpectNoError(err)
--			defer deleteStorageClass(c, sc.Name)
--
--			ginkgo.By("Creating a claim and expecting it to timeout")
--			pvc := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
--				ClaimSize:        test.ClaimSize,
--				StorageClassName: &sc.Name,
--				VolumeMode:       &test.VolumeMode,
--			}, ns)
--			pvc, err = c.CoreV1().PersistentVolumeClaims(ns).Create(context.TODO(), pvc, metav1.CreateOptions{})
--			framework.ExpectNoError(err)
--			defer func() {
--				framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name)
--			}()
--
--			// The claim should timeout phase:Pending
--			err = e2epv.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, c, ns, pvc.Name, 2*time.Second, framework.ClaimProvisionShortTimeout)
--			framework.ExpectError(err)
--			framework.Logf(err.Error())
--		})
--
--		ginkgo.It("should test that deleting a claim before the volume is provisioned deletes the volume.", func() {
--			// This case tests for the regressions of a bug fixed by PR #21268
--			// REGRESSION: Deleting the PVC before the PV is provisioned can result in the PV
--			// not being deleted.
--			// NOTE:  Polls until no PVs are detected, times out at 5 minutes.
--
--			e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
--
--			const raceAttempts int = 100
--			var residualPVs []*v1.PersistentVolume
--			ginkgo.By(fmt.Sprintf("Creating and deleting PersistentVolumeClaims %d times", raceAttempts))
--			test := testsuites.StorageClassTest{
--				Name:        "deletion race",
--				Provisioner: "", // Use a native one based on current cloud provider
--				ClaimSize:   "1Gi",
--			}
--
--			class := newStorageClass(test, ns, "race")
--			class, err := c.StorageV1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
--			framework.ExpectNoError(err)
--			defer deleteStorageClass(c, class.Name)
--
--			// To increase chance of detection, attempt multiple iterations
--			for i := 0; i < raceAttempts; i++ {
--				prefix := fmt.Sprintf("race-%d", i)
--				claim := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
--					NamePrefix:       prefix,
--					ClaimSize:        test.ClaimSize,
--					StorageClassName: &class.Name,
--					VolumeMode:       &test.VolumeMode,
--				}, ns)
--				tmpClaim, err := e2epv.CreatePVC(c, ns, claim)
--				framework.ExpectNoError(err)
--				framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, tmpClaim.Name, ns))
--			}
--
--			ginkgo.By(fmt.Sprintf("Checking for residual PersistentVolumes associated with StorageClass %s", class.Name))
--			residualPVs, err = waitForProvisionedVolumesDeleted(c, class.Name)
--			// Cleanup the test resources before breaking
--			defer deleteProvisionedVolumesAndDisks(c, residualPVs)
--			framework.ExpectNoError(err, "PersistentVolumes were not deleted as expected. %d remain", len(residualPVs))
--
--			framework.Logf("0 PersistentVolumes remain.")
--		})
--
--		ginkgo.It("deletion should be idempotent", func() {
--			// This test ensures that deletion of a volume is idempotent.
--			// It creates a PV with Retain policy, deletes underlying AWS / GCE
--			// volume and changes the reclaim policy to Delete.
--			// PV controller should delete the PV even though the underlying volume
--			// is already deleted.
--			e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
--			ginkgo.By("creating PD")
--			diskName, err := e2epv.CreatePDWithRetry()
--			framework.ExpectNoError(err)
--
--			ginkgo.By("creating PV")
--			pv := e2epv.MakePersistentVolume(e2epv.PersistentVolumeConfig{
--				NamePrefix: "volume-idempotent-delete-",
--				// Use Retain to keep the PV, the test will change it to Delete
--				// when the time comes.
--				ReclaimPolicy: v1.PersistentVolumeReclaimRetain,
--				AccessModes: []v1.PersistentVolumeAccessMode{
--					v1.ReadWriteOnce,
--				},
--				Capacity: "1Gi",
--				// PV is bound to non-existing PVC, so it's reclaim policy is
--				// executed immediately
--				Prebind: &v1.PersistentVolumeClaim{
--					ObjectMeta: metav1.ObjectMeta{
--						Name:      "dummy-claim-name",
--						Namespace: ns,
--						UID:       types.UID("01234567890"),
--					},
--				},
--			})
--			switch framework.TestContext.Provider {
--			case "aws":
--				pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
--					AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
--						VolumeID: diskName,
--					},
--				}
--			case "gce", "gke":
--				pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
--					GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
--						PDName: diskName,
--					},
--				}
--			}
--			pv, err = c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
--			framework.ExpectNoError(err)
--
--			ginkgo.By("waiting for the PV to get Released")
--			err = e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 2*time.Second, e2epv.PVReclaimingTimeout)
--			framework.ExpectNoError(err)
--
--			ginkgo.By("deleting the PD")
--			err = e2epv.DeletePVSource(&pv.Spec.PersistentVolumeSource)
--			framework.ExpectNoError(err)
--
--			ginkgo.By("changing the PV reclaim policy")
--			pv, err = c.CoreV1().PersistentVolumes().Get(context.TODO(), pv.Name, metav1.GetOptions{})
--			framework.ExpectNoError(err)
--			pv.Spec.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimDelete
--			pv, err = c.CoreV1().PersistentVolumes().Update(context.TODO(), pv, metav1.UpdateOptions{})
--			framework.ExpectNoError(err)
--
--			ginkgo.By("waiting for the PV to get deleted")
--			err = e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, e2epv.PVDeletingTimeout)
--			framework.ExpectNoError(err)
--		})
--	})
--
- 	ginkgo.Describe("DynamicProvisioner External", func() {
- 		ginkgo.It("should let an external dynamic provisioner create and delete persistent volumes [Slow]", func() {
- 			// external dynamic provisioner pods need additional permissions provided by the
-diff --git a/test/e2e/storage/volume_provisioning_providers.go b/test/e2e/storage/volume_provisioning_providers.go
-new file mode 100644
-index 00000000000..932c644af7a
---- /dev/null
-+++ b/test/e2e/storage/volume_provisioning_providers.go
-@@ -0,0 +1,577 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2016 The Kubernetes 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.
-+*/
-+
-+package storage
-+
-+import (
-+	"context"
-+	"fmt"
-+	"strings"
-+	"time"
-+
-+	"github.com/aws/aws-sdk-go/aws"
-+	"github.com/aws/aws-sdk-go/aws/session"
-+	"github.com/aws/aws-sdk-go/service/ec2"
-+	"github.com/onsi/ginkgo"
-+	"github.com/onsi/gomega"
-+
-+	v1 "k8s.io/api/core/v1"
-+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-+	"k8s.io/apimachinery/pkg/types"
-+	"k8s.io/apimachinery/pkg/util/sets"
-+	clientset "k8s.io/client-go/kubernetes"
-+	"k8s.io/kubernetes/test/e2e/framework"
-+	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-+	"k8s.io/kubernetes/test/e2e/framework/providers/gce"
-+	e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
-+	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-+	"k8s.io/kubernetes/test/e2e/storage/testsuites"
-+	"k8s.io/kubernetes/test/e2e/storage/utils"
-+)
-+
-+// checkAWSEBS checks properties of an AWS EBS. Test framework does not
-+// instantiate full AWS provider, therefore we need use ec2 API directly.
-+func checkAWSEBS(volume *v1.PersistentVolume, volumeType string, encrypted bool) error {
-+	diskName := volume.Spec.AWSElasticBlockStore.VolumeID
-+
-+	var client *ec2.EC2
-+
-+	tokens := strings.Split(diskName, "/")
-+	volumeID := tokens[len(tokens)-1]
-+
-+	zone := framework.TestContext.CloudConfig.Zone
-+
-+	awsSession, err := session.NewSession()
-+	if err != nil {
-+		return fmt.Errorf("error creating session: %v", err)
-+	}
-+
-+	if len(zone) > 0 {
-+		region := zone[:len(zone)-1]
-+		cfg := aws.Config{Region: &region}
-+		framework.Logf("using region %s", region)
-+		client = ec2.New(awsSession, &cfg)
-+	} else {
-+		framework.Logf("no region configured")
-+		client = ec2.New(awsSession)
-+	}
-+
-+	request := &ec2.DescribeVolumesInput{
-+		VolumeIds: []*string{&volumeID},
-+	}
-+	info, err := client.DescribeVolumes(request)
-+	if err != nil {
-+		return fmt.Errorf("error querying ec2 for volume %q: %v", volumeID, err)
-+	}
-+	if len(info.Volumes) == 0 {
-+		return fmt.Errorf("no volumes found for volume %q", volumeID)
-+	}
-+	if len(info.Volumes) > 1 {
-+		return fmt.Errorf("multiple volumes found for volume %q", volumeID)
-+	}
-+
-+	awsVolume := info.Volumes[0]
-+	if awsVolume.VolumeType == nil {
-+		return fmt.Errorf("expected volume type %q, got nil", volumeType)
-+	}
-+	if *awsVolume.VolumeType != volumeType {
-+		return fmt.Errorf("expected volume type %q, got %q", volumeType, *awsVolume.VolumeType)
-+	}
-+	if encrypted && awsVolume.Encrypted == nil {
-+		return fmt.Errorf("expected encrypted volume, got no encryption")
-+	}
-+	if encrypted && !*awsVolume.Encrypted {
-+		return fmt.Errorf("expected encrypted volume, got %v", *awsVolume.Encrypted)
-+	}
-+	return nil
-+}
-+
-+func checkGCEPD(volume *v1.PersistentVolume, volumeType string) error {
-+	cloud, err := gce.GetGCECloud()
-+	if err != nil {
-+		return err
-+	}
-+	diskName := volume.Spec.GCEPersistentDisk.PDName
-+	disk, err := cloud.GetDiskByNameUnknownZone(diskName)
-+	if err != nil {
-+		return err
-+	}
-+
-+	if !strings.HasSuffix(disk.Type, volumeType) {
-+		return fmt.Errorf("unexpected disk type %q, expected suffix %q", disk.Type, volumeType)
-+	}
-+	return nil
-+}
-+
-+var _ = utils.SIGDescribe("Dynamic Provisioning with cloud providers", func() {
-+	f := framework.NewDefaultFramework("volume-provisioning")
-+
-+	// filled in BeforeEach
-+	var c clientset.Interface
-+	var ns string
-+
-+	ginkgo.BeforeEach(func() {
-+		c = f.ClientSet
-+		ns = f.Namespace.Name
-+	})
-+
-+	ginkgo.Describe("DynamicProvisioner [Slow]", func() {
-+		ginkgo.It("should provision storage with different parameters", func() {
-+
-+			// This test checks that dynamic provisioning can provision a volume
-+			// that can be used to persist data among pods.
-+			tests := []testsuites.StorageClassTest{
-+				// GCE/GKE
-+				{
-+					Name:           "SSD PD on GCE/GKE",
-+					CloudProviders: []string{"gce", "gke"},
-+					Provisioner:    "kubernetes.io/gce-pd",
-+					Parameters: map[string]string{
-+						"type": "pd-ssd",
-+						"zone": getRandomClusterZone(c),
-+					},
-+					ClaimSize:    "1.5Gi",
-+					ExpectedSize: "2Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkGCEPD(volume, "pd-ssd")
-+						framework.ExpectNoError(err, "checkGCEPD pd-ssd")
-+					},
-+				},
-+				{
-+					Name:           "HDD PD on GCE/GKE",
-+					CloudProviders: []string{"gce", "gke"},
-+					Provisioner:    "kubernetes.io/gce-pd",
-+					Parameters: map[string]string{
-+						"type": "pd-standard",
-+					},
-+					ClaimSize:    "1.5Gi",
-+					ExpectedSize: "2Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkGCEPD(volume, "pd-standard")
-+						framework.ExpectNoError(err, "checkGCEPD pd-standard")
-+					},
-+				},
-+				// AWS
-+				{
-+					Name:           "gp2 EBS on AWS",
-+					CloudProviders: []string{"aws"},
-+					Provisioner:    "kubernetes.io/aws-ebs",
-+					Parameters: map[string]string{
-+						"type": "gp2",
-+						"zone": getRandomClusterZone(c),
-+					},
-+					ClaimSize:    "1.5Gi",
-+					ExpectedSize: "2Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkAWSEBS(volume, "gp2", false)
-+						framework.ExpectNoError(err, "checkAWSEBS gp2")
-+					},
-+				},
-+				{
-+					Name:           "io1 EBS on AWS",
-+					CloudProviders: []string{"aws"},
-+					Provisioner:    "kubernetes.io/aws-ebs",
-+					Parameters: map[string]string{
-+						"type":      "io1",
-+						"iopsPerGB": "50",
-+					},
-+					ClaimSize:    "3.5Gi",
-+					ExpectedSize: "4Gi", // 4 GiB is minimum for io1
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkAWSEBS(volume, "io1", false)
-+						framework.ExpectNoError(err, "checkAWSEBS io1")
-+					},
-+				},
-+				{
-+					Name:           "sc1 EBS on AWS",
-+					CloudProviders: []string{"aws"},
-+					Provisioner:    "kubernetes.io/aws-ebs",
-+					Parameters: map[string]string{
-+						"type": "sc1",
-+					},
-+					ClaimSize:    "500Gi", // minimum for sc1
-+					ExpectedSize: "500Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkAWSEBS(volume, "sc1", false)
-+						framework.ExpectNoError(err, "checkAWSEBS sc1")
-+					},
-+				},
-+				{
-+					Name:           "st1 EBS on AWS",
-+					CloudProviders: []string{"aws"},
-+					Provisioner:    "kubernetes.io/aws-ebs",
-+					Parameters: map[string]string{
-+						"type": "st1",
-+					},
-+					ClaimSize:    "500Gi", // minimum for st1
-+					ExpectedSize: "500Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkAWSEBS(volume, "st1", false)
-+						framework.ExpectNoError(err, "checkAWSEBS st1")
-+					},
-+				},
-+				{
-+					Name:           "encrypted EBS on AWS",
-+					CloudProviders: []string{"aws"},
-+					Provisioner:    "kubernetes.io/aws-ebs",
-+					Parameters: map[string]string{
-+						"encrypted": "true",
-+					},
-+					ClaimSize:    "1Gi",
-+					ExpectedSize: "1Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+						gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+						err := checkAWSEBS(volume, "gp2", true)
-+						framework.ExpectNoError(err, "checkAWSEBS gp2 encrypted")
-+					},
-+				},
-+				// OpenStack generic tests (works on all OpenStack deployments)
-+				{
-+					Name:           "generic Cinder volume on OpenStack",
-+					CloudProviders: []string{"openstack"},
-+					Provisioner:    "kubernetes.io/cinder",
-+					Parameters:     map[string]string{},
-+					ClaimSize:      "1.5Gi",
-+					ExpectedSize:   "2Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+					},
-+				},
-+				{
-+					Name:           "Cinder volume with empty volume type and zone on OpenStack",
-+					CloudProviders: []string{"openstack"},
-+					Provisioner:    "kubernetes.io/cinder",
-+					Parameters: map[string]string{
-+						"type":         "",
-+						"availability": "",
-+					},
-+					ClaimSize:    "1.5Gi",
-+					ExpectedSize: "2Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+					},
-+				},
-+				// vSphere generic test
-+				{
-+					Name:           "generic vSphere volume",
-+					CloudProviders: []string{"vsphere"},
-+					Provisioner:    "kubernetes.io/vsphere-volume",
-+					Parameters:     map[string]string{},
-+					ClaimSize:      "1.5Gi",
-+					ExpectedSize:   "1.5Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+					},
-+				},
-+				// Azure
-+				{
-+					Name:           "Azure disk volume with empty sku and location",
-+					CloudProviders: []string{"azure"},
-+					Provisioner:    "kubernetes.io/azure-disk",
-+					Parameters:     map[string]string{},
-+					ClaimSize:      "1Gi",
-+					ExpectedSize:   "1Gi",
-+					PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+						testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+					},
-+				},
-+			}
-+
-+			var betaTest *testsuites.StorageClassTest
-+			for i, t := range tests {
-+				// Beware of clojure, use local variables instead of those from
-+				// outer scope
-+				test := t
-+
-+				if !framework.ProviderIs(test.CloudProviders...) {
-+					framework.Logf("Skipping %q: cloud providers is not %v", test.Name, test.CloudProviders)
-+					continue
-+				}
-+
-+				// Remember the last supported test for subsequent test of beta API
-+				betaTest = &test
-+
-+				ginkgo.By("Testing " + test.Name)
-+				suffix := fmt.Sprintf("%d", i)
-+				test.Client = c
-+				test.Class = newStorageClass(test, ns, suffix)
-+				test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+					ClaimSize:        test.ClaimSize,
-+					StorageClassName: &test.Class.Name,
-+					VolumeMode:       &test.VolumeMode,
-+				}, ns)
-+				test.TestDynamicProvisioning()
-+			}
-+
-+			// Run the last test with storage.k8s.io/v1beta1 on pvc
-+			if betaTest != nil {
-+				ginkgo.By("Testing " + betaTest.Name + " with beta volume provisioning")
-+				class := newBetaStorageClass(*betaTest, "beta")
-+				// we need to create the class manually, testDynamicProvisioning does not accept beta class
-+				class, err := c.StorageV1beta1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
-+				framework.ExpectNoError(err)
-+				defer deleteStorageClass(c, class.Name)
-+
-+				betaTest.Client = c
-+				betaTest.Class = nil
-+				betaTest.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+					ClaimSize:        betaTest.ClaimSize,
-+					StorageClassName: &class.Name,
-+					VolumeMode:       &betaTest.VolumeMode,
-+				}, ns)
-+				betaTest.Claim.Spec.StorageClassName = &(class.Name)
-+				(*betaTest).TestDynamicProvisioning()
-+			}
-+		})
-+
-+		ginkgo.It("should provision storage with non-default reclaim policy Retain", func() {
-+			e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+
-+			test := testsuites.StorageClassTest{
-+				Client:         c,
-+				Name:           "HDD PD on GCE/GKE",
-+				CloudProviders: []string{"gce", "gke"},
-+				Provisioner:    "kubernetes.io/gce-pd",
-+				Parameters: map[string]string{
-+					"type": "pd-standard",
-+				},
-+				ClaimSize:    "1Gi",
-+				ExpectedSize: "1Gi",
-+				PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+					volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+					gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+					err := checkGCEPD(volume, "pd-standard")
-+					framework.ExpectNoError(err, "checkGCEPD")
-+				},
-+			}
-+			test.Class = newStorageClass(test, ns, "reclaimpolicy")
-+			retain := v1.PersistentVolumeReclaimRetain
-+			test.Class.ReclaimPolicy = &retain
-+			test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+				ClaimSize:        test.ClaimSize,
-+				StorageClassName: &test.Class.Name,
-+				VolumeMode:       &test.VolumeMode,
-+			}, ns)
-+			pv := test.TestDynamicProvisioning()
-+
-+			ginkgo.By(fmt.Sprintf("waiting for the provisioned PV %q to enter phase %s", pv.Name, v1.VolumeReleased))
-+			framework.ExpectNoError(e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 1*time.Second, 30*time.Second))
-+
-+			ginkgo.By(fmt.Sprintf("deleting the storage asset backing the PV %q", pv.Name))
-+			framework.ExpectNoError(e2epv.DeletePDWithRetry(pv.Spec.GCEPersistentDisk.PDName))
-+
-+			ginkgo.By(fmt.Sprintf("deleting the PV %q", pv.Name))
-+			framework.ExpectNoError(e2epv.DeletePersistentVolume(c, pv.Name), "Failed to delete PV ", pv.Name)
-+			framework.ExpectNoError(e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second))
-+		})
-+
-+		ginkgo.It("should not provision a volume in an unmanaged GCE zone.", func() {
-+			e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+			var suffix string = "unmananged"
-+
-+			ginkgo.By("Discovering an unmanaged zone")
-+			allZones := sets.NewString() // all zones in the project
-+
-+			gceCloud, err := gce.GetGCECloud()
-+			framework.ExpectNoError(err)
-+
-+			// Get all k8s managed zones (same as zones with nodes in them for test)
-+			managedZones, err := gceCloud.GetAllZonesFromCloudProvider()
-+			framework.ExpectNoError(err)
-+
-+			// Get a list of all zones in the project
-+			zones, err := gceCloud.ComputeServices().GA.Zones.List(framework.TestContext.CloudConfig.ProjectID).Do()
-+			framework.ExpectNoError(err)
-+			for _, z := range zones.Items {
-+				allZones.Insert(z.Name)
-+			}
-+
-+			// Get the subset of zones not managed by k8s
-+			var unmanagedZone string
-+			var popped bool
-+			unmanagedZones := allZones.Difference(managedZones)
-+			// And select one of them at random.
-+			if unmanagedZone, popped = unmanagedZones.PopAny(); !popped {
-+				e2eskipper.Skipf("No unmanaged zones found.")
-+			}
-+
-+			ginkgo.By("Creating a StorageClass for the unmanaged zone")
-+			test := testsuites.StorageClassTest{
-+				Name:        "unmanaged_zone",
-+				Provisioner: "kubernetes.io/gce-pd",
-+				Parameters:  map[string]string{"zone": unmanagedZone},
-+				ClaimSize:   "1Gi",
-+			}
-+			sc := newStorageClass(test, ns, suffix)
-+			sc, err = c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{})
-+			framework.ExpectNoError(err)
-+			defer deleteStorageClass(c, sc.Name)
-+
-+			ginkgo.By("Creating a claim and expecting it to timeout")
-+			pvc := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+				ClaimSize:        test.ClaimSize,
-+				StorageClassName: &sc.Name,
-+				VolumeMode:       &test.VolumeMode,
-+			}, ns)
-+			pvc, err = c.CoreV1().PersistentVolumeClaims(ns).Create(context.TODO(), pvc, metav1.CreateOptions{})
-+			framework.ExpectNoError(err)
-+			defer func() {
-+				framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name)
-+			}()
-+
-+			// The claim should timeout phase:Pending
-+			err = e2epv.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, c, ns, pvc.Name, 2*time.Second, framework.ClaimProvisionShortTimeout)
-+			framework.ExpectError(err)
-+			framework.Logf(err.Error())
-+		})
-+
-+		ginkgo.It("should test that deleting a claim before the volume is provisioned deletes the volume.", func() {
-+			// This case tests for the regressions of a bug fixed by PR #21268
-+			// REGRESSION: Deleting the PVC before the PV is provisioned can result in the PV
-+			// not being deleted.
-+			// NOTE:  Polls until no PVs are detected, times out at 5 minutes.
-+
-+			e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
-+
-+			const raceAttempts int = 100
-+			var residualPVs []*v1.PersistentVolume
-+			ginkgo.By(fmt.Sprintf("Creating and deleting PersistentVolumeClaims %d times", raceAttempts))
-+			test := testsuites.StorageClassTest{
-+				Name:        "deletion race",
-+				Provisioner: "", // Use a native one based on current cloud provider
-+				ClaimSize:   "1Gi",
-+			}
-+
-+			class := newStorageClass(test, ns, "race")
-+			class, err := c.StorageV1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
-+			framework.ExpectNoError(err)
-+			defer deleteStorageClass(c, class.Name)
-+
-+			// To increase chance of detection, attempt multiple iterations
-+			for i := 0; i < raceAttempts; i++ {
-+				prefix := fmt.Sprintf("race-%d", i)
-+				claim := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+					NamePrefix:       prefix,
-+					ClaimSize:        test.ClaimSize,
-+					StorageClassName: &class.Name,
-+					VolumeMode:       &test.VolumeMode,
-+				}, ns)
-+				tmpClaim, err := e2epv.CreatePVC(c, ns, claim)
-+				framework.ExpectNoError(err)
-+				framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, tmpClaim.Name, ns))
-+			}
-+
-+			ginkgo.By(fmt.Sprintf("Checking for residual PersistentVolumes associated with StorageClass %s", class.Name))
-+			residualPVs, err = waitForProvisionedVolumesDeleted(c, class.Name)
-+			// Cleanup the test resources before breaking
-+			defer deleteProvisionedVolumesAndDisks(c, residualPVs)
-+			framework.ExpectNoError(err, "PersistentVolumes were not deleted as expected. %d remain", len(residualPVs))
-+
-+			framework.Logf("0 PersistentVolumes remain.")
-+		})
-+
-+		ginkgo.It("deletion should be idempotent", func() {
-+			// This test ensures that deletion of a volume is idempotent.
-+			// It creates a PV with Retain policy, deletes underlying AWS / GCE
-+			// volume and changes the reclaim policy to Delete.
-+			// PV controller should delete the PV even though the underlying volume
-+			// is already deleted.
-+			e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
-+			ginkgo.By("creating PD")
-+			diskName, err := e2epv.CreatePDWithRetry()
-+			framework.ExpectNoError(err)
-+
-+			ginkgo.By("creating PV")
-+			pv := e2epv.MakePersistentVolume(e2epv.PersistentVolumeConfig{
-+				NamePrefix: "volume-idempotent-delete-",
-+				// Use Retain to keep the PV, the test will change it to Delete
-+				// when the time comes.
-+				ReclaimPolicy: v1.PersistentVolumeReclaimRetain,
-+				AccessModes: []v1.PersistentVolumeAccessMode{
-+					v1.ReadWriteOnce,
-+				},
-+				Capacity: "1Gi",
-+				// PV is bound to non-existing PVC, so it's reclaim policy is
-+				// executed immediately
-+				Prebind: &v1.PersistentVolumeClaim{
-+					ObjectMeta: metav1.ObjectMeta{
-+						Name:      "dummy-claim-name",
-+						Namespace: ns,
-+						UID:       types.UID("01234567890"),
-+					},
-+				},
-+			})
-+			switch framework.TestContext.Provider {
-+			case "aws":
-+				pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
-+					AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-+						VolumeID: diskName,
-+					},
-+				}
-+			case "gce", "gke":
-+				pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
-+					GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-+						PDName: diskName,
-+					},
-+				}
-+			}
-+			pv, err = c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
-+			framework.ExpectNoError(err)
-+
-+			ginkgo.By("waiting for the PV to get Released")
-+			err = e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 2*time.Second, e2epv.PVReclaimingTimeout)
-+			framework.ExpectNoError(err)
-+
-+			ginkgo.By("deleting the PD")
-+			err = e2epv.DeletePVSource(&pv.Spec.PersistentVolumeSource)
-+			framework.ExpectNoError(err)
-+
-+			ginkgo.By("changing the PV reclaim policy")
-+			pv, err = c.CoreV1().PersistentVolumes().Get(context.TODO(), pv.Name, metav1.GetOptions{})
-+			framework.ExpectNoError(err)
-+			pv.Spec.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimDelete
-+			pv, err = c.CoreV1().PersistentVolumes().Update(context.TODO(), pv, metav1.UpdateOptions{})
-+			framework.ExpectNoError(err)
-+
-+			ginkgo.By("waiting for the PV to get deleted")
-+			err = e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, e2epv.PVDeletingTimeout)
-+			framework.ExpectNoError(err)
-+		})
-+	})
-+})
-diff --git a/test/e2e/upgrades/nvidia-gpu.go b/test/e2e/upgrades/nvidia-gpu.go
-index cf3b8c0cda3..30515197ef7 100644
---- a/test/e2e/upgrades/nvidia-gpu.go
-+++ b/test/e2e/upgrades/nvidia-gpu.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
- 
--- 
-2.26.2
-
diff --git a/third_party/go/patches/k8s-fix-paths.patch b/third_party/go/patches/k8s-fix-paths.patch
deleted file mode 100644
index ba39a43..0000000
--- a/third_party/go/patches/k8s-fix-paths.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From db9ab831cd17f9be540917a77bbb3e0551f4fb4f Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Mon, 25 Jan 2021 15:08:20 +0100
-Subject: [PATCH] Make DeviceManager socket relative to RootDir
-
----
- pkg/kubelet/cm/container_manager_linux.go | 2 +-
- pkg/kubelet/cm/devicemanager/manager.go   | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go
-index 57110ed7745..15cf010074e 100644
---- a/pkg/kubelet/cm/container_manager_linux.go
-+++ b/pkg/kubelet/cm/container_manager_linux.go
-@@ -315,7 +315,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I
- 
- 	klog.Infof("Creating device plugin manager: %t", devicePluginEnabled)
- 	if devicePluginEnabled {
--		cm.deviceManager, err = devicemanager.NewManagerImpl(numaNodeInfo, cm.topologyManager)
-+		cm.deviceManager, err = devicemanager.NewManagerImpl(numaNodeInfo, cm.topologyManager, nodeConfig.KubeletRootDir)
- 		cm.topologyManager.AddHintProvider(cm.deviceManager)
- 	} else {
- 		cm.deviceManager, err = devicemanager.NewManagerStub()
-diff --git a/pkg/kubelet/cm/devicemanager/manager.go b/pkg/kubelet/cm/devicemanager/manager.go
-index 5d1925f9458..bfff3c50fcc 100644
---- a/pkg/kubelet/cm/devicemanager/manager.go
-+++ b/pkg/kubelet/cm/devicemanager/manager.go
-@@ -124,8 +124,8 @@ func (s *sourcesReadyStub) AddSource(source string) {}
- func (s *sourcesReadyStub) AllReady() bool          { return true }
- 
- // NewManagerImpl creates a new manager.
--func NewManagerImpl(numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) {
--	return newManagerImpl(pluginapi.KubeletSocket, numaNodeInfo, topologyAffinityStore)
-+func NewManagerImpl(numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store, kubeletRootDir string) (*ManagerImpl, error) {
-+	return newManagerImpl(filepath.Join(kubeletRootDir, "device-plugins/kubelet.sock"), numaNodeInfo, topologyAffinityStore)
- }
- 
- func newManagerImpl(socketPath string, numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) {
--- 
-2.25.1
-
diff --git a/third_party/go/patches/k8s-infra-bzl4-compat.patch b/third_party/go/patches/k8s-infra-bzl4-compat.patch
deleted file mode 100644
index 4be0fe8..0000000
--- a/third_party/go/patches/k8s-infra-bzl4-compat.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 6313aef65ed37aa971737058af391f5be1ae976c Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Wed, 3 Feb 2021 18:11:03 +0100
-Subject: [PATCH] Don't use run_shell with list as cmd
-
-Going upstream at https://github.com/kubernetes/repo-infra/pull/225
----
- defs/go.bzl | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/defs/go.bzl b/defs/go.bzl
-index 21cffdd..f4617e1 100644
---- a/defs/go.bzl
-+++ b/defs/go.bzl
-@@ -63,16 +63,7 @@ def _go_genrule_impl(ctx):
- 
-     srcs = [src for srcs in ctx.attr.srcs for src in srcs.files.to_list()]
- 
--    deps = depset(
--        gopath_files + srcs,
--        transitive =
--            # tools
--            [dep.files for dep in ctx.attr.tools] +
--            # go toolchain
--            [depset(go.sdk.libs + go.sdk.srcs + go.sdk.tools + [go.sdk.go])],
--    )
--
--    _, cmd, _ = ctx.resolve_command(
-+    inputs, cmd, input_manifests = ctx.resolve_command(
-         command = ctx.attr.cmd,
-         attribute = "cmd",
-         expand_locations = True,
-@@ -83,6 +74,15 @@ def _go_genrule_impl(ctx):
-         tools = ctx.attr.tools,
-     )
- 
-+    deps = depset(
-+        gopath_files + srcs + inputs,
-+        transitive =
-+            # tools
-+            [dep.files for dep in ctx.attr.tools] +
-+            # go toolchain
-+            [depset(go.sdk.libs + go.sdk.srcs + go.sdk.tools + [go.sdk.go])],
-+    )
-+
-     env = dict()
-     env.update(ctx.configuration.default_shell_env)
-     env.update(go.env)
-@@ -92,11 +92,13 @@ def _go_genrule_impl(ctx):
-         "GOROOT": paths.dirname(go.sdk.root_file.path),
-     })
- 
--    ctx.actions.run_shell(
-+    ctx.actions.run(
-         inputs = deps,
-         outputs = ctx.outputs.outs,
-         env = env,
--        command = cmd,
-+        executable = cmd[0],
-+        arguments = cmd[1:],
-+        input_manifests = input_manifests,
-         progress_message = "%s %s" % (ctx.attr.message, ctx),
-         mnemonic = "GoGenrule",
-     )
--- 
-2.25.1
-
diff --git a/third_party/go/patches/k8s-infra-fix-go116.patch b/third_party/go/patches/k8s-infra-fix-go116.patch
deleted file mode 100644
index bf35938..0000000
--- a/third_party/go/patches/k8s-infra-fix-go116.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 5cf776eb8f872f78cf7325c39fbfe1777f702407 Mon Sep 17 00:00:00 2001
-From: Mike Danese <mikedanese@google.com>
-Date: Fri, 26 Feb 2021 13:39:16 -0800
-Subject: [PATCH] fix go_genrule for 1.16
-
----
- defs/go.bzl | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/defs/go.bzl b/defs/go.bzl
-index f4617e1..8873253 100644
---- a/defs/go.bzl
-+++ b/defs/go.bzl
-@@ -90,6 +90,9 @@ def _go_genrule_impl(ctx):
-         "PATH": ctx.configuration.host_path_separator.join(["/usr/local/bin", "/bin", "/usr/bin"]),
-         "GOPATH": paths.dirname(gopath_placeholder.path),
-         "GOROOT": paths.dirname(go.sdk.root_file.path),
-+        # hack to tie us over until we fix this to use modules or stop using
-+        # it.
-+        "GO111MODULE": "off",
-     })
- 
-     ctx.actions.run(
diff --git a/third_party/go/patches/k8s-jose-semver-fix.patch b/third_party/go/patches/k8s-jose-semver-fix.patch
new file mode 100644
index 0000000..423485a
--- /dev/null
+++ b/third_party/go/patches/k8s-jose-semver-fix.patch
@@ -0,0 +1,34 @@
+From b0b42e86e834a1d02fe83f7be3663d19f6a1ee80 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Thu, 17 Mar 2022 16:56:29 +0100
+Subject: [PATCH] Fix for semver breakage in go-jose
+
+---
+ pkg/serviceaccount/claims.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pkg/serviceaccount/claims.go b/pkg/serviceaccount/claims.go
+index 1e1475c779f..06620f7a420 100644
+--- a/pkg/serviceaccount/claims.go
++++ b/pkg/serviceaccount/claims.go
+@@ -50,7 +50,7 @@ type kubernetes struct {
+ 	Svcacct   ref             `json:"serviceaccount,omitempty"`
+ 	Pod       *ref            `json:"pod,omitempty"`
+ 	Secret    *ref            `json:"secret,omitempty"`
+-	WarnAfter jwt.NumericDate `json:"warnafter,omitempty"`
++	WarnAfter *jwt.NumericDate `json:"warnafter,omitempty"`
+ }
+ 
+ type ref struct {
+@@ -198,7 +198,7 @@ func (v *validator) Validate(ctx context.Context, _ string, public *jwt.Claims,
+ 
+ 	// Check special 'warnafter' field for projected service account token transition.
+ 	warnafter := private.Kubernetes.WarnAfter
+-	if warnafter != 0 {
++	if warnafter != nil {
+ 		if nowTime.After(warnafter.Time()) {
+ 			secondsAfterWarn := nowTime.Unix() - warnafter.Time().Unix()
+ 			auditInfo := fmt.Sprintf("subject: %s, seconds after warning threshold: %d", public.Subject, secondsAfterWarn)
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/k8s-kubernetes-build.patch b/third_party/go/patches/k8s-kubernetes-build.patch
deleted file mode 100644
index 7debfda..0000000
--- a/third_party/go/patches/k8s-kubernetes-build.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-This patch updates BUILD files to reflect changes in Go sources. This only needs to be applied because Gazelle applies patches after BUILDfile generation.
-
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/plugins.go io_k8s_kubernetes/cmd/kubelet/app/plugins.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kubelet/app/BUILD 15:12:22.682316924 +0200
-@@ -45,8 +45,6 @@
-         "//pkg/capabilities:go_default_library",
-         "//pkg/cloudprovider/providers:go_default_library",
-         "//pkg/credentialprovider:go_default_library",
--        "//pkg/credentialprovider/aws:go_default_library",
--        "//pkg/credentialprovider/azure:go_default_library",
-         "//pkg/credentialprovider/gcp:go_default_library",
-         "//pkg/features:go_default_library",
-         "//pkg/kubelet:go_default_library",
-@@ -78,25 +76,13 @@
-         "//pkg/util/oom:go_default_library",
-         "//pkg/util/rlimit:go_default_library",
-         "//pkg/volume:go_default_library",
--        "//pkg/volume/cephfs:go_default_library",
-         "//pkg/volume/configmap:go_default_library",
-         "//pkg/volume/csi:go_default_library",
-         "//pkg/volume/downwardapi:go_default_library",
-         "//pkg/volume/emptydir:go_default_library",
--        "//pkg/volume/fc:go_default_library",
-         "//pkg/volume/flexvolume:go_default_library",
--        "//pkg/volume/flocker:go_default_library",
--        "//pkg/volume/git_repo:go_default_library",
--        "//pkg/volume/glusterfs:go_default_library",
-         "//pkg/volume/hostpath:go_default_library",
--        "//pkg/volume/iscsi:go_default_library",
-         "//pkg/volume/local:go_default_library",
--        "//pkg/volume/nfs:go_default_library",
--        "//pkg/volume/portworx:go_default_library",
-         "//pkg/volume/projected:go_default_library",
--        "//pkg/volume/quobyte:go_default_library",
--        "//pkg/volume/rbd:go_default_library",
--        "//pkg/volume/scaleio:go_default_library",
-         "//pkg/volume/secret:go_default_library",
--        "//pkg/volume/storageos:go_default_library",
-         "//pkg/volume/util/hostutil:go_default_library",
---- io_k8s_kubernetes.orig/cmd/kubelet/app/options/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kubelet/app/options/BUILD 15:12:22.682316924 +0200
-@@ -20,8 +20,6 @@
-     importpath = "k8s.io/kubernetes/cmd/kubelet/app/options",
-     deps = [
-         "//pkg/apis/core:go_default_library",
--        "//pkg/credentialprovider/azure:go_default_library",
--        "//pkg/credentialprovider/gcp:go_default_library",
-         "//pkg/features:go_default_library",
-         "//pkg/kubelet/apis:go_default_library",
-         "//pkg/kubelet/apis/config:go_default_library",
---- io_k8s_kubernetes.orig/pkg/kubelet/cadvisor/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/pkg/kubelet/cadvisor/BUILD 15:12:22.682316924 +0200
-@@ -37,8 +37,6 @@
-             "@com_github_google_cadvisor//container/systemd/install:go_default_library",
-             "@com_github_google_cadvisor//fs:go_default_library",
-             "@com_github_google_cadvisor//manager:go_default_library",
--            "@com_github_google_cadvisor//utils/cloudinfo/aws:go_default_library",
--            "@com_github_google_cadvisor//utils/cloudinfo/azure:go_default_library",
-             "@com_github_google_cadvisor//utils/cloudinfo/gce:go_default_library",
-             "@com_github_google_cadvisor//utils/sysfs:go_default_library",
-             "@io_k8s_klog//:go_default_library",
-@@ -52,8 +50,6 @@
-             "@com_github_google_cadvisor//container/systemd/install:go_default_library",
-             "@com_github_google_cadvisor//fs:go_default_library",
-             "@com_github_google_cadvisor//manager:go_default_library",
--            "@com_github_google_cadvisor//utils/cloudinfo/aws:go_default_library",
--            "@com_github_google_cadvisor//utils/cloudinfo/azure:go_default_library",
-             "@com_github_google_cadvisor//utils/cloudinfo/gce:go_default_library",
-             "@com_github_google_cadvisor//utils/sysfs:go_default_library",
-             "@io_k8s_klog//:go_default_library",
---- io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kube-controller-manager/app/BUILD 15:12:22.682316924 +0200
-@@ -90,19 +90,9 @@
-         "//pkg/volume:go_default_library",
-         "//pkg/volume/csi:go_default_library",
-         "//pkg/volume/csimigration:go_default_library",
--        "//pkg/volume/fc:go_default_library",
-         "//pkg/volume/flexvolume:go_default_library",
--        "//pkg/volume/flocker:go_default_library",
--        "//pkg/volume/glusterfs:go_default_library",
-         "//pkg/volume/hostpath:go_default_library",
--        "//pkg/volume/iscsi:go_default_library",
-         "//pkg/volume/local:go_default_library",
--        "//pkg/volume/nfs:go_default_library",
--        "//pkg/volume/portworx:go_default_library",
--        "//pkg/volume/quobyte:go_default_library",
--        "//pkg/volume/rbd:go_default_library",
--        "//pkg/volume/scaleio:go_default_library",
--        "//pkg/volume/storageos:go_default_library",
-         "//pkg/volume/util:go_default_library",
-         "@com_github_spf13_cobra//:go_default_library",
-         "@io_k8s_api//core/v1:go_default_library",
diff --git a/third_party/go/patches/k8s-kubernetes.patch b/third_party/go/patches/k8s-kubernetes.patch
deleted file mode 100644
index 0efaa37..0000000
--- a/third_party/go/patches/k8s-kubernetes.patch
+++ /dev/null
@@ -1,399 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-This fixes OpenAPI codegen for when included from the Monogon workspace. It basically undoes vendorification.
-
-diff -ur io_k8s_kubernetes.orig/build/code_generation.bzl io_k8s_kubernetes/build/code_generation.bzl
---- io_k8s_kubernetes.orig/build/code_generation.bzl	2021-01-26 12:10:52.593725692 +0100
-+++ io_k8s_kubernetes/build/code_generation.bzl	2021-01-26 12:11:04.571786562 +0100
-@@ -27,6 +27,12 @@
-         ...
-     )
-     """
-+    if pkg.startswith('staging/src/k8s.io/'):
-+        parts = pkg.split('/', 4)
-+        project = parts[3]
-+        project = project.replace('-', '_')
-+        path = parts[4]
-+        return "@io_k8s_%s//%s:go_default_library" % (project, path)
-     return "//%s:go_default_library" % pkg
- 
- def go_pkg(pkg):
-@@ -42,6 +48,8 @@
-         ...
-     )
-     """
-+    if pkg.startswith('staging/src/'):
-+        return pkg[len('staging/src/'):]
-     for prefix in ["staging/src", "vendor"]:
-         if pkg.startswith(prefix):
-             return paths.relativize(pkg, prefix)
-@@ -49,8 +57,8 @@
- 
- def openapi_deps():
-     deps = [
--        "//vendor/github.com/go-openapi/spec:go_default_library",
--        "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library",
-+        "@com_github_go_openapi_spec//:go_default_library",
-+        "@io_k8s_kube_openapi//pkg/common:go_default_library",
-     ]
-     deps.extend([bazel_go_library(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]])
-     return deps
-@@ -76,7 +84,7 @@
-         # the generator must run from the repo root inside the generated GOPATH.
-         # All of bazel's $(location)s are relative to the original working directory, however.
-         cmd = " ".join([
--            "$(location //vendor/k8s.io/kube-openapi/cmd/openapi-gen)",
-+            "$(location @io_k8s_kube_openapi//cmd/openapi-gen)",
-             "--v 1",
-             "--logtostderr",
-             "--go-header-file $(location //" + openapi_vendor_prefix + "hack/boilerplate:boilerplate.generatego.txt)",
-@@ -88,6 +96,6 @@
-             "&& rm tmp_api_violations.report",
-         ]),
-         go_deps = openapi_deps(),
--        tools = ["//vendor/k8s.io/kube-openapi/cmd/openapi-gen"],
-+        tools = ["@io_k8s_kube_openapi//cmd/openapi-gen"],
-         message = "GenOpenAPI",
-     )
-diff -ur io_k8s_kubernetes.orig/cmd/kube-apiserver/app/options/globalflags.go io_k8s_kubernetes/cmd/kube-apiserver/app/options/globalflags.go
---- io_k8s_kubernetes.orig/cmd/kube-apiserver/app/options/globalflags.go	2021-01-26 12:10:52.605725751 +0100
-+++ io_k8s_kubernetes/cmd/kube-apiserver/app/options/globalflags.go	2021-01-26 12:11:04.572786567 +0100
-@@ -32,9 +32,6 @@
- func AddCustomGlobalFlags(fs *pflag.FlagSet) {
- 	// Lookup flags in global flag set and re-register the values with our flagset.
- 
--	// Adds flags from k8s.io/kubernetes/pkg/cloudprovider/providers.
--	registerLegacyGlobalFlags(fs)
--
- 	// Adds flags from k8s.io/apiserver/pkg/admission.
- 	globalflag.Register(fs, "default-not-ready-toleration-seconds")
- 	globalflag.Register(fs, "default-unreachable-toleration-seconds")
-diff -ur io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/controllermanager.go io_k8s_kubernetes/cmd/kube-controller-manager/app/controllermanager.go
---- io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/controllermanager.go	2021-01-26 12:10:52.605725751 +0100
-+++ io_k8s_kubernetes/cmd/kube-controller-manager/app/controllermanager.go	2021-01-26 12:11:04.572786567 +0100
-@@ -140,7 +140,6 @@
- 	namedFlagSets := s.Flags(KnownControllers(), ControllersDisabledByDefault.List())
- 	verflag.AddFlags(namedFlagSets.FlagSet("global"))
- 	globalflag.AddGlobalFlags(namedFlagSets.FlagSet("global"), cmd.Name())
--	registerLegacyGlobalFlags(namedFlagSets)
- 	for _, f := range namedFlagSets.FlagSets {
- 		fs.AddFlagSet(f)
- 	}
-Only in io_k8s_kubernetes/cmd/kube-controller-manager/app: controllermanager.go.orig
-diff -ur io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/plugins.go io_k8s_kubernetes/cmd/kube-controller-manager/app/plugins.go
---- io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/plugins.go	2021-01-26 12:10:52.606725757 +0100
-+++ io_k8s_kubernetes/cmd/kube-controller-manager/app/plugins.go	2021-01-26 12:11:04.572786567 +0100
-@@ -32,19 +32,9 @@
- 	// Volume plugins
- 	"k8s.io/kubernetes/pkg/volume"
- 	"k8s.io/kubernetes/pkg/volume/csi"
--	"k8s.io/kubernetes/pkg/volume/fc"
- 	"k8s.io/kubernetes/pkg/volume/flexvolume"
--	"k8s.io/kubernetes/pkg/volume/flocker"
--	"k8s.io/kubernetes/pkg/volume/glusterfs"
- 	"k8s.io/kubernetes/pkg/volume/hostpath"
--	"k8s.io/kubernetes/pkg/volume/iscsi"
- 	"k8s.io/kubernetes/pkg/volume/local"
--	"k8s.io/kubernetes/pkg/volume/nfs"
--	"k8s.io/kubernetes/pkg/volume/portworx"
--	"k8s.io/kubernetes/pkg/volume/quobyte"
--	"k8s.io/kubernetes/pkg/volume/rbd"
--	"k8s.io/kubernetes/pkg/volume/scaleio"
--	"k8s.io/kubernetes/pkg/volume/storageos"
- 	volumeutil "k8s.io/kubernetes/pkg/volume/util"
- 
- 	utilfeature "k8s.io/apiserver/pkg/util/feature"
-@@ -58,18 +48,7 @@
- // The list of plugins is manually compiled. This code and the plugin
- // initialization code for kubelet really, really need a through refactor.
- func ProbeAttachableVolumePlugins() ([]volume.VolumePlugin, error) {
--	var err error
- 	allPlugins := []volume.VolumePlugin{}
--	allPlugins, err = appendAttachableLegacyProviderVolumes(allPlugins, utilfeature.DefaultFeatureGate)
--	if err != nil {
--		return allPlugins, err
--	}
--	allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
- 	return allPlugins, nil
- }
-@@ -83,18 +62,7 @@
- 
- // ProbeExpandableVolumePlugins returns volume plugins which are expandable
- func ProbeExpandableVolumePlugins(config persistentvolumeconfig.VolumeConfiguration) ([]volume.VolumePlugin, error) {
--	var err error
- 	allPlugins := []volume.VolumePlugin{}
--	allPlugins, err = appendExpandableLegacyProviderVolumes(allPlugins, utilfeature.DefaultFeatureGate)
--	if err != nil {
--		return allPlugins, err
--	}
--	allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
- 	return allPlugins, nil
- }
- 
-@@ -124,30 +92,7 @@
- 	}
- 	allPlugins = append(allPlugins, hostpath.ProbeVolumePlugins(hostPathConfig)...)
- 
--	nfsConfig := volume.VolumeConfig{
--		RecyclerMinimumTimeout:   int(config.PersistentVolumeRecyclerConfiguration.MinimumTimeoutNFS),
--		RecyclerTimeoutIncrement: int(config.PersistentVolumeRecyclerConfiguration.IncrementTimeoutNFS),
--		RecyclerPodTemplate:      volume.NewPersistentVolumeRecyclerPodTemplate(),
--	}
--	if err := AttemptToLoadRecycler(config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, &nfsConfig); err != nil {
--		klog.Fatalf("Could not create NFS recycler pod from file %s: %+v", config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, err)
--	}
--	allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(nfsConfig)...)
--	allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)
--	// add rbd provisioner
--	allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, quobyte.ProbeVolumePlugins()...)
--	var err error
--	allPlugins, err = appendExpandableLegacyProviderVolumes(allPlugins, utilfeature.DefaultFeatureGate)
--	if err != nil {
--		return allPlugins, err
--	}
--
--	allPlugins = append(allPlugins, flocker.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, local.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
- 
- 	if utilfeature.DefaultFeatureGate.Enabled(features.CSIInlineVolume) {
- 		allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
-diff -ur io_k8s_kubernetes.orig/cmd/kubectl/BUILD io_k8s_kubernetes/cmd/kubectl/BUILD
---- io_k8s_kubernetes.orig/cmd/kubectl/BUILD	2021-01-26 12:10:52.616725807 +0100
-+++ io_k8s_kubernetes/cmd/kubectl/BUILD	2021-01-26 12:11:04.572786567 +0100
-@@ -3,7 +3,7 @@
-     "go_binary",
-     "go_library",
- )
--load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")
-+load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
- 
- go_binary(
-     name = "kubectl",
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/options/globalflags.go io_k8s_kubernetes/cmd/kubelet/app/options/globalflags.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/options/globalflags.go	2021-01-26 12:10:52.617725812 +0100
-+++ io_k8s_kubernetes/cmd/kubelet/app/options/globalflags.go	2021-01-26 12:12:03.724087183 +0100
-@@ -28,10 +28,6 @@
- 	"k8s.io/component-base/logs"
- 	"k8s.io/component-base/version/verflag"
- 	"k8s.io/klog/v2"
--
--	// ensure libs have a chance to globally register their flags
--	_ "k8s.io/kubernetes/pkg/credentialprovider/azure"
--	_ "k8s.io/kubernetes/pkg/credentialprovider/gcp"
- )
- 
- // AddGlobalFlags explicitly registers flags that libraries (glog, verflag, etc.) register
-@@ -80,12 +76,8 @@
- 
- // addCredentialProviderFlags adds flags from k8s.io/kubernetes/pkg/credentialprovider
- func addCredentialProviderFlags(fs *pflag.FlagSet) {
--	// lookup flags in global flag set and re-register the values with our flagset
--	global := pflag.CommandLine
- 	local := pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
- 
--	addLegacyCloudProviderCredentialProviderFlags(global, local)
--
- 	fs.AddFlagSet(local)
- }
- 
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/plugins.go io_k8s_kubernetes/cmd/kubelet/app/plugins.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/plugins.go	2021-01-26 12:10:52.617725812 +0100
-+++ io_k8s_kubernetes/cmd/kubelet/app/plugins.go	2021-01-26 12:11:04.573786572 +0100
-@@ -19,8 +19,6 @@
- // This file exists to force the desired plugin implementations to be linked.
- import (
- 	// Credential providers
--	_ "k8s.io/kubernetes/pkg/credentialprovider/aws"
--	_ "k8s.io/kubernetes/pkg/credentialprovider/azure"
- 	_ "k8s.io/kubernetes/pkg/credentialprovider/gcp"
- 
- 	"k8s.io/component-base/featuregate"
-@@ -28,27 +26,15 @@
- 
- 	// Volume plugins
- 	"k8s.io/kubernetes/pkg/volume"
--	"k8s.io/kubernetes/pkg/volume/cephfs"
- 	"k8s.io/kubernetes/pkg/volume/configmap"
- 	"k8s.io/kubernetes/pkg/volume/csi"
- 	"k8s.io/kubernetes/pkg/volume/downwardapi"
- 	"k8s.io/kubernetes/pkg/volume/emptydir"
--	"k8s.io/kubernetes/pkg/volume/fc"
- 	"k8s.io/kubernetes/pkg/volume/flexvolume"
--	"k8s.io/kubernetes/pkg/volume/flocker"
--	"k8s.io/kubernetes/pkg/volume/git_repo"
--	"k8s.io/kubernetes/pkg/volume/glusterfs"
- 	"k8s.io/kubernetes/pkg/volume/hostpath"
--	"k8s.io/kubernetes/pkg/volume/iscsi"
- 	"k8s.io/kubernetes/pkg/volume/local"
--	"k8s.io/kubernetes/pkg/volume/nfs"
--	"k8s.io/kubernetes/pkg/volume/portworx"
- 	"k8s.io/kubernetes/pkg/volume/projected"
--	"k8s.io/kubernetes/pkg/volume/quobyte"
--	"k8s.io/kubernetes/pkg/volume/rbd"
--	"k8s.io/kubernetes/pkg/volume/scaleio"
- 	"k8s.io/kubernetes/pkg/volume/secret"
--	"k8s.io/kubernetes/pkg/volume/storageos"
- 
- 	// Cloud providers
- 	_ "k8s.io/kubernetes/pkg/cloudprovider/providers"
-@@ -64,30 +50,13 @@
- 	//
- 	// Kubelet does not currently need to configure volume plugins.
- 	// If/when it does, see kube-controller-manager/app/plugins.go for example of using volume.VolumeConfig
--	var err error
--	allPlugins, err = appendLegacyProviderVolumes(allPlugins, featureGate)
--	if err != nil {
--		return allPlugins, err
--	}
- 	allPlugins = append(allPlugins, emptydir.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, git_repo.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, hostpath.ProbeVolumePlugins(volume.VolumeConfig{})...)
--	allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(volume.VolumeConfig{})...)
- 	allPlugins = append(allPlugins, secret.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, quobyte.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, cephfs.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, downwardapi.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, flocker.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, configmap.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, projected.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, local.ProbeVolumePlugins()...)
--	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
- 	allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
- 	return allPlugins, nil
- }
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/BUILD io_k8s_kubernetes/cmd/kubelet/BUILD
---- io_k8s_kubernetes.orig/cmd/kubelet/BUILD	2021-01-26 12:10:52.616725807 +0100
-+++ io_k8s_kubernetes/cmd/kubelet/BUILD	2021-01-26 12:11:04.573786572 +0100
-@@ -5,7 +5,7 @@
-     go_binary = "go_binary_conditional_pure",
- )
- load("@io_bazel_rules_go//go:def.bzl", "go_library")
--load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")
-+load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
- 
- go_binary(
-     name = "kubelet",
-diff -ur io_k8s_kubernetes.orig/pkg/controller/nodeipam/ipam/cidr_allocator.go io_k8s_kubernetes/pkg/controller/nodeipam/ipam/cidr_allocator.go
---- io_k8s_kubernetes.orig/pkg/controller/nodeipam/ipam/cidr_allocator.go	2021-01-26 12:10:52.664726051 +0100
-+++ io_k8s_kubernetes/pkg/controller/nodeipam/ipam/cidr_allocator.go	2021-01-26 12:11:04.573786572 +0100
-@@ -112,8 +112,6 @@
- 	switch allocatorType {
- 	case RangeAllocatorType:
- 		return NewCIDRRangeAllocator(kubeClient, nodeInformer, allocatorParams, nodeList)
--	case CloudAllocatorType:
--		return NewCloudCIDRAllocator(kubeClient, cloud, nodeInformer)
- 	default:
- 		return nil, fmt.Errorf("invalid CIDR allocator type: %v", allocatorType)
- 	}
-Only in io_k8s_kubernetes/pkg/controller/nodeipam/ipam: cidr_allocator.go.orig
-diff -ur io_k8s_kubernetes.orig/pkg/controller/nodeipam/nolegacyprovider.go io_k8s_kubernetes/pkg/controller/nodeipam/nolegacyprovider.go
---- io_k8s_kubernetes.orig/pkg/controller/nodeipam/nolegacyprovider.go	2021-01-26 12:10:52.665726056 +0100
-+++ io_k8s_kubernetes/pkg/controller/nodeipam/nolegacyprovider.go	2021-01-26 12:11:04.573786572 +0100
-@@ -1,5 +1,3 @@
--// +build providerless
--
- /*
- Copyright 2019 The Kubernetes Authors.
- 
-diff -ur io_k8s_kubernetes.orig/pkg/kubelet/cadvisor/cadvisor_linux.go io_k8s_kubernetes/pkg/kubelet/cadvisor/cadvisor_linux.go
---- io_k8s_kubernetes.orig/pkg/kubelet/cadvisor/cadvisor_linux.go	2021-01-26 12:10:52.676726112 +0100
-+++ io_k8s_kubernetes/pkg/kubelet/cadvisor/cadvisor_linux.go	2021-01-26 12:11:04.573786572 +0100
-@@ -33,8 +33,6 @@
- 
- 	// Register cloud info providers.
- 	// TODO(#68522): Remove this in 1.20+ once the cAdvisor endpoints are removed.
--	_ "github.com/google/cadvisor/utils/cloudinfo/aws"
--	_ "github.com/google/cadvisor/utils/cloudinfo/azure"
- 	_ "github.com/google/cadvisor/utils/cloudinfo/gce"
- 
- 	"github.com/google/cadvisor/cache/memory"
-Only in io_k8s_kubernetes/pkg/kubelet/cadvisor: cadvisor_linux.go.orig
-diff -ur io_k8s_kubernetes.orig/test/e2e/BUILD io_k8s_kubernetes/test/e2e/BUILD
---- io_k8s_kubernetes.orig/test/e2e/BUILD	2021-01-26 12:10:52.736726417 +0100
-+++ io_k8s_kubernetes/test/e2e/BUILD	2021-01-26 12:11:04.573786572 +0100
-@@ -5,7 +5,7 @@
-     go_test = "go_test_conditional_pure",
- )
- load("@io_bazel_rules_go//go:def.bzl", "go_library")
--load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")
-+load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
- 
- go_test(
-     name = "go_default_test",
-diff -ur io_k8s_kubernetes.orig/test/e2e/generated/BUILD io_k8s_kubernetes/test/e2e/generated/BUILD
---- io_k8s_kubernetes.orig/test/e2e/generated/BUILD	2021-01-26 12:10:52.743726453 +0100
-+++ io_k8s_kubernetes/test/e2e/generated/BUILD	2021-01-26 12:11:04.573786572 +0100
-@@ -4,23 +4,24 @@
-     "@io_bazel_rules_go//go:def.bzl",
-     "go_library",
- )
--load("//build:bindata.bzl", "go_bindata")
-+load("@dev_source_monogon//build/bindata:bindata.bzl", "bindata")
- 
- go_library(
-     name = "go_default_library",
-     srcs = [
--        "bindata.go",
-         "gobindata_util.go",
-         "main.go",
-     ],
-+    embed = [
-+        ":bindata",
-+    ],
-     importpath = "k8s.io/kubernetes/test/e2e/generated",
-     deps = [
-         "@io_k8s_klog_v2//:go_default_library",
-     ],
- )
- 
--# IMPORTANT: if you make any changes here, you must also update hack/generate-bindata.sh.
--go_bindata(
-+bindata(
-     name = "bindata",
-     srcs = [
-         "//test/conformance/testdata:all-srcs",
-@@ -29,9 +30,7 @@
-         "//test/fixtures:all-srcs",
-         "//test/images:all-srcs",
-     ],
--    outs = ["bindata.go"],
--    compress = True,
--    include_metadata = False,
-+    package = "generated",
- )
- 
- filegroup(
diff --git a/third_party/go/patches/k8s-native-metrics.patch b/third_party/go/patches/k8s-native-metrics.patch
index 859ee74..2edc60d 100644
--- a/third_party/go/patches/k8s-native-metrics.patch
+++ b/third_party/go/patches/k8s-native-metrics.patch
@@ -1,59 +1,15 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From b16e57cc52a437465bbd12c24fb05fe5790afe1d Mon Sep 17 00:00:00 2001
+From e3b5a31bff00c89fc95f85212bf0943d46692616 Mon Sep 17 00:00:00 2001
 From: Lorenz Brun <lorenz@brun.one>
 Date: Tue, 17 Mar 2020 21:41:08 +0100
-Subject: [PATCH 2/3] Add a native volume metrics implementation
+Subject: [PATCH 2/2] Add a native volume metrics implementation
 
 ---
- pkg/volume/BUILD                  |   3 +
  pkg/volume/metrics_native.go      | 101 +++++++++++++++++++++++++++++
  pkg/volume/metrics_native_test.go | 102 ++++++++++++++++++++++++++++++
- 3 files changed, 206 insertions(+)
+ 2 files changed, 203 insertions(+)
  create mode 100644 pkg/volume/metrics_native.go
  create mode 100644 pkg/volume/metrics_native_test.go
 
-diff --git a/pkg/volume/BUILD b/pkg/volume/BUILD
-index 720b13406dc..b6e4b7e6d6f 100644
---- a/pkg/volume/BUILD
-+++ b/pkg/volume/BUILD
-@@ -7,6 +7,7 @@ go_library(
-         "metrics_cached.go",
-         "metrics_du.go",
-         "metrics_errors.go",
-+        "metrics_native.go",
-         "metrics_nil.go",
-         "metrics_statfs.go",
-         "noop_expandable_plugin.go",
-@@ -35,6 +36,7 @@ go_library(
-         "@io_k8s_client_go//tools/cache:go_default_library",
-         "@io_k8s_client_go//tools/record:go_default_library",
-         "@io_k8s_cloud_provider//:go_default_library",
-+        "@org_golang_x_sys//unix:go_default_library",
-         "@io_k8s_klog_v2//:go_default_library",
-         "@io_k8s_utils//exec:go_default_library",
-         "@io_k8s_utils//mount:go_default_library",
-@@ -55,6 +57,7 @@ go_test(
-     name = "go_default_test",
-     srcs = [
-         "metrics_du_test.go",
-+        "metrics_native_test.go",
-         "metrics_nil_test.go",
-         "metrics_statfs_test.go",
-         "plugins_test.go",
 diff --git a/pkg/volume/metrics_native.go b/pkg/volume/metrics_native.go
 new file mode 100644
 index 00000000000..3934b946f2e
diff --git a/third_party/go/patches/k8s-native-mounter.patch b/third_party/go/patches/k8s-native-mounter.patch
index 2f754b6..a5ced4d 100644
--- a/third_party/go/patches/k8s-native-mounter.patch
+++ b/third_party/go/patches/k8s-native-mounter.patch
@@ -1,69 +1,33 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 8335005ed1983ca5ac036af15dd04b8717898c35 Mon Sep 17 00:00:00 2001
+From 6c346b4fbfd800af47ffa2ec24456f9f58a1b0f2 Mon Sep 17 00:00:00 2001
 From: Lorenz Brun <lorenz@brun.one>
 Date: Mon, 16 Mar 2020 22:13:08 +0100
-Subject: [PATCH 1/3] Provide native mounter implementation for Linux
+Subject: [PATCH 1/7] Provide native mounter implementation for Linux
 
 ---
- BUILD.bazel          |   2 +
- mount/mount_linux.go | 141 ++++++++++++++++++++++-
- 2 files changed, 139 insertions(+), 4 deletions(-)
+ mount_linux.go | 148 +++++++++++++++++-
+ 1 file changed, 144 insertions(+), 4 deletions(-)
 
-diff --git a/mount/BUILD b/mount/BUILD.bazel
-index bef3ec2cf55..6f997103dac 100644
---- a/mount/BUILD.bazel
-+++ b/mount/BUILD.bazel
-@@ -21,6 +21,7 @@ go_library(
-         "//exec:go_default_library",
-     ] + select({
-         "@io_bazel_rules_go//go/platform:android": [
-+            "@org_golang_x_sys//unix:go_default_library",
-             "//io:go_default_library",
-         ],
-         "@io_bazel_rules_go//go/platform:darwin": [
-@@ -36,6 +37,7 @@ go_library(
-             "//io:go_default_library",
-         ],
-         "@io_bazel_rules_go//go/platform:linux": [
-+            "@org_golang_x_sys//unix:go_default_library",
-             "//io:go_default_library",
-         ],
-         "@io_bazel_rules_go//go/platform:nacl": [
-diff --git a/mount/mount_linux.go b/mount/mount_linux.go
-index 41f69efe3f0..01182684653 100644
---- a/mount/mount_linux.go
-+++ b/mount/mount_linux.go
-@@ -20,6 +20,7 @@ package mount
- 
+diff --git a/mount_linux.go b/mount_linux.go
+index aaa592161d4..517bf0b2541 100644
+--- a/mount_linux.go
++++ b/mount_linux.go
+@@ -22,6 +22,7 @@ package mount
  import (
+ 	"context"
  	"fmt"
 +	"io/ioutil"
  	"os"
  	"os/exec"
  	"path/filepath"
-@@ -27,6 +28,7 @@ import (
- 	"strings"
+@@ -30,6 +31,7 @@ import (
  	"syscall"
+ 	"time"
  
 +	"golang.org/x/sys/unix"
  	"k8s.io/klog/v2"
  	utilexec "k8s.io/utils/exec"
  	utilio "k8s.io/utils/io"
-@@ -49,8 +51,10 @@ const (
+@@ -54,8 +56,10 @@ const (
  // for the linux platform.  This implementation assumes that the
  // kubelet is running in the host's root mount namespace.
  type Mounter struct {
@@ -75,8 +39,8 @@
 +	nativeSupportedFstypes map[string]struct{}
  }
  
- // New returns a mount.Interface for the current system.
-@@ -58,8 +62,10 @@ type Mounter struct {
+ var _ MounterForceUnmounter = &Mounter{}
+@@ -65,11 +69,36 @@ var _ MounterForceUnmounter = &Mounter{}
  // mounterPath allows using an alternative to `/bin/mount` for mounting.
  func New(mounterPath string) Interface {
  	return &Mounter{
@@ -89,38 +53,55 @@
  	}
  }
  
-@@ -78,6 +84,29 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio
++func (mounter *Mounter) mountNative(source string, target string, fstype string, options []string, sensitiveOptions []string) error {
++	flags, pflags, fsoptions := parseMountOptions(options)
++	if len(pflags) > 0 {
++		return fmt.Errorf("the native mounter is active and does not support mount propagation at the moment")
++	}
++
++	if !mounter.nativeSupportsFstype(fstype) && flags&unix.MS_BIND == 0 {
++		return fmt.Errorf("the native mounter is active and cannot mount filesystems of type \"%v\"", fstype)
++	}
++
++	if flags&unix.MS_BIND != 0 && flags & ^uintptr(unix.MS_BIND) != 0 {
++		if err := unix.Mount(source, target, "", unix.MS_BIND, ""); err != nil {
++			return fmt.Errorf("bind pre-mount failed: %w", err)
++		}
++		flags |= unix.MS_REMOUNT
++	}
++
++	if err := unix.Mount(source, target, fstype, flags, fsoptions); err != nil {
++		return fmt.Errorf("failed to mount filesystem: %w", err)
++	}
++	return nil
++}
++
+ // Mount mounts source to target as fstype with given options. 'source' and 'fstype' must
+ // be an empty string in case it's not required, e.g. for remount, or for auto filesystem
+ // type, where kernel handles fstype for you. The mount 'options' is a list of options,
+@@ -85,6 +114,10 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio
  // method should be used by callers that pass sensitive material (like
  // passwords) as mount options.
  func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error {
 +	if !mounter.withLinuxUtils {
-+		flags, pflags, fsoptions := parseMountOptions(options)
-+		if len(pflags) > 0 {
-+			return fmt.Errorf("the native mounter is active and does not support mount propagation at the moment")
-+		}
-+
-+		if !mounter.nativeSupportsFstype(fstype) && flags&unix.MS_BIND == 0 {
-+			return fmt.Errorf("the native mounter is active and cannot mount filesystems of type \"%v\"", fstype)
-+		}
-+
-+		if flags&unix.MS_BIND != 0 && flags & ^uintptr(unix.MS_BIND) != 0 {
-+			if err := unix.Mount(source, target, "", unix.MS_BIND, ""); err != nil {
-+				return fmt.Errorf("bind pre-mount failed: %w", err)
-+			}
-+			flags |= unix.MS_REMOUNT
-+		}
-+
-+		if err := unix.Mount(source, target, fstype, flags, fsoptions); err != nil {
-+			return fmt.Errorf("failed to mount filesystem: %w", err)
-+		}
-+		return nil
++		return mounter.mountNative(source, target, fstype, options, sensitiveOptions)
 +	}
 +
  	// Path to mounter binary if containerized mounter is needed. Otherwise, it is set to empty.
  	// All Linux distros are expected to be shipped with a mount utility that a support bind mounts.
  	mounterPath := ""
-@@ -102,6 +131,80 @@ func (mounter *Mounter) MountSensitive(source string, target string, fstype stri
- 	return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions)
+@@ -116,6 +149,9 @@ func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target strin
+ 
+ // MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd with additional mount flags.
+ func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error {
++	if !mounter.withLinuxUtils {
++		return mounter.mountNative(source, target, fstype, options, sensitiveOptions)
++	}
+ 	mounterPath := ""
+ 	bind, bindOpts, bindRemountOpts, bindRemountOptsSensitive := MakeBindOptsSensitive(options, sensitiveOptions)
+ 	if bind {
+@@ -138,6 +174,80 @@ func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string
+ 	return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions, mountFlags, false)
  }
  
 +// nativeSupportsFstype checks if the native mounter can mount the given fstype
@@ -198,9 +179,9 @@
 +}
 +
  // doMount runs the mount command. mounterPath is the path to mounter binary if containerized mounter is used.
- // sensitiveOptions is an extention of options except they will not be logged (because they may contain sensitive material)
- func (mounter *Mounter) doMount(mounterPath string, mountCmd string, source string, target string, fstype string, options []string, sensitiveOptions []string) error {
-@@ -179,6 +282,30 @@ func detectSystemd() bool {
+ // sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material)
+ // systemdMountRequired is an extension of option to decide whether uses systemd mount.
+@@ -223,6 +333,30 @@ func detectSystemd() bool {
  	return true
  }
  
@@ -231,7 +212,7 @@
  // MakeMountArgs makes the arguments to the mount(8) command.
  // options MUST not contain sensitive material (like passwords).
  func MakeMountArgs(source, target, fstype string, options []string) (mountArgs []string) {
-@@ -236,6 +363,12 @@ func AddSystemdScopeSensitive(systemdRunPath, mountName, command string, args []
+@@ -292,6 +426,12 @@ func AddSystemdScopeSensitive(systemdRunPath, mountName, command string, args []
  // Unmount unmounts the target.
  func (mounter *Mounter) Unmount(target string) error {
  	klog.V(4).Infof("Unmounting %s", target)
diff --git a/third_party/go/patches/k8s-revert-seccomp-runtime-default.patch b/third_party/go/patches/k8s-revert-seccomp-runtime-default.patch
deleted file mode 100644
index d8377b5..0000000
--- a/third_party/go/patches/k8s-revert-seccomp-runtime-default.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 2adf4ec9796839014a708761b8fb6ad815306def Mon Sep 17 00:00:00 2001
-From: Serge Bazanski <serge@nexantic.com>
-Date: Tue, 26 Jan 2021 11:37:01 +0100
-Subject: [PATCH] Manually revert 
- https://github.com/kubernetes/kubernetes/pull/90949
-
-This reverts PR 90494 which breaks runc within Metropolis. See T916.
-
----
- pkg/kubelet/kuberuntime/kuberuntime_sandbox.go | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
-index 0978044f753..c46436f2a41 100644
---- a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
-+++ b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
-@@ -148,11 +148,8 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *v1.Pod) (
- 	lc := &runtimeapi.LinuxPodSandboxConfig{
- 		CgroupParent: cgroupParent,
- 		SecurityContext: &runtimeapi.LinuxSandboxSecurityContext{
--			Privileged: kubecontainer.HasPrivilegedContainer(pod),
--
--			// Forcing sandbox to run as `runtime/default` allow users to
--			// use least privileged seccomp profiles at pod level. Issue #84623
--			SeccompProfilePath: v1.SeccompProfileRuntimeDefault,
-+			Privileged:         kubecontainer.HasPrivilegedContainer(pod),
-+			SeccompProfilePath: m.getSeccompProfile(pod.Annotations, "", pod.Spec.SecurityContext, nil),
- 		},
- 	}
- 
--- 
-2.26.2
-
diff --git a/third_party/go/patches/k8s-use-native.patch b/third_party/go/patches/k8s-use-native.patch
deleted file mode 100644
index 61001da..0000000
--- a/third_party/go/patches/k8s-use-native.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From ee4a7df588550ee5cbc3b8419e1ce185a8abb302 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Tue, 17 Mar 2020 22:07:24 +0100
-Subject: [PATCH 3/3] Use StatFS and Native volume metrics instead of du
-
----
- pkg/kubelet/stats/log_metrics_provider.go | 2 +-
- pkg/volume/configmap/configmap.go         | 4 ++--
- pkg/volume/downwardapi/downwardapi.go     | 4 ++--
- pkg/volume/emptydir/empty_dir.go          | 4 ++--
- pkg/volume/projected/projected.go         | 4 ++--
- pkg/volume/secret/secret.go               | 4 ++--
- 6 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/pkg/kubelet/stats/log_metrics_provider.go b/pkg/kubelet/stats/log_metrics_provider.go
-index 4a53eef74a3..ff87fec5ec3 100644
---- a/pkg/kubelet/stats/log_metrics_provider.go
-+++ b/pkg/kubelet/stats/log_metrics_provider.go
-@@ -33,5 +33,5 @@ func NewLogMetricsService() LogMetricsService {
- }
- 
- func (l logMetrics) createLogMetricsProvider(path string) volume.MetricsProvider {
--	return volume.NewMetricsDu(path)
-+	return volume.NewMetricsNative(path)
- }
-diff --git a/pkg/volume/configmap/configmap.go b/pkg/volume/configmap/configmap.go
-index 0e74dd0a1d8..430d739aab7 100644
---- a/pkg/volume/configmap/configmap.go
-+++ b/pkg/volume/configmap/configmap.go
-@@ -97,7 +97,7 @@ func (plugin *configMapPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
- 			pod.UID,
- 			plugin,
- 			plugin.host.GetMounter(plugin.GetPluginName()),
--			volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+			volume.NewCachedMetrics(volume.NewMetricsNative(getPath(pod.UID, spec.Name(), plugin.host))),
- 		},
- 		source:       *spec.Volume.ConfigMap,
- 		pod:          *pod,
-@@ -113,7 +113,7 @@ func (plugin *configMapPlugin) NewUnmounter(volName string, podUID types.UID) (v
- 			podUID,
- 			plugin,
- 			plugin.host.GetMounter(plugin.GetPluginName()),
--			volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+			volume.NewCachedMetrics(volume.NewMetricsNative(getPath(podUID, volName, plugin.host))),
- 		},
- 	}, nil
- }
-diff --git a/pkg/volume/downwardapi/downwardapi.go b/pkg/volume/downwardapi/downwardapi.go
-index a1779c0dac9..f0a0f99b318 100644
---- a/pkg/volume/downwardapi/downwardapi.go
-+++ b/pkg/volume/downwardapi/downwardapi.go
-@@ -99,7 +99,7 @@ func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts
- 		pod:             pod,
- 		podUID:          pod.UID,
- 		plugin:          plugin,
--		MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+		MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host))),
- 	}
- 	return &downwardAPIVolumeMounter{
- 		downwardAPIVolume: v,
-@@ -114,7 +114,7 @@ func (plugin *downwardAPIPlugin) NewUnmounter(volName string, podUID types.UID)
- 			volName:         volName,
- 			podUID:          podUID,
- 			plugin:          plugin,
--			MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+			MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host))),
- 		},
- 	}, nil
- }
-diff --git a/pkg/volume/emptydir/empty_dir.go b/pkg/volume/emptydir/empty_dir.go
-index 0a25d2b684c..5dc83b90c5b 100644
---- a/pkg/volume/emptydir/empty_dir.go
-+++ b/pkg/volume/emptydir/empty_dir.go
-@@ -121,7 +121,7 @@ func (plugin *emptyDirPlugin) newMounterInternal(spec *volume.Spec, pod *v1.Pod,
- 		mounter:         mounter,
- 		mountDetector:   mountDetector,
- 		plugin:          plugin,
--		MetricsProvider: volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host)),
-+		MetricsProvider: volume.NewMetricsNative(getPath(pod.UID, spec.Name(), plugin.host)),
- 	}, nil
- }
- 
-@@ -138,7 +138,7 @@ func (plugin *emptyDirPlugin) newUnmounterInternal(volName string, podUID types.
- 		mounter:         mounter,
- 		mountDetector:   mountDetector,
- 		plugin:          plugin,
--		MetricsProvider: volume.NewMetricsDu(getPath(podUID, volName, plugin.host)),
-+		MetricsProvider: volume.NewMetricsNative(getPath(podUID, volName, plugin.host)),
- 	}
- 	return ed, nil
- }
-diff --git a/pkg/volume/projected/projected.go b/pkg/volume/projected/projected.go
-index 0f65a97610c..890f9c1c7bc 100644
---- a/pkg/volume/projected/projected.go
-+++ b/pkg/volume/projected/projected.go
-@@ -114,7 +114,7 @@ func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
- 			sources:         spec.Volume.Projected.Sources,
- 			podUID:          pod.UID,
- 			plugin:          plugin,
--			MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+			MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host))),
- 		},
- 		source: *spec.Volume.Projected,
- 		pod:    pod,
-@@ -128,7 +128,7 @@ func (plugin *projectedPlugin) NewUnmounter(volName string, podUID types.UID) (v
- 			volName:         volName,
- 			podUID:          podUID,
- 			plugin:          plugin,
--			MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+			MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host))),
- 		},
- 	}, nil
- }
-diff --git a/pkg/volume/secret/secret.go b/pkg/volume/secret/secret.go
-index a195c59ddd8..4c290cb8f24 100644
---- a/pkg/volume/secret/secret.go
-+++ b/pkg/volume/secret/secret.go
-@@ -100,7 +100,7 @@ func (plugin *secretPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volu
- 			pod.UID,
- 			plugin,
- 			plugin.host.GetMounter(plugin.GetPluginName()),
--			volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+			volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host))),
- 		},
- 		source:    *spec.Volume.Secret,
- 		pod:       *pod,
-@@ -116,7 +116,7 @@ func (plugin *secretPlugin) NewUnmounter(volName string, podUID types.UID) (volu
- 			podUID,
- 			plugin,
- 			plugin.host.GetMounter(plugin.GetPluginName()),
--			volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+			volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host))),
- 		},
- 	}, nil
- }
--- 
-2.25.1
-
diff --git a/third_party/go/patches/kubelet-fix-path.patch b/third_party/go/patches/kubelet-fix-path.patch
new file mode 100644
index 0000000..069dece
--- /dev/null
+++ b/third_party/go/patches/kubelet-fix-path.patch
@@ -0,0 +1,25 @@
+From 500aace7a0bf5904c740e14ad18cd073df080d37 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:05:54 +0100
+Subject: [PATCH] Change device plugin path
+
+---
+ pkg/apis/deviceplugin/v1beta1/constants.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pkg/apis/deviceplugin/v1beta1/constants.go b/pkg/apis/deviceplugin/v1beta1/constants.go
+index 3bed214..30f06fe 100644
+--- a/pkg/apis/deviceplugin/v1beta1/constants.go
++++ b/pkg/apis/deviceplugin/v1beta1/constants.go
+@@ -27,7 +27,7 @@ const (
+ 	// DevicePluginPath is the folder the Device Plugin is expecting sockets to be on
+ 	// Only privileged pods have access to this path
+ 	// Note: Placeholder until we find a "standard path"
+-	DevicePluginPath = "/var/lib/kubelet/device-plugins/"
++	DevicePluginPath = "/data/kubernetes/kubelet/device-plugins/"
+ 	// KubeletSocket is the path of the Kubelet registry socket
+ 	KubeletSocket = DevicePluginPath + "kubelet.sock"
+ 
+-- 
+2.25.1
+
diff --git a/third_party/go/patches/libseccomp.patch b/third_party/go/patches/libseccomp.patch
new file mode 100644
index 0000000..0778f33
--- /dev/null
+++ b/third_party/go/patches/libseccomp.patch
@@ -0,0 +1,12 @@
+--- a/BUILD.bazel  2022-03-21 17:04:56.160536936 +0100
++++ b/BUILD.bazel   2022-03-21 17:05:52.439616250 +0100
+@@ -6,6 +6,9 @@
+         "seccomp.go",
+         "seccomp_internal.go",
+     ],
++    cdeps = [
++        "@seccomp",
++    ],
+     cgo = True,
+     importpath = "github.com/seccomp/libseccomp-golang",
+     visibility = ["//visibility:public"],
diff --git a/third_party/go/patches/nfproxy.patch b/third_party/go/patches/nfproxy.patch
deleted file mode 100644
index 307d3d4..0000000
--- a/third_party/go/patches/nfproxy.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-Fix nfproxy compatibility with our version of Kubernetes/utilproxy
---- com_github_sbezverk_nfproxy.orig/pkg/proxy/proxy_service.go	2020-07-16 14:24:06.901176302 +0200
-+++ com_github_sbezverk_nfproxy/pkg/proxy/proxy_service.go	2020-07-16 14:08:34.118927035 +0200
-@@ -22,7 +22,6 @@
- 	utilnftables "github.com/google/nftables"
- 	"github.com/sbezverk/nfproxy/pkg/nftables"
- 	v1 "k8s.io/api/core/v1"
--	"k8s.io/apimachinery/pkg/types"
- 	"k8s.io/klog"
- 	utilproxy "k8s.io/kubernetes/pkg/proxy/util"
- 	utilnet "k8s.io/utils/net"
-@@ -44,8 +43,7 @@
- 		stickySeconds := int(*svc.Spec.SessionAffinityConfig.ClientIP.TimeoutSeconds)
- 		klog.V(5).Infof("Service %s/%s has SessionAffinity set for %d seconds", svc.Namespace, svc.Name, stickySeconds)
- 	}
--	svcName := types.NamespacedName{Namespace: svc.Namespace, Name: svc.Name}
--	if utilproxy.ShouldSkipService(svcName, svc) {
-+	if utilproxy.ShouldSkipService(svc) {
- 		return
- 	}
- 	for i := range svc.Spec.Ports {
diff --git a/third_party/go/patches/runc-add-cdeps.patch b/third_party/go/patches/runc-add-cdeps.patch
new file mode 100644
index 0000000..fd15c15
--- /dev/null
+++ b/third_party/go/patches/runc-add-cdeps.patch
@@ -0,0 +1,10 @@
+--- a/libcontainer/seccomp/patchbpf/BUILD.bazel	2022-03-24 20:12:34.325421847 +0100
++++ b/libcontainer/seccomp/patchbpf/BUILD.bazel	2022-03-24 20:12:59.777602881 +0100
+@@ -7,6 +7,7 @@
+         "enosys_unsupported.go",
+     ],
+     cgo = True,
++    cdeps = ["@seccomp"],
+     importpath = "github.com/opencontainers/runc/libcontainer/seccomp/patchbpf",
+     visibility = ["//visibility:public"],
+     deps = select({
diff --git a/third_party/go/repositories.bzl b/third_party/go/repositories.bzl
index e6b69e1..ea1a43e 100644
--- a/third_party/go/repositories.bzl
+++ b/third_party/go/repositories.bzl
@@ -2,2883 +2,5127 @@
 
 def go_repositories():
     go_repository(
-        name = "com_google_cloud_go",
-        importpath = "cloud.google.com/go",
-        version = "v0.51.0",
-        sum = "h1:PvKAVQWCtlGUSlZkGW3QLelKaWq7KYv/MW1EboG8bfM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "ag_pack_amqp",
+        importpath = "pack.ag/amqp",
+        sum = "h1:cuNDWLUTbKRtEZwhB0WQBXf9pGbm87pUBXQhvcFxBWg=",
+        version = "v0.11.2",
     )
     go_repository(
-        name = "com_github_azure_go_ansiterm",
-        importpath = "github.com/Azure/go-ansiterm",
-        version = "v0.0.0-20170929234023-d6e3b3328b78",
-        sum = "h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "cc_mvdan_interfacer",
+        importpath = "mvdan.cc/interfacer",
+        sum = "h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I=",
+        version = "v0.0.0-20180901003855-c20040233aed",
     )
     go_repository(
-        name = "com_github_burntsushi_toml",
-        importpath = "github.com/BurntSushi/toml",
-        version = "v0.3.1",
-        sum = "h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "cc_mvdan_lint",
+        importpath = "mvdan.cc/lint",
+        sum = "h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo=",
+        version = "v0.0.0-20170908181259-adc824a0674b",
+    )
+
+    go_repository(
+        name = "co_honnef_go_tools",
+        importpath = "honnef.co/go/tools",
+        sum = "h1:MNh1AVMyVX23VUHE2O27jm6lNj3vjO5DexS4A1xvnzk=",
+        version = "v0.2.2",
     )
     go_repository(
-        name = "com_github_makenowjust_heredoc",
-        importpath = "github.com/MakeNowJust/heredoc",
-        version = "v0.0.0-20170808103936-bb23615498cd",
-        sum = "h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_4d63_gochecknoinits",
+        importpath = "4d63.com/gochecknoinits",
+        sum = "h1:bf5qocEKjrY58JO2GwywfLsb1199lIVs7qHkiplwHy0=",
+        version = "v0.0.0-20200108094044-eb73b47b9fc4",
     )
     go_repository(
-        name = "com_github_masterminds_semver",
-        importpath = "github.com/Masterminds/semver",
-        version = "v1.4.2",
-        sum = "h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_adalogics_go_fuzz_headers",
+        importpath = "github.com/AdaLogics/go-fuzz-headers",
+        sum = "h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc=",
+        version = "v0.0.0-20210715213245-6c3934b029d8",
     )
-    go_repository(
-        name = "com_github_masterminds_sprig",
-        importpath = "github.com/Masterminds/sprig",
-        version = "v2.15.0+incompatible",
-        sum = "h1:0gSxPGWS9PAr7U2NsQ2YQg6juRDINkUyuvbb4b2Xm8w=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
-    go_repository(
-        name = "com_github_microsoft_go_winio",
-        importpath = "github.com/Microsoft/go-winio",
-        version = "v0.4.14",
-        sum = "h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
-    go_repository(
-        name = "com_github_microsoft_hcsshim",
-        importpath = "github.com/Microsoft/hcsshim",
-        version = "v0.8.10",
-        sum = "h1:k5wTrpnVU2/xv8ZuzGkbXVd3js5zJ8RnumPo5RxiIxU=",
-        build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
-    go_repository(
-        name = "com_github_nytimes_gziphandler",
-        importpath = "github.com/NYTimes/gziphandler",
-        version = "v0.0.0-20170623195520-56545f4a5d46",
-        sum = "h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
-    go_repository(
-        name = "com_github_puerkitobio_purell",
-        importpath = "github.com/PuerkitoBio/purell",
-        version = "v1.1.1",
-        sum = "h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
-    go_repository(
-        name = "com_github_puerkitobio_urlesc",
-        importpath = "github.com/PuerkitoBio/urlesc",
-        version = "v0.0.0-20170810143723-de5bf2ad4578",
-        sum = "h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
+
     go_repository(
         name = "com_github_adrg_xdg",
         importpath = "github.com/adrg/xdg",
-        version = "v0.4.0",
         sum = "h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.4.0",
     )
     go_repository(
+        name = "com_github_afex_hystrix_go",
+        importpath = "github.com/afex/hystrix-go",
+        sum = "h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw=",
+        version = "v0.0.0-20180502004556-fa1af6a1f4f5",
+    )
+    go_repository(
+        name = "com_github_agnivade_levenshtein",
+        importpath = "github.com/agnivade/levenshtein",
+        sum = "h1:3oJU7J3FGFmyhn8KHjmVaZCN5hxTr7GxgRue+sxIXdQ=",
+        version = "v1.0.1",
+    )
+
+    go_repository(
+        name = "com_github_ajstarks_svgo",
+        importpath = "github.com/ajstarks/svgo",
+        sum = "h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ=",
+        version = "v0.0.0-20180226025133-644b8db467af",
+    )
+    go_repository(
+        name = "com_github_alcortesm_tgz",
+        importpath = "github.com/alcortesm/tgz",
+        sum = "h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs=",
+        version = "v0.0.0-20161220082320-9c5fe88206d7",
+    )
+    go_repository(
+        name = "com_github_alecthomas_kingpin",
+        importpath = "github.com/alecthomas/kingpin",
+        sum = "h1:5svnBTFgJjZvGKyYBtMB0+m5wvrbUHiqye8wRJMlnYI=",
+        version = "v2.2.6+incompatible",
+    )
+    go_repository(
+        name = "com_github_alecthomas_template",
+        importpath = "github.com/alecthomas/template",
+        sum = "h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=",
+        version = "v0.0.0-20190718012654-fb15b899a751",
+    )
+    go_repository(
+        name = "com_github_alecthomas_units",
+        importpath = "github.com/alecthomas/units",
+        sum = "h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=",
+        version = "v0.0.0-20190924025748-f65c72e2690d",
+    )
+
+    go_repository(
         name = "com_github_alexflint_go_filemutex",
         importpath = "github.com/alexflint/go-filemutex",
-        version = "v0.0.0-20171022225611-72bdc8eae2ae",
-        sum = "h1:AMzIhMUqU3jMrZiTuW0zkYeKlKDAFD+DG20IoO421/Y=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg=",
+        version = "v1.1.0",
     )
     go_repository(
+        name = "com_github_andreyvit_diff",
+        importpath = "github.com/andreyvit/diff",
+        sum = "h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=",
+        version = "v0.0.0-20170406064948-c7f18ee00883",
+    )
+
+    go_repository(
+        name = "com_github_anmitsu_go_shlex",
+        importpath = "github.com/anmitsu/go-shlex",
+        sum = "h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA=",
+        version = "v0.0.0-20161002113705-648efa622239",
+    )
+    go_repository(
+        name = "com_github_antihax_optional",
+        importpath = "github.com/antihax/optional",
+        sum = "h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_antlr_antlr4_runtime_go_antlr",
+        importpath = "github.com/antlr/antlr4/runtime/Go/antlr",
+        sum = "h1:GCzyKMDDjSGnlpl3clrdAK7I1AaVoaiKDOYkUzChZzg=",
+        version = "v0.0.0-20210826220005-b48c857c3a0e",
+    )
+
+    go_repository(
         name = "com_github_aokoli_goutils",
         importpath = "github.com/aokoli/goutils",
-        version = "v1.0.1",
         sum = "h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.1",
     )
     go_repository(
+        name = "com_github_apache_beam",
+        importpath = "github.com/apache/beam",
+        sum = "h1:8MOeoZwBgORfaJjrZxpkqJWEIzwupRGLqUqG0/mvEtQ=",
+        version = "v2.32.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_apache_thrift",
+        importpath = "github.com/apache/thrift",
+        sum = "h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI=",
+        version = "v0.13.0",
+    )
+    go_repository(
+        name = "com_github_apex_log",
+        importpath = "github.com/apex/log",
+        sum = "h1:3Zk+boorIQAAGBrHn0JUtAau4ihMamT4WdnfdnXM1zQ=",
+        version = "v1.1.4",
+    )
+    go_repository(
+        name = "com_github_apex_logs",
+        importpath = "github.com/apex/logs",
+        sum = "h1:KmEBVwfDUOTFcBO8cfkJYwdQ5487UZSN+GteOGPmiro=",
+        version = "v0.0.4",
+    )
+    go_repository(
+        name = "com_github_aphistic_golf",
+        importpath = "github.com/aphistic/golf",
+        sum = "h1:2KLQMJ8msqoPHIPDufkxVcoTtcmE5+1sL9950m4R9Pk=",
+        version = "v0.0.0-20180712155816-02c07f170c5a",
+    )
+    go_repository(
+        name = "com_github_aphistic_sweet",
+        importpath = "github.com/aphistic/sweet",
+        sum = "h1:I4z+fAUqvKfvZV/CHi5dV0QuwbmIvYYFDjG0Ss5QpAs=",
+        version = "v0.2.0",
+    )
+    go_repository(
+        name = "com_github_apparentlymart_go_cidr",
+        importpath = "github.com/apparentlymart/go-cidr",
+        sum = "h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU=",
+        version = "v1.1.0",
+    )
+
+    go_repository(
         name = "com_github_armon_circbuf",
         importpath = "github.com/armon/circbuf",
-        version = "v0.0.0-20150827004946-bbbad097214e",
         sum = "h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20150827004946-bbbad097214e",
     )
     go_repository(
+        name = "com_github_armon_consul_api",
+        importpath = "github.com/armon/consul-api",
+        sum = "h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA=",
+        version = "v0.0.0-20180202201655-eb2c6b5be1b6",
+    )
+    go_repository(
+        name = "com_github_armon_go_metrics",
+        importpath = "github.com/armon/go-metrics",
+        sum = "h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I=",
+        version = "v0.0.0-20180917152333-f0300d1749da",
+    )
+    go_repository(
+        name = "com_github_armon_go_radix",
+        importpath = "github.com/armon/go-radix",
+        sum = "h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to=",
+        version = "v0.0.0-20180808171621-7fddfc383310",
+    )
+    go_repository(
+        name = "com_github_armon_go_socks5",
+        importpath = "github.com/armon/go-socks5",
+        sum = "h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=",
+        version = "v0.0.0-20160902184237-e75332964ef5",
+    )
+    go_repository(
+        name = "com_github_aryann_difflib",
+        importpath = "github.com/aryann/difflib",
+        sum = "h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw=",
+        version = "v0.0.0-20170710044230-e206f873d14a",
+    )
+
+    go_repository(
         name = "com_github_asaskevich_govalidator",
         importpath = "github.com/asaskevich/govalidator",
-        version = "v0.0.0-20190424111038-f61b66f89f4a",
         sum = "h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20190424111038-f61b66f89f4a",
     )
     go_repository(
+        name = "com_github_auth0_go_jwt_middleware",
+        importpath = "github.com/auth0/go-jwt-middleware",
+        sum = "h1:/fsQ4vRr4zod1wKReUH+0A3ySRjGiT9G34kypO/EKwI=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_aws_aws_lambda_go",
+        importpath = "github.com/aws/aws-lambda-go",
+        sum = "h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY=",
+        version = "v1.13.3",
+    )
+    go_repository(
+        name = "com_github_aws_aws_sdk_go",
+        importpath = "github.com/aws/aws-sdk-go",
+        sum = "h1:wOdx6+reSDpUBFEuJDA6edCrojzy8rOtMzhS2rD9+7M=",
+        version = "v1.43.12",
+    )
+    go_repository(
+        name = "com_github_aws_aws_sdk_go_v2",
+        importpath = "github.com/aws/aws-sdk-go-v2",
+        sum = "h1:qZ+woO4SamnH/eEbjM2IDLhRNwIwND/RQyVlBLp3Jqg=",
+        version = "v0.18.0",
+    )
+    go_repository(
+        name = "com_github_aybabtme_rgbterm",
+        importpath = "github.com/aybabtme/rgbterm",
+        sum = "h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo=",
+        version = "v0.0.0-20170906152045-cc83f3b3ce59",
+    )
+    go_repository(
+        name = "com_github_azure_azure_amqp_common_go_v2",
+        importpath = "github.com/Azure/azure-amqp-common-go/v2",
+        sum = "h1:+QbFgmWCnPzdaRMfsI0Yb6GrRdBj5jVL8N3EXuEUcBQ=",
+        version = "v2.1.0",
+    )
+    go_repository(
+        name = "com_github_azure_azure_pipeline_go",
+        importpath = "github.com/Azure/azure-pipeline-go",
+        sum = "h1:OLBdZJ3yvOn2MezlWvbrBMTEUQC72zAftRZOMdj5HYo=",
+        version = "v0.2.1",
+    )
+    go_repository(
+        name = "com_github_azure_azure_sdk_for_go",
+        importpath = "github.com/Azure/azure-sdk-for-go",
+        sum = "h1:FKtAafvCGabH4hzycX4uGq/mSTKN+zaeRTUdnJB5Yag=",
+        version = "v62.1.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_azure_azure_service_bus_go",
+        importpath = "github.com/Azure/azure-service-bus-go",
+        sum = "h1:G1qBLQvHCFDv9pcpgwgFkspzvnGknJRR0PYJ9ytY/JA=",
+        version = "v0.9.1",
+    )
+    go_repository(
+        name = "com_github_azure_azure_storage_blob_go",
+        importpath = "github.com/Azure/azure-storage-blob-go",
+        sum = "h1:53qhf0Oxa0nOjgbDeeYPUeyiNmafAFEY95rZLK0Tj6o=",
+        version = "v0.8.0",
+    )
+
+    go_repository(
+        name = "com_github_azure_go_ansiterm",
+        importpath = "github.com/Azure/go-ansiterm",
+        sum = "h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=",
+        version = "v0.0.0-20210617225240-d185dfc1b5a1",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest",
+        importpath = "github.com/Azure/go-autorest",
+        sum = "h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=",
+        version = "v14.2.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest",
+        importpath = "github.com/Azure/go-autorest/autorest",
+        sum = "h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE=",
+        version = "v0.11.24",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_adal",
+        importpath = "github.com/Azure/go-autorest/autorest/adal",
+        sum = "h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=",
+        version = "v0.9.18",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_azure_auth",
+        importpath = "github.com/Azure/go-autorest/autorest/azure/auth",
+        sum = "h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA=",
+        version = "v0.5.11",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_azure_cli",
+        importpath = "github.com/Azure/go-autorest/autorest/azure/cli",
+        sum = "h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4=",
+        version = "v0.4.5",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_date",
+        importpath = "github.com/Azure/go-autorest/autorest/date",
+        sum = "h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=",
+        version = "v0.3.0",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_mocks",
+        importpath = "github.com/Azure/go-autorest/autorest/mocks",
+        sum = "h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=",
+        version = "v0.4.1",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_to",
+        importpath = "github.com/Azure/go-autorest/autorest/to",
+        sum = "h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=",
+        version = "v0.4.0",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_autorest_validation",
+        importpath = "github.com/Azure/go-autorest/autorest/validation",
+        sum = "h1:ISSNzGUh+ZSzizJWOWzs8bwpXIePbGLW4z/AmUFGH5A=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_logger",
+        importpath = "github.com/Azure/go-autorest/logger",
+        sum = "h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=",
+        version = "v0.2.1",
+    )
+    go_repository(
+        name = "com_github_azure_go_autorest_tracing",
+        importpath = "github.com/Azure/go-autorest/tracing",
+        sum = "h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=",
+        version = "v0.6.0",
+    )
+    go_repository(
+        name = "com_github_bazelbuild_bazel_gazelle",
+        importpath = "github.com/bazelbuild/bazel-gazelle",
+        sum = "h1:gPaI2C0hRAhNT4w3bdSCift3nFjq0j07I4bmSDeneA4=",
+        version = "v0.24.0",
+    )
+    go_repository(
+        name = "com_github_bazelbuild_buildtools",
+        importpath = "github.com/bazelbuild/buildtools",
+        sum = "h1:VMFMISXa1RypQNG0j4KVCbsUcrxFudkY/IvWzEJCyO8=",
+        version = "v0.0.0-20211007154642-8dd79e56e98e",
+    )
+    go_repository(
+        name = "com_github_bazelbuild_rules_go",
+        importpath = "github.com/bazelbuild/rules_go",
+        sum = "h1:kX4jVcstqrsRqKPJSn2mq2o+TI21edRzEJSrEOMQtr0=",
+        version = "v0.30.0",
+    )
+    go_repository(
+        name = "com_github_benbjohnson_clock",
+        importpath = "github.com/benbjohnson/clock",
+        sum = "h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=",
+        version = "v1.1.0",
+    )
+
+    go_repository(
         name = "com_github_beorn7_perks",
         importpath = "github.com/beorn7/perks",
-        version = "v1.0.1",
         sum = "h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.1",
     )
     go_repository(
         name = "com_github_bgentry_speakeasy",
         importpath = "github.com/bgentry/speakeasy",
-        version = "v0.1.0",
         sum = "h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.1.0",
     )
     go_repository(
+        name = "com_github_bifurcation_mint",
+        importpath = "github.com/bifurcation/mint",
+        sum = "h1:fUjoj2bT6dG8LoEe+uNsKk8J+sLkDbQkJnB6Z1F02Bc=",
+        version = "v0.0.0-20180715133206-93c51c6ce115",
+    )
+
+    go_repository(
+        name = "com_github_bitly_go_simplejson",
+        importpath = "github.com/bitly/go-simplejson",
+        sum = "h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y=",
+        version = "v0.5.0",
+    )
+    go_repository(
+        name = "com_github_bits_and_blooms_bitset",
+        importpath = "github.com/bits-and-blooms/bitset",
+        sum = "h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_bketelsen_crypt",
+        importpath = "github.com/bketelsen/crypt",
+        sum = "h1:w/jqZtC9YD4DS/Vp9GhWfWcCpuAL58oTnLoI8vE9YHU=",
+        version = "v0.0.4",
+    )
+    go_repository(
+        name = "com_github_blakesmith_ar",
+        importpath = "github.com/blakesmith/ar",
+        sum = "h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4=",
+        version = "v0.0.0-20190502131153-809d4375e1fb",
+    )
+
+    go_repository(
         name = "com_github_blang_semver",
         importpath = "github.com/blang/semver",
-        version = "v3.5.0+incompatible",
-        sum = "h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=",
+        version = "v3.5.1+incompatible",
     )
     go_repository(
+        name = "com_github_bmatcuk_doublestar",
+        importpath = "github.com/bmatcuk/doublestar",
+        sum = "h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0=",
+        version = "v1.3.4",
+    )
+    go_repository(
+        name = "com_github_bmizerany_assert",
+        importpath = "github.com/bmizerany/assert",
+        sum = "h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=",
+        version = "v0.0.0-20160611221934-b7ed37b82869",
+    )
+    go_repository(
+        name = "com_github_boltdb_bolt",
+        importpath = "github.com/boltdb/bolt",
+        sum = "h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=",
+        version = "v1.3.1",
+    )
+
+    go_repository(
+        name = "com_github_bshuster_repo_logrus_logstash_hook",
+        importpath = "github.com/bshuster-repo/logrus-logstash-hook",
+        sum = "h1:pgAtgj+A31JBVtEHu2uHuEx0n+2ukqUJnS2vVe5pQNA=",
+        version = "v0.4.1",
+    )
+    go_repository(
+        name = "com_github_buger_jsonparser",
+        importpath = "github.com/buger/jsonparser",
+        sum = "h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=",
+        version = "v1.1.1",
+    )
+    go_repository(
+        name = "com_github_bugsnag_bugsnag_go",
+        importpath = "github.com/bugsnag/bugsnag-go",
+        sum = "h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng=",
+        version = "v0.0.0-20141110184014-b1d153021fcd",
+    )
+    go_repository(
+        name = "com_github_bugsnag_osext",
+        importpath = "github.com/bugsnag/osext",
+        sum = "h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ=",
+        version = "v0.0.0-20130617224835-0dd3f918b21b",
+    )
+    go_repository(
+        name = "com_github_bugsnag_panicwrap",
+        importpath = "github.com/bugsnag/panicwrap",
+        sum = "h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o=",
+        version = "v0.0.0-20151223152923-e2c28503fcd0",
+    )
+
+    go_repository(
+        name = "com_github_burntsushi_toml",
+        importpath = "github.com/BurntSushi/toml",
+        sum = "h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=",
+        version = "v0.4.1",
+    )
+    go_repository(
+        name = "com_github_burntsushi_xgb",
+        importpath = "github.com/BurntSushi/xgb",
+        sum = "h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc=",
+        version = "v0.0.0-20160522181843-27f122750802",
+    )
+    go_repository(
+        name = "com_github_caarlos0_ctrlc",
+        importpath = "github.com/caarlos0/ctrlc",
+        sum = "h1:2DtF8GSIcajgffDFJzyG15vO+1PuBWOMUdFut7NnXhw=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_caddyserver_caddy",
         importpath = "github.com/caddyserver/caddy",
-        version = "v1.0.5",
-        sum = "h1:5B1Hs0UF2x2tggr2X9jL2qOZtDXbIWQb9YLbmlxHSuM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw1w=",
+        version = "v1.0.3",
     )
     go_repository(
+        name = "com_github_campoy_unique",
+        importpath = "github.com/campoy/unique",
+        sum = "h1:V9a67dfYqPLAvzk5hMQOXYJlZ4SLIXgyKIE+ZiHzgGQ=",
+        version = "v0.0.0-20180121183637-88950e537e7e",
+    )
+    go_repository(
+        name = "com_github_casbin_casbin_v2",
+        importpath = "github.com/casbin/casbin/v2",
+        sum = "h1:bTwon/ECRx9dwBy2ewRVr5OiqjeXSGiTUY74sDPQi/g=",
+        version = "v2.1.2",
+    )
+    go_repository(
+        name = "com_github_cavaliercoder_go_cpio",
+        importpath = "github.com/cavaliercoder/go-cpio",
+        sum = "h1:hHg27A0RSSp2Om9lubZpiMgVbvn39bsUmW9U5h0twqc=",
+        version = "v0.0.0-20180626203310-925f9528c45e",
+    )
+
+    go_repository(
         name = "com_github_cavaliergopher_cpio",
         importpath = "github.com/cavaliergopher/cpio",
-        version = "v1.0.0",
-        sum = "h1:r03k5NVg5kuFMbtRnldtwsm/8mt8qmHg/QBl7y/PUiE=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:KQFSeKmZhv0cr+kawA3a0xTQCU4QxXF1vhU7P7av2KM=",
+        version = "v1.0.1",
     )
     go_repository(
         name = "com_github_cenkalti_backoff",
         importpath = "github.com/cenkalti/backoff",
-        version = "v1.1.1-0.20190506075156-2146c9339422",
-        sum = "h1:8eZxmY1yvxGHzdzTEhI09npjMVGzNAdrqzruTX6jcK4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=",
+        version = "v2.2.1+incompatible",
     )
     go_repository(
         name = "com_github_cenkalti_backoff_v4",
         importpath = "github.com/cenkalti/backoff/v4",
-        version = "v4.0.2",
-        sum = "h1:JIufpQLbh4DkbQoii76ItQIUFzevQSqOLZca4eamEDs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo=",
+        version = "v4.1.2",
     )
     go_repository(
+        name = "com_github_census_instrumentation_opencensus_proto",
+        importpath = "github.com/census-instrumentation/opencensus-proto",
+        sum = "h1:t/LhUZLVitR1Ow2YOnduCsavhwFUklBMoGVYUCqmCqk=",
+        version = "v0.3.0",
+    )
+    go_repository(
+        name = "com_github_certifi_gocertifi",
+        importpath = "github.com/certifi/gocertifi",
+        sum = "h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=",
+        version = "v0.0.0-20200922220541-2c3bb06c6054",
+    )
+
+    go_repository(
+        name = "com_github_cespare_xxhash",
+        importpath = "github.com/cespare/xxhash",
+        sum = "h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=",
+        version = "v1.1.0",
+    )
+
+    go_repository(
         name = "com_github_cespare_xxhash_v2",
         importpath = "github.com/cespare/xxhash/v2",
-        version = "v2.1.1",
-        sum = "h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=",
+        version = "v2.1.2",
     )
     go_repository(
         name = "com_github_chai2010_gettext_go",
         importpath = "github.com/chai2010/gettext-go",
-        version = "v0.0.0-20160711120539-c6fed771bfd5",
         sum = "h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20160711120539-c6fed771bfd5",
     )
+
     go_repository(
         name = "com_github_checkpoint_restore_go_criu_v4",
         importpath = "github.com/checkpoint-restore/go-criu/v4",
-        version = "v4.1.0",
         sum = "h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v4.1.0",
     )
     go_repository(
+        name = "com_github_checkpoint_restore_go_criu_v5",
+        importpath = "github.com/checkpoint-restore/go-criu/v5",
+        sum = "h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8=",
+        version = "v5.3.0",
+    )
+    go_repository(
+        name = "com_github_cheekybits_genny",
+        importpath = "github.com/cheekybits/genny",
+        sum = "h1:a1zrFsLFac2xoM6zG1u72DWJwZG3ayttYLfmLbxVETk=",
+        version = "v0.0.0-20170328200008-9127e812e1e9",
+    )
+
+    go_repository(
+        name = "com_github_chzyer_logex",
+        importpath = "github.com/chzyer/logex",
+        sum = "h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=",
+        version = "v1.1.10",
+    )
+    go_repository(
+        name = "com_github_chzyer_readline",
+        importpath = "github.com/chzyer/readline",
+        sum = "h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=",
+        version = "v0.0.0-20180603132655-2972be24d48e",
+    )
+    go_repository(
+        name = "com_github_chzyer_test",
+        importpath = "github.com/chzyer/test",
+        sum = "h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=",
+        version = "v0.0.0-20180213035817-a1ea475d72b1",
+    )
+
+    go_repository(
         name = "com_github_cilium_ebpf",
         importpath = "github.com/cilium/ebpf",
-        version = "v0.0.0-20200702112145-1c8d4c9ef775",
-        sum = "h1:cHzBGGVew0ezFsq2grfy2RsB8hO/eNyBgOLHBCqfR1U=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k=",
+        version = "v0.7.0",
     )
     go_repository(
+        name = "com_github_clbanning_x2j",
+        importpath = "github.com/clbanning/x2j",
+        sum = "h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo=",
+        version = "v0.0.0-20191024224557-825249438eec",
+    )
+    go_repository(
+        name = "com_github_client9_misspell",
+        importpath = "github.com/client9/misspell",
+        sum = "h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=",
+        version = "v0.3.4",
+    )
+    go_repository(
+        name = "com_github_clusterhq_flocker_go",
+        importpath = "github.com/clusterhq/flocker-go",
+        sum = "h1:eIHD9GNM3Hp7kcRW5mvcz7WTR3ETeoYYKwpgA04kaXE=",
+        version = "v0.0.0-20160920122132-2b8b7259d313",
+    )
+    go_repository(
+        name = "com_github_cncf_udpa_go",
+        importpath = "github.com/cncf/udpa/go",
+        sum = "h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI=",
+        version = "v0.0.0-20210930031921-04548b0d99d4",
+    )
+    go_repository(
+        name = "com_github_cncf_xds_go",
+        importpath = "github.com/cncf/xds/go",
+        sum = "h1:zH8ljVhhq7yC0MIeUL/IviMtY8hx2mK8cN9wEYb8ggw=",
+        version = "v0.0.0-20211011173535-cb28da3451f1",
+    )
+    go_repository(
+        name = "com_github_cockroachdb_datadriven",
+        importpath = "github.com/cockroachdb/datadriven",
+        sum = "h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=",
+        version = "v0.0.0-20200714090401-bf6692d28da5",
+    )
+    go_repository(
+        name = "com_github_cockroachdb_errors",
+        importpath = "github.com/cockroachdb/errors",
+        sum = "h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=",
+        version = "v1.2.4",
+    )
+    go_repository(
+        name = "com_github_cockroachdb_logtags",
+        importpath = "github.com/cockroachdb/logtags",
+        sum = "h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY=",
+        version = "v0.0.0-20190617123548-eb05cc24525f",
+    )
+    go_repository(
+        name = "com_github_codahale_hdrhistogram",
+        importpath = "github.com/codahale/hdrhistogram",
+        sum = "h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=",
+        version = "v0.0.0-20161010025455-3a0bb77429bd",
+    )
+    go_repository(
+        name = "com_github_codegangsta_negroni",
+        importpath = "github.com/codegangsta/negroni",
+        sum = "h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_container_storage_interface_spec",
         importpath = "github.com/container-storage-interface/spec",
-        version = "v1.2.0",
-        sum = "h1:bD9KIVgaVKKkQ/UbVUY9kCaH/CJbhNxe0eeB4JeJV2s=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:lvKxe3uLgqQeVQcrnL2CPQKISoKjTJxojEs9cBk+HXo=",
+        version = "v1.5.0",
     )
     go_repository(
+        name = "com_github_containerd_aufs",
+        importpath = "github.com/containerd/aufs",
+        sum = "h1:2oeJiwX5HstO7shSrPZjrohJZLzK36wvpdmzDRkL/LY=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_containerd_btrfs",
         importpath = "github.com/containerd/btrfs",
-        version = "v0.0.0-20201111183144-404b9149801e",
-        sum = "h1:chFw/cg0TDyK43qm8DKbblny2WHc4ML+j1KOkdEp9pI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:osn1exbzdub9L5SouXO5swW4ea/xVdJZ3wokxN5GrnA=",
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_containerd_cgroups",
-        importpath = "github.com/containerd/cgroups",
-        version = "v0.0.0-20200710171044-318312a37340",
-        sum = "h1:9atoWyI9RtXFwf7UDbme/6M8Ud0rFrx+Q3ZWgSnsxtw=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "github.com/containerd/cgroups",
+        sum = "h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4=",
+        version = "v1.0.3",
     )
     go_repository(
         name = "com_github_containerd_console",
         importpath = "github.com/containerd/console",
-        version = "v1.0.0",
-        sum = "h1:fU3UuQapBs+zLJu82NhR11Rif1ny2zfMMAyPJzSN5tQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=",
+        version = "v1.0.3",
     )
     go_repository(
         name = "com_github_containerd_containerd",
-        importpath = "github.com/containerd/containerd",
-        version = "v1.4.3",
-        sum = "h1:ijQT13JedHSHrQGWFcGEwzcNKrAGIiZ+jSD5QQG07SY=",
         build_file_proto_mode = "disable",
-        build_tags = [
-            "no_zfs",
-            "no_aufs",
-            "no_devicemapper",
-            "no_btrfs",
+        importpath = "github.com/containerd/containerd",
+        patch_args = ["-p1"],
+        pre_patches = [
+            "//third_party/go/patches:containerd-no-tracing.patch",
         ],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:oa2uY0/0G+JX4X7hpGCYvkp9FjUancz56kSNnb1sG3o=",
+        version = "v1.6.1",
     )
     go_repository(
         name = "com_github_containerd_continuity",
         importpath = "github.com/containerd/continuity",
-        version = "v0.0.0-20200710164510-efbc4488d8fe",
-        sum = "h1:PEmIrUvwG9Yyv+0WKZqjXfSFDeZjs/q15g0m08BYS9k=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
-    go_repository(
-        name = "com_github_containerd_cri",
-        importpath = "github.com/containerd/cri",
-        version = "v1.19.1-0.20201126003523-adc0b6a578ed",
-        sum = "h1:M2yIwrNSafh4rW/yXAiAlSqpydW7vjvDjZ0ClMb+EMQ=",
-        build_file_proto_mode = "disable",
-        patches = [
-            "//third_party/go/patches:containerd-netns-statedir.patch",
-        ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA=",
+        version = "v0.2.2",
     )
     go_repository(
         name = "com_github_containerd_fifo",
         importpath = "github.com/containerd/fifo",
-        version = "v0.0.0-20200410184934-f15a3290365b",
-        sum = "h1:qUtCegLdOUVfVJOw+KDg6eJyE1TGvLlkGEd1091kSSQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU=",
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_containerd_go_cni",
         importpath = "github.com/containerd/go-cni",
-        version = "v1.0.1",
-        sum = "h1:VXr2EkOPD0v1gu7CKfof6XzEIDzsE/dI9yj/W7PSWLs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:t0MQwrtM96SH71Md8tH0uKrVE9v+jxkDTbvFSm3B9VE=",
+        version = "v1.1.3",
     )
     go_repository(
         name = "com_github_containerd_go_runc",
         importpath = "github.com/containerd/go-runc",
-        version = "v0.0.0-20200220073739-7016d3ce2328",
-        sum = "h1:PRTagVMbJcCezLcHXe8UJvR1oBzp2lG3CEumeFOLOds=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0=",
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_containerd_imgcrypt",
         importpath = "github.com/containerd/imgcrypt",
-        version = "v1.0.1",
-        sum = "h1:IyI3IIP4m6zrNFuNFT7HizGVcuD6BYJFpdM1JvPKCbQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:69UKRsA3Q/lAwo2eDzWshdjimqhmprrWXfNtBeO0fBc=",
+        version = "v1.1.3",
     )
     go_repository(
+        name = "com_github_containerd_nri",
+        importpath = "github.com/containerd/nri",
+        sum = "h1:6QioHRlThlKh2RkRTR4kIT3PKAcrLo3gIWnjkM4dQmQ=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_containerd_stargz_snapshotter_estargz",
+        importpath = "github.com/containerd/stargz-snapshotter/estargz",
+        sum = "h1:5e7heayhB7CcgdTkqfZqrNaNv15gABwr3Q2jBTbLlt4=",
+        version = "v0.4.1",
+    )
+
+    go_repository(
         name = "com_github_containerd_ttrpc",
         importpath = "github.com/containerd/ttrpc",
-        version = "v1.0.2-0.20210119122237-222b428f008e",
-        sum = "h1:+Fbjfo26pg4HtkAw9sC/YhUwaAb16355o/J/oHkyCDc=",
         replace = "github.com/monogon-dev/ttrpc",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:+Fbjfo26pg4HtkAw9sC/YhUwaAb16355o/J/oHkyCDc=",
+        version = "v1.0.2-0.20210119122237-222b428f008e",
     )
     go_repository(
         name = "com_github_containerd_typeurl",
         importpath = "github.com/containerd/typeurl",
-        version = "v1.0.1",
-        sum = "h1:PvuK4E3D5S5q6IqsPDCy928FhP0LUIGcmZ/Yhgp5Djw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=",
+        version = "v1.0.2",
     )
     go_repository(
+        name = "com_github_containerd_zfs",
+        importpath = "github.com/containerd/zfs",
+        sum = "h1:cXLJbx+4Jj7rNsTiqVfm6i+RNLx6FFA2fMmDlEf+Wm8=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_containernetworking_cni",
         importpath = "github.com/containernetworking/cni",
-        version = "v0.8.0",
-        sum = "h1:BT9lpgGoH4jw3lFC7Odz2prU5ruiYKcgAjMCbgybcKI=",
+        patch_args = ["-p1"],
         patches = [
             "//third_party/go/patches:cni-fix-cachepath.patch",
         ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:9OIL/sZmMYDBe+G8svzILAlulUpaDTUjeAbtH/JNLBo=",
+        version = "v1.0.1",
     )
     go_repository(
         name = "com_github_containernetworking_plugins",
         importpath = "github.com/containernetworking/plugins",
-        version = "v0.8.2",
-        sum = "h1:5lnwfsAYO+V7yXhysJKy3E1A2Gy9oVut031zfdOzI9w=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:wwCfYbTCj5FC0EJgyzyjTXmqysOiJE9r712Z+2KVZAk=",
+        version = "v1.0.1",
     )
     go_repository(
         name = "com_github_containers_ocicrypt",
         importpath = "github.com/containers/ocicrypt",
-        version = "v1.0.1",
-        sum = "h1:EToign46OSLTFWnb2oNj9RG3XDnkOX8r28ZIXUuk5Pc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Ez+GAMP/4GLix5Ywo/fL7O0nY771gsBIigiqUm1aXz0=",
+        version = "v1.1.2",
     )
     go_repository(
+        name = "com_github_coredns_caddy",
+        importpath = "github.com/coredns/caddy",
+        sum = "h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0=",
+        version = "v1.1.1",
+    )
+
+    go_repository(
         name = "com_github_coredns_coredns",
         importpath = "github.com/coredns/coredns",
-        version = "v1.7.0",
-        sum = "h1:Tm2ZSdhTk+4okgjUp4K6KYzvBI2u34cdD4fKQRC4Eeo=",
+        patch_args = ["-p1"],
         pre_patches = [
             "//third_party/go/patches:coredns-remove-unused-plugins.patch",
         ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:m57Yuyjby5TEwHxKFAjx0q9Tj6r1coH2oRrEO4CVZdM=",
+        version = "v1.9.1",
     )
     go_repository(
+        name = "com_github_coredns_corefile_migration",
+        importpath = "github.com/coredns/corefile-migration",
+        sum = "h1:Tz3WZhoj2NdP8drrQH86NgnCng+VrPjNeg2Oe1ALKag=",
+        version = "v1.0.14",
+    )
+    go_repository(
+        name = "com_github_coreos_bbolt",
+        importpath = "github.com/coreos/bbolt",
+        sum = "h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s=",
+        version = "v1.3.2",
+    )
+    go_repository(
+        name = "com_github_coreos_etcd",
+        importpath = "github.com/coreos/etcd",
+        sum = "h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ=",
+        version = "v3.3.13+incompatible",
+    )
+    go_repository(
+        name = "com_github_coreos_go_etcd",
+        importpath = "github.com/coreos/go-etcd",
+        sum = "h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo=",
+        version = "v2.0.0+incompatible",
+    )
+
+    go_repository(
         name = "com_github_coreos_go_iptables",
         importpath = "github.com/coreos/go-iptables",
-        version = "v0.4.2",
-        sum = "h1:KH0EwId05JwWIfb96gWvkiT2cbuOu8ygqUaB+yPAwIg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk=",
+        version = "v0.6.0",
     )
     go_repository(
         name = "com_github_coreos_go_oidc",
         importpath = "github.com/coreos/go-oidc",
-        version = "v2.1.0+incompatible",
         sum = "h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.1.0+incompatible",
     )
     go_repository(
         name = "com_github_coreos_go_semver",
         importpath = "github.com/coreos/go-semver",
-        version = "v0.3.0",
         sum = "h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.3.0",
     )
     go_repository(
         name = "com_github_coreos_go_systemd",
         importpath = "github.com/coreos/go-systemd",
-        version = "v0.0.0-20190321100706-95778dfbb74e",
-        sum = "h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:W8b4lQ4tFF21aspRGoBuCNV6V2fFJBF+pm1J6OY8Lys=",
+        version = "v0.0.0-20190620071333-e64a0ec8b42a",
     )
     go_repository(
         name = "com_github_coreos_go_systemd_v22",
         importpath = "github.com/coreos/go-systemd/v22",
-        version = "v22.1.0",
-        sum = "h1:kq/SbG2BCKLkDKkjQf5OWwKWUKj1lgs3lFI4PxnR5lg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=",
+        version = "v22.3.2",
     )
     go_repository(
         name = "com_github_coreos_pkg",
         importpath = "github.com/coreos/pkg",
-        version = "v0.0.0-20180928190104-399ea9e2e55f",
         sum = "h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20180928190104-399ea9e2e55f",
     )
     go_repository(
         name = "com_github_corverroos_commentwrap",
         importpath = "github.com/corverroos/commentwrap",
-        version = "v0.0.0-20191204065359-2926638be44c",
         sum = "h1:toeMwwechJKH0iwOoGJLZK6x42Ba9si+816KxqmgFc8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20191204065359-2926638be44c",
     )
+
     go_repository(
         name = "com_github_cosiner_argv",
         importpath = "github.com/cosiner/argv",
-        version = "v0.0.0-20170225145430-13bacc38a0a5",
-        sum = "h1:rIXlvz2IWiupMFlC45cZCXZFvKX/ExBcSLrDy2G0Lp8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=",
+        version = "v0.1.0",
     )
     go_repository(
+        name = "com_github_cpuguy83_go_md2man",
+        importpath = "github.com/cpuguy83/go-md2man",
+        sum = "h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk=",
+        version = "v1.0.10",
+    )
+
+    go_repository(
         name = "com_github_cpuguy83_go_md2man_v2",
         importpath = "github.com/cpuguy83/go-md2man/v2",
-        version = "v2.0.0",
-        sum = "h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU=",
+        version = "v2.0.1",
     )
     go_repository(
+        name = "com_github_creack_pty",
+        importpath = "github.com/creack/pty",
+        sum = "h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=",
+        version = "v1.1.11",
+    )
+
+    go_repository(
         name = "com_github_cyphar_filepath_securejoin",
         importpath = "github.com/cyphar/filepath-securejoin",
-        version = "v0.2.2",
-        sum = "h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=",
+        version = "v0.2.3",
     )
     go_repository(
+        name = "com_github_d2g_dhcp4",
+        importpath = "github.com/d2g/dhcp4",
+        sum = "h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc=",
+        version = "v0.0.0-20170904100407-a1d1b6c41b1c",
+    )
+    go_repository(
+        name = "com_github_d2g_dhcp4client",
+        importpath = "github.com/d2g/dhcp4client",
+        sum = "h1:suYBsYZIkSlUMEz4TAYCczKf62IA2UWC+O8+KtdOhCo=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_d2g_dhcp4server",
+        importpath = "github.com/d2g/dhcp4server",
+        sum = "h1:+CpLbZIeUn94m02LdEKPcgErLJ347NUwxPKs5u8ieiY=",
+        version = "v0.0.0-20181031114812-7d4a0a7f59a5",
+    )
+    go_repository(
+        name = "com_github_d2g_hardwareaddr",
+        importpath = "github.com/d2g/hardwareaddr",
+        sum = "h1:itqmmf1PFpC4n5JW+j4BU7X4MTfVurhYRTjODoPb2Y8=",
+        version = "v0.0.0-20190221164911-e7d9fbe030e4",
+    )
+    go_repository(
+        name = "com_github_datadog_datadog_agent_pkg_obfuscate",
+        importpath = "github.com/DataDog/datadog-agent/pkg/obfuscate",
+        sum = "h1:3nVO1nQyh64IUY6BPZUpMYMZ738Pu+LsMt3E0eqqIYw=",
+        version = "v0.0.0-20211129110424-6491aa3bf583",
+    )
+    go_repository(
+        name = "com_github_datadog_datadog_go",
+        importpath = "github.com/DataDog/datadog-go",
+        sum = "h1:qbcKSx29aBLD+5QLvlQZlGmRMF/FfGqFLFev/1TDzRo=",
+        version = "v4.8.2+incompatible",
+    )
+    go_repository(
+        name = "com_github_datadog_datadog_go_v5",
+        importpath = "github.com/DataDog/datadog-go/v5",
+        sum = "h1:UFtEe7662/Qojxkw1d6SboAeA0CPI3naKhVASwFn+04=",
+        version = "v5.0.2",
+    )
+    go_repository(
+        name = "com_github_datadog_gostackparse",
+        importpath = "github.com/DataDog/gostackparse",
+        sum = "h1:jb72P6GFHPHz2W0onsN51cS3FkaMDcjb0QzgxxA4gDk=",
+        version = "v0.5.0",
+    )
+    go_repository(
+        name = "com_github_datadog_sketches_go",
+        importpath = "github.com/DataDog/sketches-go",
+        sum = "h1:chm5KSXO7kO+ywGWJ0Zs6tdmWU8PBXSbywFVciL6BG4=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_davecgh_go_spew",
         importpath = "github.com/davecgh/go-spew",
-        version = "v1.1.1",
         sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.1.1",
     )
     go_repository(
         name = "com_github_daviddengcn_go_colortext",
         importpath = "github.com/daviddengcn/go-colortext",
-        version = "v0.0.0-20160507010035-511bcaf42ccd",
         sum = "h1:uVsMphB1eRx7xB1njzL3fuMdWRN8HtVzoUOItHMwv5c=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20160507010035-511bcaf42ccd",
     )
     go_repository(
+        name = "com_github_denverdino_aliyungo",
+        importpath = "github.com/denverdino/aliyungo",
+        sum = "h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4=",
+        version = "v0.0.0-20190125010748-a747050bb1ba",
+    )
+    go_repository(
+        name = "com_github_derekparker_trie",
+        importpath = "github.com/derekparker/trie",
+        sum = "h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=",
+        version = "v0.0.0-20200317170641-1fdf38b7b0e9",
+    )
+    go_repository(
+        name = "com_github_devigned_tab",
+        importpath = "github.com/devigned/tab",
+        sum = "h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA=",
+        version = "v0.1.1",
+    )
+    go_repository(
+        name = "com_github_dgraph_io_ristretto",
+        importpath = "github.com/dgraph-io/ristretto",
+        sum = "h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI=",
+        version = "v0.1.0",
+    )
+
+    go_repository(
         name = "com_github_dgrijalva_jwt_go",
         importpath = "github.com/dgrijalva/jwt-go",
-        version = "v3.2.0+incompatible",
         sum = "h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v3.2.0+incompatible",
     )
     go_repository(
+        name = "com_github_dgryski_go_farm",
+        importpath = "github.com/dgryski/go-farm",
+        sum = "h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=",
+        version = "v0.0.0-20190423205320-6a90982ecee2",
+    )
+    go_repository(
+        name = "com_github_dgryski_go_sip13",
+        importpath = "github.com/dgryski/go-sip13",
+        sum = "h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4=",
+        version = "v0.0.0-20181026042036-e10d5fee7954",
+    )
+    go_repository(
+        name = "com_github_dimchansky_utfbom",
+        importpath = "github.com/dimchansky/utfbom",
+        sum = "h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=",
+        version = "v1.1.1",
+    )
+
+    go_repository(
         name = "com_github_diskfs_go_diskfs",
         importpath = "github.com/diskfs/go-diskfs",
-        version = "v1.2.0",
         sum = "h1:Ow4xorEDw1VNYKbC+SA/qQNwi5gWIwdKUxmUcLFST24=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.2.0",
     )
     go_repository(
+        name = "com_github_dnaeon_go_vcr",
+        importpath = "github.com/dnaeon/go-vcr",
+        sum = "h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY=",
+        version = "v1.0.1",
+    )
+
+    go_repository(
         name = "com_github_dnstap_golang_dnstap",
         importpath = "github.com/dnstap/golang-dnstap",
-        version = "v0.2.0",
-        sum = "h1:+NrmP4mkaTeKYV7xJ5FXpUxRn0RpcgoQcsOCTS8WQPk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:KRHBoURygdGtBjDI2w4HifJfMAhhOqDuktAokaSa234=",
+        version = "v0.4.0",
     )
     go_repository(
+        name = "com_github_docker_cli",
+        importpath = "github.com/docker/cli",
+        sum = "h1:2HQmlpI3yI9deH18Q6xiSOIjXD4sLI55Y/gfpa8/558=",
+        version = "v0.0.0-20191017083524-a8ff7f821017",
+    )
+
+    go_repository(
         name = "com_github_docker_distribution",
         importpath = "github.com/docker/distribution",
-        version = "v2.7.1+incompatible",
-        sum = "h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:l9EaZDICImO1ngI+uTifW+ZYvvz7fKISBAKpg+MbWbY=",
+        version = "v2.8.0+incompatible",
     )
     go_repository(
         name = "com_github_docker_docker",
         importpath = "github.com/docker/docker",
-        version = "v17.12.0-ce-rc1.0.20200310163718-4634ce647cf2+incompatible",
-        sum = "h1:ax4NateCD5bjRTqLvQBlFrSUPOoZRgEXWpJ6Bmu6OO0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:CEeNmFM0QZIsJCZKMkZx0ZcahTiewkrgiwfYD+dfl1U=",
+        version = "v20.10.12+incompatible",
     )
     go_repository(
+        name = "com_github_docker_docker_credential_helpers",
+        importpath = "github.com/docker/docker-credential-helpers",
+        sum = "h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ=",
+        version = "v0.6.3",
+    )
+
+    go_repository(
         name = "com_github_docker_go_connections",
         importpath = "github.com/docker/go-connections",
-        version = "v0.4.0",
         sum = "h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.4.0",
     )
     go_repository(
         name = "com_github_docker_go_events",
         importpath = "github.com/docker/go-events",
-        version = "v0.0.0-20190806004212-e31b211e4f1c",
         sum = "h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20190806004212-e31b211e4f1c",
     )
     go_repository(
         name = "com_github_docker_go_metrics",
         importpath = "github.com/docker/go-metrics",
-        version = "v0.0.1",
         sum = "h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.1",
     )
     go_repository(
         name = "com_github_docker_go_units",
         importpath = "github.com/docker/go-units",
-        version = "v0.4.0",
         sum = "h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.4.0",
     )
+
     go_repository(
-        name = "com_github_docker_spdystream",
-        importpath = "github.com/docker/spdystream",
-        version = "v0.0.0-20160310174837-449fdfce4d96",
-        sum = "h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_docker_libtrust",
+        importpath = "github.com/docker/libtrust",
+        sum = "h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4=",
+        version = "v0.0.0-20150114040149-fa567046d9b1",
     )
+
+    go_repository(
+        name = "com_github_docopt_docopt_go",
+        importpath = "github.com/docopt/docopt-go",
+        sum = "h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=",
+        version = "v0.0.0-20180111231733-ee0de3bc6815",
+    )
+
     go_repository(
         name = "com_github_dustin_go_humanize",
         importpath = "github.com/dustin/go-humanize",
-        version = "v1.0.0",
         sum = "h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
+        name = "com_github_eapache_go_resiliency",
+        importpath = "github.com/eapache/go-resiliency",
+        sum = "h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_eapache_go_xerial_snappy",
+        importpath = "github.com/eapache/go-xerial-snappy",
+        sum = "h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=",
+        version = "v0.0.0-20180814174437-776d5712da21",
+    )
+    go_repository(
+        name = "com_github_eapache_queue",
+        importpath = "github.com/eapache/queue",
+        sum = "h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_edsrzf_mmap_go",
+        importpath = "github.com/edsrzf/mmap-go",
+        sum = "h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_elazarl_goproxy",
         importpath = "github.com/elazarl/goproxy",
-        version = "v0.0.0-20180725130230-947c36da3153",
         sum = "h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20180725130230-947c36da3153",
     )
     go_repository(
         name = "com_github_emicklei_go_restful",
         importpath = "github.com/emicklei/go-restful",
-        version = "v2.9.5+incompatible",
         sum = "h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.9.5+incompatible",
     )
     go_repository(
+        name = "com_github_emirpasic_gods",
+        importpath = "github.com/emirpasic/gods",
+        sum = "h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=",
+        version = "v1.12.0",
+    )
+    go_repository(
+        name = "com_github_envoyproxy_go_control_plane",
+        importpath = "github.com/envoyproxy/go-control-plane",
+        sum = "h1:fP+fF0up6oPY49OrjPrhIJ8yQfdIM85NXMLkMg1EXVs=",
+        version = "v0.9.10-0.20210907150352-cf90f659a021",
+    )
+    go_repository(
+        name = "com_github_envoyproxy_protoc_gen_validate",
+        importpath = "github.com/envoyproxy/protoc-gen-validate",
+        sum = "h1:bV5JGEB1ouEzZa0hgVDFFiClrUEuGWRaAc/3mxR2QK0=",
+        version = "v0.3.0-java",
+    )
+    go_repository(
+        name = "com_github_etcd_io_gofail",
+        importpath = "github.com/etcd-io/gofail",
+        sum = "h1:Y2I0lxOttdUKz+hNaIdG3FtjuQrTmwXun1opRV65IZc=",
+        version = "v0.0.0-20190801230047-ad7f989257ca",
+    )
+
+    go_repository(
         name = "com_github_euank_go_kmsg_parser",
         importpath = "github.com/euank/go-kmsg-parser",
-        version = "v2.0.0+incompatible",
         sum = "h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.0.0+incompatible",
     )
     go_repository(
         name = "com_github_evanphx_json_patch",
         importpath = "github.com/evanphx/json-patch",
-        version = "v4.9.0+incompatible",
-        sum = "h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=",
+        version = "v4.12.0+incompatible",
     )
     go_repository(
         name = "com_github_exponent_io_jsonpath",
         importpath = "github.com/exponent-io/jsonpath",
-        version = "v0.0.0-20151013193312-d6023ce2651d",
         sum = "h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20151013193312-d6023ce2651d",
     )
     go_repository(
+        name = "com_github_fanliao_go_promise",
+        importpath = "github.com/fanliao/go-promise",
+        sum = "h1:0eU/faU2oDIB2BkQVM02hgRLJjGzzUuRf19HUhp0394=",
+        version = "v0.0.0-20141029170127-1890db352a72",
+    )
+
+    go_repository(
         name = "com_github_farsightsec_golang_framestream",
         importpath = "github.com/farsightsec/golang-framestream",
-        version = "v0.0.0-20190425193708-fa4b164d59b8",
-        sum = "h1:/iPdQppoAsTfML+yqFSq2EBChiEMnRkh5WvhFgtWwcU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:/spFQHucTle/ZIPkYqrfshQqPe2VQEzesH243TjIwqA=",
+        version = "v0.3.0",
     )
     go_repository(
         name = "com_github_fatih_camelcase",
         importpath = "github.com/fatih/camelcase",
-        version = "v1.0.0",
         sum = "h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_fatih_color",
         importpath = "github.com/fatih/color",
-        version = "v1.7.0",
-        sum = "h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=",
+        version = "v1.9.0",
     )
     go_repository(
+        name = "com_github_felixge_httpsnoop",
+        importpath = "github.com/felixge/httpsnoop",
+        sum = "h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=",
+        version = "v1.0.1",
+    )
+
+    go_repository(
         name = "com_github_flynn_go_shlex",
         importpath = "github.com/flynn/go-shlex",
-        version = "v0.0.0-20150515145356-3f9db97f8568",
         sum = "h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20150515145356-3f9db97f8568",
     )
     go_repository(
+        name = "com_github_fogleman_gg",
+        importpath = "github.com/fogleman/gg",
+        sum = "h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg=",
+        version = "v1.2.1-0.20190220221249-0403632d5b90",
+    )
+    go_repository(
+        name = "com_github_form3tech_oss_jwt_go",
+        importpath = "github.com/form3tech-oss/jwt-go",
+        sum = "h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c=",
+        version = "v3.2.3+incompatible",
+    )
+    go_repository(
+        name = "com_github_fortytw2_leaktest",
+        importpath = "github.com/fortytw2/leaktest",
+        sum = "h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "com_github_franela_goblin",
+        importpath = "github.com/franela/goblin",
+        sum = "h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw=",
+        version = "v0.0.0-20200105215937-c9ffbefa60db",
+    )
+    go_repository(
+        name = "com_github_franela_goreq",
+        importpath = "github.com/franela/goreq",
+        sum = "h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54=",
+        version = "v0.0.0-20171204163338-bcd34c9993f8",
+    )
+    go_repository(
+        name = "com_github_frankban_quicktest",
+        importpath = "github.com/frankban/quicktest",
+        sum = "h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=",
+        version = "v1.11.3",
+    )
+    go_repository(
+        name = "com_github_fsnotify_fsnotify",
+        importpath = "github.com/fsnotify/fsnotify",
+        sum = "h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=",
+        version = "v1.5.1",
+    )
+
+    go_repository(
         name = "com_github_fullsailor_pkcs7",
         importpath = "github.com/fullsailor/pkcs7",
-        version = "v0.0.0-20180613152042-8306686428a5",
-        sum = "h1:v+vxrd9XS8uWIXG2RK0BHCnXc30qLVQXVqbK+IOmpXk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU=",
+        version = "v0.0.0-20190404230743-d7302db945fa",
     )
     go_repository(
+        name = "com_github_fullstorydev_grpcurl",
+        importpath = "github.com/fullstorydev/grpcurl",
+        sum = "h1:2II5e++aFnctnPJir3GL6cPSwF69Ord1u/9O+fv1vrI=",
+        version = "v1.8.2",
+    )
+    go_repository(
+        name = "com_github_fvbommel_sortorder",
+        importpath = "github.com/fvbommel/sortorder",
+        sum = "h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_garyburd_redigo",
+        importpath = "github.com/garyburd/redigo",
+        sum = "h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko=",
+        version = "v0.0.0-20150301180006-535138d7bcd7",
+    )
+    go_repository(
+        name = "com_github_getkin_kin_openapi",
+        importpath = "github.com/getkin/kin-openapi",
+        sum = "h1:j77zg3Ec+k+r+GA3d8hBoXpAc6KX9TbBPrwQGBIy2sY=",
+        version = "v0.76.0",
+    )
+    go_repository(
+        name = "com_github_getsentry_raven_go",
+        importpath = "github.com/getsentry/raven-go",
+        sum = "h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=",
+        version = "v0.2.0",
+    )
+
+    go_repository(
         name = "com_github_ghodss_yaml",
         importpath = "github.com/ghodss/yaml",
-        version = "v1.0.0",
         sum = "h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
+        name = "com_github_gin_contrib_sse",
+        importpath = "github.com/gin-contrib/sse",
+        sum = "h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_gin_gonic_gin",
+        importpath = "github.com/gin-gonic/gin",
+        sum = "h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc=",
+        version = "v1.5.0",
+    )
+    go_repository(
+        name = "com_github_gliderlabs_ssh",
+        importpath = "github.com/gliderlabs/ssh",
+        sum = "h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=",
+        version = "v0.2.2",
+    )
+    go_repository(
+        name = "com_github_globalsign_mgo",
+        importpath = "github.com/globalsign/mgo",
+        sum = "h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is=",
+        version = "v0.0.0-20181015135952-eeefdecb41b8",
+    )
+    go_repository(
+        name = "com_github_go_acme_lego",
+        importpath = "github.com/go-acme/lego",
+        sum = "h1:5fNN9yRQfv8ymH3DSsxla+4aYeQt2IgfZqHKVnK8f0s=",
+        version = "v2.5.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_go_bindata_go_bindata",
+        importpath = "github.com/go-bindata/go-bindata",
+        sum = "h1:tR4f0e4VTO7LK6B2YWyAoVEzG9ByG1wrXB4TL9+jiYg=",
+        version = "v3.1.1+incompatible",
+    )
+
+    go_repository(
         name = "com_github_go_delve_delve",
         importpath = "github.com/go-delve/delve",
-        version = "v1.4.1",
-        sum = "h1:kZs0umEv+VKnK84kY9/ZXWrakdLTeRTyYjFdgLelZCQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        patch_args = ["-p1"],
+        patches = [
+            "//third_party/go/patches:delve-fix-cgo.patch",
         ],
+        sum = "h1:gsRTPR3Yi61RpeuCFvJb6vIxB3xABx6pnNKGISxdsSU=",
+        version = "v1.8.2",
     )
     go_repository(
+        name = "com_github_go_delve_liner",
+        importpath = "github.com/go-delve/liner",
+        sum = "h1:0hGpZh6vjI6LFTlXuHFCX9PebaluzDzps2owdMrrSuk=",
+        version = "v1.2.2-1",
+    )
+    go_repository(
+        name = "com_github_go_errors_errors",
+        importpath = "github.com/go-errors/errors",
+        sum = "h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_go_gl_glfw",
+        importpath = "github.com/go-gl/glfw",
+        sum = "h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0=",
+        version = "v0.0.0-20190409004039-e6da0acd62b1",
+    )
+    go_repository(
+        name = "com_github_go_gl_glfw_v3_3_glfw",
+        importpath = "github.com/go-gl/glfw/v3.3/glfw",
+        sum = "h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I=",
+        version = "v0.0.0-20200222043503-6f7a984d4dc4",
+    )
+    go_repository(
+        name = "com_github_go_ini_ini",
+        importpath = "github.com/go-ini/ini",
+        sum = "h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo=",
+        version = "v1.25.4",
+    )
+    go_repository(
+        name = "com_github_go_kit_kit",
+        importpath = "github.com/go-kit/kit",
+        sum = "h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo=",
+        version = "v0.10.0",
+    )
+    go_repository(
+        name = "com_github_go_kit_log",
+        importpath = "github.com/go-kit/log",
+        sum = "h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ=",
+        version = "v0.1.0",
+    )
+
+    go_repository(
+        name = "com_github_go_logfmt_logfmt",
+        importpath = "github.com/go-logfmt/logfmt",
+        sum = "h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4=",
+        version = "v0.5.0",
+    )
+
+    go_repository(
         name = "com_github_go_logr_logr",
         importpath = "github.com/go-logr/logr",
-        version = "v0.2.0",
-        sum = "h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs=",
+        version = "v1.2.2",
     )
     go_repository(
+        name = "com_github_go_logr_stdr",
+        importpath = "github.com/go-logr/stdr",
+        sum = "h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=",
+        version = "v1.2.2",
+    )
+    go_repository(
+        name = "com_github_go_logr_zapr",
+        importpath = "github.com/go-logr/zapr",
+        sum = "h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=",
+        version = "v1.2.0",
+    )
+
+    go_repository(
         name = "com_github_go_openapi_analysis",
         importpath = "github.com/go-openapi/analysis",
-        version = "v0.19.5",
         sum = "h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.5",
     )
     go_repository(
         name = "com_github_go_openapi_errors",
         importpath = "github.com/go-openapi/errors",
-        version = "v0.19.2",
         sum = "h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.2",
     )
     go_repository(
         name = "com_github_go_openapi_jsonpointer",
         importpath = "github.com/go-openapi/jsonpointer",
-        version = "v0.19.3",
-        sum = "h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=",
+        version = "v0.19.5",
     )
     go_repository(
         name = "com_github_go_openapi_jsonreference",
         importpath = "github.com/go-openapi/jsonreference",
-        version = "v0.19.3",
-        sum = "h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=",
+        version = "v0.19.5",
     )
     go_repository(
         name = "com_github_go_openapi_loads",
         importpath = "github.com/go-openapi/loads",
-        version = "v0.19.4",
         sum = "h1:5I4CCSqoWzT+82bBkNIvmLc0UOsoKKQ4Fz+3VxOB7SY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.4",
     )
     go_repository(
         name = "com_github_go_openapi_runtime",
         importpath = "github.com/go-openapi/runtime",
-        version = "v0.19.4",
         sum = "h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.4",
     )
     go_repository(
         name = "com_github_go_openapi_spec",
         importpath = "github.com/go-openapi/spec",
-        version = "v0.19.3",
         sum = "h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.3",
     )
     go_repository(
         name = "com_github_go_openapi_strfmt",
         importpath = "github.com/go-openapi/strfmt",
-        version = "v0.19.3",
         sum = "h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.3",
     )
     go_repository(
         name = "com_github_go_openapi_swag",
         importpath = "github.com/go-openapi/swag",
-        version = "v0.19.5",
-        sum = "h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng=",
+        version = "v0.19.14",
     )
     go_repository(
         name = "com_github_go_openapi_validate",
         importpath = "github.com/go-openapi/validate",
-        version = "v0.19.5",
         sum = "h1:QhCBKRYqZR+SKo4gl1lPhPahope8/RLt6EVgY8X80w0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.19.5",
     )
     go_repository(
+        name = "com_github_go_ozzo_ozzo_validation",
+        importpath = "github.com/go-ozzo/ozzo-validation",
+        sum = "h1:sUy/in/P6askYr16XJgTKq/0SZhiWsdg4WZGaLsGQkM=",
+        version = "v3.5.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_go_playground_locales",
+        importpath = "github.com/go-playground/locales",
+        sum = "h1:2FITxuFt/xuCNP1Acdhv62OzaCiviiE4kotfhkmOqEc=",
+        version = "v0.12.1",
+    )
+    go_repository(
+        name = "com_github_go_playground_universal_translator",
+        importpath = "github.com/go-playground/universal-translator",
+        sum = "h1:X++omBR/4cE2MNg91AoC3rmGrCjJ8eAeUP/K/EKx4DM=",
+        version = "v0.16.0",
+    )
+    go_repository(
+        name = "com_github_go_redis_redis",
+        importpath = "github.com/go-redis/redis",
+        sum = "h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg=",
+        version = "v6.15.9+incompatible",
+    )
+    go_repository(
+        name = "com_github_go_sql_driver_mysql",
+        importpath = "github.com/go-sql-driver/mysql",
+        sum = "h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=",
+        version = "v1.6.0",
+    )
+
+    go_repository(
         name = "com_github_go_stack_stack",
         importpath = "github.com/go-stack/stack",
-        version = "v1.8.0",
         sum = "h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.8.0",
     )
+
+    go_repository(
+        name = "com_github_godbus_dbus",
+        importpath = "github.com/godbus/dbus",
+        sum = "h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8=",
+        version = "v0.0.0-20190422162347-ade71ed3457e",
+    )
+
     go_repository(
         name = "com_github_godbus_dbus_v5",
         importpath = "github.com/godbus/dbus/v5",
-        version = "v5.0.3",
-        sum = "h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro=",
+        version = "v5.0.6",
     )
     go_repository(
         name = "com_github_gofrs_flock",
         importpath = "github.com/gofrs/flock",
-        version = "v0.8.0",
         sum = "h1:MSdYClljsF3PbENUUEx85nkWfJSGfzYI9yEBZOJz6CY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.8.0",
     )
     go_repository(
+        name = "com_github_gofrs_uuid",
+        importpath = "github.com/gofrs/uuid",
+        sum = "h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=",
+        version = "v4.0.0+incompatible",
+    )
+
+    go_repository(
         name = "com_github_gogo_googleapis",
-        importpath = "github.com/gogo/googleapis",
-        version = "v1.3.2",
-        sum = "h1:kX1es4djPJrsDhY7aZKJy7aZasdcB5oSOEphMjSB53c=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "github.com/gogo/googleapis",
+        sum = "h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI=",
+        version = "v1.4.0",
     )
     go_repository(
         name = "com_github_gogo_protobuf",
+        build_file_proto_mode = "disable",
         importpath = "github.com/gogo/protobuf",
-        version = "v1.3.1",
-        sum = "h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=",
+        version = "v1.3.2",
     )
     go_repository(
+        name = "com_github_golang_freetype",
+        importpath = "github.com/golang/freetype",
+        sum = "h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=",
+        version = "v0.0.0-20170609003504-e2365dfdc4a0",
+    )
+    go_repository(
+        name = "com_github_golang_glog",
+        importpath = "github.com/golang/glog",
+        sum = "h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_golang_groupcache",
         importpath = "github.com/golang/groupcache",
-        version = "v0.0.0-20191227052852-215e87163ea7",
-        sum = "h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=",
+        version = "v0.0.0-20210331224755-41bb18bfe9da",
     )
     go_repository(
+        name = "com_github_golang_jwt_jwt_v4",
+        importpath = "github.com/golang-jwt/jwt/v4",
+        sum = "h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU=",
+        version = "v4.2.0",
+    )
+    go_repository(
+        name = "com_github_golang_mock",
+        importpath = "github.com/golang/mock",
+        sum = "h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=",
+        version = "v1.6.0",
+    )
+    go_repository(
+        name = "com_github_golang_protobuf",
+        importpath = "github.com/golang/protobuf",
+        sum = "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=",
+        version = "v1.5.2",
+    )
+    go_repository(
+        name = "com_github_golang_snappy",
+        importpath = "github.com/golang/snappy",
+        sum = "h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=",
+        version = "v0.0.4",
+    )
+
+    go_repository(
+        name = "com_github_golangplus_testing",
+        importpath = "github.com/golangplus/testing",
+        sum = "h1:KhcknUwkWHKZPbFy2P7jH5LKJ3La+0ZeknkkmrSgqb0=",
+        version = "v0.0.0-20180327235837-af21d9c3145e",
+    )
+
+    go_repository(
         name = "com_github_google_btree",
         importpath = "github.com/google/btree",
-        version = "v1.0.0",
-        sum = "h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=",
+        version = "v1.0.1",
     )
     go_repository(
         name = "com_github_google_cadvisor",
         importpath = "github.com/google/cadvisor",
-        version = "v0.37.3",
-        sum = "h1:qsH/np74sg1/tEe+bn+e2JIPFxrw6En3gCVuQdolc74=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:523mBK94XHKAsU1TIQl/tYoPyYpWQdalf2CQ8Gv2Xek=",
+        version = "v0.44.0",
     )
     go_repository(
+        name = "com_github_google_cel_go",
+        build_naming_convention = "go_default_library",
+        importpath = "github.com/google/cel-go",
+        patch_args = ["-p1"],
+        pre_patches = [
+            "//third_party/go/patches:cel-fix-antlr.patch",
+            "//third_party/go/patches:cel-fix-googleapis.patch",
+        ],
+        sum = "h1:u1hg7lcZ/XWw2d3aV1jFS30ijQQ6q0/h1C2ZBeBD1gY=",
+        version = "v0.9.0",
+    )
+    go_repository(
+        name = "com_github_google_cel_spec",
+        importpath = "github.com/google/cel-spec",
+        sum = "h1:xuthJSiJGoSzq+lVEBIW1MTpaaZXknMCYC4WzVAWOsE=",
+        version = "v0.6.0",
+    )
+
+    go_repository(
         name = "com_github_google_certificate_transparency_go",
         importpath = "github.com/google/certificate-transparency-go",
-        version = "v1.1.0",
-        sum = "h1:10MlrYzh5wfkToxWI4yJzffsxLfxcEDlOATMx/V9Kzw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:4hE0GEId6NAW28dFpC+LrRGwQX5dtmXQGDbg8+/MZOM=",
+        version = "v1.1.2",
     )
     go_repository(
+        name = "com_github_google_go_attestation",
+        importpath = "github.com/google/go-attestation",
+        sum = "h1:hHhPfym1TZm88L7sWmdc/moikHt80ls6mEiU+QvhRvk=",
+        version = "v0.4.3",
+    )
+
+    go_repository(
         name = "com_github_google_go_cmp",
         importpath = "github.com/google/go-cmp",
-        version = "v0.4.0",
-        sum = "h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=",
+        version = "v0.5.7",
     )
     go_repository(
+        name = "com_github_google_go_containerregistry",
+        importpath = "github.com/google/go-containerregistry",
+        sum = "h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ=",
+        version = "v0.5.1",
+    )
+
+    go_repository(
         name = "com_github_google_go_dap",
         importpath = "github.com/google/go-dap",
-        version = "v0.2.0",
-        sum = "h1:whjIGQRumwbR40qRU7CEKuFLmePUUc2s4Nt9DoXXxWk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4=",
+        version = "v0.6.0",
     )
+
+    go_repository(
+        name = "com_github_google_go_github_v28",
+        importpath = "github.com/google/go-github/v28",
+        sum = "h1:kORf5ekX5qwXO2mGzXXOjMe/g6ap8ahVe0sBEulhSxo=",
+        version = "v28.1.1",
+    )
+    go_repository(
+        name = "com_github_google_go_licenses",
+        importpath = "github.com/google/go-licenses",
+        sum = "h1:JtmsUf+m+KdwCOgLG578T0Mvd0+l+dezPrJh5KYnXZg=",
+        version = "v0.0.0-20210329231322-ce1d9163b77d",
+    )
+    go_repository(
+        name = "com_github_google_go_querystring",
+        importpath = "github.com/google/go-querystring",
+        sum = "h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_google_go_replayers_grpcreplay",
+        importpath = "github.com/google/go-replayers/grpcreplay",
+        sum = "h1:eNb1y9rZFmY4ax45uEEECSa8fsxGRU+8Bil52ASAwic=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_google_go_replayers_httpreplay",
+        importpath = "github.com/google/go-replayers/httpreplay",
+        sum = "h1:AX7FUb4BjrrzNvblr/OlgwrmFiep6soj5K2QSDW7BGk=",
+        version = "v0.1.0",
+    )
+
     go_repository(
         name = "com_github_google_go_tpm",
         importpath = "github.com/google/go-tpm",
-        version = "v0.1.2-0.20190725015402-ae6dd98980d4",
-        sum = "h1:GNNkIb6NSjYfw+KvgUFW590mcgsSFihocSrbXct1sEw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:P/ZFNBZYXRxc+z7i5uyd8VP7MaDteuLZInzrH2idRGo=",
+        version = "v0.3.3",
     )
     go_repository(
         name = "com_github_google_go_tpm_tools",
         importpath = "github.com/google/go-tpm-tools",
-        version = "v0.0.0-20190731025042-f8c04ff88181",
-        sum = "h1:1Y5W2uh6E7I6hhI6c0WVSbV+Ae15uhemqi3RvSgtZpk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        patch_args = ["-p1"],
+        pre_patches = [
+            "//third_party/go/patches:go-tpm-tools-fix-proto-paths.patch",
         ],
+        sum = "h1:gcjAoa/iK98ybY41Icn2zkGlJLhVg44nOmI6fFju5IY=",
+        version = "v0.3.5",
     )
     go_repository(
+        name = "com_github_google_go_tspi",
+        importpath = "github.com/google/go-tspi",
+        sum = "h1:LnpS22S8V1HqbxjveESGAazHhi6BX9SwI2Rij7qZcXQ=",
+        version = "v0.2.1-0.20190423175329-115dea689aad",
+    )
+
+    go_repository(
         name = "com_github_google_gofuzz",
         importpath = "github.com/google/gofuzz",
-        version = "v1.1.0",
-        sum = "h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=",
+        version = "v1.2.0",
     )
     go_repository(
         name = "com_github_google_gopacket",
         importpath = "github.com/google/gopacket",
-        version = "v1.1.17",
-        sum = "h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbBY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=",
+        version = "v1.1.19",
     )
     go_repository(
-        name = "com_github_google_gvisor",
-        importpath = "github.com/google/gvisor",
-        version = "v0.0.0-20211029210316-b822923b706d",
-        sum = "h1:DLypxrLRMq0P4f96vlutTfJpM5/Y8q6rDafgBU1pxAs=",
-        patches = [
-            "//third_party/go/patches:gvisor.patch",
-            "//third_party/go/patches:gvisor-build-against-newer-runtime-specs.patch",
-            "//third_party/go/patches:gvisor-cgroup-fix.patch",
-        ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_google_licenseclassifier",
+        importpath = "github.com/google/licenseclassifier",
+        sum = "h1:EfzlPF5MRmoWsCGvSkPZ1Nh9uVzHf4FfGnDQ6CXd2NA=",
+        version = "v0.0.0-20210325184830-bb04aff29e72",
     )
     go_repository(
+        name = "com_github_google_martian",
+        importpath = "github.com/google/martian",
+        sum = "h1:xmapqc1AyLoB+ddYT6r04bD9lIjlOqGaREovi0SzFaE=",
+        version = "v2.1.1-0.20190517191504-25dcb96d9e51+incompatible",
+    )
+    go_repository(
+        name = "com_github_google_martian_v3",
+        importpath = "github.com/google/martian/v3",
+        sum = "h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ=",
+        version = "v3.2.1",
+    )
+
+    go_repository(
         name = "com_github_google_nftables",
         importpath = "github.com/google/nftables",
-        version = "v0.0.0-20200316075819-7127d9d22474",
-        sum = "h1:D6bN82zzK92ywYsE+Zjca7EHZCRZbcNTU3At7WdxQ+c=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:UpwO4s4fHzquJ3SjQpZhcg1fga6RA4PsrKBGOj/ilvg=",
+        version = "v0.0.0-20220221214239-211824995dcb",
     )
     go_repository(
+        name = "com_github_google_pprof",
+        importpath = "github.com/google/pprof",
+        sum = "h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=",
+        version = "v0.0.0-20210720184732-4bb14d4b1be1",
+    )
+    go_repository(
+        name = "com_github_google_renameio",
+        importpath = "github.com/google/renameio",
+        sum = "h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_google_rpmpack",
+        importpath = "github.com/google/rpmpack",
+        sum = "h1:BW6OvS3kpT5UEPbCZ+KyX/OB4Ks9/MNMhWjqPPkZxsE=",
+        version = "v0.0.0-20191226140753-aa36bfddb3a0",
+    )
+    go_repository(
+        name = "com_github_google_shlex",
+        importpath = "github.com/google/shlex",
+        sum = "h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=",
+        version = "v0.0.0-20191202100458-e7afc7fbc510",
+    )
+
+    go_repository(
         name = "com_github_google_subcommands",
         importpath = "github.com/google/subcommands",
-        version = "v1.0.2-0.20190508160503-636abe8753b8",
         sum = "h1:8nlgEAjIalk6uj/CGKCdOO8CQqTeysvcW4RFZ6HbkGM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.2-0.20190508160503-636abe8753b8",
     )
     go_repository(
+        name = "com_github_google_trillian",
+        importpath = "github.com/google/trillian",
+        sum = "h1:Wa7XHCVzl8RLsUOr2SzoHUZHYjv0G8KMO1xZGamYkbA=",
+        version = "v1.4.0",
+    )
+
+    go_repository(
         name = "com_github_google_uuid",
         importpath = "github.com/google/uuid",
-        version = "v1.1.1",
-        sum = "h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=",
+        version = "v1.3.0",
     )
     go_repository(
-        name = "com_github_googleapis_gnostic",
-        importpath = "github.com/googleapis/gnostic",
-        version = "v0.4.1",
-        sum = "h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=",
-        build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_google_wire",
+        importpath = "github.com/google/wire",
+        sum = "h1:imGQZGEVEHpje5056+K+cgdO72p0LQv2xIIFXNGUf60=",
+        version = "v0.3.0",
     )
     go_repository(
+        name = "com_github_googleapis_gax_go",
+        importpath = "github.com/googleapis/gax-go",
+        sum = "h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww=",
+        version = "v2.0.2+incompatible",
+    )
+    go_repository(
+        name = "com_github_googleapis_gax_go_v2",
+        importpath = "github.com/googleapis/gax-go/v2",
+        sum = "h1:dp3bWCh+PPO1zjRRiCSczJav13sBvG4UhNyVTa1KqdU=",
+        version = "v2.1.1",
+    )
+
+    go_repository(
+        name = "com_github_googleapis_gnostic",
+        build_file_proto_mode = "disable",
+        importpath = "github.com/googleapis/gnostic",
+        sum = "h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=",
+        version = "v0.5.5",
+    )
+    go_repository(
+        name = "com_github_googlecloudplatform_cloudsql_proxy",
+        importpath = "github.com/GoogleCloudPlatform/cloudsql-proxy",
+        sum = "h1:sTOp2Ajiew5XIH92YSdwhYc+bgpUX5j5TKK/Ac8Saw8=",
+        version = "v0.0.0-20191009163259-e802c2cb94ae",
+    )
+    go_repository(
+        name = "com_github_googlecloudplatform_k8s_cloud_provider",
+        importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider",
+        sum = "h1:FCalqNmQYSMCCHoCtAxZN/ZgLc8ufgeo5Z3wrIoJZvs=",
+        version = "v1.16.1-0.20210702024009-ea6160c1d0e3",
+    )
+    go_repository(
+        name = "com_github_gophercloud_gophercloud",
+        importpath = "github.com/gophercloud/gophercloud",
+        sum = "h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_gopherjs_gopherjs",
+        importpath = "github.com/gopherjs/gopherjs",
+        sum = "h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0=",
+        version = "v0.0.0-20200217142428-fce0ec30dd00",
+    )
+    go_repository(
+        name = "com_github_gordonklaus_ineffassign",
+        importpath = "github.com/gordonklaus/ineffassign",
+        sum = "h1:vc7Dmrk4JwS0ZPS6WZvWlwDflgDTA26jItmbSj83nug=",
+        version = "v0.0.0-20200309095847-7953dde2c7bf",
+    )
+    go_repository(
+        name = "com_github_goreleaser_goreleaser",
+        importpath = "github.com/goreleaser/goreleaser",
+        sum = "h1:3ua5fSYvc/doKd5sVTzvXbyqW6H/eyuvy46woLrUFic=",
+        version = "v0.134.0",
+    )
+    go_repository(
+        name = "com_github_goreleaser_nfpm",
+        importpath = "github.com/goreleaser/nfpm",
+        sum = "h1:AEnu9XVmupRDTR930Z2rAs31Mj6sLIPxFcR9ESYvgDA=",
+        version = "v1.2.1",
+    )
+    go_repository(
+        name = "com_github_gorilla_context",
+        importpath = "github.com/gorilla/context",
+        sum = "h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8=",
+        version = "v1.1.1",
+    )
+    go_repository(
+        name = "com_github_gorilla_handlers",
+        importpath = "github.com/gorilla/handlers",
+        sum = "h1:893HsJqtxp9z1SF76gg6hY70hRY1wVlTSnC/h1yUDCo=",
+        version = "v0.0.0-20150720190736-60c7bfde3e33",
+    )
+    go_repository(
+        name = "com_github_gorilla_mux",
+        importpath = "github.com/gorilla/mux",
+        sum = "h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=",
+        version = "v1.8.0",
+    )
+    go_repository(
+        name = "com_github_gorilla_securecookie",
+        importpath = "github.com/gorilla/securecookie",
+        sum = "h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=",
+        version = "v1.1.1",
+    )
+    go_repository(
+        name = "com_github_gorilla_sessions",
+        importpath = "github.com/gorilla/sessions",
+        sum = "h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=",
+        version = "v1.2.1",
+    )
+
+    go_repository(
         name = "com_github_gorilla_websocket",
         importpath = "github.com/gorilla/websocket",
-        version = "v1.4.0",
-        sum = "h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=",
+        version = "v1.4.2",
     )
+
     go_repository(
         name = "com_github_gregjones_httpcache",
         importpath = "github.com/gregjones/httpcache",
-        version = "v0.0.0-20180305231024-9cad4c3443a7",
         sum = "h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20180305231024-9cad4c3443a7",
     )
     go_repository(
         name = "com_github_grpc_ecosystem_go_grpc_middleware",
         importpath = "github.com/grpc-ecosystem/go-grpc-middleware",
-        version = "v1.0.1-0.20190118093823-f849b5445de4",
-        sum = "h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=",
+        version = "v1.3.0",
     )
     go_repository(
         name = "com_github_grpc_ecosystem_go_grpc_prometheus",
         importpath = "github.com/grpc-ecosystem/go-grpc-prometheus",
-        version = "v1.2.0",
         sum = "h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.2.0",
     )
     go_repository(
         name = "com_github_grpc_ecosystem_grpc_gateway",
+        build_naming_convention = "go_default_library",
         importpath = "github.com/grpc-ecosystem/grpc-gateway",
-        version = "v1.9.5",
-        sum = "h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=",
+        version = "v1.16.0",
     )
     go_repository(
         name = "com_github_grpc_ecosystem_grpc_opentracing",
         importpath = "github.com/grpc-ecosystem/grpc-opentracing",
-        version = "v0.0.0-20180507213350-8e809c8a8645",
         sum = "h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20180507213350-8e809c8a8645",
+    )
+
+    go_repository(
+        name = "com_github_hashicorp_consul_api",
+        importpath = "github.com/hashicorp/consul/api",
+        sum = "h1:HXNYlRkkM/t+Y/Yhxtwcy02dlYwIaoxzvxPnS+cqy78=",
+        version = "v1.3.0",
     )
     go_repository(
-        name = "com_github_grpc_grpc",
-        importpath = "github.com/grpc/grpc",
-        version = "v1.29.1",
-        sum = "h1:oDOYav2X6WE7espebiQ//iP9N+/gGygUv6XuuyvkFMc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_hashicorp_consul_sdk",
+        importpath = "github.com/hashicorp/consul/sdk",
+        sum = "h1:UOxjlb4xVNF93jak1mzzoBatyFju9nrkxpVwIp/QqxQ=",
+        version = "v0.3.0",
     )
+
     go_repository(
         name = "com_github_hashicorp_errwrap",
         importpath = "github.com/hashicorp/errwrap",
-        version = "v1.0.0",
-        sum = "h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=",
+        version = "v1.1.0",
     )
     go_repository(
+        name = "com_github_hashicorp_go_cleanhttp",
+        importpath = "github.com/hashicorp/go-cleanhttp",
+        sum = "h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=",
+        version = "v0.5.1",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_hclog",
+        importpath = "github.com/hashicorp/go-hclog",
+        sum = "h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=",
+        version = "v0.9.2",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_immutable_radix",
+        importpath = "github.com/hashicorp/go-immutable-radix",
+        sum = "h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_msgpack",
+        importpath = "github.com/hashicorp/go-msgpack",
+        sum = "h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4=",
+        version = "v0.5.3",
+    )
+
+    go_repository(
         name = "com_github_hashicorp_go_multierror",
         importpath = "github.com/hashicorp/go-multierror",
-        version = "v1.0.0",
-        sum = "h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=",
+        version = "v1.1.1",
     )
     go_repository(
+        name = "com_github_hashicorp_go_net",
+        importpath = "github.com/hashicorp/go.net",
+        sum = "h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw=",
+        version = "v0.0.1",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_retryablehttp",
+        importpath = "github.com/hashicorp/go-retryablehttp",
+        sum = "h1:BbgctKO892xEyOXnGiaAwIoSq1QZ/SS4AhjoAh9DnfY=",
+        version = "v0.6.4",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_rootcerts",
+        importpath = "github.com/hashicorp/go-rootcerts",
+        sum = "h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_sockaddr",
+        importpath = "github.com/hashicorp/go-sockaddr",
+        sum = "h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_syslog",
+        importpath = "github.com/hashicorp/go-syslog",
+        sum = "h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_uuid",
+        importpath = "github.com/hashicorp/go-uuid",
+        sum = "h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=",
+        version = "v1.0.2",
+    )
+    go_repository(
+        name = "com_github_hashicorp_go_version",
+        importpath = "github.com/hashicorp/go-version",
+        sum = "h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E=",
+        version = "v1.2.0",
+    )
+
+    go_repository(
         name = "com_github_hashicorp_golang_lru",
         importpath = "github.com/hashicorp/golang-lru",
-        version = "v0.5.3",
-        sum = "h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=",
+        version = "v0.5.4",
     )
     go_repository(
         name = "com_github_hashicorp_hcl",
         importpath = "github.com/hashicorp/hcl",
-        version = "v1.0.0",
         sum = "h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
+        name = "com_github_hashicorp_logutils",
+        importpath = "github.com/hashicorp/logutils",
+        sum = "h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_hashicorp_mdns",
+        importpath = "github.com/hashicorp/mdns",
+        sum = "h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_hashicorp_memberlist",
+        importpath = "github.com/hashicorp/memberlist",
+        sum = "h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M=",
+        version = "v0.1.3",
+    )
+    go_repository(
+        name = "com_github_hashicorp_serf",
+        importpath = "github.com/hashicorp/serf",
+        sum = "h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0=",
+        version = "v0.8.2",
+    )
+    go_repository(
+        name = "com_github_heketi_heketi",
+        importpath = "github.com/heketi/heketi",
+        sum = "h1:X4DBFPzcyWZWhia32d94UhDECQJHH0M5kpRb1gxxUHk=",
+        version = "v10.3.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_heketi_tests",
+        importpath = "github.com/heketi/tests",
+        sum = "h1:oJ/NLadJn5HoxvonA6VxG31lg0d6XOURNA09BTtM4fY=",
+        version = "v0.0.0-20151005000721-f3775cbcefd6",
+    )
+
+    go_repository(
         name = "com_github_hpcloud_tail",
         importpath = "github.com/hpcloud/tail",
-        version = "v1.0.0",
         sum = "h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_huandu_xstrings",
         importpath = "github.com/huandu/xstrings",
-        version = "v1.0.0",
-        sum = "h1:pO2K/gKgKaat5LdpAhxhluX2GPQMaI3W5FUz/I/UnWk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0=",
+        version = "v1.2.0",
     )
     go_repository(
+        name = "com_github_hudl_fargo",
+        importpath = "github.com/hudl/fargo",
+        sum = "h1:0U6+BtN6LhaYuTnIJq4Wyq5cpn6O2kWrxAtcqBmYY6w=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "com_github_hugelgupf_socketpair",
+        importpath = "github.com/hugelgupf/socketpair",
+        sum = "h1:/jC7qQFrv8CrSJVmaolDVOxTfS9kc36uB6H40kdbQq8=",
+        version = "v0.0.0-20190730060125-05d35a94e714",
+    )
+    go_repository(
+        name = "com_github_ianlancetaylor_demangle",
+        importpath = "github.com/ianlancetaylor/demangle",
+        sum = "h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI=",
+        version = "v0.0.0-20200824232613-28f6c0f3b639",
+    )
+
+    go_repository(
         name = "com_github_imdario_mergo",
         importpath = "github.com/imdario/mergo",
-        version = "v0.3.7",
-        sum = "h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=",
+        version = "v0.3.12",
     )
     go_repository(
         name = "com_github_inconshreveable_mousetrap",
         importpath = "github.com/inconshreveable/mousetrap",
-        version = "v1.0.0",
         sum = "h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
+        name = "com_github_influxdata_influxdb1_client",
+        importpath = "github.com/influxdata/influxdb1-client",
+        sum = "h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA=",
+        version = "v0.0.0-20191209144304-8bf82d3c094d",
+    )
+
+    go_repository(
         name = "com_github_infobloxopen_go_trees",
         importpath = "github.com/infobloxopen/go-trees",
-        version = "v0.0.0-20190313150506-2af4e13f9062",
-        sum = "h1:d3VSuNcgTCn21dNMm8g412Fck/XWFmMj4nJhhHT7ZZ0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:w66aaP3c6SIQ0pi3QH1Tb4AMO3aWoEPxd1CNvLphbkA=",
+        version = "v0.0.0-20200715205103-96a057b8dfb9",
     )
     go_repository(
         name = "com_github_insomniacslk_dhcp",
         importpath = "github.com/insomniacslk/dhcp",
-        version = "v0.0.0-20200922210017-67c425063dca",
-        sum = "h1:zhwTlFGM8ZkD5J/c43IWkxSJQWzhm20QWou8zajbCck=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:efcJu2Vzz6DoSq245deWNzTz6l/gsqdphm3FjmI88/g=",
+        version = "v0.0.0-20220119180841-3c283ff8b7dd",
     )
     go_repository(
+        name = "com_github_intel_goresctrl",
+        importpath = "github.com/intel/goresctrl",
+        sum = "h1:JyZjdMQu9Kl/wLXe9xA6s1X+tF6BWsQPFGJMEeCfWzE=",
+        version = "v0.2.0",
+    )
+    go_repository(
+        name = "com_github_ishidawataru_sctp",
+        importpath = "github.com/ishidawataru/sctp",
+        sum = "h1:qPmlgoeRS18y2dT+iAH5vEKZgIqgiPi2Y8UCu/b7Aq8=",
+        version = "v0.0.0-20190723014705-7c296d48a2b5",
+    )
+
+    go_repository(
         name = "com_github_j_keck_arping",
         importpath = "github.com/j-keck/arping",
-        version = "v0.0.0-20160618110441-2cf9dc699c56",
-        sum = "h1:742eGXur0715JMq73aD95/FU0XpVKXqNuTnEfXsLOYQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:hlLhuXgQkzIJTZuhMigvG/CuSkaspeaD9hRDk2zuiMI=",
+        version = "v1.0.2",
     )
     go_repository(
+        name = "com_github_jarcoal_httpmock",
+        importpath = "github.com/jarcoal/httpmock",
+        sum = "h1:cHtVEcTxRSX4J0je7mWPfc9BpDpqzXSJ5HbymZmyHck=",
+        version = "v1.0.5",
+    )
+    go_repository(
+        name = "com_github_jbenet_go_context",
+        importpath = "github.com/jbenet/go-context",
+        sum = "h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=",
+        version = "v0.0.0-20150711004518-d14ea06fba99",
+    )
+    go_repository(
+        name = "com_github_jcmturner_aescts_v2",
+        importpath = "github.com/jcmturner/aescts/v2",
+        sum = "h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=",
+        version = "v2.0.0",
+    )
+    go_repository(
+        name = "com_github_jcmturner_dnsutils_v2",
+        importpath = "github.com/jcmturner/dnsutils/v2",
+        sum = "h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=",
+        version = "v2.0.0",
+    )
+    go_repository(
+        name = "com_github_jcmturner_gofork",
+        importpath = "github.com/jcmturner/gofork",
+        sum = "h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_jcmturner_goidentity_v6",
+        importpath = "github.com/jcmturner/goidentity/v6",
+        sum = "h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o=",
+        version = "v6.0.1",
+    )
+    go_repository(
+        name = "com_github_jcmturner_gokrb5_v8",
+        importpath = "github.com/jcmturner/gokrb5/v8",
+        sum = "h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA=",
+        version = "v8.4.2",
+    )
+    go_repository(
+        name = "com_github_jcmturner_rpc_v2",
+        importpath = "github.com/jcmturner/rpc/v2",
+        sum = "h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY=",
+        version = "v2.0.3",
+    )
+    go_repository(
+        name = "com_github_jeffashton_win_pdh",
+        importpath = "github.com/JeffAshton/win_pdh",
+        sum = "h1:UKkYhof1njT1/xq4SEg5z+VpTgjmNeHwPGRQl7takDI=",
+        version = "v0.0.0-20161109143554-76bb4ee9f0ab",
+    )
+
+    go_repository(
+        name = "com_github_jessevdk_go_flags",
+        importpath = "github.com/jessevdk/go-flags",
+        sum = "h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=",
+        version = "v1.4.0",
+    )
+    go_repository(
+        name = "com_github_jgautheron_goconst",
+        importpath = "github.com/jgautheron/goconst",
+        sum = "h1:D5s1HIu80AcMGcqmk7fNIVptmAubVHHaj3v5Upex6Zs=",
+        version = "v0.0.0-20170703170152-9740945f5dcb",
+    )
+    go_repository(
+        name = "com_github_jhump_protoreflect",
+        importpath = "github.com/jhump/protoreflect",
+        sum = "h1:npqHz788dryJiR/l6K/RUQAyh2SwV91+d1dnh4RjO9w=",
+        version = "v1.9.0",
+    )
+    go_repository(
+        name = "com_github_jimstudt_http_authentication",
+        importpath = "github.com/jimstudt/http-authentication",
+        sum = "h1:BcF8coBl0QFVhe8vAMMlD+CV8EISiu9MGKLoj6ZEyJA=",
+        version = "v0.0.0-20140401203705-3eca13d6893a",
+    )
+
+    go_repository(
+        name = "com_github_jmespath_go_jmespath",
+        importpath = "github.com/jmespath/go-jmespath",
+        sum = "h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=",
+        version = "v0.4.0",
+    )
+    go_repository(
+        name = "com_github_jmespath_go_jmespath_internal_testify",
+        importpath = "github.com/jmespath/go-jmespath/internal/testify",
+        sum = "h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=",
+        version = "v1.5.1",
+    )
+    go_repository(
+        name = "com_github_joefitzgerald_rainbow_reporter",
+        importpath = "github.com/joefitzgerald/rainbow-reporter",
+        sum = "h1:AuMG652zjdzI0YCCnXAqATtRBpGXMcAnrajcaTrSeuo=",
+        version = "v0.1.0",
+    )
+
+    go_repository(
         name = "com_github_joho_godotenv",
         importpath = "github.com/joho/godotenv",
-        version = "v1.3.0",
-        sum = "h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg=",
+        version = "v1.4.0",
     )
     go_repository(
         name = "com_github_jonboulle_clockwork",
         importpath = "github.com/jonboulle/clockwork",
-        version = "v0.1.0",
-        sum = "h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=",
+        version = "v0.2.2",
     )
     go_repository(
+        name = "com_github_josharian_intern",
+        importpath = "github.com/josharian/intern",
+        sum = "h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_josharian_native",
+        importpath = "github.com/josharian/native",
+        sum = "h1:Ts/E8zCSEsG17dUqv7joXJFybuMLjQfWE04tsBODTxk=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_jpillora_backoff",
+        importpath = "github.com/jpillora/backoff",
+        sum = "h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_jsimonetti_rtnetlink",
+        importpath = "github.com/jsimonetti/rtnetlink",
+        sum = "h1:N527AHMa793TP5z5GNAn/VLPzlc0ewzWdeP/25gDfgQ=",
+        version = "v0.0.0-20211022192332-93da33804786",
+    )
+
+    go_repository(
         name = "com_github_json_iterator_go",
         importpath = "github.com/json-iterator/go",
-        version = "v1.1.10",
-        sum = "h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=",
+        version = "v1.1.12",
     )
     go_repository(
+        name = "com_github_jstemmer_go_junit_report",
+        importpath = "github.com/jstemmer/go-junit-report",
+        sum = "h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=",
+        version = "v0.9.1",
+    )
+    go_repository(
+        name = "com_github_jtolds_gls",
+        importpath = "github.com/jtolds/gls",
+        sum = "h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=",
+        version = "v4.20.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_juju_ratelimit",
+        importpath = "github.com/juju/ratelimit",
+        sum = "h1:+7AIFJVQ0EQgq/K9+0Krm7m530Du7tIz0METWzN0RgY=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_julienschmidt_httprouter",
+        importpath = "github.com/julienschmidt/httprouter",
+        sum = "h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "com_github_jung_kurt_gofpdf",
+        importpath = "github.com/jung-kurt/gofpdf",
+        sum = "h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0=",
+        version = "v1.0.3-0.20190309125859-24315acbbda5",
+    )
+
+    go_repository(
         name = "com_github_karrick_godirwalk",
         importpath = "github.com/karrick/godirwalk",
-        version = "v1.7.5",
-        sum = "h1:VbzFqwXwNbAZoA6W5odrLr+hKK197CcENcPh6E/gJ0M=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=",
+        version = "v1.16.1",
+    )
+
+    go_repository(
+        name = "com_github_kevinburke_ssh_config",
+        importpath = "github.com/kevinburke/ssh_config",
+        sum = "h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY=",
+        version = "v0.0.0-20190725054713-01f96b0aa0cd",
     )
     go_repository(
-        name = "com_github_kevinburke_go_bindata",
-        importpath = "github.com/kevinburke/go-bindata",
-        version = "v3.16.0+incompatible",
-        sum = "h1:TFzFZop2KxGhqNwsyjgmIh5JOrpG940MZlm5gNbxr8g=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_kisielk_errcheck",
+        importpath = "github.com/kisielk/errcheck",
+        sum = "h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY=",
+        version = "v1.5.0",
     )
     go_repository(
+        name = "com_github_kisielk_gotool",
+        importpath = "github.com/kisielk/gotool",
+        sum = "h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_klauspost_compress",
+        importpath = "github.com/klauspost/compress",
+        sum = "h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=",
+        version = "v1.13.6",
+    )
+    go_repository(
+        name = "com_github_klauspost_cpuid",
+        importpath = "github.com/klauspost/cpuid",
+        sum = "h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE=",
+        version = "v1.2.0",
+    )
+
+    go_repository(
+        name = "com_github_knetic_govaluate",
+        importpath = "github.com/Knetic/govaluate",
+        sum = "h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=",
+        version = "v3.0.1-0.20171022003610-9aa49832a739+incompatible",
+    )
+
+    go_repository(
         name = "com_github_koneu_natend",
         importpath = "github.com/koneu/natend",
-        version = "v0.0.0-20150829182554-ec0926ea948d",
         sum = "h1:MFX8DxRnKMY/2M3H61iSsVbo/n3h0MWGmWNN1UViOU0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20150829182554-ec0926ea948d",
     )
     go_repository(
         name = "com_github_konsorten_go_windows_terminal_sequences",
         importpath = "github.com/konsorten/go-windows-terminal-sequences",
-        version = "v1.0.3",
         sum = "h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.3",
     )
     go_repository(
+        name = "com_github_kr_fs",
+        importpath = "github.com/kr/fs",
+        sum = "h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_kr_logfmt",
+        importpath = "github.com/kr/logfmt",
+        sum = "h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=",
+        version = "v0.0.0-20140226030751-b84e30acd515",
+    )
+
+    go_repository(
         name = "com_github_kr_pretty",
         importpath = "github.com/kr/pretty",
-        version = "v0.1.0",
-        sum = "h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=",
+        version = "v0.2.1",
     )
     go_repository(
         name = "com_github_kr_pty",
         importpath = "github.com/kr/pty",
-        version = "v1.1.4-0.20190131011033-7dc38fb350b1",
-        sum = "h1:zc0R6cOw98cMengLA0fvU55mqbnN7sd/tBMLzSejp+M=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=",
+        version = "v1.1.8",
     )
     go_repository(
+        name = "com_github_kr_text",
+        importpath = "github.com/kr/text",
+        sum = "h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=",
+        version = "v0.2.0",
+    )
+    go_repository(
+        name = "com_github_kylelemons_godebug",
+        importpath = "github.com/kylelemons/godebug",
+        sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_leodido_go_urn",
+        importpath = "github.com/leodido/go-urn",
+        sum = "h1:Sm1gr51B1kKyfD2BlRcLSiEkffoG96g6TPv6eRoEiB8=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_letsencrypt_pkcs11key_v4",
+        importpath = "github.com/letsencrypt/pkcs11key/v4",
+        sum = "h1:qLc/OznH7xMr5ARJgkZCCWk+EomQkiNTOoOF5LAgagc=",
+        version = "v4.0.0",
+    )
+    go_repository(
+        name = "com_github_lib_pq",
+        importpath = "github.com/lib/pq",
+        sum = "h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg=",
+        version = "v1.8.0",
+    )
+    go_repository(
+        name = "com_github_libopenstorage_openstorage",
+        importpath = "github.com/libopenstorage/openstorage",
+        sum = "h1:GLPam7/0mpdP8ZZtKjbfcXJBTIA/T1O6CBErVEFEyIM=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_liggitt_tabwriter",
         importpath = "github.com/liggitt/tabwriter",
-        version = "v0.0.0-20181228230101-89fcab3d43de",
         sum = "h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20181228230101-89fcab3d43de",
     )
     go_repository(
+        name = "com_github_lightstep_lightstep_tracer_common_golang_gogo",
+        importpath = "github.com/lightstep/lightstep-tracer-common/golang/gogo",
+        sum = "h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo=",
+        version = "v0.0.0-20190605223551-bc2310a04743",
+    )
+    go_repository(
+        name = "com_github_lightstep_lightstep_tracer_go",
+        importpath = "github.com/lightstep/lightstep-tracer-go",
+        sum = "h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk=",
+        version = "v0.18.1",
+    )
+    go_repository(
+        name = "com_github_linuxkit_virtsock",
+        importpath = "github.com/linuxkit/virtsock",
+        sum = "h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio=",
+        version = "v0.0.0-20201010232012-f8cee7dfc7a3",
+    )
+
+    go_repository(
         name = "com_github_lithammer_dedent",
         importpath = "github.com/lithammer/dedent",
-        version = "v1.1.0",
         sum = "h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.1.0",
     )
+
+    go_repository(
+        name = "com_github_lpabon_godbc",
+        importpath = "github.com/lpabon/godbc",
+        sum = "h1:ilqjArN1UOENJJdM34I2YHKmF/B0gGq4VLoSGy9iAao=",
+        version = "v0.1.1",
+    )
+    go_repository(
+        name = "com_github_lucas_clemente_aes12",
+        importpath = "github.com/lucas-clemente/aes12",
+        sum = "h1:sSeNEkJrs+0F9TUau0CgWTTNEwF23HST3Eq0A+QIx+A=",
+        version = "v0.0.0-20171027163421-cd47fb39b79f",
+    )
+    go_repository(
+        name = "com_github_lucas_clemente_quic_clients",
+        importpath = "github.com/lucas-clemente/quic-clients",
+        sum = "h1:/P9n0nICT/GnQJkZovtBqridjxU0ao34m7DpMts79qY=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_lucas_clemente_quic_go",
+        importpath = "github.com/lucas-clemente/quic-go",
+        sum = "h1:iQtTSZVbd44k94Lu0U16lLBIG3lrnjDvQongjPd4B/s=",
+        version = "v0.10.2",
+    )
+    go_repository(
+        name = "com_github_lucas_clemente_quic_go_certificates",
+        importpath = "github.com/lucas-clemente/quic-go-certificates",
+        sum = "h1:zqEC1GJZFbGZA0tRyNZqRjep92K5fujFtFsu5ZW7Aug=",
+        version = "v0.0.0-20160823095156-d2f86524cced",
+    )
+
+    go_repository(
+        name = "com_github_lyft_protoc_gen_validate",
+        importpath = "github.com/lyft/protoc-gen-validate",
+        sum = "h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA=",
+        version = "v0.0.13",
+    )
+
     go_repository(
         name = "com_github_magiconair_properties",
         importpath = "github.com/magiconair/properties",
-        version = "v1.8.1",
-        sum = "h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=",
+        version = "v1.8.5",
     )
     go_repository(
         name = "com_github_mailru_easyjson",
         importpath = "github.com/mailru/easyjson",
-        version = "v0.7.0",
-        sum = "h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=",
+        version = "v0.7.7",
     )
     go_repository(
+        name = "com_github_makenowjust_heredoc",
+        importpath = "github.com/MakeNowJust/heredoc",
+        sum = "h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU=",
+        version = "v0.0.0-20170808103936-bb23615498cd",
+    )
+    go_repository(
+        name = "com_github_marstr_guid",
+        importpath = "github.com/marstr/guid",
+        sum = "h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_marten_seemann_qtls",
+        importpath = "github.com/marten-seemann/qtls",
+        sum = "h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNAI4vA=",
+        version = "v0.2.3",
+    )
+
+    go_repository(
+        name = "com_github_masterminds_goutils",
+        importpath = "github.com/Masterminds/goutils",
+        sum = "h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=",
+        version = "v1.1.0",
+    )
+
+    go_repository(
+        name = "com_github_masterminds_semver",
+        importpath = "github.com/Masterminds/semver",
+        sum = "h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=",
+        version = "v1.5.0",
+    )
+    go_repository(
+        name = "com_github_masterminds_semver_v3",
+        importpath = "github.com/Masterminds/semver/v3",
+        sum = "h1:Y2lUDsFKVRSYGojLJ1yLxSXdMmMYTYls0rCvoqmMUQk=",
+        version = "v3.1.0",
+    )
+
+    go_repository(
+        name = "com_github_masterminds_sprig",
+        importpath = "github.com/Masterminds/sprig",
+        sum = "h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=",
+        version = "v2.22.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_mattbaird_jsonpatch",
+        importpath = "github.com/mattbaird/jsonpatch",
+        sum = "h1:+J2gw7Bw77w/fbK7wnNJJDKmw1IbWft2Ul5BzrG1Qm8=",
+        version = "v0.0.0-20171005235357-81af80346b1a",
+    )
+
+    go_repository(
         name = "com_github_mattn_go_colorable",
         importpath = "github.com/mattn/go-colorable",
-        version = "v0.0.9",
-        sum = "h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=",
+        version = "v0.1.4",
     )
     go_repository(
+        name = "com_github_mattn_go_ieproxy",
+        importpath = "github.com/mattn/go-ieproxy",
+        sum = "h1:HfxbT6/JcvIljmERptWhwa8XzP7H3T+Z2N26gTsaDaA=",
+        version = "v0.0.0-20190610004146-91bb50d98149",
+    )
+
+    go_repository(
         name = "com_github_mattn_go_isatty",
         importpath = "github.com/mattn/go-isatty",
-        version = "v0.0.4",
-        sum = "h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=",
+        version = "v0.0.11",
     )
     go_repository(
         name = "com_github_mattn_go_runewidth",
         importpath = "github.com/mattn/go-runewidth",
-        version = "v0.0.2",
-        sum = "h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=",
+        version = "v0.0.13",
     )
     go_repository(
         name = "com_github_mattn_go_shellwords",
         importpath = "github.com/mattn/go-shellwords",
-        version = "v1.0.11",
-        sum = "h1:vCoR9VPpsk/TZFW2JwK5I9S0xdrtUq2bph6/YjEPnaw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk=",
+        version = "v1.0.12",
     )
     go_repository(
+        name = "com_github_mattn_go_zglob",
+        importpath = "github.com/mattn/go-zglob",
+        sum = "h1:xsEx/XUoVlI6yXjqBK062zYhRTZltCNmYPx6v+8DNaY=",
+        version = "v0.0.1",
+    )
+
+    go_repository(
         name = "com_github_matttproud_golang_protobuf_extensions",
         importpath = "github.com/matttproud/golang_protobuf_extensions",
-        version = "v1.0.1",
-        sum = "h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=",
+        version = "v1.0.2-0.20181231171920-c182affec369",
     )
     go_repository(
+        name = "com_github_maxbrunsfeld_counterfeiter_v6",
+        importpath = "github.com/maxbrunsfeld/counterfeiter/v6",
+        sum = "h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE=",
+        version = "v6.2.2",
+    )
+
+    go_repository(
         name = "com_github_mdlayher_ethernet",
         importpath = "github.com/mdlayher/ethernet",
-        version = "v0.0.0-20190606142754-0394541c37b7",
         sum = "h1:lez6TS6aAau+8wXUP3G9I3TGlmPFEq2CTxBaRqY6AGE=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20190606142754-0394541c37b7",
     )
     go_repository(
+        name = "com_github_mdlayher_ethtool",
+        importpath = "github.com/mdlayher/ethtool",
+        sum = "h1:tHdB+hQRHU10CfcK0furo6rSNgZ38JT8uPh70c/pFD8=",
+        version = "v0.0.0-20211028163843-288d040e9d60",
+    )
+
+    go_repository(
         name = "com_github_mdlayher_genetlink",
         importpath = "github.com/mdlayher/genetlink",
-        version = "v1.0.0",
-        sum = "h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:4yrIkRV5Wfk1WfpWTcoOlGmsWgQj3OtQN9ZsbrE+XtU=",
+        version = "v1.2.0",
     )
     go_repository(
         name = "com_github_mdlayher_netlink",
         importpath = "github.com/mdlayher/netlink",
-        version = "v1.1.0",
-        sum = "h1:mpdLgm+brq10nI9zM1BpX1kpDbh3NLl3RSnVq6ZSkfg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:rOHX5yl7qnlpiVkFWoqccueppMtXzeziFjWAjLg6sz0=",
+        version = "v1.6.0",
     )
     go_repository(
+        name = "com_github_mdlayher_packet",
+        importpath = "github.com/mdlayher/packet",
+        sum = "h1:elUwhY+HQaIV9kMgmsU9zOF413pDKoo2uFNypgP5SxM=",
+        version = "v0.0.0-20220221164757-67998ac0ff93",
+    )
+
+    go_repository(
         name = "com_github_mdlayher_raw",
         importpath = "github.com/mdlayher/raw",
-        version = "v0.0.0-20191009151244-50f2db8cc065",
-        sum = "h1:aFkJ6lx4FPip+S+Uw4aTegFMct9shDvP+79PsSxpm3w=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:K4PFMVy+AFsp0Zdlrts7yNhxc/uXoPVHi9RzRvtZF2Y=",
+        version = "v0.1.0",
     )
     go_repository(
+        name = "com_github_mdlayher_socket",
+        importpath = "github.com/mdlayher/socket",
+        sum = "h1:F2aaOwb53VsBE+ebRS9bLd7yPOfYUMC8lOODdCBDY6w=",
+        version = "v0.2.1",
+    )
+
+    go_repository(
+        name = "com_github_mgutz_ansi",
+        importpath = "github.com/mgutz/ansi",
+        sum = "h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=",
+        version = "v0.0.0-20170206155736-9520e82c474b",
+    )
+    go_repository(
+        name = "com_github_mholt_certmagic",
+        importpath = "github.com/mholt/certmagic",
+        sum = "h1:xKE9kZ5C8gelJC3+BNM6LJs1x21rivK7yxfTZMAuY2s=",
+        version = "v0.6.2-0.20190624175158-6a42ef9fe8c2",
+    )
+
+    go_repository(
+        name = "com_github_mibk_dupl",
+        importpath = "github.com/mibk/dupl",
+        sum = "h1:aZc3jqrF9n0tUHwHt/+jsRxA8cRgA0Gdl56M7W7PoqE=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
+        name = "com_github_microsoft_go_winio",
+        importpath = "github.com/Microsoft/go-winio",
+        sum = "h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=",
+        version = "v0.5.1",
+    )
+    go_repository(
+        name = "com_github_microsoft_hcsshim",
+        build_file_proto_mode = "disable",
+        importpath = "github.com/Microsoft/hcsshim",
+        sum = "h1:wB06W5aYFfUB3IvootYAY2WnOmIdgPGfqSI6tufQNnY=",
+        version = "v0.9.2",
+    )
+    go_repository(
+        name = "com_github_microsoft_hcsshim_test",
+        importpath = "github.com/Microsoft/hcsshim/test",
+        sum = "h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA=",
+        version = "v0.0.0-20210227013316-43a75bb4edd3",
+    )
+
+    go_repository(
         name = "com_github_miekg_dns",
         importpath = "github.com/miekg/dns",
-        version = "v1.1.29",
-        sum = "h1:xHBEhR+t5RzcFJjBLJlax2daXOrTYtr9z4WdKEfWFzg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:uzwpxRtSVxtcIZmz/4Uz6/Rn7G11DvsaslXoy5LxQio=",
+        version = "v1.1.46",
     )
     go_repository(
+        name = "com_github_miekg_pkcs11",
+        importpath = "github.com/miekg/pkcs11",
+        sum = "h1:iMwmD7I5225wv84WxIG/bmxz9AXjWvTWIbM/TYHvWtw=",
+        version = "v1.0.3",
+    )
+    go_repository(
+        name = "com_github_mikioh_ipaddr",
+        importpath = "github.com/mikioh/ipaddr",
+        sum = "h1:RlZweED6sbSArvlE924+mUcZuXKLBHA35U7LN621Bws=",
+        version = "v0.0.0-20190404000644-d465c8ab6721",
+    )
+
+    go_repository(
         name = "com_github_mindprince_gonvml",
         importpath = "github.com/mindprince/gonvml",
-        version = "v0.0.0-20190828220739-9ebdce4bb989",
         sum = "h1:PS1dLCGtD8bb9RPKJrc8bS7qHL6JnW1CZvwzH9dPoUs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20190828220739-9ebdce4bb989",
     )
     go_repository(
         name = "com_github_mistifyio_go_zfs",
         importpath = "github.com/mistifyio/go-zfs",
-        version = "v2.1.2-0.20190413222219-f784269be439+incompatible",
         sum = "h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.1.2-0.20190413222219-f784269be439+incompatible",
     )
     go_repository(
+        name = "com_github_mitchellh_cli",
+        importpath = "github.com/mitchellh/cli",
+        sum = "h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_mitchellh_copystructure",
+        importpath = "github.com/mitchellh/copystructure",
+        sum = "h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_mitchellh_go_homedir",
+        importpath = "github.com/mitchellh/go-homedir",
+        sum = "h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=",
+        version = "v1.1.0",
+    )
+
+    go_repository(
+        name = "com_github_mitchellh_go_testing_interface",
+        importpath = "github.com/mitchellh/go-testing-interface",
+        sum = "h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_mitchellh_go_wordwrap",
         importpath = "github.com/mitchellh/go-wordwrap",
-        version = "v1.0.0",
         sum = "h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
+        name = "com_github_mitchellh_gox",
+        importpath = "github.com/mitchellh/gox",
+        sum = "h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc=",
+        version = "v0.4.0",
+    )
+    go_repository(
+        name = "com_github_mitchellh_iochan",
+        importpath = "github.com/mitchellh/iochan",
+        sum = "h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_mitchellh_mapstructure",
         importpath = "github.com/mitchellh/mapstructure",
-        version = "v1.1.2",
-        sum = "h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=",
+        version = "v1.4.1",
     )
     go_repository(
+        name = "com_github_mitchellh_osext",
+        importpath = "github.com/mitchellh/osext",
+        sum = "h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ=",
+        version = "v0.0.0-20151018003038-5e2d6d41470f",
+    )
+    go_repository(
+        name = "com_github_mitchellh_reflectwalk",
+        importpath = "github.com/mitchellh/reflectwalk",
+        sum = "h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_moby_ipvs",
+        importpath = "github.com/moby/ipvs",
+        sum = "h1:aoZ7fhLTXgDbzVrAnvV+XbKOU8kOET7B3+xULDF/1o0=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_moby_locker",
+        importpath = "github.com/moby/locker",
+        sum = "h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_moby_spdystream",
+        importpath = "github.com/moby/spdystream",
+        sum = "h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=",
+        version = "v0.2.0",
+    )
+
+    go_repository(
         name = "com_github_moby_sys_mountinfo",
         importpath = "github.com/moby/sys/mountinfo",
-        version = "v0.1.3",
-        sum = "h1:KIrhRO14+AkwKvG/g2yIpNMOUVZ02xNhOw8KY1WsLOI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI=",
+        version = "v0.5.0",
     )
     go_repository(
+        name = "com_github_moby_sys_signal",
+        importpath = "github.com/moby/sys/signal",
+        sum = "h1:aDpY94H8VlhTGa9sNYUFCFsMZIUh5wm0B6XkIoJj/iY=",
+        version = "v0.6.0",
+    )
+    go_repository(
+        name = "com_github_moby_sys_symlink",
+        importpath = "github.com/moby/sys/symlink",
+        sum = "h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc=",
+        version = "v0.2.0",
+    )
+
+    go_repository(
         name = "com_github_moby_term",
         importpath = "github.com/moby/term",
-        version = "v0.0.0-20200312100748-672ec06f55cd",
-        sum = "h1:aY7OQNf2XqY/JQ6qREWamhI/81os/agb2BAGpcx5yWI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc=",
+        version = "v0.0.0-20210619224110-3f7ff695adc6",
     )
     go_repository(
         name = "com_github_modern_go_concurrent",
         importpath = "github.com/modern-go/concurrent",
-        version = "v0.0.0-20180306012644-bacd9c7ef1dd",
         sum = "h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20180306012644-bacd9c7ef1dd",
     )
     go_repository(
         name = "com_github_modern_go_reflect2",
         importpath = "github.com/modern-go/reflect2",
-        version = "v1.0.1",
-        sum = "h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=",
+        version = "v1.0.2",
     )
     go_repository(
         name = "com_github_mohae_deepcopy",
         importpath = "github.com/mohae/deepcopy",
-        version = "v0.0.0-20170308212314-bb9b5e7adda9",
-        sum = "h1:Sha2bQdoWE5YQPTlJOL31rmce94/tYi113SlFo1xQ2c=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=",
+        version = "v0.0.0-20170929034955-c48cc78d4826",
     )
     go_repository(
+        name = "com_github_monochromegane_go_gitignore",
+        importpath = "github.com/monochromegane/go-gitignore",
+        sum = "h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=",
+        version = "v0.0.0-20200626010858-205db1a8cc00",
+    )
+
+    go_repository(
         name = "com_github_morikuni_aec",
         importpath = "github.com/morikuni/aec",
-        version = "v1.0.0",
         sum = "h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
+
     go_repository(
         name = "com_github_mrunalp_fileutils",
         importpath = "github.com/mrunalp/fileutils",
-        version = "v0.0.0-20200520151820-abd8a0e76976",
-        sum = "h1:aZQToFSLH8ejFeSkTc3r3L4dPImcj7Ib/KgmkQqbGGg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=",
+        version = "v0.5.0",
     )
     go_repository(
         name = "com_github_muesli_reflow",
         importpath = "github.com/muesli/reflow",
-        version = "v0.0.0-20191128061954-86f094cbed14",
         sum = "h1:99aDTygRy9yEwggATz+ZLrDFRsjRog5BqbAfsr47Ztw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20191128061954-86f094cbed14",
     )
+
     go_repository(
         name = "com_github_munnerz_goautoneg",
         importpath = "github.com/munnerz/goautoneg",
-        version = "v0.0.0-20191010083416-a7dc8b61c822",
         sum = "h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20191010083416-a7dc8b61c822",
     )
     go_repository(
+        name = "com_github_mvdan_xurls",
+        importpath = "github.com/mvdan/xurls",
+        sum = "h1:OpuDelGQ1R1ueQ6sSryzi6P+1RtBpfQHM8fJwlE45ww=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_mwitkow_go_conntrack",
+        importpath = "github.com/mwitkow/go-conntrack",
+        sum = "h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=",
+        version = "v0.0.0-20190716064945-2f068394615f",
+    )
+    go_repository(
+        name = "com_github_mwitkow_go_proto_validators",
+        importpath = "github.com/mwitkow/go-proto-validators",
+        replace = "github.com/mwitkow/go-proto-validators",
+        sum = "h1:qRlmpTzm2pstMKKzTdvwPCF5QfBNURSlAgN/R+qbKos=",
+        version = "v0.3.2",
+    )
+
+    go_repository(
         name = "com_github_mxk_go_flowrate",
         importpath = "github.com/mxk/go-flowrate",
-        version = "v0.0.0-20140419014527-cca7078d478f",
         sum = "h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20140419014527-cca7078d478f",
     )
     go_repository(
+        name = "com_github_naoina_go_stringutil",
+        importpath = "github.com/naoina/go-stringutil",
+        sum = "h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_naoina_toml",
+        importpath = "github.com/naoina/toml",
+        sum = "h1:PT/lllxVVN0gzzSqSlHEmP8MJB4MY2U7STGxiouV4X8=",
+        version = "v0.1.1",
+    )
+
+    go_repository(
+        name = "com_github_nats_io_jwt",
+        importpath = "github.com/nats-io/jwt",
+        sum = "h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI=",
+        version = "v0.3.2",
+    )
+    go_repository(
+        name = "com_github_nats_io_nats_go",
+        importpath = "github.com/nats-io/nats.go",
+        sum = "h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ=",
+        version = "v1.9.1",
+    )
+    go_repository(
+        name = "com_github_nats_io_nats_server_v2",
+        importpath = "github.com/nats-io/nats-server/v2",
+        sum = "h1:i2Ly0B+1+rzNZHHWtD4ZwKi+OU5l+uQo1iDHZ2PmiIc=",
+        version = "v2.1.2",
+    )
+    go_repository(
+        name = "com_github_nats_io_nkeys",
+        importpath = "github.com/nats-io/nkeys",
+        sum = "h1:6JrEfig+HzTH85yxzhSVbjHRJv9cn0p6n3IngIcM5/k=",
+        version = "v0.1.3",
+    )
+    go_repository(
+        name = "com_github_nats_io_nuid",
+        importpath = "github.com/nats-io/nuid",
+        sum = "h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=",
+        version = "v1.0.1",
+    )
+
+    go_repository(
+        name = "com_github_ncw_swift",
+        importpath = "github.com/ncw/swift",
+        sum = "h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ=",
+        version = "v1.0.47",
+    )
+    go_repository(
+        name = "com_github_niemeyer_pretty",
+        importpath = "github.com/niemeyer/pretty",
+        sum = "h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=",
+        version = "v0.0.0-20200227124842-a10e7caefd8e",
+    )
+    go_repository(
+        name = "com_github_nishanths_predeclared",
+        importpath = "github.com/nishanths/predeclared",
+        sum = "h1:3f0nxAmdj/VoCGN/ijdMy7bj6SBagaqYg1B0hu8clMA=",
+        version = "v0.0.0-20200524104333-86fad755b4d3",
+    )
+    go_repository(
+        name = "com_github_nxadm_tail",
+        importpath = "github.com/nxadm/tail",
+        sum = "h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=",
+        version = "v1.4.4",
+    )
+
+    go_repository(
+        name = "com_github_nytimes_gziphandler",
+        importpath = "github.com/NYTimes/gziphandler",
+        sum = "h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=",
+        version = "v1.1.1",
+    )
+    go_repository(
+        name = "com_github_oklog_oklog",
+        importpath = "github.com/oklog/oklog",
+        sum = "h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk=",
+        version = "v0.3.2",
+    )
+    go_repository(
+        name = "com_github_oklog_run",
+        importpath = "github.com/oklog/run",
+        sum = "h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_oklog_ulid",
+        importpath = "github.com/oklog/ulid",
+        sum = "h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=",
+        version = "v1.3.1",
+    )
+
+    go_repository(
         name = "com_github_olekukonko_tablewriter",
         importpath = "github.com/olekukonko/tablewriter",
-        version = "v0.0.0-20170122224234-a0225b3f23b5",
-        sum = "h1:58+kh9C6jJVXYjt8IE48G2eWl6BjwU5Gj0gqY84fy78=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=",
+        version = "v0.0.5",
     )
     go_repository(
+        name = "com_github_oneofone_xxhash",
+        importpath = "github.com/OneOfOne/xxhash",
+        sum = "h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=",
+        version = "v1.2.2",
+    )
+
+    go_repository(
         name = "com_github_onsi_ginkgo",
         importpath = "github.com/onsi/ginkgo",
-        version = "v1.11.0",
-        sum = "h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "github.com/onsi/ginkgo",
+        sum = "h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M=",
+        version = "v1.14.2",
     )
     go_repository(
         name = "com_github_onsi_gomega",
         importpath = "github.com/onsi/gomega",
-        version = "v1.7.0",
-        sum = "h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c=",
+        version = "v1.16.0",
     )
     go_repository(
+        name = "com_github_op_go_logging",
+        importpath = "github.com/op/go-logging",
+        sum = "h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88=",
+        version = "v0.0.0-20160315200505-970db520ece7",
+    )
+
+    go_repository(
         name = "com_github_opencontainers_go_digest",
         importpath = "github.com/opencontainers/go-digest",
-        version = "v1.0.0",
         sum = "h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_opencontainers_image_spec",
         importpath = "github.com/opencontainers/image-spec",
-        version = "v1.0.1",
-        sum = "h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=",
+        version = "v1.0.2",
     )
     go_repository(
         name = "com_github_opencontainers_runc",
+        build_tags = ["seccomp"],  #keep
         importpath = "github.com/opencontainers/runc",
-        version = "v1.0.0-rc92",
-        sum = "h1:+IczUKCRzDzFDnw99O/PAqrcBBCoRp9xN3cB1SYSNS4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        patch_args = ["-p1"],
+        patches = [
+            "//third_party/go/patches:runc-add-cdeps.patch",
         ],
+        sum = "h1:O9+X96OcDjkmmZyfaG996kV7yq8HsoU2h1XRRQcefG8=",
+        version = "v1.1.0",
     )
     go_repository(
         name = "com_github_opencontainers_runtime_spec",
         importpath = "github.com/opencontainers/runtime-spec",
-        version = "v1.0.3-0.20200728170252-4d89ac9fbff6",
-        sum = "h1:NhsM2gc769rVWDqJvapK37r+7+CBXI8xHhnfnt8uQsg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:9iT75RHhYHWwWRlVWU7wnmtFulYcURCglzQOpT+cAF8=",
+        version = "v1.0.3-0.20211123151946-c2389c3cb60a",
     )
     go_repository(
+        name = "com_github_opencontainers_runtime_tools",
+        importpath = "github.com/opencontainers/runtime-tools",
+        sum = "h1:H7DMc6FAjgwZZi8BRqjrAAHWoqEr5e5L6pS4V0ezet4=",
+        version = "v0.0.0-20181011054405-1d69bd0f9c39",
+    )
+
+    go_repository(
         name = "com_github_opencontainers_selinux",
         importpath = "github.com/opencontainers/selinux",
-        version = "v1.6.0",
-        sum = "h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY=",
-        build_tags = [
-            "selinux",
-        ],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:rAiKF8hTcgLI3w0DHm6i0ylVVcOrlgR1kK99DRLDhyU=",
+        version = "v1.10.0",
     )
+
+    go_repository(
+        name = "com_github_opentracing_basictracer_go",
+        importpath = "github.com/opentracing/basictracer-go",
+        sum = "h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_opentracing_contrib_go_observer",
+        importpath = "github.com/opentracing-contrib/go-observer",
+        sum = "h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU=",
+        version = "v0.0.0-20170622124052-a52f23424492",
+    )
+
     go_repository(
         name = "com_github_opentracing_opentracing_go",
         importpath = "github.com/opentracing/opentracing-go",
-        version = "v1.1.0",
-        sum = "h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=",
+        version = "v1.2.0",
     )
     go_repository(
+        name = "com_github_openzipkin_contrib_zipkin_go_opentracing",
+        importpath = "github.com/openzipkin-contrib/zipkin-go-opentracing",
+        sum = "h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU=",
+        version = "v0.4.5",
+    )
+    go_repository(
+        name = "com_github_openzipkin_zipkin_go",
+        importpath = "github.com/openzipkin/zipkin-go",
+        sum = "h1:CtfRrOVZtbDj8rt1WXjklw0kqqJQwICrCKmlfUuBUUw=",
+        version = "v0.4.0",
+    )
+    go_repository(
+        name = "com_github_oschwald_geoip2_golang",
+        importpath = "github.com/oschwald/geoip2-golang",
+        sum = "h1:GKxT3yaWWNXSb7vj6D7eoJBns+lGYgx08QO0UcNm0YY=",
+        version = "v1.6.1",
+    )
+    go_repository(
+        name = "com_github_oschwald_maxminddb_golang",
+        importpath = "github.com/oschwald/maxminddb-golang",
+        sum = "h1:Uh/DSnGoxsyp/KYbY1AuP0tYEwfs0sCph9p/UMXK/Hk=",
+        version = "v1.8.0",
+    )
+    go_repository(
+        name = "com_github_otiai10_copy",
+        importpath = "github.com/otiai10/copy",
+        sum = "h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_otiai10_curr",
+        importpath = "github.com/otiai10/curr",
+        sum = "h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_otiai10_mint",
+        importpath = "github.com/otiai10/mint",
+        sum = "h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc=",
+        version = "v1.3.1",
+    )
+    go_repository(
+        name = "com_github_pact_foundation_pact_go",
+        importpath = "github.com/pact-foundation/pact-go",
+        sum = "h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q=",
+        version = "v1.0.4",
+    )
+    go_repository(
+        name = "com_github_pascaldekloe_goe",
+        importpath = "github.com/pascaldekloe/goe",
+        sum = "h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs=",
+        version = "v0.0.0-20180627143212-57f6aae5913c",
+    )
+    go_repository(
+        name = "com_github_pborman_uuid",
+        importpath = "github.com/pborman/uuid",
+        sum = "h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_pelletier_go_buffruneio",
+        importpath = "github.com/pelletier/go-buffruneio",
+        sum = "h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWooScCR7aA=",
+        version = "v0.2.0",
+    )
+    go_repository(
+        name = "com_github_pelletier_go_toml",
+        importpath = "github.com/pelletier/go-toml",
+        sum = "h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=",
+        version = "v1.9.4",
+    )
+    go_repository(
+        name = "com_github_performancecopilot_speed",
+        importpath = "github.com/performancecopilot/speed",
+        sum = "h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg=",
+        version = "v3.0.0+incompatible",
+    )
+
+    go_repository(
         name = "com_github_peterbourgon_diskv",
         importpath = "github.com/peterbourgon/diskv",
-        version = "v2.0.1+incompatible",
         sum = "h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.0.1+incompatible",
     )
+
     go_repository(
-        name = "com_github_peterh_liner",
-        importpath = "github.com/peterh/liner",
-        version = "v0.0.0-20170317030525-88609521dc4b",
-        sum = "h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_philhofer_fwd",
+        importpath = "github.com/philhofer/fwd",
+        sum = "h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ=",
+        version = "v1.1.1",
     )
+
     go_repository(
         name = "com_github_pierrec_lz4",
         importpath = "github.com/pierrec/lz4",
-        version = "v2.3.0+incompatible",
-        sum = "h1:CZzRn4Ut9GbUkHlQ7jqBXeZQV41ZSKWFc302ZU6lUTk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=",
+        version = "v2.6.1+incompatible",
     )
     go_repository(
         name = "com_github_pierrec_lz4_v4",
         importpath = "github.com/pierrec/lz4/v4",
-        version = "v4.1.12",
-        sum = "h1:44l88ehTZAUGW4VlO1QC4zkilL99M6Y9MXNwEs0uzP8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:+fL8AQEZtz/ijeNnpduH0bROTu0O3NZAlPjQxGn8LwE=",
+        version = "v4.1.14",
     )
     go_repository(
         name = "com_github_pkg_errors",
         importpath = "github.com/pkg/errors",
-        version = "v0.9.1",
         sum = "h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.9.1",
     )
     go_repository(
+        name = "com_github_pkg_profile",
+        importpath = "github.com/pkg/profile",
+        sum = "h1:F++O52m40owAmADcojzM+9gyjmMOY/T4oYJkgFDH8RE=",
+        version = "v1.2.1",
+    )
+    go_repository(
+        name = "com_github_pkg_sftp",
+        importpath = "github.com/pkg/sftp",
+        sum = "h1:VasscCm72135zRysgrJDKsntdmPN+OuU3+nnHYA9wyc=",
+        version = "v1.10.1",
+    )
+
+    go_repository(
         name = "com_github_pkg_xattr",
         importpath = "github.com/pkg/xattr",
-        version = "v0.4.1",
         sum = "h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.4.1",
     )
     go_repository(
+        name = "com_github_pmezard_go_difflib",
+        importpath = "github.com/pmezard/go-difflib",
+        sum = "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_posener_complete",
+        importpath = "github.com/posener/complete",
+        sum = "h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w=",
+        version = "v1.1.1",
+    )
+
+    go_repository(
         name = "com_github_pquerna_cachecontrol",
         importpath = "github.com/pquerna/cachecontrol",
-        version = "v0.0.0-20171018203845-0dec1b30a021",
         sum = "h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20171018203845-0dec1b30a021",
     )
+
     go_repository(
         name = "com_github_prometheus_client_golang",
         importpath = "github.com/prometheus/client_golang",
-        version = "v1.6.0",
-        sum = "h1:YVPodQOcK15POxhgARIvnDRVpLcuK8mglnMrWfyrw6A=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=",
+        version = "v1.12.1",
     )
     go_repository(
         name = "com_github_prometheus_client_model",
         importpath = "github.com/prometheus/client_model",
-        version = "v0.2.0",
         sum = "h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.2.0",
     )
     go_repository(
         name = "com_github_prometheus_common",
         importpath = "github.com/prometheus/common",
-        version = "v0.9.1",
-        sum = "h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=",
+        version = "v0.32.1",
     )
     go_repository(
         name = "com_github_prometheus_procfs",
         importpath = "github.com/prometheus/procfs",
-        version = "v0.0.11",
-        sum = "h1:DhHlBtkHWPYi8O2y31JkK0TF+DGM+51OopZjH/Ia5qI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=",
+        version = "v0.7.3",
     )
     go_repository(
+        name = "com_github_prometheus_tsdb",
+        importpath = "github.com/prometheus/tsdb",
+        sum = "h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA=",
+        version = "v0.7.1",
+    )
+
+    go_repository(
         name = "com_github_pseudomuto_protoc_gen_doc",
+        build_directives = [
+            "gazelle:resolve go github.com/mwitkow/go-proto-validators @com_github_mwitkow_go_proto_validators//:validators_golang",
+        ],
         importpath = "github.com/pseudomuto/protoc-gen-doc",
-        version = "v1.5.0",
-        sum = "h1:pHZp0MEiT68jrZV8js8BS7E9ZEnlSLegoQbbtXj5lfo=",
-        patches = [
+        patch_args = ["-p1"],
+        pre_patches = [
             "//third_party/go/patches:protoc-gen-doc-no-gogo.patch",
         ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:pHZp0MEiT68jrZV8js8BS7E9ZEnlSLegoQbbtXj5lfo=",
+        version = "v1.5.0",
     )
     go_repository(
         name = "com_github_pseudomuto_protokit",
-        importpath = "github.com/pseudomuto/protokit",
-        version = "v0.2.0",
-        sum = "h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "github.com/pseudomuto/protokit",
+        sum = "h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM=",
+        version = "v0.2.0",
     )
     go_repository(
+        name = "com_github_puerkitobio_purell",
+        importpath = "github.com/PuerkitoBio/purell",
+        sum = "h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=",
+        version = "v1.1.1",
+    )
+    go_repository(
+        name = "com_github_puerkitobio_urlesc",
+        importpath = "github.com/PuerkitoBio/urlesc",
+        sum = "h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=",
+        version = "v0.0.0-20170810143723-de5bf2ad4578",
+    )
+
+    go_repository(
+        name = "com_github_quobyte_api",
+        importpath = "github.com/quobyte/api",
+        sum = "h1:+sOX1gIlC/OaLipqVZWrHgly9Kh9Qo8OygeS0mWAg30=",
+        version = "v0.1.8",
+    )
+    go_repository(
+        name = "com_github_rabbitmq_amqp091_go",
+        importpath = "github.com/rabbitmq/amqp091-go",
+        sum = "h1:qx8cGMJha71/5t31Z+LdPLdPrkj/BvD38cqC3Bi1pNI=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_rcrowley_go_metrics",
+        importpath = "github.com/rcrowley/go-metrics",
+        sum = "h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=",
+        version = "v0.0.0-20201227073835-cf1acfcdf475",
+    )
+
+    go_repository(
         name = "com_github_rekby_gpt",
         importpath = "github.com/rekby/gpt",
-        version = "v0.0.0-20200219180433-a930afbc6edc",
-        sum = "h1:goZGTwEEn8mWLcY012VouWZWkJ8GrXm9tS3VORMxT90=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:U4d0m0NdADC5sjaWXeZpDZ/TFvE866u1Js5yP3M3mho=",
+        version = "v0.0.0-20200614112001-7da10aec5566",
     )
     go_repository(
+        name = "com_github_remyoudompheng_bigfft",
+        importpath = "github.com/remyoudompheng/bigfft",
+        sum = "h1:/NRJ5vAYoqz+7sG51ubIDHXeWO8DlTSrToPu6q11ziA=",
+        version = "v0.0.0-20170806203942-52369c62f446",
+    )
+
+    go_repository(
+        name = "com_github_rivo_uniseg",
+        importpath = "github.com/rivo/uniseg",
+        sum = "h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=",
+        version = "v0.2.0",
+    )
+
+    go_repository(
         name = "com_github_robfig_cron",
         importpath = "github.com/robfig/cron",
-        version = "v1.1.0",
         sum = "h1:jk4/Hud3TTdcrJgUOBgsqrZBarcxl6ADIjSC2iniwLY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.1.0",
     )
     go_repository(
+        name = "com_github_robfig_cron_v3",
+        importpath = "github.com/robfig/cron/v3",
+        sum = "h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=",
+        version = "v3.0.1",
+    )
+    go_repository(
+        name = "com_github_rogpeppe_fastuuid",
+        importpath = "github.com/rogpeppe/fastuuid",
+        sum = "h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_rogpeppe_go_internal",
+        importpath = "github.com/rogpeppe/go-internal",
+        sum = "h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "com_github_rs_cors",
+        importpath = "github.com/rs/cors",
+        sum = "h1:P2KMzcFwrPoSjkF1WLRPsp3UMLyql8L4v9hQpVeK5so=",
+        version = "v1.8.0",
+    )
+    go_repository(
+        name = "com_github_rubiojr_go_vhd",
+        importpath = "github.com/rubiojr/go-vhd",
+        sum = "h1:if3/24+h9Sq6eDx8UUz1SO9cT9tizyIsATfB7b4D3tc=",
+        version = "v0.0.0-20200706105327-02e210299021",
+    )
+
+    go_repository(
         name = "com_github_russross_blackfriday",
         importpath = "github.com/russross/blackfriday",
-        version = "v1.5.2",
         sum = "h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.5.2",
     )
     go_repository(
         name = "com_github_russross_blackfriday_v2",
         importpath = "github.com/russross/blackfriday/v2",
-        version = "v2.0.1",
-        sum = "h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=",
+        version = "v2.1.0",
     )
     go_repository(
+        name = "com_github_ryanuber_columnize",
+        importpath = "github.com/ryanuber/columnize",
+        sum = "h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M=",
+        version = "v0.0.0-20160712163229-9b3edd62028f",
+    )
+
+    go_repository(
         name = "com_github_safchain_ethtool",
         importpath = "github.com/safchain/ethtool",
-        version = "v0.0.0-20190326074333-42ed695e3de8",
-        sum = "h1:2c1EFnZHIPCW8qKWgHMH/fX2PkSabFc5mrVzfUNdg5U=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ=",
+        version = "v0.0.0-20210803160452-9aa261dae9b1",
     )
     go_repository(
+        name = "com_github_samuel_go_zookeeper",
+        importpath = "github.com/samuel/go-zookeeper",
+        sum = "h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU=",
+        version = "v0.0.0-20190923202752-2cc03de413da",
+    )
+    go_repository(
+        name = "com_github_sassoftware_go_rpmutils",
+        importpath = "github.com/sassoftware/go-rpmutils",
+        sum = "h1:+gCnWOZV8Z/8jehJ2CdqB47Z3S+SREmQcuXkRFLNsiI=",
+        version = "v0.0.0-20190420191620-a8f1baeba37b",
+    )
+    go_repository(
+        name = "com_github_satori_go_uuid",
+        importpath = "github.com/satori/go.uuid",
+        sum = "h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=",
+        version = "v1.2.0",
+    )
+
+    go_repository(
         name = "com_github_sbezverk_nfproxy",
         importpath = "github.com/sbezverk/nfproxy",
-        version = "v0.0.0-20200514180651-7fac5f39824e",
-        sum = "h1:fJ2lHQ7ZUjmgJbvVQ509ioBmrGHcbvlwfjUieExw/dU=",
-        patches = [
-            "//third_party/go/patches:nfproxy.patch",
-        ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:nlKDckTP5mXfdpUST7l4cU6fGzMlkv/CVg+EVOsClS8=",
+        version = "v0.0.0-20210112155058-0d98b4a69f0c",
     )
     go_repository(
         name = "com_github_sbezverk_nftableslib",
         importpath = "github.com/sbezverk/nftableslib",
-        version = "v0.0.0-20200402150358-c20bed91f482",
-        sum = "h1:k7gEZ/EwJhHDTRXFUZQlE4/p1cmoha7zL7PWCDG3ZHQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Zi8wDJAUmUYqWX6A9ma84xOhFvwR7O10K7pvISM+SvM=",
+        version = "v0.0.0-20210111145735-b08b2d804e1f",
     )
     go_repository(
+        name = "com_github_sbezverk_nftableslib_e2e_setenv",
+        importpath = "github.com/sbezverk/nftableslib/e2e/setenv",
+        sum = "h1:/8S2Bo/8GZhXJBEf9yywFO2NlVzwH1jNdu4UIk48SCs=",
+        version = "v0.0.0-20191010164456-029e0d78cdb1",
+    )
+
+    go_repository(
+        name = "com_github_sclevine_spec",
+        importpath = "github.com/sclevine/spec",
+        sum = "h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_sean_seed",
+        importpath = "github.com/sean-/seed",
+        sum = "h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=",
+        version = "v0.0.0-20170313163322-e2103e2c3529",
+    )
+    go_repository(
+        name = "com_github_seccomp_libseccomp_golang",
+        importpath = "github.com/seccomp/libseccomp-golang",
+        patch_args = ["-p1"],
+        patches = [
+            "//third_party/go/patches:libseccomp.patch",
+        ],
+        sum = "h1:58EBmR2dMNL2n/FnbQewK3D14nXr0V9CObDSvMJLq+Y=",
+        version = "v0.9.2-0.20210429002308-3879420cc921",
+    )
+    go_repository(
+        name = "com_github_sergi_go_diff",
+        importpath = "github.com/sergi/go-diff",
+        sum = "h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=",
+        version = "v1.2.0",
+    )
+
+    go_repository(
+        name = "com_github_shopify_logrus_bugsnag",
+        importpath = "github.com/Shopify/logrus-bugsnag",
+        sum = "h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=",
+        version = "v0.0.0-20171204204709-577dee27f20d",
+    )
+    go_repository(
+        name = "com_github_shopify_sarama",
+        importpath = "github.com/Shopify/sarama",
+        sum = "h1:TOZL6r37xJBDEMLx4yjB77jxbZYXPaDow08TSK6vIL0=",
+        version = "v1.30.0",
+    )
+    go_repository(
+        name = "com_github_shopify_toxiproxy",
+        importpath = "github.com/Shopify/toxiproxy",
+        sum = "h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=",
+        version = "v2.1.4+incompatible",
+    )
+    go_repository(
+        name = "com_github_shopify_toxiproxy_v2",
+        importpath = "github.com/Shopify/toxiproxy/v2",
+        sum = "h1:ePgznFqEG1v3AjMklnK8H7BSc++FDSo7xfK9K7Af+0Y=",
+        version = "v2.1.6-0.20210914104332-15ea381dcdae",
+    )
+
+    go_repository(
         name = "com_github_shurcool_sanitized_anchor_name",
         importpath = "github.com/shurcooL/sanitized_anchor_name",
-        version = "v1.0.0",
         sum = "h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0",
     )
     go_repository(
         name = "com_github_sirupsen_logrus",
         importpath = "github.com/sirupsen/logrus",
-        version = "v1.6.0",
-        sum = "h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=",
+        version = "v1.8.1",
     )
     go_repository(
+        name = "com_github_smartystreets_assertions",
+        importpath = "github.com/smartystreets/assertions",
+        sum = "h1:MkTeG1DMwsrdH7QtLXy5W+fUxWq+vmb6cLmyJ7aRtF0=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_smartystreets_go_aws_auth",
+        importpath = "github.com/smartystreets/go-aws-auth",
+        sum = "h1:hp2CYQUINdZMHdvTdXtPOY2ainKl4IoMcpAXEf2xj3Q=",
+        version = "v0.0.0-20180515143844-0c1422d1fdb9",
+    )
+    go_repository(
+        name = "com_github_smartystreets_goconvey",
+        importpath = "github.com/smartystreets/goconvey",
+        sum = "h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=",
+        version = "v1.6.4",
+    )
+    go_repository(
+        name = "com_github_smartystreets_gunit",
+        importpath = "github.com/smartystreets/gunit",
+        sum = "h1:RyPDUFcJbvtXlhJPk7v+wnxZRY2EUokhEYl2EJOPToI=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "com_github_soheilhy_cmux",
         importpath = "github.com/soheilhy/cmux",
-        version = "v0.1.4",
-        sum = "h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=",
+        version = "v0.1.5",
     )
     go_repository(
+        name = "com_github_sony_gobreaker",
+        importpath = "github.com/sony/gobreaker",
+        sum = "h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ=",
+        version = "v0.4.1",
+    )
+
+    go_repository(
+        name = "com_github_spaolacci_murmur3",
+        importpath = "github.com/spaolacci/murmur3",
+        sum = "h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=",
+        version = "v0.0.0-20180118202830-f09979ecbc72",
+    )
+
+    go_repository(
         name = "com_github_spf13_afero",
         importpath = "github.com/spf13/afero",
-        version = "v1.2.2",
-        sum = "h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=",
+        version = "v1.6.0",
     )
     go_repository(
         name = "com_github_spf13_cast",
         importpath = "github.com/spf13/cast",
-        version = "v1.3.0",
-        sum = "h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=",
+        version = "v1.3.1",
     )
     go_repository(
         name = "com_github_spf13_cobra",
         importpath = "github.com/spf13/cobra",
-        version = "v1.2.1",
-        sum = "h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=",
+        version = "v1.4.0",
     )
     go_repository(
         name = "com_github_spf13_jwalterweatherman",
         importpath = "github.com/spf13/jwalterweatherman",
-        version = "v1.1.0",
         sum = "h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.1.0",
     )
     go_repository(
         name = "com_github_spf13_pflag",
         importpath = "github.com/spf13/pflag",
-        version = "v1.0.5",
         sum = "h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.5",
     )
     go_repository(
         name = "com_github_spf13_viper",
         importpath = "github.com/spf13/viper",
-        version = "v1.9.0",
-        sum = "h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44=",
+        version = "v1.8.1",
     )
     go_repository(
+        name = "com_github_src_d_gcfg",
+        importpath = "github.com/src-d/gcfg",
+        sum = "h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4=",
+        version = "v1.4.0",
+    )
+
+    go_repository(
+        name = "com_github_stefanberger_go_pkcs11uri",
+        importpath = "github.com/stefanberger/go-pkcs11uri",
+        sum = "h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I=",
+        version = "v0.0.0-20201008174630-78d3cae3a980",
+    )
+    go_repository(
+        name = "com_github_stoewer_go_strcase",
+        importpath = "github.com/stoewer/go-strcase",
+        sum = "h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=",
+        version = "v1.2.0",
+    )
+    go_repository(
+        name = "com_github_storageos_go_api",
+        importpath = "github.com/storageos/go-api",
+        sum = "h1:U0SablXoZIg06gvSlg8BCdzq1C/SkHVygOVX95Z2MU0=",
+        version = "v2.2.0+incompatible",
+    )
+    go_repository(
+        name = "com_github_streadway_amqp",
+        importpath = "github.com/streadway/amqp",
+        sum = "h1:WhxRHzgeVGETMlmVfqhRn8RIeeNoPr2Czh33I4Zdccw=",
+        version = "v0.0.0-20190827072141-edfb9018d271",
+    )
+    go_repository(
+        name = "com_github_streadway_handy",
+        importpath = "github.com/streadway/handy",
+        sum = "h1:AhmOdSHeswKHBjhsLs/7+1voOxT+LLrSk/Nxvk35fug=",
+        version = "v0.0.0-20190108123426-d5acb3125c2a",
+    )
+    go_repository(
+        name = "com_github_stretchr_objx",
+        importpath = "github.com/stretchr/objx",
+        sum = "h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=",
+        version = "v0.2.0",
+    )
+
+    go_repository(
         name = "com_github_stretchr_testify",
         importpath = "github.com/stretchr/testify",
-        version = "v1.4.0",
-        sum = "h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=",
+        version = "v1.7.0",
     )
     go_repository(
+        name = "com_github_stripe_safesql",
+        importpath = "github.com/stripe/safesql",
+        sum = "h1:xiefmCDd8c35PVSGrL2FhBiaKxviXnGziBDOpOejeBE=",
+        version = "v0.2.0",
+    )
+
+    go_repository(
         name = "com_github_subosito_gotenv",
         importpath = "github.com/subosito/gotenv",
-        version = "v1.2.0",
         sum = "h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.2.0",
     )
     go_repository(
         name = "com_github_syndtr_gocapability",
         importpath = "github.com/syndtr/gocapability",
-        version = "v0.0.0-20180916011248-d98352740cb2",
-        sum = "h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=",
+        version = "v0.0.0-20200815063812-42c35b437635",
     )
+
     go_repository(
         name = "com_github_tchap_go_patricia",
         importpath = "github.com/tchap/go-patricia",
-        version = "v2.2.6+incompatible",
         sum = "h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.2.6+incompatible",
     )
     go_repository(
+        name = "com_github_thecodeteam_goscaleio",
+        importpath = "github.com/thecodeteam/goscaleio",
+        sum = "h1:SB5tO98lawC+UK8ds/U2jyfOCH7GTcFztcF5x9gbut4=",
+        version = "v0.1.0",
+    )
+    go_repository(
+        name = "com_github_tidwall_pretty",
+        importpath = "github.com/tidwall/pretty",
+        sum = "h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
+        name = "com_github_tinylib_msgp",
+        importpath = "github.com/tinylib/msgp",
+        sum = "h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ=",
+        version = "v1.1.2",
+    )
+    go_repository(
+        name = "com_github_tj_assert",
+        importpath = "github.com/tj/assert",
+        sum = "h1:Rw8kxzWo1mr6FSaYXjQELRe88y2KdfynXdnK72rdjtA=",
+        version = "v0.0.0-20171129193455-018094318fb0",
+    )
+    go_repository(
+        name = "com_github_tj_go_elastic",
+        importpath = "github.com/tj/go-elastic",
+        sum = "h1:eGaGNxrtoZf/mBURsnNQKDR7u50Klgcf2eFDQEnc8Bc=",
+        version = "v0.0.0-20171221160941-36157cbbebc2",
+    )
+    go_repository(
+        name = "com_github_tj_go_kinesis",
+        importpath = "github.com/tj/go-kinesis",
+        sum = "h1:m74UWYy+HBs+jMFR9mdZU6shPewugMyH5+GV6LNgW8w=",
+        version = "v0.0.0-20171128231115-08b17f58cb1b",
+    )
+    go_repository(
+        name = "com_github_tj_go_spin",
+        importpath = "github.com/tj/go-spin",
+        sum = "h1:lhdWZsvImxvZ3q1C5OIB7d72DuOwP4O2NdBg9PyzNds=",
+        version = "v1.1.0",
+    )
+
+    go_repository(
         name = "com_github_tmc_grpc_websocket_proxy",
         importpath = "github.com/tmc/grpc-websocket-proxy",
-        version = "v0.0.0-20190109142713-0ad062ec5ee5",
-        sum = "h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA=",
+        version = "v0.0.0-20201229170055-e5319fda7802",
     )
     go_repository(
-        name = "com_github_u_root_u_root",
-        importpath = "github.com/u-root/u-root",
-        version = "v7.0.0+incompatible",
-        sum = "h1:u+KSS04pSxJGI5E7WE4Bs9+Zd75QjFv+REkjy/aoAc8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_tomasen_realip",
+        importpath = "github.com/tomasen/realip",
+        sum = "h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc=",
+        version = "v0.0.0-20180522021738-f0c99a92ddce",
     )
     go_repository(
+        name = "com_github_tsenart_deadcode",
+        importpath = "github.com/tsenart/deadcode",
+        sum = "h1:vY5WqiEon0ZSTGM3ayVVi+twaHKHDFUVloaQ/wug9/c=",
+        version = "v0.0.0-20160724212837-210d2dc333e9",
+    )
+    go_repository(
+        name = "com_github_tv42_httpunix",
+        importpath = "github.com/tv42/httpunix",
+        sum = "h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ=",
+        version = "v0.0.0-20191220191345-2ba4b9c3382c",
+    )
+
+    go_repository(
+        name = "com_github_u_root_uio",
+        importpath = "github.com/u-root/uio",
+        sum = "h1:BFvcl34IGnw8yvJi8hlqLFo9EshRInwWBs2M5fGWzQA=",
+        version = "v0.0.0-20210528114334-82958018845c",
+    )
+    go_repository(
+        name = "com_github_ugorji_go",
+        importpath = "github.com/ugorji/go",
+        sum = "h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=",
+        version = "v1.1.7",
+    )
+    go_repository(
+        name = "com_github_ugorji_go_codec",
+        importpath = "github.com/ugorji/go/codec",
+        sum = "h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=",
+        version = "v1.1.7",
+    )
+
+    go_repository(
         name = "com_github_ulikunitz_xz",
         importpath = "github.com/ulikunitz/xz",
-        version = "v0.5.6",
-        sum = "h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:YvTNdFzX6+W5m9msiYg/zpkSURPPtOlzbqYjrFn7Yt4=",
+        version = "v0.5.7",
     )
+
     go_repository(
         name = "com_github_urfave_cli",
         importpath = "github.com/urfave/cli",
-        version = "v1.22.1",
-        sum = "h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA=",
+        version = "v1.22.4",
     )
     go_repository(
+        name = "com_github_urfave_cli_v2",
+        importpath = "github.com/urfave/cli/v2",
+        sum = "h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=",
+        version = "v2.3.0",
+    )
+    go_repository(
+        name = "com_github_urfave_negroni",
+        importpath = "github.com/urfave/negroni",
+        sum = "h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
+        name = "com_github_vektah_gqlparser",
+        importpath = "github.com/vektah/gqlparser",
+        sum = "h1:ZsyLGn7/7jDNI+y4SEhI4yAxRChlv15pUHMjijT+e68=",
+        version = "v1.1.2",
+    )
+
+    go_repository(
         name = "com_github_vishvananda_netlink",
         importpath = "github.com/vishvananda/netlink",
-        version = "v1.1.0",
-        sum = "h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA=",
+        version = "v1.1.1-0.20210330154013-f5de75959ad5",
     )
     go_repository(
         name = "com_github_vishvananda_netns",
         importpath = "github.com/vishvananda/netns",
-        version = "v0.0.0-20200520041808-52d707b772fe",
-        sum = "h1:mjAZxE1nh8yvuwhGHpdDqdhtNu2dgbpk93TwoXuk5so=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:gga7acRE695APm9hlsSMoOoE65U4/TcqNj90mc69Rlg=",
+        version = "v0.0.0-20211101163701-50045581ed74",
     )
     go_repository(
+        name = "com_github_vividcortex_gohistogram",
+        importpath = "github.com/VividCortex/gohistogram",
+        sum = "h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_vmware_govmomi",
+        importpath = "github.com/vmware/govmomi",
+        sum = "h1:gpw/0Ku+6RgF3jsi7fnCLmlcikBHfKBCUcu1qgc16OU=",
+        version = "v0.20.3",
+    )
+
+    go_repository(
         name = "com_github_willf_bitset",
         importpath = "github.com/willf/bitset",
-        version = "v1.1.11",
         sum = "h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE=",
-        build_tags = [
-            "selinux",
-        ],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.1.11",
     )
     go_repository(
+        name = "com_github_xanzy_go_gitlab",
+        importpath = "github.com/xanzy/go-gitlab",
+        sum = "h1:+nHztQuCXGSMluKe5Q9IRaPdz6tO8O0gMkQ0vqGpiBk=",
+        version = "v0.31.0",
+    )
+    go_repository(
+        name = "com_github_xanzy_ssh_agent",
+        importpath = "github.com/xanzy/ssh-agent",
+        sum = "h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=",
+        version = "v0.2.1",
+    )
+    go_repository(
+        name = "com_github_xdg_go_pbkdf2",
+        importpath = "github.com/xdg-go/pbkdf2",
+        sum = "h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_xdg_go_scram",
+        importpath = "github.com/xdg-go/scram",
+        sum = "h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w=",
+        version = "v1.0.2",
+    )
+    go_repository(
+        name = "com_github_xdg_go_stringprep",
+        importpath = "github.com/xdg-go/stringprep",
+        sum = "h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc=",
+        version = "v1.0.2",
+    )
+    go_repository(
+        name = "com_github_xeipuuv_gojsonpointer",
+        importpath = "github.com/xeipuuv/gojsonpointer",
+        sum = "h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=",
+        version = "v0.0.0-20180127040702-4e3ac2762d5f",
+    )
+    go_repository(
+        name = "com_github_xeipuuv_gojsonreference",
+        importpath = "github.com/xeipuuv/gojsonreference",
+        sum = "h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=",
+        version = "v0.0.0-20180127040603-bd5ef7bd5415",
+    )
+    go_repository(
+        name = "com_github_xeipuuv_gojsonschema",
+        importpath = "github.com/xeipuuv/gojsonschema",
+        sum = "h1:mvXjJIHRZyhNuGassLTcXTwjiWq7NmjdavZsUnmFybQ=",
+        version = "v0.0.0-20180618132009-1d523034197f",
+    )
+    go_repository(
+        name = "com_github_xi2_xz",
+        importpath = "github.com/xi2/xz",
+        sum = "h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=",
+        version = "v0.0.0-20171230120015-48954b6210f8",
+    )
+
+    go_repository(
         name = "com_github_xiang90_probing",
         importpath = "github.com/xiang90/probing",
-        version = "v0.0.0-20190116061207-43a291ad63a2",
         sum = "h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.0.0-20190116061207-43a291ad63a2",
     )
     go_repository(
+        name = "com_github_xlab_treeprint",
+        importpath = "github.com/xlab/treeprint",
+        sum = "h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=",
+        version = "v0.0.0-20181112141820-a009c3971eca",
+    )
+    go_repository(
+        name = "com_github_xordataexchange_crypt",
+        importpath = "github.com/xordataexchange/crypt",
+        sum = "h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow=",
+        version = "v0.0.3-0.20170626215501-b2862e3d0a77",
+    )
+
+    go_repository(
         name = "com_github_yalue_native_endian",
         importpath = "github.com/yalue/native_endian",
-        version = "v0.0.0-20180607135909-51013b03be4f",
-        sum = "h1:nsQCScpQ8RRf+wIooqfyyEUINV2cAPuo2uVtHSBbA4M=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:e4SxBbaCoOOO4E3axd7FSriUhzc1bIzqZGG5jl6Evbg=",
+        version = "v1.0.2",
     )
     go_repository(
-        name = "io_etcd_go_bbolt",
-        importpath = "go.etcd.io/bbolt",
-        version = "v1.3.5",
-        sum = "h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_yuin_goldmark",
+        importpath = "github.com/yuin/goldmark",
+        sum = "h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM=",
+        version = "v1.4.1",
     )
     go_repository(
-        name = "io_etcd_go_etcd",
-        importpath = "go.etcd.io/etcd",
-        version = "v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5",
-        sum = "h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko=",
-        build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_yvasiyarov_go_metrics",
+        importpath = "github.com/yvasiyarov/go-metrics",
+        sum = "h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI=",
+        version = "v0.0.0-20140926110328-57bccd1ccd43",
     )
     go_repository(
-        name = "org_mongodb_go_mongo_driver",
-        importpath = "go.mongodb.org/mongo-driver",
-        version = "v1.1.2",
-        sum = "h1:jxcFYjlkl8xaERsgLo+RNquI0epW6zuy/ZRQs6jnrFA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_yvasiyarov_gorelic",
+        importpath = "github.com/yvasiyarov/gorelic",
+        sum = "h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE=",
+        version = "v0.0.0-20141212073537-a9bba5b9ab50",
     )
     go_repository(
-        name = "io_opencensus_go",
-        importpath = "go.opencensus.io",
-        version = "v0.22.0",
-        sum = "h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_github_yvasiyarov_newrelic_platform_go",
+        importpath = "github.com/yvasiyarov/newrelic_platform_go",
+        sum = "h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY=",
+        version = "v0.0.0-20140908184405-b21fdbd4370f",
+    )
+
+    go_repository(
+        name = "com_google_cloud_go",
+        importpath = "cloud.google.com/go",
+        sum = "h1:t9Iw5QH5v4XtlEQaCtUY7x6sCABps8sW0acw7e2WQ6Y=",
+        version = "v0.100.2",
     )
     go_repository(
-        name = "net_starlark_go",
-        importpath = "go.starlark.net",
-        version = "v0.0.0-20190702223751-32f345186213",
-        sum = "h1:lkYv5AKwvvduv5XWP6szk/bvvgO6aDeUujhZQXIFTes=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_bigquery",
+        importpath = "cloud.google.com/go/bigquery",
+        sum = "h1:PQcPefKFdaIzjQFbiyOgAqyx8q5djaE7x9Sqe712DPA=",
+        version = "v1.8.0",
     )
     go_repository(
-        name = "org_uber_go_atomic",
-        importpath = "go.uber.org/atomic",
-        version = "v1.4.0",
-        sum = "h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_compute",
+        importpath = "cloud.google.com/go/compute",
+        sum = "h1:mPL/MzDDYHsh5tHRS9mhmhWlcgClCrCa6ApQCU6wnHI=",
+        version = "v1.3.0",
     )
     go_repository(
-        name = "org_uber_go_multierr",
-        importpath = "go.uber.org/multierr",
+        name = "com_google_cloud_go_datastore",
+        importpath = "cloud.google.com/go/datastore",
+        sum = "h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ=",
         version = "v1.1.0",
-        sum = "h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
     )
     go_repository(
-        name = "org_uber_go_zap",
-        importpath = "go.uber.org/zap",
-        version = "v1.15.0",
-        sum = "h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_firestore",
+        importpath = "cloud.google.com/go/firestore",
+        sum = "h1:9x7Bx0A9R5/M9jibeJeZWqjeVEIxYW9fZYqB9a70/bY=",
+        version = "v1.1.0",
     )
     go_repository(
-        name = "org_golang_x_arch",
-        importpath = "golang.org/x/arch",
-        version = "v0.0.0-20190927153633-4e8777c89be4",
-        sum = "h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_monitoring",
+        importpath = "cloud.google.com/go/monitoring",
+        sum = "h1:vssDZ792skH6AWCDH1OogKfs/FzgEVTB/yUAzfgBR24=",
+        version = "v0.1.0",
     )
     go_repository(
-        name = "org_golang_x_crypto",
-        importpath = "golang.org/x/crypto",
-        version = "v0.0.0-20200622213623-75b288015ac9",
-        sum = "h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_pubsub",
+        importpath = "cloud.google.com/go/pubsub",
+        sum = "h1:9cH52jizPUVSSrSe+J16RC9wB0QI7i/cfuCm5UUCcIk=",
+        version = "v1.5.0",
     )
     go_repository(
-        name = "org_golang_x_mod",
-        importpath = "golang.org/x/mod",
-        version = "v0.3.0",
-        sum = "h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=",
-        build_extra_args = [
-            "-go_naming_convention=import_alias",
-            "-go_naming_convention_external=import_alias",
-        ],
+        name = "com_google_cloud_go_spanner",
+        importpath = "cloud.google.com/go/spanner",
+        sum = "h1:oBLJVlW/v3QMntbpUavhneJEQyPcxbAY5+rI+Jv9hvE=",
+        version = "v1.25.0",
     )
     go_repository(
-        name = "org_golang_x_net",
-        importpath = "golang.org/x/net",
-        version = "v0.0.0-20201110031124-69a78807bb2b",
-        sum = "h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_storage",
+        importpath = "cloud.google.com/go/storage",
+        sum = "h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA=",
+        version = "v1.10.0",
     )
     go_repository(
-        name = "org_golang_x_oauth2",
-        importpath = "golang.org/x/oauth2",
-        version = "v0.0.0-20191202225959-858c2ad4c8b6",
-        sum = "h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_google_cloud_go_trace",
+        importpath = "cloud.google.com/go/trace",
+        sum = "h1:nUGUK79FOkN0UGUXhBmVBkbu1PYsHe0YyFSPLOD9Npg=",
+        version = "v0.1.0",
     )
     go_repository(
-        name = "org_golang_x_sync",
-        importpath = "golang.org/x/sync",
-        version = "v0.0.0-20181108010431-42b317875d0f",
-        sum = "h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=",
-        build_extra_args = [
-            "-go_naming_convention=import_alias",
-            "-go_naming_convention_external=import_alias",
-        ],
+        name = "com_shuralyov_dmitri_gpu_mtl",
+        importpath = "dmitri.shuralyov.com/gpu/mtl",
+        sum = "h1:+PdD6GLKejR9DizMAKT5DpSAkKswvZrurk1/eEt9+pw=",
+        version = "v0.0.0-20201218220906-28db891af037",
     )
     go_repository(
-        name = "org_golang_x_text",
-        importpath = "golang.org/x/text",
-        version = "v0.3.0",
-        sum = "h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_sourcegraph_sourcegraph_appdash",
+        importpath = "sourcegraph.com/sourcegraph/appdash",
+        sum = "h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM=",
+        version = "v0.0.0-20190731080439-ebfcffb1b5c0",
+    )
+
+    go_repository(
+        name = "com_zx2c4_golang_go118_netip",
+        importpath = "golang.zx2c4.com/go118/netip",
+        sum = "h1:9+v0G0naRhLPOJEeJOL6NuXTtAHHwmkyZlgQJ0XcQ8I=",
+        version = "v0.0.0-20211111135330-a4a02eeacf9d",
     )
     go_repository(
-        name = "org_golang_x_time",
-        importpath = "golang.org/x/time",
-        version = "v0.0.0-20191024005414-555d28b269f0",
-        sum = "h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_zx2c4_golang_wintun",
+        importpath = "golang.zx2c4.com/wintun",
+        sum = "h1:Ug9qvr1myri/zFN6xL17LSCBGFDnphBBhzmILHsM5TY=",
+        version = "v0.0.0-20211104114900-415007cec224",
     )
     go_repository(
-        name = "org_golang_x_tools",
-        importpath = "golang.org/x/tools",
-        version = "v0.1.2-0.20210518182153-17b346669257",
-        sum = "h1:e7SbNJfMEurLnwdNnaP7LItYhtCPChdiq+j3RwB8YGY=",
-        patches = [
-            "//third_party/go/patches:goimports-group-merging.patch",
-        ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "com_zx2c4_golang_wireguard",
+        importpath = "golang.zx2c4.com/wireguard",
+        sum = "h1:Nrf94TOjrvW8nm6N3u2xtbnMZaZudNI9b8nIJH8p8qY=",
+        version = "v0.0.0-20220202223031-3b95c81cc178",
     )
-    go_repository(
-        name = "org_golang_x_xerrors",
-        importpath = "golang.org/x/xerrors",
-        version = "v0.0.0-20191204190536-9bdfabe68543",
-        sum = "h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
+
     go_repository(
         name = "com_zx2c4_golang_wireguard_wgctrl",
         importpath = "golang.zx2c4.com/wireguard/wgctrl",
-        version = "v0.0.0-20200515170644-ec7f26be9d9e",
-        sum = "h1:fqDhK9OlzaaiFjnyaAfR9Q1RPKCK7OCTLlHGP9f74Nk=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:9c4/JVIQUc2qCJEEIiGIs3HmmnFjhPj4qHW4+Uj+u3U=",
+        version = "v0.0.0-20220208144051-fde48d68ee68",
     )
     go_repository(
-        name = "org_gonum_v1_gonum",
-        importpath = "gonum.org/v1/gonum",
-        version = "v0.6.2",
-        sum = "h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "dev_gocloud",
+        importpath = "gocloud.dev",
+        sum = "h1:EDRyaRAnMGSq/QBto486gWFxMLczAfIYUmusV7XLNBM=",
+        version = "v0.19.0",
     )
     go_repository(
-        name = "org_golang_google_genproto",
-        importpath = "google.golang.org/genproto",
-        version = "v0.0.0-20200224152610-e50cd9704f63",
-        sum = "h1:YzfoEYWbODU5Fbt37+h7X16BWQbad7Q4S6gclTKFXM8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        name = "dev_gvisor_gvisor",
+        importpath = "gvisor.dev/gvisor",
+        patch_args = ["-p1"],
+        patches = [
+            "//third_party/go/patches:gvisor-containerd-compat.patch",
+            "//third_party/go/patches:gvisor-fix-resolution.patch",
+            #"//third_party/go/patches:gvisor-build-against-newer-runtime-specs.patch",
         ],
+        sum = "h1:aXIFpjZYl3zv2rQyr4rSit5Uq0k7BVXC8lJaDa4Cg7M=",
+        version = "v0.0.0-20220315202956-f1399ecf1672",
     )
     go_repository(
-        name = "org_golang_google_grpc",
-        importpath = "google.golang.org/grpc",
-        version = "v1.29.1",
-        sum = "h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "in_gopkg_airbrake_gobrake_v2",
+        importpath = "gopkg.in/airbrake/gobrake.v2",
+        sum = "h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo=",
+        version = "v2.0.9",
     )
     go_repository(
+        name = "in_gopkg_alecthomas_kingpin_v2",
+        importpath = "gopkg.in/alecthomas/kingpin.v2",
+        sum = "h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=",
+        version = "v2.2.6",
+    )
+    go_repository(
+        name = "in_gopkg_check_v1",
+        importpath = "gopkg.in/check.v1",
+        sum = "h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=",
+        version = "v1.0.0-20201130134442-10cb98267c6c",
+    )
+    go_repository(
+        name = "in_gopkg_cheggaaa_pb_v1",
+        importpath = "gopkg.in/cheggaaa/pb.v1",
+        sum = "h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk=",
+        version = "v1.0.28",
+    )
+    go_repository(
+        name = "in_gopkg_datadog_dd_trace_go_v1",
+        importpath = "gopkg.in/DataDog/dd-trace-go.v1",
+        sum = "h1:eDbrrRNAHY15yoftLKGMtgq0vuTXp897QEzAJh368jY=",
+        version = "v1.36.2",
+    )
+
+    go_repository(
         name = "in_gopkg_djherbis_times_v1",
         importpath = "gopkg.in/djherbis/times.v1",
-        version = "v1.2.0",
         sum = "h1:UCvDKl1L/fmBygl2Y7hubXCnY7t4Yj46ZrBFNUipFbM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.2.0",
     )
     go_repository(
+        name = "in_gopkg_errgo_v2",
+        importpath = "gopkg.in/errgo.v2",
+        sum = "h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=",
+        version = "v2.1.0",
+    )
+
+    go_repository(
         name = "in_gopkg_fsnotify_v1",
         importpath = "gopkg.in/fsnotify.v1",
-        version = "v1.4.7",
         sum = "h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.4.7",
     )
     go_repository(
+        name = "in_gopkg_gcfg_v1",
+        importpath = "gopkg.in/gcfg.v1",
+        sum = "h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs=",
+        version = "v1.2.3",
+    )
+    go_repository(
+        name = "in_gopkg_gemnasium_logrus_airbrake_hook_v2",
+        importpath = "gopkg.in/gemnasium/logrus-airbrake-hook.v2",
+        sum = "h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0=",
+        version = "v2.1.2",
+    )
+    go_repository(
+        name = "in_gopkg_go_playground_assert_v1",
+        importpath = "gopkg.in/go-playground/assert.v1",
+        sum = "h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=",
+        version = "v1.2.1",
+    )
+    go_repository(
+        name = "in_gopkg_go_playground_validator_v9",
+        importpath = "gopkg.in/go-playground/validator.v9",
+        sum = "h1:SvGtYmN60a5CVKTOzMSyfzWDeZRxRuGvRQyEAKbw1xc=",
+        version = "v9.29.1",
+    )
+
+    go_repository(
         name = "in_gopkg_inf_v0",
         importpath = "gopkg.in/inf.v0",
-        version = "v0.9.1",
         sum = "h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v0.9.1",
     )
     go_repository(
         name = "in_gopkg_ini_v1",
         importpath = "gopkg.in/ini.v1",
-        version = "v1.63.2",
-        sum = "h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU=",
+        version = "v1.62.0",
     )
     go_repository(
+        name = "in_gopkg_mcuadros_go_syslog_v2",
+        importpath = "gopkg.in/mcuadros/go-syslog.v2",
+        sum = "h1:60g8zx1BijSVSgLTzLCW9UC4/+i1Ih9jJ1DR5Tgp9vE=",
+        version = "v2.2.1",
+    )
+
+    go_repository(
         name = "in_gopkg_natefinch_lumberjack_v2",
         importpath = "gopkg.in/natefinch/lumberjack.v2",
-        version = "v2.0.0",
         sum = "h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v2.0.0",
     )
     go_repository(
+        name = "in_gopkg_resty_v1",
+        importpath = "gopkg.in/resty.v1",
+        sum = "h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI=",
+        version = "v1.12.0",
+    )
+
+    go_repository(
         name = "in_gopkg_square_go_jose_v2",
         importpath = "gopkg.in/square/go-jose.v2",
-        version = "v2.2.2",
-        sum = "h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=",
+        version = "v2.6.0",
     )
     go_repository(
+        name = "in_gopkg_src_d_go_billy_v4",
+        importpath = "gopkg.in/src-d/go-billy.v4",
+        sum = "h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg=",
+        version = "v4.3.2",
+    )
+    go_repository(
+        name = "in_gopkg_src_d_go_git_fixtures_v3",
+        importpath = "gopkg.in/src-d/go-git-fixtures.v3",
+        sum = "h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg=",
+        version = "v3.5.0",
+    )
+    go_repository(
+        name = "in_gopkg_src_d_go_git_v4",
+        importpath = "gopkg.in/src-d/go-git.v4",
+        sum = "h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE=",
+        version = "v4.13.1",
+    )
+
+    go_repository(
         name = "in_gopkg_tomb_v1",
         importpath = "gopkg.in/tomb.v1",
-        version = "v1.0.0-20141024135613-dd632973f1e7",
         sum = "h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.0.0-20141024135613-dd632973f1e7",
     )
     go_repository(
+        name = "in_gopkg_warnings_v0",
+        importpath = "gopkg.in/warnings.v0",
+        sum = "h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=",
+        version = "v0.1.2",
+    )
+
+    go_repository(
         name = "in_gopkg_yaml_v2",
         importpath = "gopkg.in/yaml.v2",
-        version = "v2.2.8",
-        sum = "h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=",
+        version = "v2.4.0",
     )
     go_repository(
-        name = "io_k8s_api",
-        importpath = "k8s.io/api",
-        version = "v0.19.7",
-        sum = "h1:MpHhls03C2pyzoYcpbe4QqYiiZjdvW+tuWq6TbjV14Y=",
+        name = "in_gopkg_yaml_v3",
+        importpath = "gopkg.in/yaml.v3",
+        sum = "h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=",
+        version = "v3.0.0-20210107192922-496545a6307b",
+    )
+
+    go_repository(
+        name = "io_etcd_go_bbolt",
+        importpath = "go.etcd.io/bbolt",
+        sum = "h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=",
+        version = "v1.3.6",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        importpath = "go.etcd.io/etcd",
+        sum = "h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo=",
+        version = "v0.5.0-alpha.5.0.20200910180754-dd1b699fc489",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_api_v3",
+        build_file_proto_mode = "disable",
+        importpath = "go.etcd.io/etcd/api/v3",
+        sum = "h1:tXok5yLlKyuQ/SXSjtqHc4uzNaMqZi2XsoSPr/LlJXI=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_client_pkg_v3",
+        importpath = "go.etcd.io/etcd/client/pkg/v3",
+        sum = "h1:4hzqQ6hIb3blLyQ8usCU4h3NghkqcsohEQ3o3VetYxE=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_client_v2",
+        importpath = "go.etcd.io/etcd/client/v2",
+        sum = "h1:ymrVwTkefuqA/rPkSW7/B4ApijbPVefRumkY+stNfS0=",
+        version = "v2.305.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_client_v3",
+        importpath = "go.etcd.io/etcd/client/v3",
+        sum = "h1:WdnejrUtQC4nCxK0/dLTMqKOB+U5TP/2Ya0BJL+1otA=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_etcdctl_v3",
+        importpath = "go.etcd.io/etcd/etcdctl/v3",
+        sum = "h1:i8DGjR9gBRoS6NEHF3XBxxh7QwL1DyilXMCkHpyy6zM=",
+        version = "v3.5.0",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_etcdutl_v3",
+        importpath = "go.etcd.io/etcd/etcdutl/v3",
+        sum = "h1:XDNv2bGD6Ylz3Gb9lIGV/IYLk1bwTvyCIi1EI4hyyqo=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_pkg_v3",
+        importpath = "go.etcd.io/etcd/pkg/v3",
+        patch_args = ["-p1"],
+        pre_patches = [
+            "//third_party/go/patches:etcd-fix-stub.patch",
         ],
+        sum = "h1:YZUojdoPhOyl5QILYnR8LTUbbNefu/sV4ma+ZMr2tto=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_raft_v3",
+        build_file_proto_mode = "disable",
+        importpath = "go.etcd.io/etcd/raft/v3",
+        sum = "h1:uCC37qOXqBvKqTGHGyhASsaCsnTuJugl1GvneJNwHWo=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_server_v3",
+        build_file_proto_mode = "disable",
+        importpath = "go.etcd.io/etcd/server/v3",
+        sum = "h1:B6ytJvS4Fmt8nkjzS2/8POf4tuPhFMluE0lWd4dx/7U=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_tests_v3",
+        importpath = "go.etcd.io/etcd/tests/v3",
+        sum = "h1:uk7/uMGVebpBDl+roivowHt6gJ5Fnqwik3syDkoSKdo=",
+        version = "v3.5.2",
+    )
+    go_repository(
+        name = "io_etcd_go_etcd_v3",
+        importpath = "go.etcd.io/etcd/v3",
+        sum = "h1:fs7tB+L/xRDi/+p9qKuaPGCtMX6vkovLRXTqvEE98Ek=",
+        version = "v3.5.0",
+    )
+    go_repository(
+        name = "io_gitea_code_sdk_gitea",
+        importpath = "code.gitea.io/sdk/gitea",
+        sum = "h1:CdI3J82Mqn0mElyEKa5DUSr3Wi2R+qm/6uVtCkSSqSM=",
+        version = "v0.11.3",
+    )
+
+    go_repository(
+        name = "io_k8s_api",
+        build_file_proto_mode = "disable",
+        importpath = "k8s.io/api",
+        replace = "k8s.io/api",
+        sum = "h1:85gnfXQOWbJa1SiWGpE9EEtHs0UVvDyIsSMpEtl2D4E=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_apiextensions_apiserver",
-        importpath = "k8s.io/apiextensions-apiserver",
-        version = "v0.19.7",
-        sum = "h1:aV9DANMSCCYBEMbtoT/5oesrtcciQrjy9yqWVtZZL5A=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "k8s.io/apiextensions-apiserver",
+        replace = "k8s.io/apiextensions-apiserver",
+        sum = "h1:AFDUEu/yEf0YnuZhqhIFhPLPhhcQQVuR1u3WCh0rveU=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_apimachinery",
-        importpath = "k8s.io/apimachinery",
-        version = "v0.19.8-rc.0",
-        sum = "h1:/vt04+wL+Y79Qsu8hAo2K4QJA+AKGkJCYmoTTVrUiPQ=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "k8s.io/apimachinery",
+        replace = "k8s.io/apimachinery",
+        sum = "h1:fhnuMd/xUL3Cjfl64j5ULKZ1/J9n8NuQEgNL+WXWfdM=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_apiserver",
-        importpath = "k8s.io/apiserver",
-        version = "v0.19.7",
-        sum = "h1:fOOELJ9TNC6DgKL3GUkQLE/EBMLjwBseTstx2eRP61o=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "k8s.io/apiserver",
+        replace = "k8s.io/apiserver",
+        sum = "h1:zNvQlG+C/ERjuUz4p7eY/0IWHaMixRSBoxgmyIdwo9Y=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_cli_runtime",
         importpath = "k8s.io/cli-runtime",
-        version = "v0.19.7",
-        sum = "h1:VkHsqrQYCD6+yBm2k9lOxLJtfo1tmb/TdYIHQ2RSCsY=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/cli-runtime",
+        sum = "h1:C3AFQmo4TK4dlVPLOI62gtHEHu0OfA2Cp4UVRZ1JXns=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_client_go",
         importpath = "k8s.io/client-go",
-        version = "v0.19.7",
-        sum = "h1:SoJ4mzZ9LyXBGDe8MmpMznw0CwQ1ITWgsmG7GixvhUU=",
-        pre_patches = [
-            "//third_party/go/patches:k8s-client-go.patch",
-        ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/client-go",
+        sum = "h1:YVWvPeerA2gpUudLelvsolzH7c2sFoXXR5wM/sWqNFU=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_cloud_provider",
         importpath = "k8s.io/cloud-provider",
-        version = "v0.19.7",
-        sum = "h1:01fiPTLkTU/MNKZBcMmeYQ5DWqRS4d3GhYGGGlkjgOw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/cloud-provider",
+        sum = "h1:Nx42V7+Vpaad3qZE031MpTfCDl3jeQrX6wuwieES/nc=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_cluster_bootstrap",
         importpath = "k8s.io/cluster-bootstrap",
-        version = "v0.19.7",
-        sum = "h1:xlI+YfeS5gOVa33WVh1viiPZMDN9j7BAiY0iJkg2LwI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/cluster-bootstrap",
+        sum = "h1:tYz2h91tY1zcxMk3qMajcPgkixqvB4+uFrOiznlp7Fo=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_code_generator",
         importpath = "k8s.io/code-generator",
-        version = "v0.19.9-rc.0",
-        sum = "h1:ci5Y09V0Uiim61fltZsjHYp+i6eNaMMmtIlIveHqQ9Y=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/code-generator",
+        sum = "h1:MmDMH74oo8YD4r+KdUzd/VVmXUeXf5u0owLI9wZWP5Y=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_component_base",
         importpath = "k8s.io/component-base",
-        version = "v0.19.7",
-        sum = "h1:ZXS2VRWOWBOc2fTd1zjzhi/b/mkqFT9FDqiNsn1cH30=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/component-base",
+        sum = "h1:SziYh48+QKxK+ykJ3Ejqd98XdZIseVBG7sBaNLPqy6M=",
+        version = "v0.23.4",
     )
     go_repository(
+        name = "io_k8s_component_helpers",
+        importpath = "k8s.io/component-helpers",
+        replace = "k8s.io/component-helpers",
+        sum = "h1:zCLeBuo3Qs0BqtJu767RXJgs5S9ruFJZcbM1aD+cMmc=",
+        version = "v0.23.4",
+    )
+    go_repository(
+        name = "io_k8s_controller_manager",
+        importpath = "k8s.io/controller-manager",
+        replace = "k8s.io/controller-manager",
+        sum = "h1:u3M3RI/Ppt0C8JDj8in60jWbRYihihK6h3H/I4ozWbE=",
+        version = "v0.23.4",
+    )
+
+    go_repository(
         name = "io_k8s_cri_api",
-        importpath = "k8s.io/cri-api",
-        version = "v0.19.8-rc.0",
-        sum = "h1:aXNNIIoVcmIB/mlz/otcULQOgnErxnLB4uaWENHKblA=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "k8s.io/cri-api",
+        replace = "k8s.io/cri-api",
+        sum = "h1:f1bp27XIBAdJEShjDEKBB3Lx/oZ9GgpQ3bFEx7hV0nI=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_csi_translation_lib",
         importpath = "k8s.io/csi-translation-lib",
-        version = "v0.19.7",
-        sum = "h1:Spr0XWqXufEUQA47axmPTm1xOabdMYG9MUbJVaRRb0g=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/csi-translation-lib",
+        sum = "h1:n6x1Sd338WFB0GQFEMPmsEZblgRo7Bx3AUVebrWPrjM=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_gengo",
         importpath = "k8s.io/gengo",
-        version = "v0.0.0-20200428234225-8167cfdcfc14",
-        sum = "h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA=",
+        version = "v0.0.0-20210813121822-485abfe95c7c",
     )
     go_repository(
         name = "io_k8s_heapster",
         importpath = "k8s.io/heapster",
-        version = "v1.2.0-beta.1",
         sum = "h1:lUsE/AHOMHpi3MLlBEkaU8Esxm5QhdyCrv1o7ot0s84=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.2.0-beta.1",
     )
     go_repository(
+        name = "io_k8s_klog",
+        importpath = "k8s.io/klog",
+        sum = "h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
         name = "io_k8s_klog_v2",
         importpath = "k8s.io/klog/v2",
-        version = "v2.2.0",
-        sum = "h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:P4RRucWk/lFOlDdkAr3mc7iWFkgKrZY9qZMAgek06S4=",
+        version = "v2.40.1",
     )
     go_repository(
         name = "io_k8s_kube_aggregator",
-        importpath = "k8s.io/kube-aggregator",
-        version = "v0.19.7",
-        sum = "h1:Eol5vPNFKaDScdVuTh0AofhuSr4cJxP5Vfv8JXW8OAQ=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "k8s.io/kube-aggregator",
+        replace = "k8s.io/kube-aggregator",
+        sum = "h1:gLk78rGLVfUXCdD14NrKg/JFBmNNCZ8FEs3tYt+W6Zk=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_kube_controller_manager",
         importpath = "k8s.io/kube-controller-manager",
-        version = "v0.19.7",
-        sum = "h1:3rNXjHM5LHcv2HiO2JjdV4yW3EN+2tCPaKXWL/Cl8TM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/kube-controller-manager",
+        sum = "h1:m9RTyxWipaFs/Bb0Z3XIgXEVHEEIIVspa7tev+kXz8w=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_kube_openapi",
         importpath = "k8s.io/kube-openapi",
-        version = "v0.0.0-20200805222855-6aeccd4b50c6",
-        sum = "h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4=",
+        version = "v0.0.0-20211115234752-e816edb12b65",
     )
     go_repository(
         name = "io_k8s_kube_proxy",
         importpath = "k8s.io/kube-proxy",
-        version = "v0.19.7",
-        sum = "h1:QQUwEnHA1jawodclndlmK/6Ifc9XVNlUaQ4Vq5RVbI8=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/kube-proxy",
+        sum = "h1:jkpSBIbaGtLsHfdQR7oCs37iQtIgU2XlRXDwjsY2NM8=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_kube_scheduler",
         importpath = "k8s.io/kube-scheduler",
-        version = "v0.19.7",
-        sum = "h1:TlQFoH7rATVqU7myNZ4FBgnXdGIwR7iBBNk3ir8Y9WM=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/kube-scheduler",
+        sum = "h1:NR/WCkM5Rmz3lzZq8vgKZW6fJFbyqfiCHn8xYkibxBw=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_kubectl",
         importpath = "k8s.io/kubectl",
-        version = "v0.19.7",
-        sum = "h1:pSsha+MBr9KLhn0IKrRikeAZ7g2oeShIGHLgqAzE3Ak=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/kubectl",
+        sum = "h1:mAa+zEOlyZieecEy+xSrhjkpMcukYyHWzcNdX28dzMY=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_kubelet",
-        importpath = "k8s.io/kubelet",
-        version = "v0.19.7",
-        sum = "h1:cPp0fXN99cxyXeoI3nG2ZBORUvR0liT+bg6ofCybJzw=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        importpath = "k8s.io/kubelet",
+        patch_args = ["-p1"],
+        patches = [
+            "//third_party/go/patches:kubelet-fix-path.patch",
         ],
+        replace = "k8s.io/kubelet",
+        sum = "h1:yptgklhQ3dtHHIpH/RgI0861XWoJ9/YIBnnxYS6l8VI=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_kubernetes",
-        importpath = "k8s.io/kubernetes",
-        version = "v1.19.7",
-        sum = "h1:Yk9W5SL1KR2mwy0nNZwjFXNImfK7ihrbKhXttidNTiE=",
         build_file_proto_mode = "disable",
-        build_tags = [
-            "providerless",
-        ],
+        build_tags = ["providerless", "dockerless"],  #keep
+        importpath = "k8s.io/kubernetes",
+        patch_args = ["-p1"],
         patches = [
-            "//third_party/go/patches:k8s-kubernetes.patch",
-            "//third_party/go/patches:k8s-kubernetes-build.patch",
             "//third_party/go/patches:k8s-native-metrics.patch",
-            "//third_party/go/patches:k8s-use-native.patch",
-            "//third_party/go/patches:k8s-revert-seccomp-runtime-default.patch",
             "//third_party/go/patches:k8s-removed-block-device-pseudo-locks.patch",
+            "//third_party/go/patches:k8s-jose-semver-fix.patch",
         ],
         pre_patches = [
-            "//third_party/go/patches:k8s-e2e-tests-providerless.patch",
-            "//third_party/go/patches:k8s-fix-paths.patch",
             "//third_party/go/patches:k8s-fix-logs-path.patch",
             "//third_party/go/patches:k8s-drop-legacy-log-path.patch",
+            "//third_party/go/patches:k8s-adopt-to-go-jose-2.3.patch",
+            "//third_party/go/patches:k8s-adopt-to-runc-1.1.patch",
+            "//third_party/go/patches:k8s-backport-no-dockershim.patch",
+            "@monogon_k8s_pregenerate_openapi_patch//file",
         ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:25dqAMS96u+9L/A7AHdEW7aMTcmHoQMbMPug6Fa61JE=",
+        version = "v1.23.4",
     )
     go_repository(
         name = "io_k8s_legacy_cloud_providers",
         importpath = "k8s.io/legacy-cloud-providers",
-        version = "v0.19.7",
-        sum = "h1:YJ/l/8/Hn56I9m1cudK8aNypRA/NvI/hYhg8fo/CTus=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/legacy-cloud-providers",
+        sum = "h1:apiVRic5Yg1o5hqgMZoClpWQB2cL/rFnpM1d40qR7xA=",
+        version = "v0.23.4",
     )
     go_repository(
         name = "io_k8s_metrics",
-        importpath = "k8s.io/metrics",
-        version = "v0.19.7",
-        sum = "h1:fpTtFhNtS0DwJiYGGsL4YoSjHlLw8qugkgw3EXSWaUA=",
         build_file_proto_mode = "disable",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        importpath = "k8s.io/metrics",
+        replace = "k8s.io/metrics",
+        sum = "h1:99+9V/J1PuCqwvYFiuiuZcDImTx4SfFFiwsIB0ZTqUQ=",
+        version = "v0.23.4",
     )
     go_repository(
-        name = "io_k8s_repo_infra",
-        importpath = "k8s.io/repo-infra",
-        version = "v0.1.4-0.20210105022653-a3483874bd37",
-        sum = "h1:0GPavEcPKBA0rYl7f6dO0mXYmx7t9RaXD3be2g23Ps4=",
-        pre_patches = [
-            "//third_party/go/patches:k8s-infra-bzl4-compat.patch",
-            "//third_party/go/patches:k8s-infra-fix-go116.patch",
-        ],
+        name = "io_k8s_mount_utils",
+        importpath = "k8s.io/mount-utils",
         patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+        pre_patches = [
+            "//third_party/go/patches:k8s-native-mounter.patch",
         ],
+        replace = "k8s.io/mount-utils",
+        sum = "h1:tWUj5A0DJ29haMiO7F3pNdP2HwyMWczzvqQmikFc9s8=",
+        version = "v0.23.4",
     )
     go_repository(
+        name = "io_k8s_pod_security_admission",
+        importpath = "k8s.io/pod-security-admission",
+        replace = "k8s.io/pod-security-admission",
+        sum = "h1:f7gLBbS/E03kCY0CBR3LjFqpsdPjnBT8nyBbFUbqoSk=",
+        version = "v0.23.4",
+    )
+
+    go_repository(
         name = "io_k8s_sample_apiserver",
         importpath = "k8s.io/sample-apiserver",
-        version = "v0.19.7",
-        sum = "h1:ZWD6dsvqpqhWj3jKRb19/m/bo/0r+TRgjkX+h5m7f4g=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        replace = "k8s.io/sample-apiserver",
+        sum = "h1:I74oWhsHzZ0ZowqXtBtW6nqamu0wmNXqlcQBbKOOpDY=",
+        version = "v0.23.4",
     )
-    go_repository(
-        name = "io_k8s_utils",
-        importpath = "k8s.io/utils",
-        version = "v0.0.0-20200729134348-d5654de09c73",
-        sum = "h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=",
-        patches = [
-            "//third_party/go/patches:k8s-native-mounter.patch",
-        ],
-        patch_args = ["-p1"],
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
-    )
+
     go_repository(
         name = "io_k8s_sigs_apiserver_network_proxy_konnectivity_client",
         importpath = "sigs.k8s.io/apiserver-network-proxy/konnectivity-client",
-        version = "v0.0.9",
-        sum = "h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:KQOkVzXrLNb0EP6W0FD6u3CCPAwgXFYwZitbj7K0P0Y=",
+        version = "v0.0.27",
     )
     go_repository(
-        name = "io_k8s_sigs_kustomize",
-        importpath = "sigs.k8s.io/kustomize",
-        version = "v2.0.3+incompatible",
-        sum = "h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        name = "io_k8s_sigs_json",
+        importpath = "sigs.k8s.io/json",
+        sum = "h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s=",
+        version = "v0.0.0-20211020170558-c049b76a60c6",
     )
+
+    go_repository(
+        name = "io_k8s_sigs_kustomize_api",
+        importpath = "sigs.k8s.io/kustomize/api",
+        sum = "h1:KgU7hfYoscuqag84kxtzKdEC3mKMb99DPI3a0eaV1d0=",
+        version = "v0.10.1",
+    )
+    go_repository(
+        name = "io_k8s_sigs_kustomize_cmd_config",
+        importpath = "sigs.k8s.io/kustomize/cmd/config",
+        sum = "h1:2GD3+knDaqZo6rSibkc4kKGp8auNBJrGPZQCTWN4Rtc=",
+        version = "v0.10.2",
+    )
+    go_repository(
+        name = "io_k8s_sigs_kustomize_kustomize_v4",
+        importpath = "sigs.k8s.io/kustomize/kustomize/v4",
+        sum = "h1:6hgMEo3Gt0XmhDt4vo0FJ0LRDMc4i8JC6SUW24D4hQM=",
+        version = "v4.4.1",
+    )
+    go_repository(
+        name = "io_k8s_sigs_kustomize_kyaml",
+        importpath = "sigs.k8s.io/kustomize/kyaml",
+        sum = "h1:9c+ETyNfSrVhxvphs+K2dzT3dh5oVPPEqPOE/cUpScY=",
+        version = "v0.13.0",
+    )
+
     go_repository(
         name = "io_k8s_sigs_structured_merge_diff_v4",
         importpath = "sigs.k8s.io/structured-merge-diff/v4",
-        version = "v4.0.1",
-        sum = "h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        sum = "h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y=",
+        version = "v4.2.1",
     )
     go_repository(
         name = "io_k8s_sigs_yaml",
         importpath = "sigs.k8s.io/yaml",
-        version = "v1.2.0",
         sum = "h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=",
-        build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
-        ],
+        version = "v1.2.0",
     )
     go_repository(
-        name = "ml_vbom_util",
-        importpath = "vbom.ml/util",
-        version = "v0.0.0-20160121211510-db5cfe13f5cc",
-        sum = "h1:MksmcCZQWAQJCTA5T0jgI/0sJ51AVm4Z41MrmfczEoc=",
+        name = "io_k8s_system_validators",
+        importpath = "k8s.io/system-validators",
+        sum = "h1:21qaPNdZ+mQrm4qc5shU0T5Eh49t/miFqZsn4sW8Hr0=",
+        version = "v1.6.0",
+    )
+
+    go_repository(
+        name = "io_k8s_utils",
+        importpath = "k8s.io/utils",
+        sum = "h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE=",
+        version = "v0.0.0-20211116205334-6203023598ed",
+    )
+    go_repository(
+        name = "io_opencensus_go",
+        importpath = "go.opencensus.io",
+        sum = "h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=",
+        version = "v0.23.0",
+    )
+    go_repository(
+        name = "io_opencensus_go_contrib_exporter_aws",
+        importpath = "contrib.go.opencensus.io/exporter/aws",
+        sum = "h1:YsbWYxDZkC7x2OxlsDEYvvEXZ3cBI3qBgUK5BqkZvRw=",
+        version = "v0.0.0-20181029163544-2befc13012d0",
+    )
+    go_repository(
+        name = "io_opencensus_go_contrib_exporter_ocagent",
+        importpath = "contrib.go.opencensus.io/exporter/ocagent",
+        sum = "h1:TKXjQSRS0/cCDrP7KvkgU6SmILtF/yV2TOs/02K/WZQ=",
+        version = "v0.5.0",
+    )
+    go_repository(
+        name = "io_opencensus_go_contrib_exporter_stackdriver",
+        importpath = "contrib.go.opencensus.io/exporter/stackdriver",
+        sum = "h1:lIFYmQsqejvlq+GobFUbC5F0prD5gvhP6r0gWLZRDq4=",
+        version = "v0.13.8",
+    )
+    go_repository(
+        name = "io_opencensus_go_contrib_integrations_ocsql",
+        importpath = "contrib.go.opencensus.io/integrations/ocsql",
+        sum = "h1:kfg5Yyy1nYUrqzyfW5XX+dzMASky8IJXhtHe0KTYNS4=",
+        version = "v0.1.4",
+    )
+    go_repository(
+        name = "io_opencensus_go_contrib_resource",
+        importpath = "contrib.go.opencensus.io/resource",
+        sum = "h1:4r2CANuYhKGmYWP02+5E94rLRcS/YeD+KlxSrOsMxk0=",
+        version = "v0.1.1",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_contrib",
+        importpath = "go.opentelemetry.io/contrib",
+        replace = "go.opentelemetry.io/contrib",
+        sum = "h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_contrib_instrumentation_google_golang_org_grpc_otelgrpc",
+        importpath = "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
+        replace = "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
+        sum = "h1:sO4WKdPAudZGKPcpZT4MJn6JaDmpyLrMPDGGyA1SttE=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_contrib_instrumentation_net_http_otelhttp",
+        importpath = "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
+        replace = "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
+        sum = "h1:Q3C9yzW6I9jqEc8sawxzxZmY48fs9u220KXq6d5s3XU=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel",
+        importpath = "go.opentelemetry.io/otel",
+        replace = "go.opentelemetry.io/otel",
+        sum = "h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_exporters_otlp",
+        importpath = "go.opentelemetry.io/otel/exporters/otlp",
+        replace = "go.opentelemetry.io/otel/exporters/otlp",
+        sum = "h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_exporters_otlp_internal_retry",
+        importpath = "go.opentelemetry.io/otel/exporters/otlp/internal/retry",
+        sum = "h1:R/OBkMoGgfy2fLhs2QhkCI1w4HLEQX92GCcJB6SSdNk=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace",
+        importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace",
+        sum = "h1:giGm8w67Ja7amYNfYMdme7xSp2pIxThWopw8+QP51Yk=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace_otlptracegrpc",
+        importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc",
+        sum = "h1:VQbUHoJqytHHSJ1OZodPH9tvZZSVzUHjPHpkO85sT6k=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace_otlptracehttp",
+        importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
+        sum = "h1:Ydage/P0fRrSPpZeCVxzjqGcI6iVmG2xb43+IR8cjqM=",
+        version = "v1.3.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_metric",
+        importpath = "go.opentelemetry.io/otel/metric",
+        replace = "go.opentelemetry.io/otel/metric",
+        sum = "h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_oteltest",
+        importpath = "go.opentelemetry.io/otel/oteltest",
+        replace = "go.opentelemetry.io/otel/oteltest",
+        sum = "h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_sdk",
+        importpath = "go.opentelemetry.io/otel/sdk",
+        replace = "go.opentelemetry.io/otel/sdk",
+        sum = "h1:JsxtGXd06J8jrnya7fdI/U/MR6yXA5DtbZy+qoHQlr8=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_sdk_export_metric",
+        importpath = "go.opentelemetry.io/otel/sdk/export/metric",
+        replace = "go.opentelemetry.io/otel/sdk/export/metric",
+        sum = "h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_sdk_metric",
+        importpath = "go.opentelemetry.io/otel/sdk/metric",
+        replace = "go.opentelemetry.io/otel/sdk/metric",
+        sum = "h1:7ao1wpzHRVKf0OQ7GIxiQJA6X7DLX9o14gmVon7mMK8=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_trace",
+        importpath = "go.opentelemetry.io/otel/trace",
+        replace = "go.opentelemetry.io/otel/trace",
+        sum = "h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw=",
+        version = "v0.20.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_proto_otlp",
+        importpath = "go.opentelemetry.io/proto/otlp",
+        replace = "go.opentelemetry.io/proto/otlp",
+        sum = "h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8=",
+        version = "v0.7.0",
+    )
+    go_repository(
+        name = "io_rsc_binaryregexp",
+        importpath = "rsc.io/binaryregexp",
+        sum = "h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE=",
+        version = "v0.2.0",
+    )
+    go_repository(
+        name = "io_rsc_pdf",
+        importpath = "rsc.io/pdf",
+        sum = "h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=",
+        version = "v0.1.1",
+    )
+    go_repository(
+        name = "io_rsc_quote_v3",
+        importpath = "rsc.io/quote/v3",
+        sum = "h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY=",
+        version = "v3.1.0",
+    )
+    go_repository(
+        name = "io_rsc_sampler",
+        importpath = "rsc.io/sampler",
+        sum = "h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=",
+        version = "v1.3.0",
+    )
+
+    go_repository(
+        name = "net_starlark_go",
+        importpath = "go.starlark.net",
+        sum = "h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=",
+        version = "v0.0.0-20200821142938-949cc6f4b097",
+    )
+    go_repository(
+        name = "org_bazil_fuse",
+        importpath = "bazil.org/fuse",
+        sum = "h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c=",
+        version = "v0.0.0-20200407214033-5883e5a4b512",
+    )
+    go_repository(
+        name = "org_bitbucket_bertimus9_systemstat",
+        importpath = "bitbucket.org/bertimus9/systemstat",
+        sum = "h1:N9r8OBSXAgEUfho3SQtZLY8zo6E1OdOMvelvP22aVFc=",
+        version = "v0.0.0-20180207000608-0eeff89b0690",
+    )
+    go_repository(
+        name = "org_bitbucket_creachadair_shell",
+        importpath = "bitbucket.org/creachadair/shell",
+        sum = "h1:reJflDbKqnlnqb4Oo2pQ1/BqmY/eCWcNGHrIUO8qIzc=",
+        version = "v0.0.6",
+    )
+
+    go_repository(
+        name = "org_golang_google_api",
+        importpath = "google.golang.org/api",
+        sum = "h1:67zQnAE0T2rB0A3CwLSas0K+SbVzSxP+zTLkQLexeiw=",
+        version = "v0.70.0",
+    )
+    go_repository(
+        name = "org_golang_google_appengine",
+        importpath = "google.golang.org/appengine",
+        sum = "h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=",
+        version = "v1.6.7",
+    )
+    go_repository(
+        name = "org_golang_google_cloud",
+        importpath = "google.golang.org/cloud",
+        sum = "h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA=",
+        version = "v0.0.0-20151119220103-975617b05ea8",
+    )
+
+    go_repository(
+        name = "org_golang_google_genproto",
+        importpath = "google.golang.org/genproto",
+        sum = "h1:TU4rFa5APdKTq0s6B7WTsH6Xmx0Knj86s6Biz56mErE=",
+        version = "v0.0.0-20220218161850-94dd64e39d7c",
+    )
+    go_repository(
+        name = "org_golang_google_grpc",
+        importpath = "google.golang.org/grpc",
+        sum = "h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M=",
+        version = "v1.45.0",
+    )
+    go_repository(
+        name = "org_golang_google_grpc_cmd_protoc_gen_go_grpc",
+        importpath = "google.golang.org/grpc/cmd/protoc-gen-go-grpc",
+        sum = "h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "org_golang_google_protobuf",
+        importpath = "google.golang.org/protobuf",
+        sum = "h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=",
+        version = "v1.27.1",
+    )
+
+    go_repository(
+        name = "org_golang_x_arch",
+        importpath = "golang.org/x/arch",
+        sum = "h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=",
+        version = "v0.0.0-20190927153633-4e8777c89be4",
+    )
+
+    go_repository(
+        name = "org_golang_x_crypto",
+        importpath = "golang.org/x/crypto",
+        sum = "h1:lnZ4LoV0UMdibeCUfIB2a4uFwRu491WX/VB2reB8xNc=",
+        version = "v0.0.0-20220208050332-20e1d8d225ab",
+    )
+    go_repository(
+        name = "org_golang_x_exp",
+        importpath = "golang.org/x/exp",
+        sum = "h1:GrkO5AtFUU9U/1f5ctbIBXtBGeSJbWwIYfIsTcFMaX4=",
+        version = "v0.0.0-20210220032938-85be41e4509f",
+    )
+    go_repository(
+        name = "org_golang_x_image",
+        importpath = "golang.org/x/image",
+        sum = "h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=",
+        version = "v0.0.0-20190802002840-cff245a6509b",
+    )
+    go_repository(
+        name = "org_golang_x_lint",
+        importpath = "golang.org/x/lint",
+        sum = "h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=",
+        version = "v0.0.0-20210508222113-6edffad5e616",
+    )
+    go_repository(
+        name = "org_golang_x_mobile",
+        importpath = "golang.org/x/mobile",
+        sum = "h1:kgfVkAEEQXXQ0qc6dH7n6y37NAYmTFmz0YRwrRjgxKw=",
+        version = "v0.0.0-20201217150744-e6ae53a27f4f",
+    )
+
+    go_repository(
+        name = "org_golang_x_mod",
         build_extra_args = [
-            "-go_naming_convention=go_default_library",
-            "-go_naming_convention_external=go_default_library",
+            "-go_naming_convention=import_alias",
+            "-go_naming_convention_external=import_alias",
         ],
+        importpath = "golang.org/x/mod",
+        sum = "h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=",
+        version = "v0.5.1",
+    )
+    go_repository(
+        name = "org_golang_x_net",
+        importpath = "golang.org/x/net",
+        sum = "h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=",
+        version = "v0.0.0-20220225172249-27dd8689420f",
+    )
+    go_repository(
+        name = "org_golang_x_oauth2",
+        importpath = "golang.org/x/oauth2",
+        sum = "h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=",
+        version = "v0.0.0-20211104180415-d3ed0bb246c8",
+    )
+
+    go_repository(
+        name = "org_golang_x_sync",
+        build_extra_args = [
+            "-go_naming_convention=import_alias",
+            "-go_naming_convention_external=import_alias",
+        ],
+        importpath = "golang.org/x/sync",
+        sum = "h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=",
+        version = "v0.0.0-20210220032951-036812b2e83c",
+    )
+    go_repository(
+        name = "org_golang_x_sys",
+        importpath = "golang.org/x/sys",
+        sum = "h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng=",
+        version = "v0.0.0-20220310020820-b874c991c1a5",
+    )
+    go_repository(
+        name = "org_golang_x_term",
+        importpath = "golang.org/x/term",
+        sum = "h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=",
+        version = "v0.0.0-20210927222741-03fcf44c2211",
+    )
+
+    go_repository(
+        name = "org_golang_x_text",
+        importpath = "golang.org/x/text",
+        sum = "h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=",
+        version = "v0.3.7",
+    )
+    go_repository(
+        name = "org_golang_x_time",
+        importpath = "golang.org/x/time",
+        sum = "h1:GZokNIeuVkl3aZHJchRrr13WCsols02MLUcz1U9is6M=",
+        version = "v0.0.0-20211116232009-f0f3c7e86c11",
+    )
+    go_repository(
+        name = "org_golang_x_tools",
+        importpath = "golang.org/x/tools",
+        patch_args = ["-p1"],
+        patches = [
+            "//third_party/go/patches:goimports-group-merging.patch",
+        ],
+        sum = "h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8=",
+        version = "v0.1.9",
+    )
+    go_repository(
+        name = "org_golang_x_xerrors",
+        importpath = "golang.org/x/xerrors",
+        sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=",
+        version = "v0.0.0-20200804184101-5ec99f83aff1",
+    )
+
+    go_repository(
+        name = "org_gonum_v1_gonum",
+        importpath = "gonum.org/v1/gonum",
+        sum = "h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=",
+        version = "v0.6.2",
+    )
+    go_repository(
+        name = "org_gonum_v1_netlib",
+        importpath = "gonum.org/v1/netlib",
+        sum = "h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=",
+        version = "v0.0.0-20190331212654-76723241ea4e",
+    )
+    go_repository(
+        name = "org_gonum_v1_plot",
+        importpath = "gonum.org/v1/plot",
+        sum = "h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k=",
+        version = "v0.0.0-20190515093506-e2840ee46a6b",
+    )
+    go_repository(
+        name = "org_modernc_cc",
+        importpath = "modernc.org/cc",
+        sum = "h1:nPibNuDEx6tvYrUAtvDTTw98rx5juGsa5zuDnKwEEQQ=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "org_modernc_golex",
+        importpath = "modernc.org/golex",
+        sum = "h1:wWpDlbK8ejRfSyi0frMyhilD3JBvtcx2AdGDnU+JtsE=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "org_modernc_mathutil",
+        importpath = "modernc.org/mathutil",
+        sum = "h1:93vKjrJopTPrtTNpZ8XIovER7iCIH1QU7wNbOQXC60I=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "org_modernc_strutil",
+        importpath = "modernc.org/strutil",
+        sum = "h1:XVFtQwFVwc02Wk+0L/Z/zDDXO81r5Lhe6iMKmGX3KhE=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "org_modernc_xc",
+        importpath = "modernc.org/xc",
+        sum = "h1:7ccXrupWZIS3twbUGrtKmHS2DXY6xegFua+6O3xgAFU=",
+        version = "v1.0.0",
+    )
+
+    go_repository(
+        name = "org_mongodb_go_mongo_driver",
+        importpath = "go.mongodb.org/mongo-driver",
+        sum = "h1:jxcFYjlkl8xaERsgLo+RNquI0epW6zuy/ZRQs6jnrFA=",
+        version = "v1.1.2",
+    )
+    go_repository(
+        name = "org_mozilla_go_pkcs7",
+        importpath = "go.mozilla.org/pkcs7",
+        sum = "h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M=",
+        version = "v0.0.0-20200128120323-432b2356ecb1",
+    )
+
+    go_repository(
+        name = "org_uber_go_atomic",
+        importpath = "go.uber.org/atomic",
+        sum = "h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=",
+        version = "v1.7.0",
+    )
+    go_repository(
+        name = "org_uber_go_goleak",
+        importpath = "go.uber.org/goleak",
+        sum = "h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=",
+        version = "v1.1.12",
+    )
+
+    go_repository(
+        name = "org_uber_go_multierr",
+        importpath = "go.uber.org/multierr",
+        sum = "h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=",
+        version = "v1.8.0",
+    )
+    go_repository(
+        name = "org_uber_go_tools",
+        importpath = "go.uber.org/tools",
+        sum = "h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=",
+        version = "v0.0.0-20190618225709-2cfd321de3ee",
+    )
+
+    go_repository(
+        name = "org_uber_go_zap",
+        importpath = "go.uber.org/zap",
+        sum = "h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=",
+        version = "v1.19.0",
+    )
+    go_repository(
+        name = "tools_gotest",
+        importpath = "gotest.tools",
+        sum = "h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=",
+        version = "v2.2.0+incompatible",
+    )
+
+    go_repository(
+        name = "tools_gotest_v3",
+        importpath = "gotest.tools/v3",
+        sum = "h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=",
+        version = "v3.0.3",
     )
diff --git a/third_party/seccomp/external.bzl b/third_party/seccomp/external.bzl
index 66f933b..7f558c6 100644
--- a/third_party/seccomp/external.bzl
+++ b/third_party/seccomp/external.bzl
@@ -17,6 +17,8 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
 def seccomp_external(name, version):
+    # NOTE: Remember to update seccomp.bzl's seccomp.h template rule
+    # with the correct version.
     sums = {
         "2.5.1": "76ad54e31d143b39a99083564045212a965e026a1010a742edd793d26d699829",
     }
diff --git a/third_party/seccomp/seccomp.bzl b/third_party/seccomp/seccomp.bzl
index 6b0a9aa..4280fc2 100644
--- a/third_party/seccomp/seccomp.bzl
+++ b/third_party/seccomp/seccomp.bzl
@@ -53,11 +53,11 @@
     name = "seccomp.h",
     src = "include/seccomp.h.in",
     substitutions = {
-        # Irrelevant for Bazel. Just look at WORKSPACE.
-        # Make it obviously invalid so nobody is mislead.
-        "@VERSION_MAJOR@": "0",
-        "@VERSION_MINOR@": "0",
-        "@VERSION_MICRO@": "0",
+        # Known dependencies relying on this version information:
+        # - @com_github_seccomp_libseccomp_golang//:libseccomp-golang
+        "@VERSION_MAJOR@": "2",
+        "@VERSION_MINOR@": "5",
+        "@VERSION_MICRO@": "1",
     },
     visibility = ["//visibility:public"],
 )