ci: add full-node tests (#920)

diff --git a/images/Earthfile b/images/Earthfile
index 1141ecd..0a4374a 100644
--- a/images/Earthfile
+++ b/images/Earthfile
@@ -1,7 +1,7 @@
-VERSION 0.7
+VERSION 0.8
 
 APT_INSTALL:
-  COMMAND
+  FUNCTION
   ARG PACKAGES
   RUN \
     apt-get update && \
@@ -10,7 +10,7 @@
     rm -rf /var/lib/apt/lists/*
 
 DNF_INSTALL:
-  COMMAND
+  FUNCTION
   ARG PACKAGES
   RUN \
     dnf -y install \
@@ -21,7 +21,7 @@
     rm -rf /var/cache/dnf
 
 CREATE_PROJECT_USER:
-  COMMAND
+  FUNCTION
   ARG PROJECT
   ARG SHELL=/usr/sbin/nologin
   RUN \
diff --git a/images/barbican/Earthfile b/images/barbican/Earthfile
index 0c843ff..5ae11d0 100644
--- a/images/barbican/Earthfile
+++ b/images/barbican/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=barbican
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=a00fcade4138ffc52cd9c84b5999297966f019b5
@@ -15,5 +16,5 @@
   FROM ../openstack-service+image --RELEASE ${RELEASE} --PROJECT ${PROJECT}
   COPY +build/venv /var/lib/openstack
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/base/Earthfile b/images/base/Earthfile
index f34cf37..1810ea7 100644
--- a/images/base/Earthfile
+++ b/images/base/Earthfile
@@ -1,14 +1,5 @@
 VERSION 0.7
 
 image:
-  FROM ubuntu:jammy-20240111
+  FROM ubuntu:jammy-20240125
   LABEL org.opencontainers.image.source=https://github.com/vexxhost/atmosphere
-  # TODO(mnaser): Remove this when a new image that includes 1.4.0-11ubuntu2.4 is released.
-  #               https://avd.aquasec.com/nvd/cve-2024-22365
-  DO ../+APT_INSTALL \
-    --PACKAGES "libpam0g libpam-modules libpam-modules-bin libpam-runtime"
-  # TODO(mnaser): Remove this when a new image that includes 3.7.3-4ubuntu1.4 is released.
-  #               https://avd.aquasec.com/nvd/cve-2024-0553
-  #               https://avd.aquasec.com/nvd/cve-2024-0567
-  DO ../+APT_INSTALL \
-    --PACKAGES "libgnutls30"
diff --git a/images/cinder/Earthfile b/images/cinder/Earthfile
index ae432c4..66fdc29 100644
--- a/images/cinder/Earthfile
+++ b/images/cinder/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=cinder
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=8d453fa7b6daf1c1b6105a71f7c660b9036541f3
@@ -18,5 +19,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "ceph-common lsscsi nvme-cli python3-rados python3-rbd qemu-utils sysfsutils udev util-linux"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/cluster-api-provider-openstack/Earthfile b/images/cluster-api-provider-openstack/Earthfile
index bae0ce1..26cfd25 100644
--- a/images/cluster-api-provider-openstack/Earthfile
+++ b/images/cluster-api-provider-openstack/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global CAPO_VERSION=v0.8.0
 ARG --global EPOCH=2
 
@@ -14,4 +15,4 @@
 image:
   FROM DOCKERFILE -f +clone/src/Dockerfile +clone/src/*
   LABEL org.opencontainers.image.source=https://github.com/vexxhost/atmosphere
-  SAVE IMAGE --push ghcr.io/vexxhost/atmosphere/capi-openstack-controller:${CAPO_VERSION}-${EPOCH}
+  SAVE IMAGE --push ${REGISTRY}/capi-openstack-controller:${CAPO_VERSION}-${EPOCH}
diff --git a/images/designate/Earthfile b/images/designate/Earthfile
index d88dc10..21d8973 100644
--- a/images/designate/Earthfile
+++ b/images/designate/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=designate
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=2c817b3d7f01de44023f195c6e8de8853683a54a
@@ -16,5 +17,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "bind9utils"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/glance/Earthfile b/images/glance/Earthfile
index c40c403..25e298e 100644
--- a/images/glance/Earthfile
+++ b/images/glance/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=glance
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=9a4a3067b5c7c7f8ee9363bd939a3d86b260d660
@@ -27,5 +28,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "ceph-common lsscsi nvme-cli python3-rados python3-rbd qemu-utils sysfsutils udev util-linux"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/heat/Earthfile b/images/heat/Earthfile
index c55fc42..f2eb878 100644
--- a/images/heat/Earthfile
+++ b/images/heat/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=heat
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=d1363cc17646893054f9e8daf40de67699078e7c
@@ -16,5 +17,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "curl jq"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/horizon/Earthfile b/images/horizon/Earthfile
index fe9ac5f..6d0d246 100644
--- a/images/horizon/Earthfile
+++ b/images/horizon/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=horizon
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=3c6029cd94846235e25058b71522c13556f41f58
@@ -33,5 +34,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "apache2 gettext libapache2-mod-wsgi-py3"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/ironic/Earthfile b/images/ironic/Earthfile
index 5edcd7c..947a079 100644
--- a/images/ironic/Earthfile
+++ b/images/ironic/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=ironic
 ARG --global RELEASE=zed
 ARG --global PROJECT_REF=e38735cb95263b0c54f2fd719ff6b714efbddbb3
@@ -17,5 +18,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "ethtool ipmitool iproute2 ipxe lshw qemu-utils tftpd-hpa"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/keystone/Earthfile b/images/keystone/Earthfile
index 7aae428..25f2532 100644
--- a/images/keystone/Earthfile
+++ b/images/keystone/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global RELEASE=2023.2
 ARG --global PROJECT=keystone
 ARG --global PROJECT_REF=653d82b1b4e09b2ff37b56868e57d08c8e3af7dd
@@ -29,5 +30,5 @@
     apt-get clean && \
     rm -rfv /var/lib/apt/lists/* libapache2-mod-auth-openidc_${MOD_AUTH_OPENIDC_VERSION}-1.$(lsb_release -sc)_${TARGETARCH}.deb
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/kubernetes-entrypoint/Earthfile b/images/kubernetes-entrypoint/Earthfile
index 6844da2..83624d6 100644
--- a/images/kubernetes-entrypoint/Earthfile
+++ b/images/kubernetes-entrypoint/Earthfile
@@ -1,4 +1,6 @@
 VERSION 0.7
+
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global COMMIT=e8c2b17e1261c6a1b0fed1fcd5e1c337fc014219
 
 build:
@@ -26,8 +28,8 @@
   USER 65534
   ENTRYPOINT ["/kubernetes-entrypoint"]
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/kubernetes-entrypoint:${COMMIT} \
-    ghcr.io/vexxhost/atmosphere/kubernetes-entrypoint:latest
+    ${REGISTRY}/kubernetes-entrypoint:${COMMIT} \
+    ${REGISTRY}/kubernetes-entrypoint:latest
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/libvirtd/Earthfile b/images/libvirtd/Earthfile
index 31792d2..e6b01fe 100644
--- a/images/libvirtd/Earthfile
+++ b/images/libvirtd/Earthfile
@@ -1,5 +1,7 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
+
 platform-image:
   ARG RELEASE=zed
   FROM ../cloud-archive-base+image --RELEASE=${RELEASE}
@@ -14,7 +16,7 @@
   END
   DO ../+APT_INSTALL --PACKAGES="ceph-common cgroup-tools dmidecode ebtables iproute2 ipxe-qemu kmod libvirt-clients libvirt-daemon-system openssh-client openvswitch-switch ovmf pm-utils qemu-block-extra qemu-efi qemu-kvm seabios"
   DO ../+CREATE_PROJECT_USER --PROJECT=nova
-  SAVE IMAGE --push ghcr.io/vexxhost/atmosphere/libvirtd:${RELEASE}
+  SAVE IMAGE --push ${REGISTRY}/libvirtd:${RELEASE}
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/magnum/Earthfile b/images/magnum/Earthfile
index b3d386c..52e0ac5 100644
--- a/images/magnum/Earthfile
+++ b/images/magnum/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=magnum
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=156f6f52d38a670e6fe10725966aeea4ddf65146
@@ -18,5 +19,5 @@
     --PACKAGES "haproxy"
   COPY ../helm+binary/helm /usr/local/bin/helm
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/manila/Earthfile b/images/manila/Earthfile
index 5718142..cd5dd98 100644
--- a/images/manila/Earthfile
+++ b/images/manila/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=manila
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=98bc755673fe48a9c67203e4262315b048efe25d
@@ -16,5 +17,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "iproute2 openvswitch-switch"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/netoffload/Earthfile b/images/netoffload/Earthfile
index 557a394..ef68195 100644
--- a/images/netoffload/Earthfile
+++ b/images/netoffload/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=netoffload
 ARG --global RELEASE=main
 ARG --global PROJECT_REF=94b8c0fdb0b83bd1b7e14b9a58077a047c78a800
@@ -20,8 +21,8 @@
   COPY +build/offloadctl /usr/local/bin/offloadctl
   ENTRYPOINT ["/usr/local/bin/offloadctl"]
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/neutron/Earthfile b/images/neutron/Earthfile
index a9b4712..d4b1bff 100644
--- a/images/neutron/Earthfile
+++ b/images/neutron/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=neutron
 ARG --global RELEASE=zed
 ARG --global PROJECT_REF=222c997022392561c2de2cb493f0f5214eb20dfc
@@ -17,8 +18,8 @@
   DO ../+APT_INSTALL \
     --PACKAGES "conntrack dnsmasq dnsmasq-utils ebtables ethtool haproxy iproute2 ipset iptables iputils-arping jq keepalived lshw openvswitch-switch strongswan uuid-runtime"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/nova-ssh/Earthfile b/images/nova-ssh/Earthfile
index 7572665..ac8bac9 100644
--- a/images/nova-ssh/Earthfile
+++ b/images/nova-ssh/Earthfile
@@ -1,5 +1,7 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
+
 platform-image:
   FROM ../base+image
   DO ../+CREATE_PROJECT_USER \
@@ -11,7 +13,7 @@
     chown -R nova: /etc/ssh && \
     mkdir /var/run/sshd && \
     chmod 0755 /var/run/sshd
-  SAVE IMAGE --push ghcr.io/vexxhost/atmosphere/nova-ssh:latest
+  SAVE IMAGE --push ${REGISTRY}/nova-ssh:latest
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/nova/Earthfile b/images/nova/Earthfile
index 2780578..9b3f764 100644
--- a/images/nova/Earthfile
+++ b/images/nova/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=nova
 ARG --global RELEASE=zed
 ARG --global PROJECT_REF=226f3e95c1cdadd1845c7adee55f5c5f29f3a7a8
@@ -17,8 +18,8 @@
     --PACKAGES "ceph-common genisoimage iproute2 libosinfo-bin lsscsi ndctl nvme-cli openssh-client ovmf python3-libvirt python3-rados python3-rbd qemu-efi-aarch64 qemu-utils sysfsutils udev util-linux"
   GIT CLONE --branch v1.4.0 https://github.com/novnc/noVNC.git /usr/share/novnc
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/octavia/Earthfile b/images/octavia/Earthfile
index d37ba36..906e325 100644
--- a/images/octavia/Earthfile
+++ b/images/octavia/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=octavia
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=88d7315a60314e44fcce88ad198ceb3c0c107fe6
@@ -17,5 +18,5 @@
   DO ../+APT_INSTALL \
     --PACKAGES "isc-dhcp-client openssh-client"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/openstack-service/Earthfile b/images/openstack-service/Earthfile
index df267aa..350eb7b 100644
--- a/images/openstack-service/Earthfile
+++ b/images/openstack-service/Earthfile
@@ -1,7 +1,7 @@
-VERSION 0.7
+VERSION 0.8
 
 PIP_INSTALL:
-  COMMAND
+  FUNCTION
   ARG PACKAGES
   RUN --mount=type=cache,target=/root/.cache \
     /var/lib/openstack/bin/pip3 install \
@@ -9,7 +9,7 @@
       ${PACKAGES}
 
 GIT_CHECKOUT:
-  COMMAND
+  FUNCTION
   ARG PROJECT
   ARG PROJECT_REPO=https://github.com/openstack/${PROJECT}
   ARG PROJECT_REF
@@ -24,7 +24,7 @@
   END
 
 BUILD_VENV:
-  COMMAND
+  FUNCTION
   ARG PROJECT
   ARG PROJECT_REPO=https://github.com/openstack/${PROJECT}
   ARG PROJECT_REF
diff --git a/images/openvswitch/Earthfile b/images/openvswitch/Earthfile
index d53786f..b72a75d 100644
--- a/images/openvswitch/Earthfile
+++ b/images/openvswitch/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global SERIES=3.1
 ARG --global VERSION=3.1.0-65
 
@@ -9,8 +10,8 @@
   DO ../+DNF_INSTALL --PACKAGES "centos-release-nfv-openvswitch.noarch"
   DO ../+DNF_INSTALL --PACKAGES "openvswitch${SERIES}-${VERSION}.el9s iptables"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/openvswitch:${SERIES} \
-    ghcr.io/vexxhost/atmosphere/openvswitch:${VERSION}
+    ${REGISTRY}/openvswitch:${SERIES} \
+    ${REGISTRY}/openvswitch:${VERSION}
 
 image:
   BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/ovn/Earthfile b/images/ovn/Earthfile
index 436535a..aa4507f 100644
--- a/images/ovn/Earthfile
+++ b/images/ovn/Earthfile
@@ -1,19 +1,35 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global SERIES=23.03
 ARG --global VERSION=23.03.0-69
 
+ovn-kubernetes:
+  FROM golang:1.20
+  GIT CLONE --branch master https://github.com/ovn-org/ovn-kubernetes /src
+  WORKDIR /src
+  COPY patches/ovn-kubernetes /patches
+  DO ../+APT_INSTALL --PACKAGES "git"
+  RUN git apply --verbose /patches/*.patch
+  SAVE ARTIFACT /src/dist/images/ovndb-raft-functions.sh
+  SAVE ARTIFACT /src/dist/images/ovnkube.sh
+  RUN \
+    cd /src/go-controller && \
+    go build -o /build/ovn-kube-util ./cmd/ovn-kube-util
+  SAVE ARTIFACT /build/ovn-kube-util
+
 component-image:
   FROM ../openvswitch+platform-image
   DO ../+DNF_INSTALL --PACKAGES "firewalld-filesystem hostname ovn${SERIES}-${VERSION}.el9s procps-ng"
   ARG --required NAME
   DO ../+DNF_INSTALL --PACKAGES "ovn${SERIES}-${NAME}-${VERSION}.el9s"
-  IF [ "${NAME}" = "host" ]
-    COPY ../kubernetes+image/kubectl /usr/local/bin/kubectl
-  END
+  COPY ../kubernetes+image/kubectl /usr/local/bin/kubectl
+  COPY +ovn-kubernetes/ovndb-raft-functions.sh /root
+  COPY +ovn-kubernetes/ovnkube.sh /root
+  COPY +ovn-kubernetes/ovn-kube-util /usr/bin
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/ovn-${NAME}:${SERIES} \
-    ghcr.io/vexxhost/atmosphere/ovn-${NAME}:${VERSION}
+    ${REGISTRY}/ovn-${NAME}:${SERIES} \
+    ${REGISTRY}/ovn-${NAME}:${VERSION}
 
 central:
   BUILD +component-image --NAME central
diff --git a/images/ovn/patches/ovn-kubernetes/0001-chore-refactor-to-using-OVN_KUBERNETES_STATEFULSET.patch b/images/ovn/patches/ovn-kubernetes/0001-chore-refactor-to-using-OVN_KUBERNETES_STATEFULSET.patch
new file mode 100644
index 0000000..8071192
--- /dev/null
+++ b/images/ovn/patches/ovn-kubernetes/0001-chore-refactor-to-using-OVN_KUBERNETES_STATEFULSET.patch
@@ -0,0 +1,161 @@
+From 0227559bb404c3d7d5f32737809c38024bbabef0 Mon Sep 17 00:00:00 2001
+From: Mohammed Naser <mnaser@vexxhost.com>
+Date: Thu, 18 Jan 2024 12:42:24 -0500
+Subject: [PATCH 1/2] chore: refactor to using OVN_KUBERNETES_STATEFULSET
+
+---
+ dist/images/ovndb-raft-functions.sh | 32 ++++++++++++++---------------
+ dist/images/ovnkube.sh              |  5 ++++-
+ 2 files changed, 20 insertions(+), 17 deletions(-)
+
+diff --git a/dist/images/ovndb-raft-functions.sh b/dist/images/ovndb-raft-functions.sh
+index dceb4ec2e..65e9b6d9b 100644
+--- a/dist/images/ovndb-raft-functions.sh
++++ b/dist/images/ovndb-raft-functions.sh
+@@ -10,7 +10,7 @@ verify-ovsdb-raft() {
+   fi
+ 
+   replicas=$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
+-    get statefulset -n ${ovn_kubernetes_namespace} ovnkube-db -o=jsonpath='{.spec.replicas}')
++    get statefulset -n ${ovn_kubernetes_namespace} ${ovn_kubernetes_statefulset} -o=jsonpath='{.spec.replicas}')
+   if [[ ${replicas} -lt 3 || $((${replicas} % 2)) -eq 0 ]]; then
+     echo "at least 3 nodes need to be configured, and it must be odd number of nodes"
+     exit 1
+@@ -45,14 +45,14 @@ db_part_of_cluster() {
+ }
+ 
+ # Checks if cluster has already been initialized.
+-# If not it returns false and sets init_ip to ovnkube-db-0
++# If not it returns false and sets init_ip to ${ovn_kubernetes_statefulset}-0
+ cluster_exists() {
+   # See if ep is available ...
+   local db=${1}
+   local port=${2}
+ 
+   db_pods=$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
+-    get pod -n ${ovn_kubernetes_namespace} -o=jsonpath='{.items[*].metadata.name}' | egrep -o 'ovnkube-db[^ ]+')
++    get pod -n ${ovn_kubernetes_namespace} -o=jsonpath='{.items[*].metadata.name}' | egrep -o "${ovn_kubernetes_statefulset}[^ ]+")
+ 
+   for db_pod in $db_pods; do
+     if db_part_of_cluster $db_pod $db $port; then
+@@ -63,7 +63,7 @@ cluster_exists() {
+ 
+   # if we get here  there is no cluster, set init_ip and get out
+   init_ip="$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
+-    get pod -n ${ovn_kubernetes_namespace} ovnkube-db-0 -o=jsonpath='{.status.podIP}')"
++    get pod -n ${ovn_kubernetes_namespace} ${ovn_kubernetes_statefulset}-0 -o=jsonpath='{.status.podIP}')"
+   if [[ $? != 0 ]]; then
+     return 1
+   fi
+@@ -90,17 +90,17 @@ check_and_apply_ovnkube_db_ep() {
+ 
+   # return if ovn db service endpoint already exists
+   result=$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
+-      get ep -n ${ovn_kubernetes_namespace} ovnkube-db 2>&1)
++      get ep -n ${ovn_kubernetes_namespace} ${ovn_kubernetes_statefulset} 2>&1)
+   test $? -eq 0 && return
+   if ! echo ${result} | grep -q "NotFound"; then
+-      echo "Failed to find ovnkube-db endpoint: ${result}, Exiting..."
++      echo "Failed to find ${ovn_kubernetes_statefulset} endpoint: ${result}, Exiting..."
+       exit 12
+   fi
+-  # Get IPs of all ovnkube-db PODs
++  # Get IPs of all ${ovn_kubernetes_statefulset} PODs
+   ips=()
+   for ((i = 0; i < ${replicas}; i++)); do
+     ip=$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
+-      get pod -n ${ovn_kubernetes_namespace} ovnkube-db-${i} -o=jsonpath='{.status.podIP}')
++      get pod -n ${ovn_kubernetes_namespace} ${ovn_kubernetes_statefulset}-${i} -o=jsonpath='{.status.podIP}')
+     if [[ ${ip} == "" ]]; then
+       break
+     fi
+@@ -108,7 +108,7 @@ check_and_apply_ovnkube_db_ep() {
+   done
+ 
+   if [[ ${i} -eq ${replicas} ]]; then
+-    # Number of POD IPs is same as number of statefulset replicas. Now, if the number of ovnkube-db endpoints
++    # Number of POD IPs is same as number of statefulset replicas. Now, if the number of ${ovn_kubernetes_statefulset} endpoints
+     # is 0, then we are applying the endpoint for the first time. So, we need to make sure that each of the
+     # pod IP responds to the `ovsdb-client list-dbs` call before we set the endpoint. If they don't, retry several
+     # times and then give up.
+@@ -170,7 +170,7 @@ set_election_timer() {
+   return 0
+ }
+ 
+-# set_connection() will be called for ovnkube-db-0 pod when :
++# set_connection() will be called for ${ovn_kubernetes_statefulset}-0 pod when :
+ #    1. it is first started or
+ #    2. it restarts after the initial start has failed or
+ #    3. subsequent restarts during the lifetime of the pod
+@@ -307,7 +307,7 @@ ovsdb-raft() {
+       --ovn-${db}-log="${ovn_loglevel_db}" &
+     else
+       # either we need to initialize a new cluster or wait for db-0 to create it
+-      if [[ "${POD_NAME}" == "ovnkube-db-0" ]]; then
++      if [[ "${POD_NAME}" == "${ovn_kubernetes_statefulset}-0" ]]; then
+         echo "Cluster does not exist for DB: ${db}, creating new raft cluster"
+         run_as_ovs_user_if_needed \
+         ${OVNCTL_PATH} run_${db}_ovsdb --no-monitor \
+@@ -317,7 +317,7 @@ ovsdb-raft() {
+         ${db_ssl_opts} \
+         --ovn-${db}-log="${ovn_loglevel_db}" &
+       else
+-        echo "Cluster does not exist for DB: ${db}, waiting for ovnkube-db-0 pod to create it"
++        echo "Cluster does not exist for DB: ${db}, waiting for ${ovn_kubernetes_statefulset}-0 pod to create it"
+         # all non pod-0 pods will be blocked here till connection is set
+         wait_for_event cluster_exists ${db} ${port}
+         run_as_ovs_user_if_needed \
+@@ -356,8 +356,8 @@ ovsdb-raft() {
+   fi
+   echo "=============== ${db}-ovsdb-raft ========== RUNNING"
+ 
+-  if [[ "${POD_NAME}" == "ovnkube-db-0" ]]; then
+-    # post raft create work has to be done only once and in ovnkube-db-0 while it is still
++  if [[ "${POD_NAME}" == "${ovn_kubernetes_statefulset}-0" ]]; then
++    # post raft create work has to be done only once and in ${ovn_kubernetes_statefulset}-0 while it is still
+     # a single-node cluster, additional protection against the case when pod-0 isn't a leader
+     # is needed in the cases of sudden pod-0 initialization logic restarts
+     current_raft_role=$(ovs-appctl -t ${OVN_RUNDIR}/ovn${db}_db.ctl cluster/status ${database} 2>&1 | grep "^Role")
+@@ -381,9 +381,9 @@ ovsdb-raft() {
+   fi
+ 
+   last_node_index=$(expr ${replicas} - 1)
+-  # Create endpoints only if all ovnkube-db pods have started and are running. We do this
++  # Create endpoints only if all ${ovn_kubernetes_statefulset} pods have started and are running. We do this
+   # from the last pod of the statefulset.
+-  if [[ ${db} == "nb" && "${POD_NAME}" == "ovnkube-db-"${last_node_index} ]]; then
++  if [[ ${db} == "nb" && "${POD_NAME}" == "${ovn_kubernetes_statefulset}-"${last_node_index} ]]; then
+     check_and_apply_ovnkube_db_ep ${port}
+   fi
+ 
+diff --git a/dist/images/ovnkube.sh b/dist/images/ovnkube.sh
+index bf3989e37..720b3e14d 100755
+--- a/dist/images/ovnkube.sh
++++ b/dist/images/ovnkube.sh
+@@ -40,6 +40,7 @@ fi
+ # OVN_NET_CIDR - the network cidr - v3
+ # OVN_SVC_CIDR - the cluster-service-cidr - v3
+ # OVN_KUBERNETES_NAMESPACE - k8s namespace - v3
++# OVN_KUBERNETES_STATEFULSET - k8s statefulset - v3
+ # K8S_NODE - hostname of the node - v3
+ #
+ # OVN_DAEMONSET_VERSION - version match daemonset and image - v3
+@@ -198,12 +199,14 @@ metrics_bind_port=${OVN_METRICS_BIND_PORT:-9476}
+ metrics_exporter_port=${OVN_METRICS_EXPORTER_PORT:-9310}
+ 
+ ovn_kubernetes_namespace=${OVN_KUBERNETES_NAMESPACE:-ovn-kubernetes}
++ovn_kubernetes_statefulset=${OVN_KUBERNETES_STATEFULSET:-ovnkube-db}
++
+ # namespace used for classifying host network traffic
+ ovn_host_network_namespace=${OVN_HOST_NETWORK_NAMESPACE:-ovn-host-network}
+ 
+ # host on which ovnkube-db POD is running and this POD contains both
+ # OVN NB and SB DB running in their own container.
+-ovn_db_host=${K8S_NODE_IP:-""}
++ovn_db_host=${K8S_NODE_IP:-$(hostname -f)}
+ 
+ # OVN_NB_PORT - ovn north db port (default 6641)
+ ovn_nb_port=${OVN_NB_PORT:-6641}
+-- 
+2.42.0
+
diff --git a/images/ovn/patches/ovn-kubernetes/0002-chore-northd-refactor-to-being-able-to-use-split-svc.patch b/images/ovn/patches/ovn-kubernetes/0002-chore-northd-refactor-to-being-able-to-use-split-svc.patch
new file mode 100644
index 0000000..c615f63
--- /dev/null
+++ b/images/ovn/patches/ovn-kubernetes/0002-chore-northd-refactor-to-being-able-to-use-split-svc.patch
@@ -0,0 +1,144 @@
+From 90851bd77718bc834446ebe2ddf34b8e9383dee8 Mon Sep 17 00:00:00 2001
+From: Mohammed Naser <mnaser@vexxhost.com>
+Date: Thu, 18 Jan 2024 16:16:11 -0500
+Subject: [PATCH 2/2] chore(northd): refactor to being able to use split svcs
+
+---
+ dist/images/ovnkube.sh | 75 +++++++++++++++++++++++++++++++++---------
+ 1 file changed, 59 insertions(+), 16 deletions(-)
+
+diff --git a/dist/images/ovnkube.sh b/dist/images/ovnkube.sh
+index 720b3e14d..1d3059cf8 100755
+--- a/dist/images/ovnkube.sh
++++ b/dist/images/ovnkube.sh
+@@ -200,6 +200,8 @@ metrics_exporter_port=${OVN_METRICS_EXPORTER_PORT:-9310}
+ 
+ ovn_kubernetes_namespace=${OVN_KUBERNETES_NAMESPACE:-ovn-kubernetes}
+ ovn_kubernetes_statefulset=${OVN_KUBERNETES_STATEFULSET:-ovnkube-db}
++ovn_kubernetes_nb_statefulset=${OVN_KUBERNETES_NB_STATEFULSET:-ovnkube-db}
++ovn_kubernetes_sb_statefulset=${OVN_KUBERNETES_SB_STATEFULSET:-ovnkube-db}
+ 
+ # namespace used for classifying host network traffic
+ ovn_host_network_namespace=${OVN_HOST_NETWORK_NAMESPACE:-ovn-host-network}
+@@ -374,6 +376,24 @@ wait_for_event() {
+   done
+ }
+ 
++wait_for_db () {
++  local db=$1
++  local ep=$(get_ovnkube_zone_db_ep ${db})
++
++  echo "Getting the ${ep} ep"
++  # See if ep is available ...
++  IFS=" " read -a ep_hosts <<<"$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
++    get endpointslice -n ${ovn_kubernetes_namespace} -l kubernetes.io/service-name=${ep} -o=jsonpath='{range .items[0].endpoints[*]}{.addresses[0]} ')"
++  if [[ ${#ep_hosts[@]} == 0 ]]; then
++    return 1
++  fi
++
++  ep_hosts_string="${ep_hosts[*]}"
++  declare -g -a "ovn_${db}db_hosts=($ep_hosts_string)"
++
++  return 0
++}
++
+ # The ovnkube-db kubernetes service must be populated with OVN DB service endpoints
+ # before various OVN K8s containers can come up. This functions checks for that.
+ # If OVN dbs are configured to listen only on unix sockets, then there will not be
+@@ -384,15 +404,18 @@ ready_to_start_node() {
+     return 0
+   fi
+ 
+-  ovnkube_db_ep=$(get_ovnkube_zone_db_ep)
+-  echo "Getting the ${ovnkube_db_ep} ep"
+-  # See if ep is available ...
+-  IFS=" " read -a ovn_db_hosts <<<"$(kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} \
+-    get ep -n ${ovn_kubernetes_namespace} ${ovnkube_db_ep} -o=jsonpath='{range .subsets[0].addresses[*]}{.ip}{" "}')"
+-  if [[ ${#ovn_db_hosts[@]} == 0 ]]; then
++  wait_for_db nb
++  if [[ $? != 0 ]]; then
++    return 1
++  fi
++
++  wait_for_db sb
++  if [[ $? != 0 ]]; then
+     return 1
+   fi
++
+   get_ovn_db_vars
++
+   return 0
+ }
+ # wait_for_event ready_to_start_node
+@@ -410,17 +433,29 @@ check_ovn_daemonset_version() {
+ }
+ 
+ get_ovn_db_vars() {
++
++  index=0
+   ovn_nbdb_str=""
+-  ovn_sbdb_str=""
+-  for i in "${ovn_db_hosts[@]}"; do
++  for i in "${ovn_nbdb_hosts[@]}"; do
+     if [ -n "$ovn_nbdb_str" ]; then
+       ovn_nbdb_str=${ovn_nbdb_str}","
++    fi
++    host="${ovn_kubernetes_nb_statefulset}-${index}.${ovn_kubernetes_nb_statefulset}.${ovn_kubernetes_namespace}.svc.cluster.local"
++    ovn_nbdb_str=${ovn_nbdb_str}${transport}://${host}:${ovn_nb_port}
++    index=$((index + 1))
++  done
++
++  index=0
++  ovn_sbdb_str=""
++  for i in "${ovn_sbdb_hosts[@]}"; do
++    if [ -n "$ovn_sbdb_str" ]; then
+       ovn_sbdb_str=${ovn_sbdb_str}","
+     fi
+-    ip=$(bracketify $i)
+-    ovn_nbdb_str=${ovn_nbdb_str}${transport}://${ip}:${ovn_nb_port}
+-    ovn_sbdb_str=${ovn_sbdb_str}${transport}://${ip}:${ovn_sb_port}
++    host="${ovn_kubernetes_sb_statefulset}-${index}.${ovn_kubernetes_sb_statefulset}.${ovn_kubernetes_namespace}.svc.cluster.local"
++    ovn_sbdb_str=${ovn_sbdb_str}${transport}://${host}:${ovn_sb_port}
++    index=$((index + 1))
+   done
++
+   # OVN_NORTH and OVN_SOUTH override derived host
+   ovn_nbdb=${OVN_NORTH:-$ovn_nbdb_str}
+   ovn_sbdb=${OVN_SOUTH:-$ovn_sbdb_str}
+@@ -730,7 +765,7 @@ set_ovnkube_db_ep() {
+   ips=("$@")
+ 
+   ovn_zone=$(get_node_zone)
+-  ovnkube_db_ep=$(get_ovnkube_zone_db_ep)
++  ovnkube_db_ep=$(get_ovnkube_zone_db_ep sb)
+   echo "=============== setting ${ovnkube_db_ep} endpoints to ${ips[@]}"
+   # create a new endpoint for the headless onvkube-db service without selectors
+   kubectl --server=${K8S_APISERVER} --token=${k8s_token} --certificate-authority=${K8S_CACERT} apply -f - <<EOF
+@@ -779,12 +814,20 @@ function get_node_zone() {
+ }
+ 
+ function get_ovnkube_zone_db_ep() {
+-  zone=$(get_node_zone)
+-  if [ "$zone" == "global" ]; then
+-      echo "ovnkube-db"
++  local db=$1
++
++  if [ "$db" == "nb" ]; then
++      ep="${ovn_kubernetes_nb_statefulset}"
+   else
+-      echo "ovnkube-db-$zone"
++      ep="${ovn_kubernetes_sb_statefulset}"
+   fi
++
++  zone=$(get_node_zone)
++  if [ "$zone" != "global" ]; then
++      ep="${ep}-${zone}"
++  fi
++
++  echo "${ep}"
+ }
+ 
+ # v3 - run nb_ovsdb in a separate container
+-- 
+2.42.0
+
diff --git a/images/ovn/patches/ovn-kubernetes/0003-chore-bump-golang.org-x-crypto-for-security.patch b/images/ovn/patches/ovn-kubernetes/0003-chore-bump-golang.org-x-crypto-for-security.patch
new file mode 100644
index 0000000..66e0b00
--- /dev/null
+++ b/images/ovn/patches/ovn-kubernetes/0003-chore-bump-golang.org-x-crypto-for-security.patch
@@ -0,0 +1,6184 @@
+From 6d47afb26fb1bb1e6d5668f336ee292ad48954f3 Mon Sep 17 00:00:00 2001
+From: Mohammed Naser <mnaser@vexxhost.com>
+Date: Sun, 4 Feb 2024 02:22:36 -0500
+Subject: [PATCH] chore: bump golang.org/x/crypto for security
+
+---
+ go-controller/go.mod                          |  8 +-
+ go-controller/go.sum                          | 16 ++--
+ .../golang.org/x/sys/execabs/execabs_go118.go |  1 -
+ .../golang.org/x/sys/execabs/execabs_go119.go |  1 -
+ .../golang.org/x/sys/plan9/pwd_go15_plan9.go  |  1 -
+ .../golang.org/x/sys/plan9/pwd_plan9.go       |  1 -
+ .../vendor/golang.org/x/sys/plan9/race.go     |  1 -
+ .../vendor/golang.org/x/sys/plan9/race0.go    |  1 -
+ .../vendor/golang.org/x/sys/plan9/str.go      |  1 -
+ .../vendor/golang.org/x/sys/plan9/syscall.go  |  1 -
+ .../x/sys/plan9/zsyscall_plan9_386.go         |  1 -
+ .../x/sys/plan9/zsyscall_plan9_amd64.go       |  1 -
+ .../x/sys/plan9/zsyscall_plan9_arm.go         |  1 -
+ .../vendor/golang.org/x/sys/unix/aliases.go   |  2 -
+ .../golang.org/x/sys/unix/asm_aix_ppc64.s     |  1 -
+ .../golang.org/x/sys/unix/asm_bsd_386.s       |  2 -
+ .../golang.org/x/sys/unix/asm_bsd_amd64.s     |  2 -
+ .../golang.org/x/sys/unix/asm_bsd_arm.s       |  2 -
+ .../golang.org/x/sys/unix/asm_bsd_arm64.s     |  2 -
+ .../golang.org/x/sys/unix/asm_bsd_ppc64.s     |  2 -
+ .../golang.org/x/sys/unix/asm_bsd_riscv64.s   |  2 -
+ .../golang.org/x/sys/unix/asm_linux_386.s     |  1 -
+ .../golang.org/x/sys/unix/asm_linux_amd64.s   |  1 -
+ .../golang.org/x/sys/unix/asm_linux_arm.s     |  1 -
+ .../golang.org/x/sys/unix/asm_linux_arm64.s   |  3 -
+ .../golang.org/x/sys/unix/asm_linux_loong64.s |  3 -
+ .../golang.org/x/sys/unix/asm_linux_mips64x.s |  3 -
+ .../golang.org/x/sys/unix/asm_linux_mipsx.s   |  3 -
+ .../golang.org/x/sys/unix/asm_linux_ppc64x.s  |  3 -
+ .../golang.org/x/sys/unix/asm_linux_riscv64.s |  2 -
+ .../golang.org/x/sys/unix/asm_linux_s390x.s   |  3 -
+ .../x/sys/unix/asm_openbsd_mips64.s           |  1 -
+ .../golang.org/x/sys/unix/asm_solaris_amd64.s |  1 -
+ .../golang.org/x/sys/unix/asm_zos_s390x.s     |  3 -
+ .../golang.org/x/sys/unix/cap_freebsd.go      |  1 -
+ .../vendor/golang.org/x/sys/unix/constants.go |  1 -
+ .../golang.org/x/sys/unix/dev_aix_ppc.go      |  1 -
+ .../golang.org/x/sys/unix/dev_aix_ppc64.go    |  1 -
+ .../vendor/golang.org/x/sys/unix/dev_zos.go   |  1 -
+ .../vendor/golang.org/x/sys/unix/dirent.go    |  1 -
+ .../golang.org/x/sys/unix/endian_big.go       |  1 -
+ .../golang.org/x/sys/unix/endian_little.go    |  1 -
+ .../vendor/golang.org/x/sys/unix/env_unix.go  |  1 -
+ .../vendor/golang.org/x/sys/unix/epoll_zos.go |  1 -
+ .../vendor/golang.org/x/sys/unix/fcntl.go     |  3 +-
+ .../x/sys/unix/fcntl_linux_32bit.go           |  1 -
+ .../vendor/golang.org/x/sys/unix/fdset.go     |  1 -
+ .../golang.org/x/sys/unix/fstatfs_zos.go      |  1 -
+ .../vendor/golang.org/x/sys/unix/gccgo.go     |  1 -
+ .../vendor/golang.org/x/sys/unix/gccgo_c.c    |  1 -
+ .../x/sys/unix/gccgo_linux_amd64.go           |  1 -
+ .../golang.org/x/sys/unix/ifreq_linux.go      |  1 -
+ .../golang.org/x/sys/unix/ioctl_linux.go      |  5 +
+ .../golang.org/x/sys/unix/ioctl_signed.go     |  1 -
+ .../golang.org/x/sys/unix/ioctl_unsigned.go   |  1 -
+ .../vendor/golang.org/x/sys/unix/ioctl_zos.go |  1 -
+ .../vendor/golang.org/x/sys/unix/mkerrors.sh  |  4 +-
+ .../golang.org/x/sys/unix/mmap_nomremap.go    |  1 -
+ .../vendor/golang.org/x/sys/unix/mremap.go    |  1 -
+ .../golang.org/x/sys/unix/pagesize_unix.go    |  1 -
+ .../golang.org/x/sys/unix/pledge_openbsd.go   | 92 ++++---------------
+ .../golang.org/x/sys/unix/ptrace_darwin.go    |  1 -
+ .../golang.org/x/sys/unix/ptrace_ios.go       |  1 -
+ .../vendor/golang.org/x/sys/unix/race.go      |  1 -
+ .../vendor/golang.org/x/sys/unix/race0.go     |  1 -
+ .../x/sys/unix/readdirent_getdents.go         |  1 -
+ .../x/sys/unix/readdirent_getdirentries.go    |  1 -
+ .../golang.org/x/sys/unix/sockcmsg_unix.go    |  1 -
+ .../x/sys/unix/sockcmsg_unix_other.go         |  1 -
+ .../vendor/golang.org/x/sys/unix/syscall.go   |  1 -
+ .../golang.org/x/sys/unix/syscall_aix.go      |  4 +-
+ .../golang.org/x/sys/unix/syscall_aix_ppc.go  |  1 -
+ .../x/sys/unix/syscall_aix_ppc64.go           |  1 -
+ .../golang.org/x/sys/unix/syscall_bsd.go      |  3 +-
+ .../x/sys/unix/syscall_darwin_amd64.go        |  1 -
+ .../x/sys/unix/syscall_darwin_arm64.go        |  1 -
+ .../x/sys/unix/syscall_darwin_libSystem.go    |  1 -
+ .../x/sys/unix/syscall_dragonfly_amd64.go     |  1 -
+ .../x/sys/unix/syscall_freebsd_386.go         |  1 -
+ .../x/sys/unix/syscall_freebsd_amd64.go       |  1 -
+ .../x/sys/unix/syscall_freebsd_arm.go         |  1 -
+ .../x/sys/unix/syscall_freebsd_arm64.go       |  1 -
+ .../x/sys/unix/syscall_freebsd_riscv64.go     |  1 -
+ .../golang.org/x/sys/unix/syscall_hurd.go     |  1 -
+ .../golang.org/x/sys/unix/syscall_hurd_386.go |  1 -
+ .../golang.org/x/sys/unix/syscall_illumos.go  |  1 -
+ .../golang.org/x/sys/unix/syscall_linux.go    | 33 ++++---
+ .../x/sys/unix/syscall_linux_386.go           |  1 -
+ .../x/sys/unix/syscall_linux_alarm.go         |  2 -
+ .../x/sys/unix/syscall_linux_amd64.go         |  1 -
+ .../x/sys/unix/syscall_linux_amd64_gc.go      |  1 -
+ .../x/sys/unix/syscall_linux_arm.go           |  1 -
+ .../x/sys/unix/syscall_linux_arm64.go         |  1 -
+ .../golang.org/x/sys/unix/syscall_linux_gc.go |  1 -
+ .../x/sys/unix/syscall_linux_gc_386.go        |  1 -
+ .../x/sys/unix/syscall_linux_gc_arm.go        |  1 -
+ .../x/sys/unix/syscall_linux_gccgo_386.go     |  1 -
+ .../x/sys/unix/syscall_linux_gccgo_arm.go     |  1 -
+ .../x/sys/unix/syscall_linux_loong64.go       |  1 -
+ .../x/sys/unix/syscall_linux_mips64x.go       |  2 -
+ .../x/sys/unix/syscall_linux_mipsx.go         |  2 -
+ .../x/sys/unix/syscall_linux_ppc.go           |  1 -
+ .../x/sys/unix/syscall_linux_ppc64x.go        |  2 -
+ .../x/sys/unix/syscall_linux_riscv64.go       |  1 -
+ .../x/sys/unix/syscall_linux_s390x.go         |  1 -
+ .../x/sys/unix/syscall_linux_sparc64.go       |  1 -
+ .../x/sys/unix/syscall_netbsd_386.go          |  1 -
+ .../x/sys/unix/syscall_netbsd_amd64.go        |  1 -
+ .../x/sys/unix/syscall_netbsd_arm.go          |  1 -
+ .../x/sys/unix/syscall_netbsd_arm64.go        |  1 -
+ .../golang.org/x/sys/unix/syscall_openbsd.go  | 28 ++++--
+ .../x/sys/unix/syscall_openbsd_386.go         |  1 -
+ .../x/sys/unix/syscall_openbsd_amd64.go       |  1 -
+ .../x/sys/unix/syscall_openbsd_arm.go         |  1 -
+ .../x/sys/unix/syscall_openbsd_arm64.go       |  1 -
+ .../x/sys/unix/syscall_openbsd_libc.go        |  1 -
+ .../x/sys/unix/syscall_openbsd_ppc64.go       |  1 -
+ .../x/sys/unix/syscall_openbsd_riscv64.go     |  1 -
+ .../golang.org/x/sys/unix/syscall_solaris.go  |  5 +-
+ .../x/sys/unix/syscall_solaris_amd64.go       |  1 -
+ .../golang.org/x/sys/unix/syscall_unix.go     |  1 -
+ .../golang.org/x/sys/unix/syscall_unix_gc.go  |  2 -
+ .../x/sys/unix/syscall_unix_gc_ppc64x.go      |  3 -
+ .../x/sys/unix/syscall_zos_s390x.go           |  3 +-
+ .../golang.org/x/sys/unix/sysvshm_linux.go    |  1 -
+ .../golang.org/x/sys/unix/sysvshm_unix.go     |  1 -
+ .../x/sys/unix/sysvshm_unix_other.go          |  1 -
+ .../golang.org/x/sys/unix/timestruct.go       |  1 -
+ .../golang.org/x/sys/unix/unveil_openbsd.go   | 41 +++++----
+ .../vendor/golang.org/x/sys/unix/xattr_bsd.go |  1 -
+ .../golang.org/x/sys/unix/zerrors_aix_ppc.go  |  1 -
+ .../x/sys/unix/zerrors_aix_ppc64.go           |  1 -
+ .../x/sys/unix/zerrors_darwin_amd64.go        |  1 -
+ .../x/sys/unix/zerrors_darwin_arm64.go        |  1 -
+ .../x/sys/unix/zerrors_dragonfly_amd64.go     |  1 -
+ .../x/sys/unix/zerrors_freebsd_386.go         |  1 -
+ .../x/sys/unix/zerrors_freebsd_amd64.go       |  1 -
+ .../x/sys/unix/zerrors_freebsd_arm.go         |  1 -
+ .../x/sys/unix/zerrors_freebsd_arm64.go       |  1 -
+ .../x/sys/unix/zerrors_freebsd_riscv64.go     |  1 -
+ .../golang.org/x/sys/unix/zerrors_linux.go    | 14 ++-
+ .../x/sys/unix/zerrors_linux_386.go           |  1 -
+ .../x/sys/unix/zerrors_linux_amd64.go         |  1 -
+ .../x/sys/unix/zerrors_linux_arm.go           |  1 -
+ .../x/sys/unix/zerrors_linux_arm64.go         |  1 -
+ .../x/sys/unix/zerrors_linux_loong64.go       |  2 +-
+ .../x/sys/unix/zerrors_linux_mips.go          |  1 -
+ .../x/sys/unix/zerrors_linux_mips64.go        |  1 -
+ .../x/sys/unix/zerrors_linux_mips64le.go      |  1 -
+ .../x/sys/unix/zerrors_linux_mipsle.go        |  1 -
+ .../x/sys/unix/zerrors_linux_ppc.go           |  1 -
+ .../x/sys/unix/zerrors_linux_ppc64.go         |  1 -
+ .../x/sys/unix/zerrors_linux_ppc64le.go       |  1 -
+ .../x/sys/unix/zerrors_linux_riscv64.go       |  4 +-
+ .../x/sys/unix/zerrors_linux_s390x.go         |  1 -
+ .../x/sys/unix/zerrors_linux_sparc64.go       |  1 -
+ .../x/sys/unix/zerrors_netbsd_386.go          |  1 -
+ .../x/sys/unix/zerrors_netbsd_amd64.go        |  1 -
+ .../x/sys/unix/zerrors_netbsd_arm.go          |  1 -
+ .../x/sys/unix/zerrors_netbsd_arm64.go        |  1 -
+ .../x/sys/unix/zerrors_openbsd_386.go         |  1 -
+ .../x/sys/unix/zerrors_openbsd_amd64.go       |  1 -
+ .../x/sys/unix/zerrors_openbsd_arm.go         |  1 -
+ .../x/sys/unix/zerrors_openbsd_arm64.go       |  1 -
+ .../x/sys/unix/zerrors_openbsd_mips64.go      |  1 -
+ .../x/sys/unix/zerrors_openbsd_ppc64.go       |  1 -
+ .../x/sys/unix/zerrors_openbsd_riscv64.go     |  1 -
+ .../x/sys/unix/zerrors_solaris_amd64.go       |  1 -
+ .../x/sys/unix/zerrors_zos_s390x.go           |  1 -
+ .../x/sys/unix/zptrace_armnn_linux.go         |  2 -
+ .../x/sys/unix/zptrace_mipsnn_linux.go        |  2 -
+ .../x/sys/unix/zptrace_mipsnnle_linux.go      |  2 -
+ .../x/sys/unix/zptrace_x86_linux.go           |  2 -
+ .../golang.org/x/sys/unix/zsyscall_aix_ppc.go |  1 -
+ .../x/sys/unix/zsyscall_aix_ppc64.go          |  1 -
+ .../x/sys/unix/zsyscall_aix_ppc64_gc.go       |  1 -
+ .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go    |  1 -
+ .../x/sys/unix/zsyscall_darwin_amd64.go       |  1 -
+ .../x/sys/unix/zsyscall_darwin_arm64.go       |  1 -
+ .../x/sys/unix/zsyscall_dragonfly_amd64.go    |  1 -
+ .../x/sys/unix/zsyscall_freebsd_386.go        |  1 -
+ .../x/sys/unix/zsyscall_freebsd_amd64.go      |  1 -
+ .../x/sys/unix/zsyscall_freebsd_arm.go        |  1 -
+ .../x/sys/unix/zsyscall_freebsd_arm64.go      |  1 -
+ .../x/sys/unix/zsyscall_freebsd_riscv64.go    |  1 -
+ .../x/sys/unix/zsyscall_illumos_amd64.go      |  1 -
+ .../golang.org/x/sys/unix/zsyscall_linux.go   | 26 +++++-
+ .../x/sys/unix/zsyscall_linux_386.go          |  1 -
+ .../x/sys/unix/zsyscall_linux_amd64.go        |  1 -
+ .../x/sys/unix/zsyscall_linux_arm.go          |  1 -
+ .../x/sys/unix/zsyscall_linux_arm64.go        |  1 -
+ .../x/sys/unix/zsyscall_linux_loong64.go      |  1 -
+ .../x/sys/unix/zsyscall_linux_mips.go         |  1 -
+ .../x/sys/unix/zsyscall_linux_mips64.go       |  1 -
+ .../x/sys/unix/zsyscall_linux_mips64le.go     |  1 -
+ .../x/sys/unix/zsyscall_linux_mipsle.go       |  1 -
+ .../x/sys/unix/zsyscall_linux_ppc.go          |  1 -
+ .../x/sys/unix/zsyscall_linux_ppc64.go        |  1 -
+ .../x/sys/unix/zsyscall_linux_ppc64le.go      |  1 -
+ .../x/sys/unix/zsyscall_linux_riscv64.go      |  1 -
+ .../x/sys/unix/zsyscall_linux_s390x.go        |  1 -
+ .../x/sys/unix/zsyscall_linux_sparc64.go      |  1 -
+ .../x/sys/unix/zsyscall_netbsd_386.go         |  1 -
+ .../x/sys/unix/zsyscall_netbsd_amd64.go       |  1 -
+ .../x/sys/unix/zsyscall_netbsd_arm.go         |  1 -
+ .../x/sys/unix/zsyscall_netbsd_arm64.go       |  1 -
+ .../x/sys/unix/zsyscall_openbsd_386.go        | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_386.s         | 20 ++++
+ .../x/sys/unix/zsyscall_openbsd_amd64.go      | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_amd64.s       | 20 ++++
+ .../x/sys/unix/zsyscall_openbsd_arm.go        | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_arm.s         | 20 ++++
+ .../x/sys/unix/zsyscall_openbsd_arm64.go      | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_arm64.s       | 20 ++++
+ .../x/sys/unix/zsyscall_openbsd_mips64.go     | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_mips64.s      | 20 ++++
+ .../x/sys/unix/zsyscall_openbsd_ppc64.go      | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_ppc64.s       | 24 +++++
+ .../x/sys/unix/zsyscall_openbsd_riscv64.go    | 72 ++++++++++++++-
+ .../x/sys/unix/zsyscall_openbsd_riscv64.s     | 20 ++++
+ .../x/sys/unix/zsyscall_solaris_amd64.go      |  1 -
+ .../x/sys/unix/zsyscall_zos_s390x.go          |  1 -
+ .../x/sys/unix/zsysctl_openbsd_386.go         |  1 -
+ .../x/sys/unix/zsysctl_openbsd_amd64.go       |  1 -
+ .../x/sys/unix/zsysctl_openbsd_arm.go         |  1 -
+ .../x/sys/unix/zsysctl_openbsd_arm64.go       |  1 -
+ .../x/sys/unix/zsysctl_openbsd_mips64.go      |  1 -
+ .../x/sys/unix/zsysctl_openbsd_ppc64.go       |  1 -
+ .../x/sys/unix/zsysctl_openbsd_riscv64.go     |  1 -
+ .../x/sys/unix/zsysnum_darwin_amd64.go        |  1 -
+ .../x/sys/unix/zsysnum_darwin_arm64.go        |  1 -
+ .../x/sys/unix/zsysnum_dragonfly_amd64.go     |  1 -
+ .../x/sys/unix/zsysnum_freebsd_386.go         |  1 -
+ .../x/sys/unix/zsysnum_freebsd_amd64.go       |  1 -
+ .../x/sys/unix/zsysnum_freebsd_arm.go         |  1 -
+ .../x/sys/unix/zsysnum_freebsd_arm64.go       |  1 -
+ .../x/sys/unix/zsysnum_freebsd_riscv64.go     |  1 -
+ .../x/sys/unix/zsysnum_linux_386.go           |  2 +-
+ .../x/sys/unix/zsysnum_linux_amd64.go         |  3 +-
+ .../x/sys/unix/zsysnum_linux_arm.go           |  2 +-
+ .../x/sys/unix/zsysnum_linux_arm64.go         |  2 +-
+ .../x/sys/unix/zsysnum_linux_loong64.go       |  2 +-
+ .../x/sys/unix/zsysnum_linux_mips.go          |  2 +-
+ .../x/sys/unix/zsysnum_linux_mips64.go        |  2 +-
+ .../x/sys/unix/zsysnum_linux_mips64le.go      |  2 +-
+ .../x/sys/unix/zsysnum_linux_mipsle.go        |  2 +-
+ .../x/sys/unix/zsysnum_linux_ppc.go           |  2 +-
+ .../x/sys/unix/zsysnum_linux_ppc64.go         |  2 +-
+ .../x/sys/unix/zsysnum_linux_ppc64le.go       |  2 +-
+ .../x/sys/unix/zsysnum_linux_riscv64.go       |  2 +-
+ .../x/sys/unix/zsysnum_linux_s390x.go         |  2 +-
+ .../x/sys/unix/zsysnum_linux_sparc64.go       |  2 +-
+ .../x/sys/unix/zsysnum_netbsd_386.go          |  1 -
+ .../x/sys/unix/zsysnum_netbsd_amd64.go        |  1 -
+ .../x/sys/unix/zsysnum_netbsd_arm.go          |  1 -
+ .../x/sys/unix/zsysnum_netbsd_arm64.go        |  1 -
+ .../x/sys/unix/zsysnum_openbsd_386.go         |  1 -
+ .../x/sys/unix/zsysnum_openbsd_amd64.go       |  1 -
+ .../x/sys/unix/zsysnum_openbsd_arm.go         |  1 -
+ .../x/sys/unix/zsysnum_openbsd_arm64.go       |  1 -
+ .../x/sys/unix/zsysnum_openbsd_mips64.go      |  1 -
+ .../x/sys/unix/zsysnum_openbsd_ppc64.go       |  1 -
+ .../x/sys/unix/zsysnum_openbsd_riscv64.go     |  1 -
+ .../x/sys/unix/zsysnum_zos_s390x.go           |  1 -
+ .../golang.org/x/sys/unix/ztypes_aix_ppc.go   |  1 -
+ .../golang.org/x/sys/unix/ztypes_aix_ppc64.go |  1 -
+ .../x/sys/unix/ztypes_darwin_amd64.go         |  1 -
+ .../x/sys/unix/ztypes_darwin_arm64.go         |  1 -
+ .../x/sys/unix/ztypes_dragonfly_amd64.go      |  1 -
+ .../x/sys/unix/ztypes_freebsd_386.go          |  1 -
+ .../x/sys/unix/ztypes_freebsd_amd64.go        |  1 -
+ .../x/sys/unix/ztypes_freebsd_arm.go          |  1 -
+ .../x/sys/unix/ztypes_freebsd_arm64.go        |  1 -
+ .../x/sys/unix/ztypes_freebsd_riscv64.go      |  1 -
+ .../golang.org/x/sys/unix/ztypes_linux.go     | 45 ++++++++-
+ .../golang.org/x/sys/unix/ztypes_linux_386.go |  1 -
+ .../x/sys/unix/ztypes_linux_amd64.go          |  1 -
+ .../golang.org/x/sys/unix/ztypes_linux_arm.go |  1 -
+ .../x/sys/unix/ztypes_linux_arm64.go          |  1 -
+ .../x/sys/unix/ztypes_linux_loong64.go        |  1 -
+ .../x/sys/unix/ztypes_linux_mips.go           |  1 -
+ .../x/sys/unix/ztypes_linux_mips64.go         |  1 -
+ .../x/sys/unix/ztypes_linux_mips64le.go       |  1 -
+ .../x/sys/unix/ztypes_linux_mipsle.go         |  1 -
+ .../golang.org/x/sys/unix/ztypes_linux_ppc.go |  1 -
+ .../x/sys/unix/ztypes_linux_ppc64.go          |  1 -
+ .../x/sys/unix/ztypes_linux_ppc64le.go        |  1 -
+ .../x/sys/unix/ztypes_linux_riscv64.go        |  1 -
+ .../x/sys/unix/ztypes_linux_s390x.go          |  1 -
+ .../x/sys/unix/ztypes_linux_sparc64.go        |  1 -
+ .../x/sys/unix/ztypes_netbsd_386.go           |  1 -
+ .../x/sys/unix/ztypes_netbsd_amd64.go         |  1 -
+ .../x/sys/unix/ztypes_netbsd_arm.go           |  1 -
+ .../x/sys/unix/ztypes_netbsd_arm64.go         |  1 -
+ .../x/sys/unix/ztypes_openbsd_386.go          |  1 -
+ .../x/sys/unix/ztypes_openbsd_amd64.go        |  1 -
+ .../x/sys/unix/ztypes_openbsd_arm.go          |  1 -
+ .../x/sys/unix/ztypes_openbsd_arm64.go        |  1 -
+ .../x/sys/unix/ztypes_openbsd_mips64.go       |  1 -
+ .../x/sys/unix/ztypes_openbsd_ppc64.go        |  1 -
+ .../x/sys/unix/ztypes_openbsd_riscv64.go      |  1 -
+ .../x/sys/unix/ztypes_solaris_amd64.go        |  1 -
+ .../golang.org/x/sys/unix/ztypes_zos_s390x.go |  1 -
+ .../golang.org/x/sys/windows/aliases.go       |  1 -
+ .../vendor/golang.org/x/sys/windows/empty.s   |  1 -
+ .../golang.org/x/sys/windows/eventlog.go      |  1 -
+ .../golang.org/x/sys/windows/mksyscall.go     |  1 -
+ .../vendor/golang.org/x/sys/windows/race.go   |  1 -
+ .../vendor/golang.org/x/sys/windows/race0.go  |  1 -
+ .../golang.org/x/sys/windows/registry/key.go  |  1 -
+ .../x/sys/windows/registry/mksyscall.go       |  1 -
+ .../x/sys/windows/registry/syscall.go         |  1 -
+ .../x/sys/windows/registry/value.go           |  1 -
+ .../golang.org/x/sys/windows/service.go       |  1 -
+ .../vendor/golang.org/x/sys/windows/str.go    |  1 -
+ .../golang.org/x/sys/windows/svc/security.go  |  1 -
+ .../golang.org/x/sys/windows/svc/service.go   |  1 -
+ .../golang.org/x/sys/windows/syscall.go       |  1 -
+ .../x/sys/windows/syscall_windows.go          |  6 +-
+ .../golang.org/x/sys/windows/types_windows.go | 28 +++++-
+ .../x/sys/windows/zsyscall_windows.go         | 28 ++++++
+ .../vendor/golang.org/x/term/term_unix.go     |  1 -
+ .../vendor/golang.org/x/term/term_unix_bsd.go |  1 -
+ .../golang.org/x/term/term_unix_other.go      |  1 -
+ .../golang.org/x/term/term_unsupported.go     |  1 -
+ .../x/text/secure/bidirule/bidirule10.0.0.go  |  1 -
+ .../x/text/secure/bidirule/bidirule9.0.0.go   |  1 -
+ .../x/text/unicode/bidi/tables10.0.0.go       |  1 -
+ .../x/text/unicode/bidi/tables11.0.0.go       |  1 -
+ .../x/text/unicode/bidi/tables12.0.0.go       |  1 -
+ .../x/text/unicode/bidi/tables13.0.0.go       |  1 -
+ .../x/text/unicode/bidi/tables15.0.0.go       |  1 -
+ .../x/text/unicode/bidi/tables9.0.0.go        |  1 -
+ .../x/text/unicode/norm/tables10.0.0.go       |  1 -
+ .../x/text/unicode/norm/tables11.0.0.go       |  1 -
+ .../x/text/unicode/norm/tables12.0.0.go       |  1 -
+ .../x/text/unicode/norm/tables13.0.0.go       |  1 -
+ .../x/text/unicode/norm/tables15.0.0.go       |  1 -
+ .../x/text/unicode/norm/tables9.0.0.go        |  1 -
+ .../k8s.io/client-go/informers/factory.go     | 10 --
+ go-controller/vendor/modules.txt              | 16 ++--
+ 341 files changed, 924 insertions(+), 501 deletions(-)
+
+diff --git a/go-controller/go.mod b/go-controller/go.mod
+index e3c730420..394778ac7 100644
+--- a/go-controller/go.mod
++++ b/go-controller/go.mod
+@@ -41,7 +41,7 @@ require (
+ 	golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb
+ 	golang.org/x/net v0.17.0
+ 	golang.org/x/sync v0.2.0
+-	golang.org/x/sys v0.13.0
++	golang.org/x/sys v0.15.0
+ 	golang.org/x/time v0.3.0
+ 	google.golang.org/grpc v1.56.3
+ 	google.golang.org/protobuf v1.30.0
+@@ -105,11 +105,11 @@ require (
+ 	github.com/stretchr/objx v0.5.0 // indirect
+ 	github.com/vishvananda/netns v0.0.4 // indirect
+ 	go.opencensus.io v0.24.0 // indirect
+-	golang.org/x/crypto v0.14.0 // indirect
++	golang.org/x/crypto v0.17.0 // indirect
+ 	golang.org/x/mod v0.11.0 // indirect
+ 	golang.org/x/oauth2 v0.8.0 // indirect
+-	golang.org/x/term v0.13.0 // indirect
+-	golang.org/x/text v0.13.0 // indirect
++	golang.org/x/term v0.15.0 // indirect
++	golang.org/x/text v0.14.0 // indirect
+ 	golang.org/x/tools v0.9.1 // indirect
+ 	gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect
+ 	google.golang.org/appengine v1.6.7 // indirect
+diff --git a/go-controller/go.sum b/go-controller/go.sum
+index da8817fbb..a3818d28a 100644
+--- a/go-controller/go.sum
++++ b/go-controller/go.sum
+@@ -811,8 +811,8 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh
+ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+-golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
+-golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
++golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
++golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
+ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+@@ -1022,12 +1022,12 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
+ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
+-golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
++golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
++golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+-golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
+-golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
++golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
++golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
+ golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ 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=
+@@ -1038,8 +1038,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+-golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
+-golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
++golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
++golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+ 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=
+diff --git a/go-controller/vendor/golang.org/x/sys/execabs/execabs_go118.go b/go-controller/vendor/golang.org/x/sys/execabs/execabs_go118.go
+index 2000064a8..5627d70e3 100644
+--- a/go-controller/vendor/golang.org/x/sys/execabs/execabs_go118.go
++++ b/go-controller/vendor/golang.org/x/sys/execabs/execabs_go118.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build !go1.19
+-// +build !go1.19
+ 
+ package execabs
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/execabs/execabs_go119.go b/go-controller/vendor/golang.org/x/sys/execabs/execabs_go119.go
+index f364b3418..d60ab1b41 100644
+--- a/go-controller/vendor/golang.org/x/sys/execabs/execabs_go119.go
++++ b/go-controller/vendor/golang.org/x/sys/execabs/execabs_go119.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build go1.19
+-// +build go1.19
+ 
+ package execabs
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go b/go-controller/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go
+index c9b69937a..73687de74 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build go1.5
+-// +build go1.5
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/pwd_plan9.go b/go-controller/vendor/golang.org/x/sys/plan9/pwd_plan9.go
+index 98bf56b73..fb9458218 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/pwd_plan9.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/pwd_plan9.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build !go1.5
+-// +build !go1.5
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/race.go b/go-controller/vendor/golang.org/x/sys/plan9/race.go
+index 62377d2ff..c02d9ed33 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/race.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/race.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build plan9 && race
+-// +build plan9,race
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/race0.go b/go-controller/vendor/golang.org/x/sys/plan9/race0.go
+index f8da30876..7b15e15f6 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/race0.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/race0.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build plan9 && !race
+-// +build plan9,!race
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/str.go b/go-controller/vendor/golang.org/x/sys/plan9/str.go
+index 55fa8d025..ba3e8ff8a 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/str.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/str.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build plan9
+-// +build plan9
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/syscall.go b/go-controller/vendor/golang.org/x/sys/plan9/syscall.go
+index 67e5b0115..d631fd664 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/syscall.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/syscall.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build plan9
+-// +build plan9
+ 
+ // Package plan9 contains an interface to the low-level operating system
+ // primitives. OS details vary depending on the underlying system, and
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go b/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
+index 3f40b9bd7..f780d5c80 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build plan9 && 386
+-// +build plan9,386
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go b/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
+index 0e6a96aa4..7de61065f 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build plan9 && amd64
+-// +build plan9,amd64
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go b/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
+index 244c501b7..ea85780f0 100644
+--- a/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build plan9 && arm
+-// +build plan9,arm
+ 
+ package plan9
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/aliases.go b/go-controller/vendor/golang.org/x/sys/unix/aliases.go
+index abc89c104..e7d3df4bd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/aliases.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/aliases.go
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+-// +build go1.9
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+index db9171c2e..269e173ca 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gc
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_386.s
+index e0fcd9b3d..a4fcef0e0 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_386.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_386.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (freebsd || netbsd || openbsd) && gc
+-// +build freebsd netbsd openbsd
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s
+index 2b99c349a..1e63615c5 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc
+-// +build darwin dragonfly freebsd netbsd openbsd
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm.s b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm.s
+index d702d4adc..6496c3100 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (freebsd || netbsd || openbsd) && gc
+-// +build freebsd netbsd openbsd
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s
+index fe36a7391..4fd1f54da 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin || freebsd || netbsd || openbsd) && gc
+-// +build darwin freebsd netbsd openbsd
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s
+index e5b9a8489..42f7eb9e4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin || freebsd || netbsd || openbsd) && gc
+-// +build darwin freebsd netbsd openbsd
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s
+index d560019ea..f8902667e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin || freebsd || netbsd || openbsd) && gc
+-// +build darwin freebsd netbsd openbsd
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_386.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_386.s
+index 8fd101d07..3b4734870 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_386.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_386.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gc
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
+index 7ed38e43c..67e29f317 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gc
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm.s
+index 8ef1d5140..d6ae269ce 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gc
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
+index 98ae02760..01e5e253c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && arm64 && gc
+-// +build linux
+-// +build arm64
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_loong64.s
+index 565357288..2abf12f6e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_loong64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_loong64.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && loong64 && gc
+-// +build linux
+-// +build loong64
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+index 21231d2ce..f84bae712 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (mips64 || mips64le) && gc
+-// +build linux
+-// +build mips64 mips64le
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
+index 6783b26c6..f08f62807 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (mips || mipsle) && gc
+-// +build linux
+-// +build mips mipsle
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
+index 19d498934..bdfc024d2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (ppc64 || ppc64le) && gc
+-// +build linux
+-// +build ppc64 ppc64le
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+index e42eb81d5..2e8c99612 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build riscv64 && gc
+-// +build riscv64
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
+index c46aab339..2c394b11e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && s390x && gc
+-// +build linux
+-// +build s390x
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s
+index 5e7a1169c..fab586a2c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gc
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/go-controller/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
+index f8c5394c1..f949ec547 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gc
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/go-controller/vendor/golang.org/x/sys/unix/asm_zos_s390x.s
+index 3b54e1858..2f67ba86d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/asm_zos_s390x.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/asm_zos_s390x.s
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x && gc
+-// +build zos
+-// +build s390x
+-// +build gc
+ 
+ #include "textflag.h"
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/cap_freebsd.go b/go-controller/vendor/golang.org/x/sys/unix/cap_freebsd.go
+index 0b7c6adb8..a08657890 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/cap_freebsd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/cap_freebsd.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build freebsd
+-// +build freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/constants.go b/go-controller/vendor/golang.org/x/sys/unix/constants.go
+index 394a3965b..6fb7cb77d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/constants.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/constants.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+index 65a998508..d78513461 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix && ppc
+-// +build aix,ppc
+ 
+ // Functions to access/create device major and minor numbers matching the
+ // encoding used by AIX.
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+index 8fc08ad0a..623a5e697 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix && ppc64
+-// +build aix,ppc64
+ 
+ // Functions to access/create device major and minor numbers matching the
+ // encoding used AIX.
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/dev_zos.go b/go-controller/vendor/golang.org/x/sys/unix/dev_zos.go
+index a388e59a0..bb6a64fe9 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/dev_zos.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/dev_zos.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ // Functions to access/create device major and minor numbers matching the
+ // encoding used by z/OS.
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/dirent.go b/go-controller/vendor/golang.org/x/sys/unix/dirent.go
+index 2499f977b..1ebf11782 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/dirent.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/dirent.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/endian_big.go b/go-controller/vendor/golang.org/x/sys/unix/endian_big.go
+index a52026557..1095fd31d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/endian_big.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/endian_big.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ //
+ //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64
+-// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/endian_little.go b/go-controller/vendor/golang.org/x/sys/unix/endian_little.go
+index b0f2bc4ae..b9f0e277b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/endian_little.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/endian_little.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ //
+ //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh
+-// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/env_unix.go b/go-controller/vendor/golang.org/x/sys/unix/env_unix.go
+index 29ccc4d13..a96da71f4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/env_unix.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/env_unix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ // Unix environment variables.
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/epoll_zos.go b/go-controller/vendor/golang.org/x/sys/unix/epoll_zos.go
+index cedaf7e02..7753fddea 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/epoll_zos.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/epoll_zos.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/fcntl.go b/go-controller/vendor/golang.org/x/sys/unix/fcntl.go
+index e9b991258..6200876fb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/fcntl.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/fcntl.go
+@@ -2,8 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+ 
+-//go:build dragonfly || freebsd || linux || netbsd || openbsd
+-// +build dragonfly freebsd linux netbsd openbsd
++//go:build dragonfly || freebsd || linux || netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/go-controller/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
+index 29d44808b..13b4acd5c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc)
+-// +build linux,386 linux,arm linux,mips linux,mipsle linux,ppc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/fdset.go b/go-controller/vendor/golang.org/x/sys/unix/fdset.go
+index a8068f94f..9e83d18cd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/fdset.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/fdset.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/go-controller/vendor/golang.org/x/sys/unix/fstatfs_zos.go
+index e377cc9f4..c8bde601e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/fstatfs_zos.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/fstatfs_zos.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/gccgo.go b/go-controller/vendor/golang.org/x/sys/unix/gccgo.go
+index b06f52d74..aca5721dd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/gccgo.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/gccgo.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gccgo && !aix && !hurd
+-// +build gccgo,!aix,!hurd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/gccgo_c.c b/go-controller/vendor/golang.org/x/sys/unix/gccgo_c.c
+index f98a1c542..d468b7b47 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/gccgo_c.c
++++ b/go-controller/vendor/golang.org/x/sys/unix/gccgo_c.c
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gccgo && !aix && !hurd
+-// +build gccgo,!aix,!hurd
+ 
+ #include <errno.h>
+ #include <stdint.h>
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
+index e60e49a3d..972d61bd7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build gccgo && linux && amd64
+-// +build gccgo,linux,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ifreq_linux.go b/go-controller/vendor/golang.org/x/sys/unix/ifreq_linux.go
+index 15721a510..848840ae4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ifreq_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ifreq_linux.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux
+-// +build linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ioctl_linux.go b/go-controller/vendor/golang.org/x/sys/unix/ioctl_linux.go
+index 0d12c0851..dbe680eab 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ioctl_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ioctl_linux.go
+@@ -231,3 +231,8 @@ func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) {
+ func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error {
+ 	return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value))
+ }
++
++// IoctlLoopConfigure configures all loop device parameters in a single step
++func IoctlLoopConfigure(fd int, value *LoopConfig) error {
++	return ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value))
++}
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ioctl_signed.go b/go-controller/vendor/golang.org/x/sys/unix/ioctl_signed.go
+index 7def9580e..5b0759bd8 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ioctl_signed.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ioctl_signed.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || solaris
+-// +build aix solaris
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/go-controller/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
+index 649913d1e..20f470b9d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd
+-// +build darwin dragonfly freebsd hurd linux netbsd openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ioctl_zos.go b/go-controller/vendor/golang.org/x/sys/unix/ioctl_zos.go
+index cdc21bf76..c8b2a750f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ioctl_zos.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ioctl_zos.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/mkerrors.sh b/go-controller/vendor/golang.org/x/sys/unix/mkerrors.sh
+index 47fa6a7eb..6202638ba 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/mkerrors.sh
++++ b/go-controller/vendor/golang.org/x/sys/unix/mkerrors.sh
+@@ -519,6 +519,7 @@ ccflags="$@"
+ 		$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
+ 		$2 ~ /^LO_(KEY|NAME)_SIZE$/ ||
+ 		$2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ ||
++		$2 == "LOOP_CONFIGURE" ||
+ 		$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ ||
+ 		$2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ ||
+ 		$2 ~ /^NFC_.*_(MAX)?SIZE$/ ||
+@@ -560,7 +561,7 @@ ccflags="$@"
+ 		$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
+ 		$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
+ 		$2 ~ /^CLONE_[A-Z_]+/ ||
+-		$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ &&
++		$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ &&
+ 		$2 ~ /^(BPF|DLT)_/ ||
+ 		$2 ~ /^AUDIT_/ ||
+ 		$2 ~ /^(CLOCK|TIMER)_/ ||
+@@ -663,7 +664,6 @@ echo '// mkerrors.sh' "$@"
+ echo '// Code generated by the command above; see README.md. DO NOT EDIT.'
+ echo
+ echo "//go:build ${GOARCH} && ${GOOS}"
+-echo "// +build ${GOARCH},${GOOS}"
+ echo
+ go tool cgo -godefs -- "$@" _const.go >_error.out
+ cat _error.out | grep -vf _error.grep | grep -vf _signal.grep
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/go-controller/vendor/golang.org/x/sys/unix/mmap_nomremap.go
+index ca0513632..4b68e5978 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/mmap_nomremap.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/mmap_nomremap.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris
+-// +build aix darwin dragonfly freebsd openbsd solaris
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/mremap.go b/go-controller/vendor/golang.org/x/sys/unix/mremap.go
+index fa93d0aa9..fd45fe529 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/mremap.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/mremap.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux || netbsd
+-// +build linux netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/pagesize_unix.go b/go-controller/vendor/golang.org/x/sys/unix/pagesize_unix.go
+index 53f1b4c5b..4d0a3430e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/pagesize_unix.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/pagesize_unix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ // For Unix, get the pagesize from the runtime.
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/go-controller/vendor/golang.org/x/sys/unix/pledge_openbsd.go
+index eb48294b2..6a09af53e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/pledge_openbsd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/pledge_openbsd.go
+@@ -8,54 +8,31 @@ import (
+ 	"errors"
+ 	"fmt"
+ 	"strconv"
+-	"syscall"
+-	"unsafe"
+ )
+ 
+ // Pledge implements the pledge syscall.
+ //
+-// The pledge syscall does not accept execpromises on OpenBSD releases
+-// before 6.3.
+-//
+-// execpromises must be empty when Pledge is called on OpenBSD
+-// releases predating 6.3, otherwise an error will be returned.
++// This changes both the promises and execpromises; use PledgePromises or
++// PledgeExecpromises to only change the promises or execpromises
++// respectively.
+ //
+ // For more information see pledge(2).
+ func Pledge(promises, execpromises string) error {
+-	maj, min, err := majmin()
+-	if err != nil {
++	if err := pledgeAvailable(); err != nil {
+ 		return err
+ 	}
+ 
+-	err = pledgeAvailable(maj, min, execpromises)
++	pptr, err := BytePtrFromString(promises)
+ 	if err != nil {
+ 		return err
+ 	}
+ 
+-	pptr, err := syscall.BytePtrFromString(promises)
++	exptr, err := BytePtrFromString(execpromises)
+ 	if err != nil {
+ 		return err
+ 	}
+ 
+-	// This variable will hold either a nil unsafe.Pointer or
+-	// an unsafe.Pointer to a string (execpromises).
+-	var expr unsafe.Pointer
+-
+-	// If we're running on OpenBSD > 6.2, pass execpromises to the syscall.
+-	if maj > 6 || (maj == 6 && min > 2) {
+-		exptr, err := syscall.BytePtrFromString(execpromises)
+-		if err != nil {
+-			return err
+-		}
+-		expr = unsafe.Pointer(exptr)
+-	}
+-
+-	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)
+-	if e != 0 {
+-		return e
+-	}
+-
+-	return nil
++	return pledge(pptr, exptr)
+ }
+ 
+ // PledgePromises implements the pledge syscall.
+@@ -64,30 +41,16 @@ func Pledge(promises, execpromises string) error {
+ //
+ // For more information see pledge(2).
+ func PledgePromises(promises string) error {
+-	maj, min, err := majmin()
+-	if err != nil {
+-		return err
+-	}
+-
+-	err = pledgeAvailable(maj, min, "")
+-	if err != nil {
++	if err := pledgeAvailable(); err != nil {
+ 		return err
+ 	}
+ 
+-	// This variable holds the execpromises and is always nil.
+-	var expr unsafe.Pointer
+-
+-	pptr, err := syscall.BytePtrFromString(promises)
++	pptr, err := BytePtrFromString(promises)
+ 	if err != nil {
+ 		return err
+ 	}
+ 
+-	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)
+-	if e != 0 {
+-		return e
+-	}
+-
+-	return nil
++	return pledge(pptr, nil)
+ }
+ 
+ // PledgeExecpromises implements the pledge syscall.
+@@ -96,30 +59,16 @@ func PledgePromises(promises string) error {
+ //
+ // For more information see pledge(2).
+ func PledgeExecpromises(execpromises string) error {
+-	maj, min, err := majmin()
+-	if err != nil {
++	if err := pledgeAvailable(); err != nil {
+ 		return err
+ 	}
+ 
+-	err = pledgeAvailable(maj, min, execpromises)
++	exptr, err := BytePtrFromString(execpromises)
+ 	if err != nil {
+ 		return err
+ 	}
+ 
+-	// This variable holds the promises and is always nil.
+-	var pptr unsafe.Pointer
+-
+-	exptr, err := syscall.BytePtrFromString(execpromises)
+-	if err != nil {
+-		return err
+-	}
+-
+-	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0)
+-	if e != 0 {
+-		return e
+-	}
+-
+-	return nil
++	return pledge(nil, exptr)
+ }
+ 
+ // majmin returns major and minor version number for an OpenBSD system.
+@@ -147,16 +96,15 @@ func majmin() (major int, minor int, err error) {
+ 
+ // pledgeAvailable checks for availability of the pledge(2) syscall
+ // based on the running OpenBSD version.
+-func pledgeAvailable(maj, min int, execpromises string) error {
+-	// If OpenBSD <= 5.9, pledge is not available.
+-	if (maj == 5 && min != 9) || maj < 5 {
+-		return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min)
++func pledgeAvailable() error {
++	maj, min, err := majmin()
++	if err != nil {
++		return err
+ 	}
+ 
+-	// If OpenBSD <= 6.2 and execpromises is not empty,
+-	// return an error - execpromises is not available before 6.3
+-	if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" {
+-		return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min)
++	// Require OpenBSD 6.4 as a minimum.
++	if maj < 6 || (maj == 6 && min <= 3) {
++		return fmt.Errorf("cannot call Pledge on OpenBSD %d.%d", maj, min)
+ 	}
+ 
+ 	return nil
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/go-controller/vendor/golang.org/x/sys/unix/ptrace_darwin.go
+index 463c3eff7..3f0975f3d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ptrace_darwin.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ptrace_darwin.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin && !ios
+-// +build darwin,!ios
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ptrace_ios.go b/go-controller/vendor/golang.org/x/sys/unix/ptrace_ios.go
+index ed0509a01..a4d35db5d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ptrace_ios.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ptrace_ios.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build ios
+-// +build ios
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/race.go b/go-controller/vendor/golang.org/x/sys/unix/race.go
+index 6f6c5fec5..714d2aae7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/race.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/race.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin && race) || (linux && race) || (freebsd && race)
+-// +build darwin,race linux,race freebsd,race
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/race0.go b/go-controller/vendor/golang.org/x/sys/unix/race0.go
+index 706e1322a..4a9f6634c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/race0.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/race0.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos
+-// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly zos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdents.go
+index 4d6257569..dbd2b6ccb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdents.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdents.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || dragonfly || freebsd || linux || netbsd || openbsd
+-// +build aix dragonfly freebsd linux netbsd openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+index 2a4ba47c4..130398b6b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin
+-// +build darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+index 3865943f6..c3a62dbb1 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ // Socket control messages
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+index 0840fe4a5..4a1eab37e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin freebsd linux netbsd openbsd solaris zos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall.go b/go-controller/vendor/golang.org/x/sys/unix/syscall.go
+index 63e8c8383..5ea74da98 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ // Package unix contains an interface to the low-level operating system
+ // primitives. OS details vary depending on the underlying system, and
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_aix.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_aix.go
+index e94e6cdac..67ce6cef2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_aix.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_aix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix
+-// +build aix
+ 
+ // Aix system calls.
+ // This file is compiled as ordinary Go code,
+@@ -107,7 +106,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	if n > 0 {
+ 		sl += _Socklen(n) + 1
+ 	}
+-	if sa.raw.Path[0] == '@' {
++	if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {
++		// Check sl > 3 so we don't change unnamed socket behavior.
+ 		sa.raw.Path[0] = 0
+ 		// Don't count trailing NUL for abstract address.
+ 		sl--
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+index f2871fa95..1fdaa4760 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix && ppc
+-// +build aix,ppc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+index 75718ec0f..c87f9a9f4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix && ppc64
+-// +build aix,ppc64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_bsd.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_bsd.go
+index 4217de518..a00c3e545 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_bsd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_bsd.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin || dragonfly || freebsd || netbsd || openbsd
+-// +build darwin dragonfly freebsd netbsd openbsd
+ 
+ // BSD system call wrappers shared by *BSD based systems
+ // including OS X (Darwin) and FreeBSD.  Like the other
+@@ -317,7 +316,7 @@ func GetsockoptString(fd, level, opt int) (string, error) {
+ 	if err != nil {
+ 		return "", err
+ 	}
+-	return string(buf[:vallen-1]), nil
++	return ByteSliceToString(buf[:vallen]), nil
+ }
+ 
+ //sys	recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+index b37310ce9..0eaecf5fc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && darwin
+-// +build amd64,darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+index d51ec9963..f36c6707c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm64 && darwin
+-// +build arm64,darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+index 53c96641f..16dc69937 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin && go1.12
+-// +build darwin,go1.12
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+index 4e2d32120..14bab6b2d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && dragonfly
+-// +build amd64,dragonfly
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+index b8da51004..3967bca77 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build 386 && freebsd
+-// +build 386,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+index 47155c483..eff19ada2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && freebsd
+-// +build amd64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+index 08932093f..4f24b517a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm && freebsd
+-// +build arm,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+index d151a0d0e..ac30759ec 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm64 && freebsd
+-// +build arm64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go
+index d5cd64b37..aab725ca7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build riscv64 && freebsd
+-// +build riscv64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd.go
+index 381fd4673..ba46651f8 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build hurd
+-// +build hurd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd_386.go
+index 7cf54a3e4..df89f9e6b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_hurd_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build 386 && hurd
+-// +build 386,hurd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_illumos.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_illumos.go
+index 87db5a6a8..a863f7052 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_illumos.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_illumos.go
+@@ -5,7 +5,6 @@
+ // illumos system calls not present on Solaris.
+ 
+ //go:build amd64 && illumos
+-// +build amd64,illumos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux.go
+index fb4e50224..0f85e29e6 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux.go
+@@ -61,15 +61,23 @@ func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (
+ }
+ 
+ //sys	fchmodat(dirfd int, path string, mode uint32) (err error)
+-
+-func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+-	// Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior
+-	// and check the flags. Otherwise the mode would be applied to the symlink
+-	// destination which is not what the user expects.
+-	if flags&^AT_SYMLINK_NOFOLLOW != 0 {
+-		return EINVAL
+-	} else if flags&AT_SYMLINK_NOFOLLOW != 0 {
+-		return EOPNOTSUPP
++//sys	fchmodat2(dirfd int, path string, mode uint32, flags int) (err error)
++
++func Fchmodat(dirfd int, path string, mode uint32, flags int) error {
++	// Linux fchmodat doesn't support the flags parameter, but fchmodat2 does.
++	// Try fchmodat2 if flags are specified.
++	if flags != 0 {
++		err := fchmodat2(dirfd, path, mode, flags)
++		if err == ENOSYS {
++			// fchmodat2 isn't available. If the flags are known to be valid,
++			// return EOPNOTSUPP to indicate that fchmodat doesn't support them.
++			if flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {
++				return EINVAL
++			} else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {
++				return EOPNOTSUPP
++			}
++		}
++		return err
+ 	}
+ 	return fchmodat(dirfd, path, mode)
+ }
+@@ -417,7 +425,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	if n > 0 {
+ 		sl += _Socklen(n) + 1
+ 	}
+-	if sa.raw.Path[0] == '@' {
++	if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {
++		// Check sl > 3 so we don't change unnamed socket behavior.
+ 		sa.raw.Path[0] = 0
+ 		// Don't count trailing NUL for abstract address.
+ 		sl--
+@@ -1301,7 +1310,7 @@ func GetsockoptString(fd, level, opt int) (string, error) {
+ 			return "", err
+ 		}
+ 	}
+-	return string(buf[:vallen-1]), nil
++	return ByteSliceToString(buf[:vallen]), nil
+ }
+ 
+ func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {
+@@ -2482,3 +2491,5 @@ func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) {
+ 	}
+ 	return attr, nil
+ }
++
++//sys	Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+index c7d9945ea..506dafa7b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build 386 && linux
+-// +build 386,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go
+index 08086ac6a..38d55641b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)
+-// +build linux
+-// +build 386 amd64 mips mipsle mips64 mipsle ppc64 ppc64le ppc s390x sparc64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+index 70601ce36..d557cf8de 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && linux
+-// +build amd64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go
+index 8b0f0f3aa..facdb83b2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && linux && gc
+-// +build amd64,linux,gc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+index da2986415..cd2dd797f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm && linux
+-// +build arm,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+index f5266689a..cf2ee6c75 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm64 && linux
+-// +build arm64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+index 2b1168d7d..ffc4c2b63 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && gc
+-// +build linux,gc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+index 9843fb489..9ebfdcf44 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && gc && 386
+-// +build linux,gc,386
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go
+index a6008fccd..5f2b57c4c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm && gc && linux
+-// +build arm,gc,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+index 7740af242..d1a3ad826 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && gccgo && 386
+-// +build linux,gccgo,386
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+index e16a12299..f2f67423e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && gccgo && arm
+-// +build linux,gccgo,arm
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
+index f6ab02ec1..3d0e98451 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build loong64 && linux
+-// +build loong64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+index 93fe59d25..70963a95a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (mips64 || mips64le)
+-// +build linux
+-// +build mips64 mips64le
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+index aae7f0ffd..c218ebd28 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (mips || mipsle)
+-// +build linux
+-// +build mips mipsle
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go
+index 66eff19a3..e6c48500c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && ppc
+-// +build linux,ppc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+index 806aa2574..7286a9aa8 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (ppc64 || ppc64le)
+-// +build linux
+-// +build ppc64 ppc64le
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+index 5e6ceee12..6f5a28894 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build riscv64 && linux
+-// +build riscv64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+index 2f89e8f5d..66f31210d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build s390x && linux
+-// +build s390x,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+index 7ca064ae7..11d1f1698 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build sparc64 && linux
+-// +build sparc64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+index 5199d282f..7a5eb5743 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build 386 && netbsd
+-// +build 386,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+index 70a9c52e9..62d8957ae 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && netbsd
+-// +build amd64,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
+index 3eb5942f9..ce6a06885 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm && netbsd
+-// +build arm,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+index fc6ccfd81..d46d689d1 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm64 && netbsd
+-// +build arm64,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+index 6f34479b5..b25343c71 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+@@ -137,18 +137,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+ 
+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+-	var _p0 unsafe.Pointer
++	var bufptr *Statfs_t
+ 	var bufsize uintptr
+ 	if len(buf) > 0 {
+-		_p0 = unsafe.Pointer(&buf[0])
++		bufptr = &buf[0]
+ 		bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
+ 	}
+-	r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
+-	n = int(r0)
+-	if e1 != 0 {
+-		err = e1
+-	}
+-	return
++	return getfsstat(bufptr, bufsize, flags)
+ }
+ 
+ //sysnb	getresuid(ruid *_C_int, euid *_C_int, suid *_C_int)
+@@ -171,6 +166,20 @@ func Getresgid() (rgid, egid, sgid int) {
+ 
+ //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
+ 
++//sys	fcntl(fd int, cmd int, arg int) (n int, err error)
++//sys	fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++	return fcntl(int(fd), cmd, arg)
++}
++
++// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
++	_, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk))
++	return err
++}
++
+ //sys	ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
+ 
+ func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+@@ -326,4 +335,7 @@ func Uname(uname *Utsname) error {
+ //sys	write(fd int, p []byte) (n int, err error)
+ //sys	mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+ //sys	munmap(addr uintptr, length uintptr) (err error)
++//sys	getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error)
+ //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
++//sys	pledge(promises *byte, execpromises *byte) (err error)
++//sys	unveil(path *byte, flags *byte) (err error)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
+index 6baabcdcb..9ddc89f4f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build 386 && openbsd
+-// +build 386,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+index bab25360e..70a3c96ee 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && openbsd
+-// +build amd64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+index 8eed3c4d4..265caa87f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm && openbsd
+-// +build arm,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+index 483dde99d..ac4fda171 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build arm64 && openbsd
+-// +build arm64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go
+index 04aa43f41..0a451e6dd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build openbsd
+-// +build openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go
+index c2796139c..30a308cbb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build ppc64 && openbsd
+-// +build ppc64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go
+index 23199a7ff..ea954330f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build riscv64 && openbsd
+-// +build riscv64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris.go
+index b99cfa134..21974af06 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris.go
+@@ -128,7 +128,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	if n > 0 {
+ 		sl += _Socklen(n) + 1
+ 	}
+-	if sa.raw.Path[0] == '@' {
++	if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {
++		// Check sl > 3 so we don't change unnamed socket behavior.
+ 		sa.raw.Path[0] = 0
+ 		// Don't count trailing NUL for abstract address.
+ 		sl--
+@@ -157,7 +158,7 @@ func GetsockoptString(fd, level, opt int) (string, error) {
+ 	if err != nil {
+ 		return "", err
+ 	}
+-	return string(buf[:vallen-1]), nil
++	return ByteSliceToString(buf[:vallen]), nil
+ }
+ 
+ const ImplementsGetwd = true
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
+index 0bd25ef81..e02d8ceae 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build amd64 && solaris
+-// +build amd64,solaris
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_unix.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_unix.go
+index f6eda2705..77081de8c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_unix.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_unix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+index b6919ca58..05c95bccf 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+@@ -3,8 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc
+-// +build darwin dragonfly freebsd linux,!ppc64,!ppc64le netbsd openbsd solaris
+-// +build gc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+index f6f707acf..23f39b7af 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+@@ -3,9 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux && (ppc64le || ppc64) && gc
+-// +build linux
+-// +build ppc64le ppc64
+-// +build gc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go
+index 4596d041c..b473038c6 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ package unix
+ 
+@@ -1105,7 +1104,7 @@ func GetsockoptString(fd, level, opt int) (string, error) {
+ 		return "", err
+ 	}
+ 
+-	return string(buf[:vallen-1]), nil
++	return ByteSliceToString(buf[:vallen]), nil
+ }
+ 
+ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/go-controller/vendor/golang.org/x/sys/unix/sysvshm_linux.go
+index 2c3a4437f..4fcd38de2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/sysvshm_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/sysvshm_linux.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build linux
+-// +build linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix.go
+index 5bb41d17b..79a84f18b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build (darwin && !ios) || linux
+-// +build darwin,!ios linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go
+index 71bddefdb..9eb0db664 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin && !ios
+-// +build darwin,!ios
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/timestruct.go b/go-controller/vendor/golang.org/x/sys/unix/timestruct.go
+index 616b1b284..7997b1902 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/timestruct.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/timestruct.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/go-controller/vendor/golang.org/x/sys/unix/unveil_openbsd.go
+index 168d5ae77..cb7e598ce 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/unveil_openbsd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/unveil_openbsd.go
+@@ -4,39 +4,48 @@
+ 
+ package unix
+ 
+-import (
+-	"syscall"
+-	"unsafe"
+-)
++import "fmt"
+ 
+ // Unveil implements the unveil syscall.
+ // For more information see unveil(2).
+ // Note that the special case of blocking further
+ // unveil calls is handled by UnveilBlock.
+ func Unveil(path string, flags string) error {
+-	pathPtr, err := syscall.BytePtrFromString(path)
+-	if err != nil {
++	if err := supportsUnveil(); err != nil {
+ 		return err
+ 	}
+-	flagsPtr, err := syscall.BytePtrFromString(flags)
++	pathPtr, err := BytePtrFromString(path)
+ 	if err != nil {
+ 		return err
+ 	}
+-	_, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0)
+-	if e != 0 {
+-		return e
++	flagsPtr, err := BytePtrFromString(flags)
++	if err != nil {
++		return err
+ 	}
+-	return nil
++	return unveil(pathPtr, flagsPtr)
+ }
+ 
+ // UnveilBlock blocks future unveil calls.
+ // For more information see unveil(2).
+ func UnveilBlock() error {
+-	// Both pointers must be nil.
+-	var pathUnsafe, flagsUnsafe unsafe.Pointer
+-	_, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0)
+-	if e != 0 {
+-		return e
++	if err := supportsUnveil(); err != nil {
++		return err
+ 	}
++	return unveil(nil, nil)
++}
++
++// supportsUnveil checks for availability of the unveil(2) system call based
++// on the running OpenBSD version.
++func supportsUnveil() error {
++	maj, min, err := majmin()
++	if err != nil {
++		return err
++	}
++
++	// unveil is not available before 6.4
++	if maj < 6 || (maj == 6 && min <= 3) {
++		return fmt.Errorf("cannot call Unveil on OpenBSD %d.%d", maj, min)
++	}
++
+ 	return nil
+ }
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/xattr_bsd.go b/go-controller/vendor/golang.org/x/sys/unix/xattr_bsd.go
+index f5f8e9f36..e16879396 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/xattr_bsd.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/xattr_bsd.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build freebsd || netbsd
+-// +build freebsd netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+index ca9799b79..2fb219d78 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc && aix
+-// +build ppc,aix
+ 
+ // Created by cgo -godefs - DO NOT EDIT
+ // cgo -godefs -- -maix32 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+index 200c8c26f..b0e6f5c85 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && aix
+-// +build ppc64,aix
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -maix64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
+index 143007627..e40fa8524 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && darwin
+-// +build amd64,darwin
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+index ab044a742..bb02aa6c0 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && darwin
+-// +build arm64,darwin
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
+index 17bba0e44..c0e0f8694 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && dragonfly
+-// +build amd64,dragonfly
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
+index f8c2c5138..6c6923906 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && freebsd
+-// +build 386,freebsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+index 96310c3be..dd9163f8e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && freebsd
+-// +build amd64,freebsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
+index 777b69def..493a2a793 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && freebsd
+-// +build arm,freebsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+index c557ac2db..8b437b307 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && freebsd
+-// +build arm64,freebsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go
+index 341b4d962..67c02dd57 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && freebsd
+-// +build riscv64,freebsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux.go
+index f9c7f479b..c73cfe2f1 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux.go
+@@ -1,7 +1,6 @@
+ // Code generated by mkmerge; DO NOT EDIT.
+ 
+ //go:build linux
+-// +build linux
+ 
+ package unix
+ 
+@@ -481,10 +480,13 @@ const (
+ 	BPF_FROM_BE                                 = 0x8
+ 	BPF_FROM_LE                                 = 0x0
+ 	BPF_FS_MAGIC                                = 0xcafe4a11
++	BPF_F_AFTER                                 = 0x10
+ 	BPF_F_ALLOW_MULTI                           = 0x2
+ 	BPF_F_ALLOW_OVERRIDE                        = 0x1
+ 	BPF_F_ANY_ALIGNMENT                         = 0x2
+-	BPF_F_KPROBE_MULTI_RETURN                   = 0x1
++	BPF_F_BEFORE                                = 0x8
++	BPF_F_ID                                    = 0x20
++	BPF_F_NETFILTER_IP_DEFRAG                   = 0x1
+ 	BPF_F_QUERY_EFFECTIVE                       = 0x1
+ 	BPF_F_REPLACE                               = 0x4
+ 	BPF_F_SLEEPABLE                             = 0x10
+@@ -521,6 +523,7 @@ const (
+ 	BPF_MAJOR_VERSION                           = 0x1
+ 	BPF_MAXINSNS                                = 0x1000
+ 	BPF_MEM                                     = 0x60
++	BPF_MEMSX                                   = 0x80
+ 	BPF_MEMWORDS                                = 0x10
+ 	BPF_MINOR_VERSION                           = 0x1
+ 	BPF_MISC                                    = 0x7
+@@ -776,6 +779,8 @@ const (
+ 	DEVLINK_GENL_MCGRP_CONFIG_NAME              = "config"
+ 	DEVLINK_GENL_NAME                           = "devlink"
+ 	DEVLINK_GENL_VERSION                        = 0x1
++	DEVLINK_PORT_FN_CAP_IPSEC_CRYPTO            = 0x4
++	DEVLINK_PORT_FN_CAP_IPSEC_PACKET            = 0x8
+ 	DEVLINK_PORT_FN_CAP_MIGRATABLE              = 0x2
+ 	DEVLINK_PORT_FN_CAP_ROCE                    = 0x1
+ 	DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX           = 0x14
+@@ -1698,6 +1703,7 @@ const (
+ 	KEXEC_ON_CRASH                              = 0x1
+ 	KEXEC_PRESERVE_CONTEXT                      = 0x2
+ 	KEXEC_SEGMENT_MAX                           = 0x10
++	KEXEC_UPDATE_ELFCOREHDR                     = 0x4
+ 	KEYCTL_ASSUME_AUTHORITY                     = 0x10
+ 	KEYCTL_CAPABILITIES                         = 0x1f
+ 	KEYCTL_CAPS0_BIG_KEY                        = 0x10
+@@ -1795,6 +1801,7 @@ const (
+ 	LOCK_SH                                     = 0x1
+ 	LOCK_UN                                     = 0x8
+ 	LOOP_CLR_FD                                 = 0x4c01
++	LOOP_CONFIGURE                              = 0x4c0a
+ 	LOOP_CTL_ADD                                = 0x4c80
+ 	LOOP_CTL_GET_FREE                           = 0x4c82
+ 	LOOP_CTL_REMOVE                             = 0x4c81
+@@ -2275,6 +2282,7 @@ const (
+ 	PERF_MEM_LVLNUM_PMEM                        = 0xe
+ 	PERF_MEM_LVLNUM_RAM                         = 0xd
+ 	PERF_MEM_LVLNUM_SHIFT                       = 0x21
++	PERF_MEM_LVLNUM_UNC                         = 0x8
+ 	PERF_MEM_LVL_HIT                            = 0x2
+ 	PERF_MEM_LVL_IO                             = 0x1000
+ 	PERF_MEM_LVL_L1                             = 0x8
+@@ -3461,6 +3469,7 @@ const (
+ 	XDP_PACKET_HEADROOM                         = 0x100
+ 	XDP_PGOFF_RX_RING                           = 0x0
+ 	XDP_PGOFF_TX_RING                           = 0x80000000
++	XDP_PKT_CONTD                               = 0x1
+ 	XDP_RING_NEED_WAKEUP                        = 0x1
+ 	XDP_RX_RING                                 = 0x2
+ 	XDP_SHARED_UMEM                             = 0x1
+@@ -3473,6 +3482,7 @@ const (
+ 	XDP_UMEM_REG                                = 0x4
+ 	XDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1
+ 	XDP_USE_NEED_WAKEUP                         = 0x8
++	XDP_USE_SG                                  = 0x10
+ 	XDP_ZEROCOPY                                = 0x4
+ 	XENFS_SUPER_MAGIC                           = 0xabba1974
+ 	XFS_SUPER_MAGIC                             = 0x58465342
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+index 30aee00a5..4920821cf 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && linux
+-// +build 386,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+index 8ebfa5127..a0c1e4112 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && linux
+-// +build amd64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+index 271a21cdc..c63985560 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && linux
+-// +build arm,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+index 910c330a3..47cc62e25 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && linux
+-// +build arm64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
+index a640798c9..27ac4a09e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build loong64 && linux
+-// +build loong64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go
+@@ -119,6 +118,7 @@ const (
+ 	IXOFF                            = 0x1000
+ 	IXON                             = 0x400
+ 	LASX_CTX_MAGIC                   = 0x41535801
++	LBT_CTX_MAGIC                    = 0x42540001
+ 	LSX_CTX_MAGIC                    = 0x53580001
+ 	MAP_ANON                         = 0x20
+ 	MAP_ANONYMOUS                    = 0x20
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+index 0d5925d34..54694642a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips && linux
+-// +build mips,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+index d72a00e0b..3adb81d75 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64 && linux
+-// +build mips64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+index 02ba129f8..2dfe98f0d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64le && linux
+-// +build mips64le,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+index 8daa6dd96..f5398f84f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mipsle && linux
+-// +build mipsle,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
+index 63c8fa2f7..c54f152d6 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc && linux
+-// +build ppc,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+index 930799ec1..76057dc72 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && linux
+-// +build ppc64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+index 8605a7dd7..e0c3725e2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64le && linux
+-// +build ppc64le,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+index 95a016f1c..18f2813ed 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && linux
+-// +build riscv64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go
+@@ -228,6 +227,9 @@ const (
+ 	PPPIOCUNBRIDGECHAN               = 0x7434
+ 	PPPIOCXFERUNIT                   = 0x744e
+ 	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_GETFDPIC                  = 0x21
++	PTRACE_GETFDPIC_EXEC             = 0x0
++	PTRACE_GETFDPIC_INTERP           = 0x1
+ 	RLIMIT_AS                        = 0x9
+ 	RLIMIT_MEMLOCK                   = 0x8
+ 	RLIMIT_NOFILE                    = 0x7
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+index 1ae0108f5..11619d4ec 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build s390x && linux
+-// +build s390x,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+index 1bb7c6333..396d994da 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build sparc64 && linux
+-// +build sparc64,linux
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
+index 72f7420d2..130085df4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && netbsd
+-// +build 386,netbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+index 8d4eb0c08..84769a1a3 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && netbsd
+-// +build amd64,netbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
+index 9eef9749f..602ded003 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && netbsd
+-// +build arm,netbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -marm _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+index 3b62ba192..efc0406ee 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && netbsd
+-// +build arm64,netbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
+index af20e474b..5a6500f83 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && openbsd
+-// +build 386,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+index 6015fcb2b..a5aeeb979 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && openbsd
+-// +build amd64,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+index 8d44955e4..0e9748a72 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && openbsd
+-// +build arm,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+index ae16fe754..4f4449abc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && openbsd
+-// +build arm64,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go
+index 03d90fe35..76a363f0f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64 && openbsd
+-// +build mips64,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go
+index 8e2c51b1e..43ca0cdfd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && openbsd
+-// +build ppc64,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go
+index 13d403031..b1b8bb200 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && openbsd
+-// +build riscv64,openbsd
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
+index 1afee6a08..d2ddd3176 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && solaris
+-// +build amd64,solaris
+ 
+ // Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go
+index fc7d0506f..4dfd2e051 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ // Hand edited based on zerrors_linux_s390x.go
+ // TODO: auto-generate.
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/go-controller/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+index 97f20ca28..586317c78 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+@@ -1,8 +1,6 @@
+ // Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT.
+ 
+ //go:build linux && (arm || arm64)
+-// +build linux
+-// +build arm arm64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+index 0b5f79430..d7c881be7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+@@ -1,8 +1,6 @@
+ // Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
+ 
+ //go:build linux && (mips || mips64)
+-// +build linux
+-// +build mips mips64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+index 2807f7e64..2d2de5d29 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+@@ -1,8 +1,6 @@
+ // Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT.
+ 
+ //go:build linux && (mipsle || mips64le)
+-// +build linux
+-// +build mipsle mips64le
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/go-controller/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+index 281ea64e3..5adc79fb5 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+@@ -1,8 +1,6 @@
+ // Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT.
+ 
+ //go:build linux && (386 || amd64)
+-// +build linux
+-// +build 386 amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+index d1d1d2331..6ea64a3c0 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build aix && ppc
+-// +build aix,ppc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+index f99a18adc..99ee4399a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build aix && ppc64
+-// +build aix,ppc64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+index c4d50ae50..b68a78362 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build aix && ppc64 && gc
+-// +build aix,ppc64,gc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+index 6903d3b09..0a87450bf 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build aix && ppc64 && gccgo
+-// +build aix,ppc64,gccgo
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+index 1cad561e9..ccb02f240 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build darwin && amd64
+-// +build darwin,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+index b18edbd0e..1b40b997b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build darwin && arm64
+-// +build darwin,arm64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+index 0c67df64a..aad65fc79 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build dragonfly && amd64
+-// +build dragonfly,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+index e6e05d145..c0096391a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build freebsd && 386
+-// +build freebsd,386
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+index 7508accac..7664df749 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build freebsd && amd64
+-// +build freebsd,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+index 7b56aead4..ae099182c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build freebsd && arm
+-// +build freebsd,arm
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+index cc623dcaa..11fd5d45b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build freebsd && arm64
+-// +build freebsd,arm64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go
+index 581849197..c3d2d6530 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build freebsd && riscv64
+-// +build freebsd,riscv64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+index 6be25cd19..c698cbc01 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build illumos && amd64
+-// +build illumos,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux.go
+index 1ff3aec74..1488d2712 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux.go
+@@ -1,7 +1,6 @@
+ // Code generated by mkmerge; DO NOT EDIT.
+ 
+ //go:build linux
+-// +build linux
+ 
+ package unix
+ 
+@@ -38,6 +37,21 @@ func fchmodat(dirfd int, path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_FCHMODAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+ 	if e1 != 0 {
+@@ -2195,3 +2209,13 @@ func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) {
+ 	}
+ 	return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) {
++	_, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+index 07b549cc2..4def3e9fc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && 386
+-// +build linux,386
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+index 5f481bf83..fef2bc8ba 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && amd64
+-// +build linux,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+index 824cd52c7..a9fd76a88 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && arm
+-// +build linux,arm
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+index e77aecfe9..460065028 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && arm64
+-// +build linux,arm64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go
+index 806ffd1e1..c8987d264 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && loong64
+-// +build linux,loong64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+index 961a3afb7..921f43061 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && mips
+-// +build linux,mips
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+index ed05005e9..44f067829 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && mips64
+-// +build linux,mips64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+index d365b718f..e7fa0abf0 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && mips64le
+-// +build linux,mips64le
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+index c3f1b8bbd..8c5125675 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && mipsle
+-// +build linux,mipsle
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go
+index a6574cf98..7392fd45e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && ppc
+-// +build linux,ppc
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+index f40990264..41180434e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && ppc64
+-// +build linux,ppc64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+index 9dfcc2997..40c6ce7ae 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && ppc64le
+-// +build linux,ppc64le
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+index 0ab4f2ed7..2cfe34adb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && riscv64
+-// +build linux,riscv64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+index 6cde32237..61e6f0709 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && s390x
+-// +build linux,s390x
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+index 5253d65bf..834b84204 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build linux && sparc64
+-// +build linux,sparc64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+index 2df3c5bac..e91ebc14a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build netbsd && 386
+-// +build netbsd,386
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+index a60556bab..be28babbc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build netbsd && amd64
+-// +build netbsd,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+index 9f788917a..fb587e826 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build netbsd && arm
+-// +build netbsd,arm
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+index 82a4cb2dc..d576438bb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build netbsd && arm64
+-// +build netbsd,arm64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+index 66b3b6456..a1d061597 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && 386
+-// +build openbsd,386
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s
+index 3dcacd30d..41b561731 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s
+@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $4
+ DATA	·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $4
++DATA	·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_ppoll(SB)
+ GLOBL	·libc_ppoll_trampoline_addr(SB), RODATA, $4
+@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $4
+ DATA	·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $4
++DATA	·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_utimensat(SB)
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $4
+ DATA	·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_pledge(SB)
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $4
++DATA	·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_unveil(SB)
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $4
++DATA	·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+index c5c4cc112..5b2a74097 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && amd64
+-// +build openbsd,amd64
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s
+index 2763620b0..4019a656f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s
+@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $8
++DATA	·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_ppoll(SB)
+ GLOBL	·libc_ppoll_trampoline_addr(SB), RODATA, $8
+@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $8
++DATA	·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_utimensat(SB)
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_pledge(SB)
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $8
++DATA	·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_unveil(SB)
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $8
++DATA	·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+index 93bfbb328..f6eda1344 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && arm
+-// +build openbsd,arm
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s
+index c92231404..ac4af24f9 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s
+@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $4
+ DATA	·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $4
++DATA	·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_ppoll(SB)
+ GLOBL	·libc_ppoll_trampoline_addr(SB), RODATA, $4
+@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $4
+ DATA	·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $4
++DATA	·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_utimensat(SB)
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $4
+ DATA	·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_pledge(SB)
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $4
++DATA	·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_unveil(SB)
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $4
++DATA	·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+index a107b8fda..55df20ae9 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && arm64
+-// +build openbsd,arm64
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s
+index a6bc32c92..f77d53212 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s
+@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $8
++DATA	·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_ppoll(SB)
+ GLOBL	·libc_ppoll_trampoline_addr(SB), RODATA, $8
+@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $8
++DATA	·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_utimensat(SB)
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_pledge(SB)
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $8
++DATA	·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_unveil(SB)
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $8
++DATA	·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go
+index c427de509..8c1155cbc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && mips64
+-// +build openbsd,mips64
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s
+index b4e7bceab..fae140b62 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s
+@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $8
++DATA	·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_ppoll(SB)
+ GLOBL	·libc_ppoll_trampoline_addr(SB), RODATA, $8
+@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $8
++DATA	·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_utimensat(SB)
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_pledge(SB)
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $8
++DATA	·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_unveil(SB)
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $8
++DATA	·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go
+index 60c1a99ae..7cc80c58d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && ppc64
+-// +build openbsd,ppc64
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s
+index ca3f76600..9d1e0ff06 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s
+@@ -213,6 +213,12 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	CALL	libc_fcntl(SB)
++	RET
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $8
++DATA	·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	CALL	libc_ppoll(SB)
+ 	RET
+@@ -801,8 +807,26 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	CALL	libc_getfsstat(SB)
++	RET
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $8
++DATA	·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	CALL	libc_utimensat(SB)
+ 	RET
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	CALL	libc_pledge(SB)
++	RET
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $8
++DATA	·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	CALL	libc_unveil(SB)
++	RET
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $8
++DATA	·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go
+index 52eba360f..0688737f4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build openbsd && riscv64
+-// +build openbsd,riscv64
+ 
+ package unix
+ 
+@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fcntl(fd int, cmd int, arg int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_fcntl_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ 	r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ 	n = int(r0)
+@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_getfsstat_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2229,3 +2269,33 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ var libc_utimensat_trampoline_addr uintptr
+ 
+ //go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pledge(promises *byte, execpromises *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_pledge_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_pledge pledge "libc.so"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unveil(path *byte, flags *byte) (err error) {
++	_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++var libc_unveil_trampoline_addr uintptr
++
++//go:cgo_import_dynamic libc_unveil unveil "libc.so"
++
++
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s
+index 477a7d5b2..da115f9a4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s
+@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_sysctl_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)
+ 
++TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++GLOBL	·libc_fcntl_trampoline_addr(SB), RODATA, $8
++DATA	·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)
++
+ TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_ppoll(SB)
+ GLOBL	·libc_ppoll_trampoline_addr(SB), RODATA, $8
+@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0
+ GLOBL	·libc_munmap_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)
+ 
++TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++GLOBL	·libc_getfsstat_trampoline_addr(SB), RODATA, $8
++DATA	·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)
++
+ TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0
+ 	JMP	libc_utimensat(SB)
+ GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8
+ DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)
++
++TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_pledge(SB)
++GLOBL	·libc_pledge_trampoline_addr(SB), RODATA, $8
++DATA	·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)
++
++TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0
++	JMP	libc_unveil(SB)
++GLOBL	·libc_unveil_trampoline_addr(SB), RODATA, $8
++DATA	·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+index b40189464..829b87feb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build solaris && amd64
+-// +build solaris,amd64
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go
+index 1d8fe1d4b..94f011238 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+index 55e048471..3a58ae819 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build 386 && openbsd
+-// +build 386,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+index d2243cf83..dcb7a0eb7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build amd64 && openbsd
+-// +build amd64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+index 82dc51bd8..db5a7bf13 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build arm && openbsd
+-// +build arm,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+index cbdda1a4a..7be575a77 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build arm64 && openbsd
+-// +build arm64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go
+index f55eae1a8..d6e3174c6 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build mips64 && openbsd
+-// +build mips64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go
+index e44054470..ee97157d0 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build ppc64 && openbsd
+-// +build ppc64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go
+index a0db82fce..35c3b91d0 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build riscv64 && openbsd
+-// +build riscv64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+index f8298ff9b..5edda7687 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && darwin
+-// +build amd64,darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
+index 5eb433bbf..0dc9e8b4d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && darwin
+-// +build arm64,darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+index 703675c0c..308ddf3a1 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && dragonfly
+-// +build amd64,dragonfly
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+index 4e0d96107..418664e3d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && freebsd
+-// +build 386,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+index 01636b838..34d0b86d7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && freebsd
+-// +build amd64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+index ad99bc106..b71cf45e2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && freebsd
+-// +build arm,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+index 89dcc4274..e32df1c1e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && freebsd
+-// +build arm64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go
+index ee37aaa0c..15ad6111f 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && freebsd
+-// +build riscv64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+index 9862853d3..fcf3ecbdd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && linux
+-// +build 386,linux
+ 
+ package unix
+ 
+@@ -448,4 +447,5 @@ const (
+ 	SYS_FUTEX_WAITV                  = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE      = 450
+ 	SYS_CACHESTAT                    = 451
++	SYS_FCHMODAT2                    = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+index 8901f0f4e..f56dc2504 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && linux
+-// +build amd64,linux
+ 
+ package unix
+ 
+@@ -370,4 +369,6 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
++	SYS_MAP_SHADOW_STACK        = 453
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+index 6902c37ee..974bf2467 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && linux
+-// +build arm,linux
+ 
+ package unix
+ 
+@@ -412,4 +411,5 @@ const (
+ 	SYS_FUTEX_WAITV                  = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE      = 450
+ 	SYS_CACHESTAT                    = 451
++	SYS_FCHMODAT2                    = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+index a6d3dff81..39a2739e2 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && linux
+-// +build arm64,linux
+ 
+ package unix
+ 
+@@ -315,4 +314,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
+index b18f3f710..cf9c9d77e 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build loong64 && linux
+-// +build loong64,linux
+ 
+ package unix
+ 
+@@ -309,4 +308,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+index 0302e5e3d..10b7362ef 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips && linux
+-// +build mips,linux
+ 
+ package unix
+ 
+@@ -432,4 +431,5 @@ const (
+ 	SYS_FUTEX_WAITV                  = 4449
+ 	SYS_SET_MEMPOLICY_HOME_NODE      = 4450
+ 	SYS_CACHESTAT                    = 4451
++	SYS_FCHMODAT2                    = 4452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+index 6693ba4a0..cd4d8b4fd 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64 && linux
+-// +build mips64,linux
+ 
+ package unix
+ 
+@@ -362,4 +361,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 5449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 5450
+ 	SYS_CACHESTAT               = 5451
++	SYS_FCHMODAT2               = 5452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+index fd93f4987..2c0efca81 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64le && linux
+-// +build mips64le,linux
+ 
+ package unix
+ 
+@@ -362,4 +361,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 5449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 5450
+ 	SYS_CACHESTAT               = 5451
++	SYS_FCHMODAT2               = 5452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+index 760ddcadc..a72e31d39 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mipsle && linux
+-// +build mipsle,linux
+ 
+ package unix
+ 
+@@ -432,4 +431,5 @@ const (
+ 	SYS_FUTEX_WAITV                  = 4449
+ 	SYS_SET_MEMPOLICY_HOME_NODE      = 4450
+ 	SYS_CACHESTAT                    = 4451
++	SYS_FCHMODAT2                    = 4452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
+index cff2b2555..c7d1e3747 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc && linux
+-// +build ppc,linux
+ 
+ package unix
+ 
+@@ -439,4 +438,5 @@ const (
+ 	SYS_FUTEX_WAITV                  = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE      = 450
+ 	SYS_CACHESTAT                    = 451
++	SYS_FCHMODAT2                    = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+index a4b2405d0..f4d4838c8 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && linux
+-// +build ppc64,linux
+ 
+ package unix
+ 
+@@ -411,4 +410,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+index aca54b4e3..b64f0e591 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64le && linux
+-// +build ppc64le,linux
+ 
+ package unix
+ 
+@@ -411,4 +410,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+index 9d1738d64..95711195a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && linux
+-// +build riscv64,linux
+ 
+ package unix
+ 
+@@ -316,4 +315,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+index 022878dc8..f94e943bc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build s390x && linux
+-// +build s390x,linux
+ 
+ package unix
+ 
+@@ -377,4 +376,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+index 4100a761c..ba0c2bc51 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build sparc64 && linux
+-// +build sparc64,linux
+ 
+ package unix
+ 
+@@ -390,4 +389,5 @@ const (
+ 	SYS_FUTEX_WAITV             = 449
+ 	SYS_SET_MEMPOLICY_HOME_NODE = 450
+ 	SYS_CACHESTAT               = 451
++	SYS_FCHMODAT2               = 452
+ )
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+index 3a6699eba..b2aa8cd49 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && netbsd
+-// +build 386,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
+index 5677cd4f1..524a1b1c9 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && netbsd
+-// +build amd64,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
+index e784cb6db..d59b943ac 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && netbsd
+-// +build arm,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+index bd4952efa..31e771d53 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; DO NOT EDIT.
+ 
+ //go:build arm64 && netbsd
+-// +build arm64,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+index 597733813..9fd77c6cb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && openbsd
+-// +build 386,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
+index 16af29189..af10af28c 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && openbsd
+-// +build amd64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+index f59b18a97..cc2028af4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && openbsd
+-// +build arm,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+index 721ef5910..c06dd4415 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && openbsd
+-// +build arm64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go
+index 01c43a01f..9ddbf3e08 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64 && openbsd
+-// +build mips64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go
+index f258cfa24..19a6ee413 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && openbsd
+-// +build ppc64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go
+index 07919e0ec..05192a782 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && openbsd
+-// +build riscv64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go
+index 073daad43..b2e308581 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+index 7a8161c1d..3e6d57cae 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc && aix
+-// +build ppc,aix
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+index 07ed733c5..3a219bdce 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && aix
+-// +build ppc64,aix
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+index 690cefc3d..091d107f3 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && darwin
+-// +build amd64,darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
+index 5bffc10ea..28ff4ef74 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && darwin
+-// +build arm64,darwin
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+index d0ba8e9b8..30e405bb4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && dragonfly
+-// +build amd64,dragonfly
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+index 29dc48337..6cbd094a3 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && freebsd
+-// +build 386,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+index 0a89b2890..7c03b6ee7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && freebsd
+-// +build amd64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+index c8666bb15..422107ee8 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && freebsd
+-// +build arm,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+index 88fb48a88..505a12acf 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && freebsd
+-// +build arm64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go
+index 698dc975e..cc986c790 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && freebsd
+-// +build riscv64,freebsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux.go
+index 18aa70b42..bbf8399ff 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux.go
+@@ -1,7 +1,6 @@
+ // Code generated by mkmerge; DO NOT EDIT.
+ 
+ //go:build linux
+-// +build linux
+ 
+ package unix
+ 
+@@ -2672,6 +2671,7 @@ const (
+ 	BPF_PROG_TYPE_LSM                          = 0x1d
+ 	BPF_PROG_TYPE_SK_LOOKUP                    = 0x1e
+ 	BPF_PROG_TYPE_SYSCALL                      = 0x1f
++	BPF_PROG_TYPE_NETFILTER                    = 0x20
+ 	BPF_CGROUP_INET_INGRESS                    = 0x0
+ 	BPF_CGROUP_INET_EGRESS                     = 0x1
+ 	BPF_CGROUP_INET_SOCK_CREATE                = 0x2
+@@ -2716,6 +2716,11 @@ const (
+ 	BPF_PERF_EVENT                             = 0x29
+ 	BPF_TRACE_KPROBE_MULTI                     = 0x2a
+ 	BPF_LSM_CGROUP                             = 0x2b
++	BPF_STRUCT_OPS                             = 0x2c
++	BPF_NETFILTER                              = 0x2d
++	BPF_TCX_INGRESS                            = 0x2e
++	BPF_TCX_EGRESS                             = 0x2f
++	BPF_TRACE_UPROBE_MULTI                     = 0x30
+ 	BPF_LINK_TYPE_UNSPEC                       = 0x0
+ 	BPF_LINK_TYPE_RAW_TRACEPOINT               = 0x1
+ 	BPF_LINK_TYPE_TRACING                      = 0x2
+@@ -2726,6 +2731,18 @@ const (
+ 	BPF_LINK_TYPE_PERF_EVENT                   = 0x7
+ 	BPF_LINK_TYPE_KPROBE_MULTI                 = 0x8
+ 	BPF_LINK_TYPE_STRUCT_OPS                   = 0x9
++	BPF_LINK_TYPE_NETFILTER                    = 0xa
++	BPF_LINK_TYPE_TCX                          = 0xb
++	BPF_LINK_TYPE_UPROBE_MULTI                 = 0xc
++	BPF_PERF_EVENT_UNSPEC                      = 0x0
++	BPF_PERF_EVENT_UPROBE                      = 0x1
++	BPF_PERF_EVENT_URETPROBE                   = 0x2
++	BPF_PERF_EVENT_KPROBE                      = 0x3
++	BPF_PERF_EVENT_KRETPROBE                   = 0x4
++	BPF_PERF_EVENT_TRACEPOINT                  = 0x5
++	BPF_PERF_EVENT_EVENT                       = 0x6
++	BPF_F_KPROBE_MULTI_RETURN                  = 0x1
++	BPF_F_UPROBE_MULTI_RETURN                  = 0x1
+ 	BPF_ANY                                    = 0x0
+ 	BPF_NOEXIST                                = 0x1
+ 	BPF_EXIST                                  = 0x2
+@@ -2743,6 +2760,8 @@ const (
+ 	BPF_F_MMAPABLE                             = 0x400
+ 	BPF_F_PRESERVE_ELEMS                       = 0x800
+ 	BPF_F_INNER_MAP                            = 0x1000
++	BPF_F_LINK                                 = 0x2000
++	BPF_F_PATH_FD                              = 0x4000
+ 	BPF_STATS_RUN_TIME                         = 0x0
+ 	BPF_STACK_BUILD_ID_EMPTY                   = 0x0
+ 	BPF_STACK_BUILD_ID_VALID                   = 0x1
+@@ -2763,6 +2782,7 @@ const (
+ 	BPF_F_ZERO_CSUM_TX                         = 0x2
+ 	BPF_F_DONT_FRAGMENT                        = 0x4
+ 	BPF_F_SEQ_NUMBER                           = 0x8
++	BPF_F_NO_TUNNEL_KEY                        = 0x10
+ 	BPF_F_TUNINFO_FLAGS                        = 0x10
+ 	BPF_F_INDEX_MASK                           = 0xffffffff
+ 	BPF_F_CURRENT_CPU                          = 0xffffffff
+@@ -2779,6 +2799,8 @@ const (
+ 	BPF_F_ADJ_ROOM_ENCAP_L4_UDP                = 0x10
+ 	BPF_F_ADJ_ROOM_NO_CSUM_RESET               = 0x20
+ 	BPF_F_ADJ_ROOM_ENCAP_L2_ETH                = 0x40
++	BPF_F_ADJ_ROOM_DECAP_L3_IPV4               = 0x80
++	BPF_F_ADJ_ROOM_DECAP_L3_IPV6               = 0x100
+ 	BPF_ADJ_ROOM_ENCAP_L2_MASK                 = 0xff
+ 	BPF_ADJ_ROOM_ENCAP_L2_SHIFT                = 0x38
+ 	BPF_F_SYSCTL_BASE_NAME                     = 0x1
+@@ -2867,6 +2889,8 @@ const (
+ 	BPF_DEVCG_DEV_CHAR                         = 0x2
+ 	BPF_FIB_LOOKUP_DIRECT                      = 0x1
+ 	BPF_FIB_LOOKUP_OUTPUT                      = 0x2
++	BPF_FIB_LOOKUP_SKIP_NEIGH                  = 0x4
++	BPF_FIB_LOOKUP_TBID                        = 0x8
+ 	BPF_FIB_LKUP_RET_SUCCESS                   = 0x0
+ 	BPF_FIB_LKUP_RET_BLACKHOLE                 = 0x1
+ 	BPF_FIB_LKUP_RET_UNREACHABLE               = 0x2
+@@ -2902,6 +2926,7 @@ const (
+ 	BPF_CORE_ENUMVAL_EXISTS                    = 0xa
+ 	BPF_CORE_ENUMVAL_VALUE                     = 0xb
+ 	BPF_CORE_TYPE_MATCHES                      = 0xc
++	BPF_F_TIMER_ABS                            = 0x1
+ )
+ 
+ const (
+@@ -2980,6 +3005,12 @@ type LoopInfo64 struct {
+ 	Encrypt_key      [32]uint8
+ 	Init             [2]uint64
+ }
++type LoopConfig struct {
++	Fd   uint32
++	Size uint32
++	Info LoopInfo64
++	_    [8]uint64
++}
+ 
+ type TIPCSocketAddr struct {
+ 	Ref  uint32
+@@ -5883,3 +5914,15 @@ type SchedAttr struct {
+ }
+ 
+ const SizeofSchedAttr = 0x38
++
++type Cachestat_t struct {
++	Cache            uint64
++	Dirty            uint64
++	Writeback        uint64
++	Evicted          uint64
++	Recently_evicted uint64
++}
++type CachestatRange struct {
++	Off uint64
++	Len uint64
++}
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+index 6d8acbcc5..438a30aff 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && linux
+-// +build 386,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+index 59293c688..adceca355 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && linux
+-// +build amd64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+index 40cfa38c2..eeaa00a37 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && linux
+-// +build arm,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+index 055bc4216..6739aa91d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && linux
+-// +build arm64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go
+index f28affbc6..9920ef631 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build loong64 && linux
+-// +build loong64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+index 9d71e7ccd..2923b799a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips && linux
+-// +build mips,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+index fd5ccd332..ce2750ee4 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64 && linux
+-// +build mips64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+index 7704de77a..3038811d7 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64le && linux
+-// +build mips64le,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+index df00b8757..efc6fed18 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mipsle && linux
+-// +build mipsle,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
+index 0942840db..9a654b75a 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc && linux
+-// +build ppc,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+index 034874395..40d358e33 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && linux
+-// +build ppc64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+index bad067047..148c6ceb8 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64le && linux
+-// +build ppc64le,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+index 1b4c97c32..72ba81543 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && linux
+-// +build riscv64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+index aa268d025..71e765508 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build s390x && linux
+-// +build s390x,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+index 444045b6c..4abbdb9de 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build sparc64 && linux
+-// +build sparc64,linux
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+index 9bc4c8f9d..f22e7947d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && netbsd
+-// +build 386,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+index bb05f655d..066a7d83d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && netbsd
+-// +build amd64,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+index db40e3a19..439548ec9 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && netbsd
+-// +build arm,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+index 11121151c..16085d3bb 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && netbsd
+-// +build arm64,netbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
+index 26eba23b7..afd13a3af 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build 386 && openbsd
+-// +build 386,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+index 5a5479886..5d97f1f9b 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && openbsd
+-// +build amd64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
+index be58c4e1f..34871cdc1 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm && openbsd
+-// +build arm,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+index 52338266c..5911bceb3 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build arm64 && openbsd
+-// +build arm64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go
+index 605cfdb12..e4f24f3bc 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build mips64 && openbsd
+-// +build mips64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go
+index d6724c010..ca50a7930 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build ppc64 && openbsd
+-// +build ppc64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go
+index ddfd27a43..d7d7f7902 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build riscv64 && openbsd
+-// +build riscv64,openbsd
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
+index 0400747c6..14160576d 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
+@@ -2,7 +2,6 @@
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ //go:build amd64 && solaris
+-// +build amd64,solaris
+ 
+ package unix
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/go-controller/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go
+index aec1efcb3..54f31be63 100644
+--- a/go-controller/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go
++++ b/go-controller/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build zos && s390x
+-// +build zos,s390x
+ 
+ // Hand edited based on ztypes_linux_s390x.go
+ // TODO: auto-generate.
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/aliases.go b/go-controller/vendor/golang.org/x/sys/windows/aliases.go
+index a20ebea63..ce2d713d6 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/aliases.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/aliases.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows && go1.9
+-// +build windows,go1.9
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/empty.s b/go-controller/vendor/golang.org/x/sys/windows/empty.s
+index fdbbbcd31..ba64caca5 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/empty.s
++++ b/go-controller/vendor/golang.org/x/sys/windows/empty.s
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build !go1.12
+-// +build !go1.12
+ 
+ // This file is here to allow bodyless functions with go:linkname for Go 1.11
+ // and earlier (see https://golang.org/issue/23311).
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/eventlog.go b/go-controller/vendor/golang.org/x/sys/windows/eventlog.go
+index 2cd60645e..6c366955d 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/eventlog.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/eventlog.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/mksyscall.go b/go-controller/vendor/golang.org/x/sys/windows/mksyscall.go
+index 8563f79c5..dbcdb090c 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/mksyscall.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/mksyscall.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build generate
+-// +build generate
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/race.go b/go-controller/vendor/golang.org/x/sys/windows/race.go
+index 9196b089c..0f1bdc386 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/race.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/race.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows && race
+-// +build windows,race
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/race0.go b/go-controller/vendor/golang.org/x/sys/windows/race0.go
+index 7bae4817a..0c78da78b 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/race0.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/race0.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows && !race
+-// +build windows,!race
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/registry/key.go b/go-controller/vendor/golang.org/x/sys/windows/registry/key.go
+index 6c8d97b6a..fd8632444 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/registry/key.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/registry/key.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ // Package registry provides access to the Windows registry.
+ //
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/registry/mksyscall.go b/go-controller/vendor/golang.org/x/sys/windows/registry/mksyscall.go
+index ee74927d3..bbf86ccf0 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/registry/mksyscall.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/registry/mksyscall.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build generate
+-// +build generate
+ 
+ package registry
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/registry/syscall.go b/go-controller/vendor/golang.org/x/sys/windows/registry/syscall.go
+index 417335123..f533091c1 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/registry/syscall.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/registry/syscall.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ package registry
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/registry/value.go b/go-controller/vendor/golang.org/x/sys/windows/registry/value.go
+index 2789f6f18..74db26b94 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/registry/value.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/registry/value.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ package registry
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/service.go b/go-controller/vendor/golang.org/x/sys/windows/service.go
+index c44a1b963..a9dc6308d 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/service.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/service.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/str.go b/go-controller/vendor/golang.org/x/sys/windows/str.go
+index 4fc01434e..6a4f9ce6a 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/str.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/str.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ package windows
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/svc/security.go b/go-controller/vendor/golang.org/x/sys/windows/svc/security.go
+index 1c51006ea..6a1f3c627 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/svc/security.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/svc/security.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ package svc
+ 
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/svc/service.go b/go-controller/vendor/golang.org/x/sys/windows/svc/service.go
+index e9e47f0b4..c96932d96 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/svc/service.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/svc/service.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ // Package svc provides everything required to build Windows service.
+ package svc
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/syscall.go b/go-controller/vendor/golang.org/x/sys/windows/syscall.go
+index 8732cdb95..e85ed6b9c 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/syscall.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/syscall.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build windows
+-// +build windows
+ 
+ // Package windows contains an interface to the low-level operating system
+ // primitives. OS details vary depending on the underlying system, and
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/syscall_windows.go b/go-controller/vendor/golang.org/x/sys/windows/syscall_windows.go
+index 35cfc57ca..47dc57967 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/syscall_windows.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/syscall_windows.go
+@@ -155,6 +155,8 @@ func NewCallbackCDecl(fn interface{}) uintptr {
+ //sys	GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW
+ //sys	GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW
+ //sys	SetDefaultDllDirectories(directoryFlags uint32) (err error)
++//sys	AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory
++//sys	RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory
+ //sys	SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW
+ //sys	GetVersion() (ver uint32, err error)
+ //sys	FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW
+@@ -233,6 +235,7 @@ func NewCallbackCDecl(fn interface{}) uintptr {
+ //sys	CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock
+ //sys	DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock
+ //sys	getTickCount64() (ms uint64) = kernel32.GetTickCount64
++//sys   GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)
+ //sys	SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)
+ //sys	GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW
+ //sys	SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW
+@@ -969,7 +972,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) {
+ 	if n > 0 {
+ 		sl += int32(n) + 1
+ 	}
+-	if sa.raw.Path[0] == '@' {
++	if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {
++		// Check sl > 3 so we don't change unnamed socket behavior.
+ 		sa.raw.Path[0] = 0
+ 		// Don't count trailing NUL for abstract address.
+ 		sl--
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/types_windows.go b/go-controller/vendor/golang.org/x/sys/windows/types_windows.go
+index b88dc7c85..359780f6a 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/types_windows.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/types_windows.go
+@@ -1094,7 +1094,33 @@ const (
+ 
+ 	SOMAXCONN = 0x7fffffff
+ 
+-	TCP_NODELAY = 1
++	TCP_NODELAY                    = 1
++	TCP_EXPEDITED_1122             = 2
++	TCP_KEEPALIVE                  = 3
++	TCP_MAXSEG                     = 4
++	TCP_MAXRT                      = 5
++	TCP_STDURG                     = 6
++	TCP_NOURG                      = 7
++	TCP_ATMARK                     = 8
++	TCP_NOSYNRETRIES               = 9
++	TCP_TIMESTAMPS                 = 10
++	TCP_OFFLOAD_PREFERENCE         = 11
++	TCP_CONGESTION_ALGORITHM       = 12
++	TCP_DELAY_FIN_ACK              = 13
++	TCP_MAXRTMS                    = 14
++	TCP_FASTOPEN                   = 15
++	TCP_KEEPCNT                    = 16
++	TCP_KEEPIDLE                   = TCP_KEEPALIVE
++	TCP_KEEPINTVL                  = 17
++	TCP_FAIL_CONNECT_ON_ICMP_ERROR = 18
++	TCP_ICMP_ERROR_INFO            = 19
++
++	UDP_NOCHECKSUM              = 1
++	UDP_SEND_MSG_SIZE           = 2
++	UDP_RECV_MAX_COALESCED_SIZE = 3
++	UDP_CHECKSUM_COVERAGE       = 20
++
++	UDP_COALESCED_INFO = 3
+ 
+ 	SHUT_RD   = 0
+ 	SHUT_WR   = 1
+diff --git a/go-controller/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/go-controller/vendor/golang.org/x/sys/windows/zsyscall_windows.go
+index 8b1688de4..146a1f019 100644
+--- a/go-controller/vendor/golang.org/x/sys/windows/zsyscall_windows.go
++++ b/go-controller/vendor/golang.org/x/sys/windows/zsyscall_windows.go
+@@ -184,6 +184,7 @@ var (
+ 	procGetAdaptersInfo                                      = modiphlpapi.NewProc("GetAdaptersInfo")
+ 	procGetBestInterfaceEx                                   = modiphlpapi.NewProc("GetBestInterfaceEx")
+ 	procGetIfEntry                                           = modiphlpapi.NewProc("GetIfEntry")
++	procAddDllDirectory                                      = modkernel32.NewProc("AddDllDirectory")
+ 	procAssignProcessToJobObject                             = modkernel32.NewProc("AssignProcessToJobObject")
+ 	procCancelIo                                             = modkernel32.NewProc("CancelIo")
+ 	procCancelIoEx                                           = modkernel32.NewProc("CancelIoEx")
+@@ -253,6 +254,7 @@ var (
+ 	procGetFileAttributesW                                   = modkernel32.NewProc("GetFileAttributesW")
+ 	procGetFileInformationByHandle                           = modkernel32.NewProc("GetFileInformationByHandle")
+ 	procGetFileInformationByHandleEx                         = modkernel32.NewProc("GetFileInformationByHandleEx")
++	procGetFileTime                                          = modkernel32.NewProc("GetFileTime")
+ 	procGetFileType                                          = modkernel32.NewProc("GetFileType")
+ 	procGetFinalPathNameByHandleW                            = modkernel32.NewProc("GetFinalPathNameByHandleW")
+ 	procGetFullPathNameW                                     = modkernel32.NewProc("GetFullPathNameW")
+@@ -329,6 +331,7 @@ var (
+ 	procReadProcessMemory                                    = modkernel32.NewProc("ReadProcessMemory")
+ 	procReleaseMutex                                         = modkernel32.NewProc("ReleaseMutex")
+ 	procRemoveDirectoryW                                     = modkernel32.NewProc("RemoveDirectoryW")
++	procRemoveDllDirectory                                   = modkernel32.NewProc("RemoveDllDirectory")
+ 	procResetEvent                                           = modkernel32.NewProc("ResetEvent")
+ 	procResizePseudoConsole                                  = modkernel32.NewProc("ResizePseudoConsole")
+ 	procResumeThread                                         = modkernel32.NewProc("ResumeThread")
+@@ -1604,6 +1607,15 @@ func GetIfEntry(pIfRow *MibIfRow) (errcode error) {
+ 	return
+ }
+ 
++func AddDllDirectory(path *uint16) (cookie uintptr, err error) {
++	r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
++	cookie = uintptr(r0)
++	if cookie == 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
+ func AssignProcessToJobObject(job Handle, process Handle) (err error) {
+ 	r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0)
+ 	if r1 == 0 {
+@@ -2185,6 +2197,14 @@ func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte,
+ 	return
+ }
+ 
++func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {
++	r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)
++	if r1 == 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
+ func GetFileType(filehandle Handle) (n uint32, err error) {
+ 	r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0)
+ 	n = uint32(r0)
+@@ -2870,6 +2890,14 @@ func RemoveDirectory(path *uint16) (err error) {
+ 	return
+ }
+ 
++func RemoveDllDirectory(cookie uintptr) (err error) {
++	r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0)
++	if r1 == 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
+ func ResetEvent(event Handle) (err error) {
+ 	r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0)
+ 	if r1 == 0 {
+diff --git a/go-controller/vendor/golang.org/x/term/term_unix.go b/go-controller/vendor/golang.org/x/term/term_unix.go
+index 62c2b3f41..1ad0ddfe3 100644
+--- a/go-controller/vendor/golang.org/x/term/term_unix.go
++++ b/go-controller/vendor/golang.org/x/term/term_unix.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
+-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
+ 
+ package term
+ 
+diff --git a/go-controller/vendor/golang.org/x/term/term_unix_bsd.go b/go-controller/vendor/golang.org/x/term/term_unix_bsd.go
+index 853b3d698..9dbf54629 100644
+--- a/go-controller/vendor/golang.org/x/term/term_unix_bsd.go
++++ b/go-controller/vendor/golang.org/x/term/term_unix_bsd.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build darwin || dragonfly || freebsd || netbsd || openbsd
+-// +build darwin dragonfly freebsd netbsd openbsd
+ 
+ package term
+ 
+diff --git a/go-controller/vendor/golang.org/x/term/term_unix_other.go b/go-controller/vendor/golang.org/x/term/term_unix_other.go
+index 1e8955c93..1b36de799 100644
+--- a/go-controller/vendor/golang.org/x/term/term_unix_other.go
++++ b/go-controller/vendor/golang.org/x/term/term_unix_other.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build aix || linux || solaris || zos
+-// +build aix linux solaris zos
+ 
+ package term
+ 
+diff --git a/go-controller/vendor/golang.org/x/term/term_unsupported.go b/go-controller/vendor/golang.org/x/term/term_unsupported.go
+index f1df85065..3c409e588 100644
+--- a/go-controller/vendor/golang.org/x/term/term_unsupported.go
++++ b/go-controller/vendor/golang.org/x/term/term_unsupported.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9
+-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!zos,!windows,!solaris,!plan9
+ 
+ package term
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go b/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
+index 8a7392c4a..784bb8808 100644
+--- a/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build go1.10
+-// +build go1.10
+ 
+ package bidirule
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go b/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
+index bb0a92001..8e1e94395 100644
+--- a/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
+@@ -3,7 +3,6 @@
+ // license that can be found in the LICENSE file.
+ 
+ //go:build !go1.10
+-// +build !go1.10
+ 
+ package bidirule
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
+index 42fa8d72c..d2bd71181 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.10 && !go1.13
+-// +build go1.10,!go1.13
+ 
+ package bidi
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
+index 56a0e1ea2..f76bdca27 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.13 && !go1.14
+-// +build go1.13,!go1.14
+ 
+ package bidi
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go
+index baacf32b4..3aa2c3bdf 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.14 && !go1.16
+-// +build go1.14,!go1.16
+ 
+ package bidi
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go
+index ffadb7beb..a71375790 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.16 && !go1.21
+-// +build go1.16,!go1.21
+ 
+ package bidi
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
+index 92cce5802..f15746f7d 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.21
+-// +build go1.21
+ 
+ package bidi
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
+index f517fdb20..c164d3791 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build !go1.10
+-// +build !go1.10
+ 
+ package bidi
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
+index f5a078827..1af161c75 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.10 && !go1.13
+-// +build go1.10,!go1.13
+ 
+ package norm
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
+index cb7239c43..eb73ecc37 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.13 && !go1.14
+-// +build go1.13,!go1.14
+ 
+ package norm
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go
+index 11b273300..276cb8d8c 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.14 && !go1.16
+-// +build go1.14,!go1.16
+ 
+ package norm
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
+index f65785e8a..0cceffd73 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.16 && !go1.21
+-// +build go1.16,!go1.21
+ 
+ package norm
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
+index e1858b879..b0819e42d 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build go1.21
+-// +build go1.21
+ 
+ package norm
+ 
+diff --git a/go-controller/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/go-controller/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
+index 0175eae50..bf65457d9 100644
+--- a/go-controller/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
++++ b/go-controller/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
+@@ -1,7 +1,6 @@
+ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+ 
+ //go:build !go1.10
+-// +build !go1.10
+ 
+ package norm
+ 
+diff --git a/go-controller/vendor/k8s.io/client-go/informers/factory.go b/go-controller/vendor/k8s.io/client-go/informers/factory.go
+index 9fc86441a..7dd0ae635 100644
+--- a/go-controller/vendor/k8s.io/client-go/informers/factory.go
++++ b/go-controller/vendor/k8s.io/client-go/informers/factory.go
+@@ -60,7 +60,6 @@ type sharedInformerFactory struct {
+ 	lock             sync.Mutex
+ 	defaultResync    time.Duration
+ 	customResync     map[reflect.Type]time.Duration
+-	transform        cache.TransformFunc
+ 
+ 	informers map[reflect.Type]cache.SharedIndexInformer
+ 	// startedInformers is used for tracking which informers have been started.
+@@ -99,14 +98,6 @@ func WithNamespace(namespace string) SharedInformerOption {
+ 	}
+ }
+ 
+-// WithTransform sets a transform on all informers.
+-func WithTransform(transform cache.TransformFunc) SharedInformerOption {
+-	return func(factory *sharedInformerFactory) *sharedInformerFactory {
+-		factory.transform = transform
+-		return factory
+-	}
+-}
+-
+ // NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces.
+ func NewSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration) SharedInformerFactory {
+ 	return NewSharedInformerFactoryWithOptions(client, defaultResync)
+@@ -211,7 +202,6 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal
+ 	}
+ 
+ 	informer = newFunc(f.client, resyncPeriod)
+-	informer.SetTransform(f.transform)
+ 	f.informers[informerType] = informer
+ 
+ 	return informer
+diff --git a/go-controller/vendor/modules.txt b/go-controller/vendor/modules.txt
+index c88f00fa8..a9683f0a0 100644
+--- a/go-controller/vendor/modules.txt
++++ b/go-controller/vendor/modules.txt
+@@ -385,8 +385,8 @@ go.opencensus.io/internal
+ go.opencensus.io/trace
+ go.opencensus.io/trace/internal
+ go.opencensus.io/trace/tracestate
+-# golang.org/x/crypto v0.14.0
+-## explicit; go 1.17
++# golang.org/x/crypto v0.17.0
++## explicit; go 1.18
+ golang.org/x/crypto/ed25519
+ # golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb
+ ## explicit; go 1.20
+@@ -420,19 +420,19 @@ golang.org/x/oauth2/internal
+ # golang.org/x/sync v0.2.0
+ ## explicit
+ golang.org/x/sync/errgroup
+-# golang.org/x/sys v0.13.0
+-## explicit; go 1.17
++# golang.org/x/sys v0.15.0
++## explicit; go 1.18
+ golang.org/x/sys/execabs
+ golang.org/x/sys/plan9
+ golang.org/x/sys/unix
+ golang.org/x/sys/windows
+ golang.org/x/sys/windows/registry
+ golang.org/x/sys/windows/svc
+-# golang.org/x/term v0.13.0
+-## explicit; go 1.17
++# golang.org/x/term v0.15.0
++## explicit; go 1.18
+ golang.org/x/term
+-# golang.org/x/text v0.13.0
+-## explicit; go 1.17
++# golang.org/x/text v0.14.0
++## explicit; go 1.18
+ golang.org/x/text/encoding
+ golang.org/x/text/encoding/charmap
+ golang.org/x/text/encoding/htmlindex
+-- 
+2.43.0
+
diff --git a/images/ovn/patches/ovn-kubernetes/0004-stop-creating-ovnkube-eps.patch b/images/ovn/patches/ovn-kubernetes/0004-stop-creating-ovnkube-eps.patch
new file mode 100644
index 0000000..60dd327
--- /dev/null
+++ b/images/ovn/patches/ovn-kubernetes/0004-stop-creating-ovnkube-eps.patch
@@ -0,0 +1,26 @@
+From 71b19667c04fd114e49d3fda957e26e7fa595675 Mon Sep 17 00:00:00 2001
+From: Mohammed Naser <mnaser@vexxhost.com>
+Date: Sun, 4 Feb 2024 14:15:49 -0500
+Subject: [PATCH] stop creating ovnkube eps
+
+---
+ dist/images/ovnkube.sh | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/dist/images/ovnkube.sh b/dist/images/ovnkube.sh
+index 1d3059cf8..069d36648 100755
+--- a/dist/images/ovnkube.sh
++++ b/dist/images/ovnkube.sh
+@@ -908,9 +908,6 @@ sb-ovsdb() {
+   }
+   ovn-sbctl --inactivity-probe=0 set-connection p${transport}:${ovn_sb_port}:$(bracketify ${ovn_db_host})
+ 
+-  # create the ovnkube-db endpoints
+-  wait_for_event attempts=10 check_ovnkube_db_ep ${ovn_db_host} ${ovn_nb_port}
+-  set_ovnkube_db_ep ${ovn_db_host}
+   if memory_trim_on_compaction_supported "sbdb"
+   then
+     # Enable SBDB memory trimming on DB compaction, Every 10mins DBs are compacted
+-- 
+2.43.0
+
diff --git a/images/placement/Earthfile b/images/placement/Earthfile
index 64d6afd..e843c08 100644
--- a/images/placement/Earthfile
+++ b/images/placement/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=placement
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=a361622d749d3b24aad638ec1b03a7d7124a87b3
@@ -14,5 +15,5 @@
   FROM ../openstack-service+image --RELEASE ${RELEASE} --PROJECT ${PROJECT}
   COPY +build/venv /var/lib/openstack
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/senlin/Earthfile b/images/senlin/Earthfile
index 7e67788..8decded 100644
--- a/images/senlin/Earthfile
+++ b/images/senlin/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=senlin
 ARG --global RELEASE=2023.2
 ARG --global PROJECT_REF=5382259276d6be6807634c58c7b69b03b57ad6f5
@@ -14,5 +15,5 @@
   FROM ../openstack-service+image --RELEASE ${RELEASE} --PROJECT ${PROJECT}
   COPY +build/venv /var/lib/openstack
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/staffeln/Earthfile b/images/staffeln/Earthfile
index 9be3407..2f60cc3 100644
--- a/images/staffeln/Earthfile
+++ b/images/staffeln/Earthfile
@@ -1,5 +1,6 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=staffeln
 ARG --global RELEASE=master
 ARG --global PROJECT_REF=v2.2.3
@@ -15,5 +16,5 @@
   FROM ../openstack-service+image --RELEASE ${RELEASE} --PROJECT ${PROJECT}
   COPY +build/venv /var/lib/openstack
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}
diff --git a/images/tempest/Earthfile b/images/tempest/Earthfile
index 61dd5df..2160336 100644
--- a/images/tempest/Earthfile
+++ b/images/tempest/Earthfile
@@ -1,21 +1,49 @@
 VERSION 0.7
 
+ARG --global REGISTRY=ghcr.io/vexxhost/atmosphere
 ARG --global PROJECT=tempest
 ARG --global RELEASE=master
 ARG --global PROJECT_REF=699749ec27897efe9bd7824664237c16c3339c03
 
+build.plugin:
+  ARG PLUGIN
+  FROM ../openstack-service+builder --RELEASE=${RELEASE}
+  DO ../openstack-service+GIT_CHECKOUT \
+    --PROJECT=${PLUGIN} \
+    --PROJECT_REF=${RELEASE}
+  SAVE ARTIFACT /src
+
+octavia-test-server:
+  FROM golang:1.18
+  COPY (+build.plugin/src --PLUGIN=octavia-tempest-plugin) /src
+  ENV GO111MODULE=off
+  ENV CGO_ENABLED=0
+  ENV GOOS=linux
+  RUN go build \
+    -a -ldflags '-s -w -extldflags -static' \
+    -o /build/test_server.bin \
+    /src/octavia_tempest_plugin/contrib/test_server/test_server.go
+  SAVE ARTIFACT /build/test_server.bin
+
 build:
   FROM ../openstack-service+builder --RELEASE=${RELEASE}
+  COPY (+build.plugin/src --PLUGIN=barbican-tempest-plugin) /barbican-tempest-plugin
+  COPY (+build.plugin/src --PLUGIN=cinder-tempest-plugin) /cinder-tempest-plugin
+  COPY (+build.plugin/src --PLUGIN=heat-tempest-plugin) /heat-tempest-plugin
+  COPY (+build.plugin/src --PLUGIN=keystone-tempest-plugin) /keystone-tempest-plugin
+  COPY (+build.plugin/src --PLUGIN=neutron-tempest-plugin) /neutron-tempest-plugin
+  COPY (+build.plugin/src --PLUGIN=octavia-tempest-plugin) /octavia-tempest-plugin
   DO ../openstack-service+BUILD_VENV \
     --PROJECT=${PROJECT} \
     --PROJECT_REF=${PROJECT_REF} \
-    --PIP_PACKAGES="git+https://github.com/openstack/barbican-tempest-plugin.git git+https://github.com/openstack/cinder-tempest-plugin.git git+https://github.com/openstack/heat-tempest-plugin.git git+https://github.com/openstack/keystone-tempest-plugin.git git+https://github.com/openstack/neutron-tempest-plugin.git git+https://github.com/openstack/octavia-tempest-plugin.git"
+    --PIP_PACKAGES="/barbican-tempest-plugin /cinder-tempest-plugin /heat-tempest-plugin /keystone-tempest-plugin /neutron-tempest-plugin /octavia-tempest-plugin junitxml"
 
 image:
   FROM ../openstack-service+image --RELEASE ${RELEASE} --PROJECT ${PROJECT}
+  COPY +octavia-test-server/test_server.bin /opt/octavia-tempest-plugin/test_server.bin
   COPY +build/venv /var/lib/openstack
   DO ../+APT_INSTALL \
-    --PACKAGES "iputils-ping"
+    --PACKAGES "iputils-ping openssh-client"
   SAVE IMAGE --push \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
-    ghcr.io/vexxhost/atmosphere/${PROJECT}:${PROJECT_REF}
+    ${REGISTRY}/${PROJECT}:${RELEASE} \
+    ${REGISTRY}/${PROJECT}:${PROJECT_REF}