Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kubectl-tree for openSUSE:Factory 
checked in at 2025-11-17 12:19:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubectl-tree (Old)
 and      /work/SRC/openSUSE:Factory/.kubectl-tree.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kubectl-tree"

Mon Nov 17 12:19:46 2025 rev:2 rq:1318157 version:0.4.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/kubectl-tree/kubectl-tree.changes        
2023-10-30 22:11:51.046574957 +0100
+++ /work/SRC/openSUSE:Factory/.kubectl-tree.new.2061/kubectl-tree.changes      
2025-11-17 12:25:25.230936847 +0100
@@ -1,0 +2,50 @@
+Mon Nov 17 07:04:17 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.4.6:
+  * Fix namespace and CRD handling logic (vibe slop)
+  * Implement label selector for lists
+  * Use cli-runtime to parse resource/name structure
+
+-------------------------------------------------------------------
+Mon Nov 17 07:03:24 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.4.5:
+  * Add Linux arm64 platform support
+
+-------------------------------------------------------------------
+Mon Nov 17 06:57:10 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.4.4:
+  * potential fix for warnings printed
+  * feat: add --condition-types flag for custom condition types
+    (#102)
+  * chore(deps): bump actions/setup-go from 5 to 6 (#99)
+  * chore(deps): bump the kubernetes group with 3 updates
+  * chore(deps): bump github.com/spf13/cobra from 1.9.1 to 1.10.1
+  * chore(deps): bump github.com/spf13/pflag from 1.0.7 to 1.0.10
+  * chore(deps): bump the kubernetes group with 3 updates
+  * chore(deps): bump the kubernetes group with 3 updates
+  * chore(deps): bump the kubernetes group with 3 updates
+  * chore(deps): bump github.com/spf13/pflag from 1.0.6 to 1.0.7
+  * chore(deps): bump the kubernetes group with 3 updates
+  * chore(deps): bump the kubernetes group with 3 updates (#89)
+  * chore(deps): bump goreleaser/goreleaser-action from 1 to 6
+    (#84)
+  * chore(deps): bump actions/setup-go from 1 to 5 (#83)
+  * fix dependabot schema
+  * Move from renovate to dependabot
+  * chore(deps): update dependency go to 1.24 (#75)
+  * chore(deps): update rajatjindal/krew-release-bot action to
+    v0.0.47 (#72)
+  * fix(deps): update module github.com/spf13/pflag to v1.0.6 (#73)
+  * Add renovate.json (#71)
+  * change --rm-dist to --clean (#70)
+  * Skip forbidden resources as they are rarely required (#55)
+  * ignore discovery errors (#67)
+  * add support for showing kstatus (#66)
+  * Fix confusion with duplicate names (#65)
+  * Make color output configurable (#63)
+  * dependency updates, bump to go1.20
+  * disable printing warnings
+
+-------------------------------------------------------------------

Old:
----
  kubectl-tree-0.4.3.obscpio

New:
----
  kubectl-tree-0.4.6.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kubectl-tree.spec ++++++
--- /var/tmp/diff_new_pack.Iyq4ea/_old  2025-11-17 12:25:26.879006345 +0100
+++ /var/tmp/diff_new_pack.Iyq4ea/_new  2025-11-17 12:25:26.883006514 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package kubectl-tree
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,10 +16,8 @@
 #
 
 
-%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
-
 Name:           kubectl-tree
-Version:        0.4.3
+Version:        0.4.6
 Release:        0
 Summary:        Kubectl plugin to browse Kubernetes object hierarchies as a 
tree
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.Iyq4ea/_old  2025-11-17 12:25:26.935008707 +0100
+++ /var/tmp/diff_new_pack.Iyq4ea/_new  2025-11-17 12:25:26.939008875 +0100
@@ -1,21 +1,23 @@
 <services>
-  <service name="obs_scm" mode="disabled">
+  <service name="obs_scm" mode="manual">
     <param name="url">https://github.com/ahmetb/kubectl-tree</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.4.3</param>
+    <param name="revision">v0.4.6</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>
-  <service name="set_version" mode="disabled">
+  <service name="set_version" mode="manual">
+  </service>
+  <service name="go_modules" mode="manual">
+  </service>
+  <!-- services below are running at buildtime -->
+  <service name="tar" mode="buildtime">
   </service>
-  <service name="tar" mode="buildtime"/>
   <service name="recompress" mode="buildtime">
     <param name="file">*.tar</param>
     <param name="compression">gz</param>
   </service>
-  <service name="go_modules" mode="disabled">
-  </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Iyq4ea/_old  2025-11-17 12:25:26.975010394 +0100
+++ /var/tmp/diff_new_pack.Iyq4ea/_new  2025-11-17 12:25:26.979010562 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/ahmetb/kubectl-tree</param>
-              <param 
name="changesrevision">3bfade5a143ad329cec21ad3c074f45500aa533a</param></service></servicedata>
+              <param 
name="changesrevision">ee7f2ca11e271c8ece1a8426bce4119d1ff38bac</param></service></servicedata>
 (No newline at EOF)
 

++++++ kubectl-tree-0.4.3.obscpio -> kubectl-tree-0.4.6.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/.github/workflows/ci.yml 
new/kubectl-tree-0.4.6/.github/workflows/ci.yml
--- old/kubectl-tree-0.4.3/.github/workflows/ci.yml     2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/.github/workflows/ci.yml     1970-01-01 
01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-name: ci
-on:
-  push:
-  pull_request:
-jobs:
-  goreleaser:
-    runs-on: ubuntu-latest
-    steps:
-    - name: Checkout
-      uses: actions/checkout@master
-    - name: Setup Go
-      uses: actions/setup-go@v1
-      with:
-        go-version: 1.18
-    - name: GoReleaser
-      uses: goreleaser/goreleaser-action@v1
-      with:
-        version: latest
-        args: release --snapshot --rm-dist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/.github/workflows/release.yml 
new/kubectl-tree-0.4.6/.github/workflows/release.yml
--- old/kubectl-tree-0.4.3/.github/workflows/release.yml        2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/.github/workflows/release.yml        1970-01-01 
01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-name: release
-on:
-  push:
-    tags:
-    - 'v*.*.*'
-jobs:
-  goreleaser:
-    runs-on: ubuntu-latest
-    steps:
-    - name: Checkout
-      uses: actions/checkout@master
-    - name: Setup Go
-      uses: actions/setup-go@v1
-      with:
-        go-version: 1.18
-    - name: GoReleaser
-      uses: goreleaser/goreleaser-action@v1
-      with:
-        version: latest
-        args: release --rm-dist
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-    - name: Update new version in krew-index
-      uses: rajatjindal/[email protected]
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/.gitignore 
new/kubectl-tree-0.4.6/.gitignore
--- old/kubectl-tree-0.4.3/.gitignore   2022-10-25 19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/.gitignore   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-dist/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/.goreleaser.yml 
new/kubectl-tree-0.4.6/.goreleaser.yml
--- old/kubectl-tree-0.4.3/.goreleaser.yml      2022-10-25 19:18:57.000000000 
+0200
+++ new/kubectl-tree-0.4.6/.goreleaser.yml      2025-11-15 23:25:26.000000000 
+0100
@@ -1,3 +1,4 @@
+version: 2
 before:
   hooks:
   - go mod download
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/.krew.yaml 
new/kubectl-tree-0.4.6/.krew.yaml
--- old/kubectl-tree-0.4.3/.krew.yaml   2022-10-25 19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/.krew.yaml   2025-11-15 23:25:26.000000000 +0100
@@ -35,6 +35,12 @@
     bin: kubectl-tree
   - selector:
       matchLabels:
+        os: linux
+        arch: arm64
+    {{addURIAndSha 
"https://github.com/ahmetb/kubectl-tree/releases/download/{{ .TagName 
}}/kubectl-tree_{{ .TagName }}_linux_arm64.tar.gz" .TagName }}
+    bin: kubectl-tree
+  - selector:
+      matchLabels:
         os: windows
         arch: amd64
     {{addURIAndSha 
"https://github.com/ahmetb/kubectl-tree/releases/download/{{ .TagName 
}}/kubectl-tree_{{ .TagName }}_windows_amd64.tar.gz" .TagName }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/README.md 
new/kubectl-tree-0.4.6/README.md
--- old/kubectl-tree-0.4.3/README.md    2022-10-25 19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/README.md    2025-11-15 23:25:26.000000000 +0100
@@ -9,7 +9,7 @@
 A kubectl plugin to explore ownership relationships between Kubernetes objects
 through `ownersReferences` on the objects.
 
-The [`kubectl lineage`](https://github.com/tohjustin/kube-lineage) plugin is 
very similar to `kubectl tree`, but it 
+The [`kubectl lineage`](https://github.com/tohjustin/kube-lineage) plugin is 
very similar to `kubectl tree`, but it
 
[understands](https://github.com/tohjustin/kube-lineage#supported-relationships)
 logical relationships between some API objects without needing ownerReferences.
 
@@ -39,8 +39,16 @@
 By default, the plugin will only search "namespaced" objects in the same
 namespace as the specified object.
 
-You can use the `-A` or `--all-namespaces` flag to search namespaced and
-non-namespaced objects in all namespaces.
+- `-A`, `--all-namespaces`: Search namespaced and non-namespaced objects in 
all namespaces.
+
+- `-l`, `--selector`: Selector (label query) to filter on. Supports equality 
(`=`, `==`, `!=`), set-based (`in`, `notin`), and existence operators. Examples:
+  - `-l key1=value1,key2=value2` (equality)
+  - `-l "env in (prod,staging)"` (set-based)
+  - `-l "tier=frontend,env!=test"` (mixed)
+
+  This helps reduce workload and data volume when working with large clusters.
+
+- `--condition-types`: Comma-separated list of condition types to check 
(default: Ready). Example: `Ready,Processed,Scheduled`.
 
 ## Author
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/apioverrides.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/apioverrides.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/apioverrides.go     2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/apioverrides.go     1970-01-01 
01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-package main
-
-import "strings"
-
-// overrideType hardcodes lookup overrides for certain service types
-func overrideType(kind string, v *resourceMap) (apiResource, bool) {
-       kind = strings.ToLower(kind)
-
-       switch kind {
-       case "svc", "service", "services": // Knative also registers "Service", 
prefer v1.Service
-               out := v.lookup("service.v1.")
-               if len(out) != 0 {
-                       return out[0], true
-               }
-
-       case "deploy", "deployment", "deployments": // most clusters will have 
Deployment in apps/v1 and extensions/v1beta1, extensions/v1/beta2
-               out := v.lookup("deployment.v1.apps")
-               if len(out) != 0 {
-                       return out[0], true
-               }
-               out = v.lookup("deployment.v1beta1.extensions")
-               if len(out) != 0 {
-                       return out[0], true
-               }
-       }
-       return apiResource{}, false
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/apis.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/apis.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/apis.go     2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/apis.go     2025-11-15 
23:25:26.000000000 +0100
@@ -46,7 +46,7 @@
        start := time.Now()
        resList, err := client.ServerPreferredResources()
        if err != nil {
-               return nil, fmt.Errorf("failed to fetch api groups from 
kubernetes: %w", err)
+               klog.V(1).Infof("failed to fetch api groups from kubernetes: 
%v\n", err)
        }
        klog.V(2).Infof("queried api discovery in %v", time.Since(start))
        klog.V(3).Infof("found %d items (groups) in server-preferred 
APIResourceList", len(resList))
@@ -100,9 +100,16 @@
                // TODO(ahmetb): sometimes SingularName is empty (e.g. 
Deployment), use lowercase Kind as fallback - investigate why
                singularName = strings.ToLower(a.Kind)
        }
+       names := []string{singularName}
+
        pluralName := a.Name
+       if singularName != pluralName {
+               names = append(names, pluralName)
+       }
+
        shortNames := a.ShortNames
-       names := append([]string{singularName, pluralName}, shortNames...)
+       names = append(names, shortNames...)
+
        for _, n := range names {
                fmtBare := n                                                    
            // e.g. deployment
                fmtWithGroup := strings.Join([]string{n, gv.Group}, ".")        
            // e.g. deployment.apps
@@ -114,19 +121,3 @@
        return out
 }
 
-func figureOutKindName(args []string) (string, string, error) {
-       if l := len(args); l == 0 || l > 2 {
-               return "", "", fmt.Errorf("accepts between 1 and 2 arg(s), 
received %d", l)
-       }
-       if len(args) == 2 {
-               return args[0], args[1], nil
-       }
-       seg := strings.Split(args[0], "/")
-       if len(seg) < 2 {
-               return "", "", fmt.Errorf("specify the kubernetes object in 
KIND NAME or KIND/NAME form")
-       }
-       if len(seg) > 2 {
-               return "", "", fmt.Errorf("arguments in KIND/NAME form may not 
have more than one slash")
-       }
-       return seg[0], seg[1], nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/query.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/query.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/query.go    2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/query.go    2025-11-15 
23:25:26.000000000 +0100
@@ -2,10 +2,12 @@
 
 import (
        "context"
+       stderrors "errors"
        "fmt"
        "sync"
        "time"
 
+       "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
        "k8s.io/client-go/dynamic"
@@ -13,7 +15,7 @@
 )
 
 // getAllResources finds all API objects in specified API resources in all 
namespaces (or non-namespaced).
-func getAllResources(client dynamic.Interface, apis []apiResource, allNs bool) 
([]unstructured.Unstructured, error) {
+func getAllResources(client dynamic.Interface, apis []apiResource, allNs bool, 
labelSelector string) ([]unstructured.Unstructured, error) {
        var mu sync.Mutex
        var wg sync.WaitGroup
        var out []unstructured.Unstructured
@@ -31,10 +33,16 @@
                go func(a apiResource) {
                        defer wg.Done()
                        klog.V(4).Infof("[query api] start: %s", 
a.GroupVersionResource())
-                       v, err := queryAPI(client, a, allNs)
+                       v, err := queryAPI(client, a, allNs, labelSelector)
                        if err != nil {
-                               klog.V(4).Infof("[query api] error querying: 
%s, error=%v", a.GroupVersionResource(), err)
-                               errResult = err
+                               if errors.IsForbidden(err) {
+                                       // should not fail the overall process, 
but print an info message indicating the permission issue
+                                       klog.V(4).Infof("[query api] skipping 
forbidden resource: %s", a.GroupVersionResource())
+                                       klog.Infof("cannot query %s 
(forbidden), omitting from the tree", a.GroupVersionResource().GroupResource())
+                               } else {
+                                       klog.V(4).Infof("[query api] error 
querying: %s, error=%v", a.GroupVersionResource(), err)
+                                       errResult = stderrors.Join(errResult, 
fmt.Errorf("failed to query the %s resources: %w", a.GroupVersionResource(), 
err))
+                               }
                                return
                        }
                        mu.Lock()
@@ -51,7 +59,7 @@
        return out, errResult
 }
 
-func queryAPI(client dynamic.Interface, api apiResource, allNs bool) 
([]unstructured.Unstructured, error) {
+func queryAPI(client dynamic.Interface, api apiResource, allNs bool, 
labelSelector string) ([]unstructured.Unstructured, error) {
        var out []unstructured.Unstructured
 
        var next string
@@ -68,10 +76,14 @@
                } else {
                        intf = nintf
                }
-               resp, err := intf.List(context.TODO(), metav1.ListOptions{
+               listOptions := metav1.ListOptions{
                        Limit:    250,
                        Continue: next,
-               })
+               }
+               if labelSelector != "" {
+                       listOptions.LabelSelector = labelSelector
+               }
+               resp, err := intf.List(context.TODO(), listOptions)
                if err != nil {
                        return nil, fmt.Errorf("listing resources failed (%s): 
%w", api.GroupVersionResource(), err)
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/rootcmd.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/rootcmd.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/rootcmd.go  2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/rootcmd.go  2025-11-15 
23:25:26.000000000 +0100
@@ -5,7 +5,7 @@
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
-    http://www.apache.org/licenses/LICENSE-2.0
+       http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
@@ -20,22 +20,33 @@
        "flag"
        "fmt"
        "os"
-       "strings"
 
+       "github.com/fatih/color"
+       "github.com/pkg/errors"
        "github.com/spf13/cobra"
        "github.com/spf13/pflag"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/cli-runtime/pkg/genericclioptions"
+       "k8s.io/cli-runtime/pkg/resource"
+       "k8s.io/client-go/discovery"
        "k8s.io/client-go/dynamic"
        _ "k8s.io/client-go/plugin/pkg/client/auth" // combined authprovider 
import
+       "k8s.io/client-go/rest"
        "k8s.io/klog"
+       "k8s.io/utils/ptr"
 )
 
 const (
-       allNamespacesFlag = "all-namespaces"
+       allNamespacesFlag  = "all-namespaces"
+       colorFlag          = "color"
+       conditionTypesFlag = "condition-types"
+       selectorFlag       = "selector"
 )
 
-var cf *genericclioptions.ConfigFlags
+var (
+       cf             *genericclioptions.ConfigFlags
+       conditionTypes []string
+)
 
 // This variable is populated by goreleaser
 var version string
@@ -63,25 +74,47 @@
 }
 
 func run(command *cobra.Command, args []string) error {
-
        allNs, err := command.Flags().GetBool(allNamespacesFlag)
        if err != nil {
                allNs = false
        }
 
+       colorArg, err := command.Flags().GetString(colorFlag)
+       if err != nil {
+               return err
+       }
+       if colorArg == "always" {
+               color.NoColor = false
+       } else if colorArg == "never" {
+               color.NoColor = true
+       } else if colorArg != "auto" {
+               return errors.Errorf("invalid value for --%s", colorFlag)
+       }
+
+       conditionTypes, err = command.Flags().GetStringSlice(conditionTypesFlag)
+       if err != nil {
+               return err
+       }
+
+       labelSelector, err := command.Flags().GetString(selectorFlag)
+       if err != nil {
+               return err
+       }
+
        restConfig, err := cf.ToRESTConfig()
        if err != nil {
                return err
        }
+       restConfig.WarningHandler = rest.NoWarnings{}
        restConfig.QPS = 1000
        restConfig.Burst = 1000
        dyn, err := dynamic.NewForConfig(restConfig)
        if err != nil {
                return fmt.Errorf("failed to construct dynamic client: %w", err)
        }
-       dc, err := cf.ToDiscoveryClient()
+       dc, err := discovery.NewDiscoveryClientForConfig(restConfig)
        if err != nil {
-               return err
+               return fmt.Errorf("failed to construct discovery client: %w", 
err)
        }
 
        apis, err := findAPIs(dc)
@@ -90,30 +123,54 @@
        }
        klog.V(3).Info("completed querying APIs list")
 
-       kind, name, err := figureOutKindName(args)
-       if err != nil {
-               return err
-       }
-       klog.V(3).Infof("parsed kind=%v name=%v", kind, name)
-
-       var api apiResource
-       if k, ok := overrideType(kind, apis); ok {
-               klog.V(2).Infof("kind=%s override found: %s", kind, 
k.GroupVersionResource())
-               api = k
-       } else {
-               apiResults := apis.lookup(kind)
-               klog.V(5).Infof("kind matches=%v", apiResults)
-               if len(apiResults) == 0 {
-                       return fmt.Errorf("could not find api kind %q", kind)
-               } else if len(apiResults) > 1 {
-                       names := make([]string, 0, len(apiResults))
-                       for _, a := range apiResults {
-                               names = append(names, fullAPIName(a))
-                       }
-                       return fmt.Errorf("ambiguous kind %q. use one of these 
as the KIND disambiguate: [%s]", kind,
-                               strings.Join(names, ", "))
-               }
-               api = apiResults[0]
+       // Use resource.Builder to resolve resource kind and name 
(kubectl-compatible)
+       clientCfg := cf.ToRawKubeConfigLoader()
+       kubeconfigNamespace, _, err := clientCfg.Namespace()
+       if err != nil {
+               return fmt.Errorf("failed to determine namespace from 
kubeconfig: %w", err)
+       }
+
+       rb := resource.NewBuilder(cf)
+
+       namespace := ptr.Deref(cf.Namespace, "")
+       if namespace != "" {
+               rb = rb.NamespaceParam(namespace)
+       } else if kubeconfigNamespace != "" {
+               rb = rb.NamespaceParam(kubeconfigNamespace)
+       }
+       result := rb.
+               Unstructured().
+               AllNamespaces(allNs).
+               ResourceTypeOrNameArgs(true, args...).
+               Latest().
+               Flatten().
+               ContinueOnError().
+               Do()
+
+       infos, err := result.Infos()
+       if err != nil {
+               return fmt.Errorf("failed to resolve resource: %w", err)
+       }
+       if len(infos) == 0 {
+               return fmt.Errorf("no resources found")
+       }
+       if len(infos) > 1 {
+               return fmt.Errorf("multiple resources found, specify a single 
resource")
+       }
+       info := infos[0]
+       gvr := info.Mapping.Resource
+       name := info.Name
+       klog.V(3).Infof("resolved resource: gvr=%v name=%v", gvr, name)
+
+       // Convert GVR to apiResource for compatibility with existing code
+       // Check if resource is namespaced by comparing scope name
+       isNamespaced := info.Mapping.Scope.Name() == "namespace"
+       api := apiResource{
+               r: metav1.APIResource{
+                       Name:       gvr.Resource,
+                       Namespaced: isNamespaced,
+               },
+               gv: gvr.GroupVersion(),
        }
 
        ns := getNamespace()
@@ -121,19 +178,19 @@
 
        var ri dynamic.ResourceInterface
        if api.r.Namespaced {
-               ri = dyn.Resource(api.GroupVersionResource()).Namespace(ns)
+               ri = dyn.Resource(gvr).Namespace(ns)
        } else {
-               ri = dyn.Resource(api.GroupVersionResource())
+               ri = dyn.Resource(gvr)
        }
        obj, err := ri.Get(context.TODO(), name, metav1.GetOptions{})
        if err != nil {
-               return fmt.Errorf("failed to get %s/%s: %w", kind, name, err)
+               return fmt.Errorf("failed to get %s/%s: %w", gvr.Resource, 
name, err)
        }
 
        klog.V(5).Infof("target parent object: %#v", obj)
 
        klog.V(2).Infof("querying all api objects")
-       apiObjects, err := getAllResources(dyn, apis.resources(), allNs)
+       apiObjects, err := getAllResources(dyn, apis.resources(), allNs, 
labelSelector)
        if err != nil {
                return fmt.Errorf("error while querying api objects: %w", err)
        }
@@ -144,7 +201,7 @@
                fmt.Println("No resources are owned by this object through 
ownerReferences.")
                return nil
        }
-       treeView(os.Stderr, objs, *obj)
+       treeView(color.Output, objs, *obj, conditionTypes)
        klog.V(2).Infof("done printing tree view")
        return nil
 }
@@ -163,6 +220,9 @@
        cf = genericclioptions.NewConfigFlags(true)
 
        rootCmd.Flags().BoolP(allNamespacesFlag, "A", false, "query all objects 
in all API groups, both namespaced and non-namespaced")
+       rootCmd.Flags().StringP(colorFlag, "c", "auto", "Enable or disable 
color output. This can be 'always', 'never', or 'auto' (default = use color 
only if using tty). The flag is overridden by the NO_COLOR env variable if 
set.")
+       rootCmd.Flags().StringSlice(conditionTypesFlag, []string{"Ready"}, 
"Comma-separated list of condition types to check (default: Ready). Example: 
Ready,Processed,Scheduled")
+       rootCmd.Flags().StringP(selectorFlag, "l", "", "Selector (label query) 
to filter on, supports '=', '==', and '!='. (e.g. -l key1=value1,key2=value2)")
 
        cf.AddFlags(rootCmd.Flags())
        if err := flag.Set("logtostderr", "true"); err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/status.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/status.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/status.go   2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/status.go   2025-11-15 
23:25:26.000000000 +0100
@@ -5,45 +5,53 @@
 
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
        "k8s.io/klog"
+       "sigs.k8s.io/cli-utils/pkg/kstatus/status"
 )
 
 type ReadyStatus string // True False Unknown or ""
 type Reason string
 
-func extractStatus(obj unstructured.Unstructured) (ReadyStatus, Reason) {
+func extractStatus(obj unstructured.Unstructured, conditionTypes []string) 
(ReadyStatus, Reason, status.Status) {
        jsonVal, _ := json.Marshal(obj.Object["status"])
        klog.V(6).Infof("status for object=%s/%s: %s", obj.GetKind(), 
obj.GetName(), string(jsonVal))
+       result, err := status.Compute(&obj)
+       if err != nil {
+               return "", "", ""
+       }
        statusF, ok := obj.Object["status"]
        if !ok {
-               return "", ""
+               return "", "", ""
        }
        statusV, ok := statusF.(map[string]interface{})
        if !ok {
-               return "", ""
+               return "", "", ""
        }
        conditionsF, ok := statusV["conditions"]
        if !ok {
-               return "", ""
+               return "", "", ""
        }
        conditionsV, ok := conditionsF.([]interface{})
        if !ok {
-               return "", ""
+               return "", "", ""
        }
 
-       for _, cond := range conditionsV {
-               condM, ok := cond.(map[string]interface{})
-               if !ok {
-                       return "", ""
-               }
-               condType, ok := condM["type"].(string)
-               if !ok {
-                       return "", ""
-               }
-               if condType == "Ready" {
-                       condStatus, _ := condM["status"].(string)
-                       condReason, _ := condM["reason"].(string)
-                       return ReadyStatus(condStatus), Reason(condReason)
+       // Check each requested condition type in order
+       for _, targetCondType := range conditionTypes {
+               for _, cond := range conditionsV {
+                       condM, ok := cond.(map[string]interface{})
+                       if !ok {
+                               continue
+                       }
+                       condType, ok := condM["type"].(string)
+                       if !ok {
+                               continue
+                       }
+                       if condType == targetCondType {
+                               condStatus, _ := condM["status"].(string)
+                               condReason, _ := condM["reason"].(string)
+                               return ReadyStatus(condStatus), 
Reason(condReason), status.Status(result.Status.String())
+                       }
                }
        }
-       return "", ""
+       return "", "", ""
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/status_test.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/status_test.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/status_test.go      1970-01-01 
01:00:00.000000000 +0100
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/status_test.go      2025-11-15 
23:25:26.000000000 +0100
@@ -0,0 +1,120 @@
+package main
+
+import (
+       "testing"
+
+       "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
+)
+
+func TestExtractStatusWithMultipleConditionTypes(t *testing.T) {
+       tests := []struct {
+               name           string
+               obj            unstructured.Unstructured
+               conditionTypes []string
+               wantReady      ReadyStatus
+               wantReason     Reason
+       }{
+               {
+                       name: "finds Ready condition",
+                       obj: unstructured.Unstructured{
+                               Object: map[string]interface{}{
+                                       "status": map[string]interface{}{
+                                               "conditions": []interface{}{
+                                                       map[string]interface{}{
+                                                               "type":   
"Ready",
+                                                               "status": 
"True",
+                                                               "reason": 
"AllGood",
+                                                       },
+                                               },
+                                       },
+                               },
+                       },
+                       conditionTypes: []string{"Ready"},
+                       wantReady:      "True",
+                       wantReason:     "AllGood",
+               },
+               {
+                       name: "finds Processed condition",
+                       obj: unstructured.Unstructured{
+                               Object: map[string]interface{}{
+                                       "status": map[string]interface{}{
+                                               "conditions": []interface{}{
+                                                       map[string]interface{}{
+                                                               "type":   
"Processed",
+                                                               "status": 
"True",
+                                                               "reason": 
"ProcessingComplete",
+                                                       },
+                                               },
+                                       },
+                               },
+                       },
+                       conditionTypes: []string{"Processed"},
+                       wantReady:      "True",
+                       wantReason:     "ProcessingComplete",
+               },
+               {
+                       name: "finds first matching condition from multiple 
types",
+                       obj: unstructured.Unstructured{
+                               Object: map[string]interface{}{
+                                       "status": map[string]interface{}{
+                                               "conditions": []interface{}{
+                                                       map[string]interface{}{
+                                                               "type":   
"Scheduled",
+                                                               "status": 
"True",
+                                                               "reason": 
"ScheduledOK",
+                                                       },
+                                                       map[string]interface{}{
+                                                               "type":   
"Processed",
+                                                               "status": 
"False",
+                                                               "reason": 
"ProcessingFailed",
+                                                       },
+                                               },
+                                       },
+                               },
+                       },
+                       conditionTypes: []string{"Ready", "Processed", 
"Scheduled"},
+                       wantReady:      "False",
+                       wantReason:     "ProcessingFailed",
+               },
+               {
+                       name: "returns empty when condition type not found",
+                       obj: unstructured.Unstructured{
+                               Object: map[string]interface{}{
+                                       "status": map[string]interface{}{
+                                               "conditions": []interface{}{
+                                                       map[string]interface{}{
+                                                               "type":   
"Ready",
+                                                               "status": 
"True",
+                                                               "reason": 
"AllGood",
+                                                       },
+                                               },
+                                       },
+                               },
+                       },
+                       conditionTypes: []string{"NonExistent"},
+                       wantReady:      "",
+                       wantReason:     "",
+               },
+               {
+                       name: "handles object without status",
+                       obj: unstructured.Unstructured{
+                               Object: map[string]interface{}{},
+                       },
+                       conditionTypes: []string{"Ready"},
+                       wantReady:      "",
+                       wantReason:     "",
+               },
+       }
+
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       gotReady, gotReason, _ := extractStatus(tt.obj, 
tt.conditionTypes)
+                       if gotReady != tt.wantReady {
+                               t.Errorf("extractStatus() gotReady = %v, want 
%v", gotReady, tt.wantReady)
+                       }
+                       if gotReason != tt.wantReason {
+                               t.Errorf("extractStatus() gotReason = %v, want 
%v", gotReason, tt.wantReason)
+                       }
+               })
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/cmd/kubectl-tree/tree.go 
new/kubectl-tree-0.4.6/cmd/kubectl-tree/tree.go
--- old/kubectl-tree-0.4.3/cmd/kubectl-tree/tree.go     2022-10-25 
19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/cmd/kubectl-tree/tree.go     2025-11-15 
23:25:26.000000000 +0100
@@ -10,6 +10,7 @@
        "github.com/gosuri/uitable"
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
        "k8s.io/apimachinery/pkg/util/duration"
+       "sigs.k8s.io/cli-utils/pkg/kstatus/status"
 )
 
 const (
@@ -20,22 +21,23 @@
 )
 
 var (
-       gray  = color.New(color.FgHiBlack)
-       red   = color.New(color.FgRed)
-       green = color.New(color.FgGreen)
+       gray   = color.New(color.FgHiBlack)
+       red    = color.New(color.FgRed)
+       yellow = color.New(color.FgYellow)
+       green  = color.New(color.FgGreen)
 )
 
 // treeView prints object hierarchy to out stream.
-func treeView(out io.Writer, objs objectDirectory, obj 
unstructured.Unstructured) {
+func treeView(out io.Writer, objs objectDirectory, obj 
unstructured.Unstructured, conditionTypes []string) {
        tbl := uitable.New()
        tbl.Separator = "  "
-       tbl.AddRow("NAMESPACE", "NAME", "READY", "REASON", "AGE")
-       treeViewInner("", tbl, objs, obj)
-       fmt.Fprintln(color.Output, tbl)
+       tbl.AddRow("NAMESPACE", "NAME", "READY", "REASON", "STATUS", "AGE")
+       treeViewInner("", tbl, objs, obj, conditionTypes)
+       fmt.Fprintln(out, tbl)
 }
 
-func treeViewInner(prefix string, tbl *uitable.Table, objs objectDirectory, 
obj unstructured.Unstructured) {
-       ready, reason := extractStatus(obj)
+func treeViewInner(prefix string, tbl *uitable.Table, objs objectDirectory, 
obj unstructured.Unstructured, conditionTypes []string) {
+       ready, reason, kstatus := extractStatus(obj, conditionTypes)
 
        var readyColor *color.Color
        switch ready {
@@ -50,6 +52,21 @@
                ready = "-"
        }
 
+       var statusColor *color.Color
+       switch kstatus {
+       case status.CurrentStatus:
+               statusColor = green
+       case status.InProgressStatus:
+               statusColor = yellow
+       case status.FailedStatus, status.TerminatingStatus:
+               statusColor = red
+       default:
+               statusColor = gray
+       }
+       if kstatus == "" {
+               kstatus = "-"
+       }
+
        c := obj.GetCreationTimestamp()
        age := duration.HumanDuration(time.Since(c.Time))
        if c.IsZero() {
@@ -62,6 +79,7 @@
                color.New(color.Bold).Sprint(obj.GetName())),
                readyColor.Sprint(ready),
                readyColor.Sprint(reason),
+               statusColor.Sprint(kstatus),
                age)
        chs := objs.ownedBy(obj.GetUID())
        for i, child := range chs {
@@ -72,7 +90,7 @@
                default:
                        p = prefix + firstElemPrefix
                }
-               treeViewInner(p, tbl, objs, child)
+               treeViewInner(p, tbl, objs, child, conditionTypes)
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/go.mod 
new/kubectl-tree-0.4.6/go.mod
--- old/kubectl-tree-0.4.3/go.mod       2022-10-25 19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/go.mod       2025-11-15 23:25:26.000000000 +0100
@@ -1,82 +1,74 @@
 module github.com/ahmetb/kubectl-tree
 
-go 1.18
+go 1.24.0
 
 require (
-       github.com/fatih/color v1.13.0
+       github.com/fatih/color v1.15.0
        github.com/gosuri/uitable v0.0.4
-       github.com/spf13/cobra v1.6.1
-       github.com/spf13/pflag v1.0.5
-       k8s.io/apimachinery v0.25.3
-       k8s.io/cli-runtime v0.25.3
-       k8s.io/client-go v0.25.3
+       github.com/pkg/errors v0.9.1
+       github.com/spf13/cobra v1.10.1
+       github.com/spf13/pflag v1.0.10
+       k8s.io/apimachinery v0.34.1
+       k8s.io/cli-runtime v0.34.1
+       k8s.io/client-go v0.34.1
        k8s.io/klog v1.0.0
+       sigs.k8s.io/cli-utils v0.35.0
 )
 
 require (
-       cloud.google.com/go/compute v1.10.0 // indirect
-       github.com/Azure/go-autorest v14.2.0+incompatible // indirect
-       github.com/Azure/go-autorest/autorest v0.11.28 // indirect
-       github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect
-       github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
-       github.com/Azure/go-autorest/logger v0.2.1 // indirect
-       github.com/Azure/go-autorest/tracing v0.6.0 // indirect
+       github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // 
indirect
+       github.com/blang/semver/v4 v4.0.0 // indirect
        github.com/davecgh/go-spew v1.1.1 // indirect
-       github.com/emicklei/go-restful/v3 v3.9.0 // indirect
-       github.com/evanphx/json-patch v5.6.0+incompatible // indirect
+       github.com/emicklei/go-restful/v3 v3.12.2 // indirect
+       github.com/fxamacker/cbor/v2 v2.9.0 // indirect
        github.com/go-errors/errors v1.4.2 // indirect
-       github.com/go-logr/logr v1.2.3 // indirect
-       github.com/go-openapi/jsonpointer v0.19.5 // indirect
-       github.com/go-openapi/jsonreference v0.20.0 // indirect
-       github.com/go-openapi/swag v0.22.3 // indirect
+       github.com/go-logr/logr v1.4.2 // indirect
+       github.com/go-openapi/jsonpointer v0.21.0 // indirect
+       github.com/go-openapi/jsonreference v0.20.2 // indirect
+       github.com/go-openapi/swag v0.23.0 // indirect
        github.com/gogo/protobuf v1.3.2 // indirect
-       github.com/golang-jwt/jwt/v4 v4.4.2 // indirect
-       github.com/golang/protobuf v1.5.2 // indirect
-       github.com/google/btree v1.1.2 // indirect
-       github.com/google/gnostic v0.6.9 // indirect
-       github.com/google/go-cmp v0.5.9 // indirect
-       github.com/google/gofuzz v1.2.0 // indirect
-       github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
-       github.com/google/uuid v1.3.0 // indirect
+       github.com/google/btree v1.1.3 // indirect
+       github.com/google/gnostic-models v0.7.0 // indirect
+       github.com/google/uuid v1.6.0 // indirect
        github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // 
indirect
-       github.com/imdario/mergo v0.3.13 // indirect
-       github.com/inconshreveable/mousetrap v1.0.1 // indirect
+       github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/josharian/intern v1.0.0 // indirect
        github.com/json-iterator/go v1.1.12 // indirect
        github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // 
indirect
        github.com/mailru/easyjson v0.7.7 // indirect
        github.com/mattn/go-colorable v0.1.13 // indirect
-       github.com/mattn/go-isatty v0.0.16 // indirect
-       github.com/mattn/go-runewidth v0.0.14 // indirect
+       github.com/mattn/go-isatty v0.0.17 // indirect
+       github.com/mattn/go-runewidth v0.0.15 // indirect
+       github.com/moby/term v0.5.0 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 
indirect
-       github.com/modern-go/reflect2 v1.0.2 // indirect
+       github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // 
indirect
        github.com/monochromegane/go-gitignore 
v0.0.0-20200626010858-205db1a8cc00 // indirect
        github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // 
indirect
        github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
-       github.com/pkg/errors v0.9.1 // indirect
-       github.com/rivo/uniseg v0.4.2 // indirect
-       github.com/stretchr/testify v1.8.1 // indirect
-       github.com/xlab/treeprint v1.1.0 // indirect
-       go.starlark.net v0.0.0-20221020143700-22309ac47eac // indirect
-       golang.org/x/crypto v0.1.0 // indirect
-       golang.org/x/net v0.1.0 // indirect
-       golang.org/x/oauth2 v0.1.0 // indirect
-       golang.org/x/sys v0.1.0 // indirect
-       golang.org/x/term v0.1.0 // indirect
-       golang.org/x/text v0.4.0 // indirect
-       golang.org/x/time v0.1.0 // indirect
-       google.golang.org/appengine v1.6.7 // indirect
-       google.golang.org/protobuf v1.28.1 // indirect
+       github.com/rivo/uniseg v0.2.0 // indirect
+       github.com/x448/float16 v0.8.4 // indirect
+       github.com/xlab/treeprint v1.2.0 // indirect
+       go.yaml.in/yaml/v2 v2.4.2 // indirect
+       go.yaml.in/yaml/v3 v3.0.4 // indirect
+       golang.org/x/net v0.38.0 // indirect
+       golang.org/x/oauth2 v0.27.0 // indirect
+       golang.org/x/sync v0.12.0 // indirect
+       golang.org/x/sys v0.31.0 // indirect
+       golang.org/x/term v0.30.0 // indirect
+       golang.org/x/text v0.23.0 // indirect
+       golang.org/x/time v0.9.0 // indirect
+       google.golang.org/protobuf v1.36.5 // indirect
+       gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
-       gopkg.in/yaml.v2 v2.4.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
-       k8s.io/api v0.25.3 // indirect
-       k8s.io/klog/v2 v2.80.1 // indirect
-       k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect
-       k8s.io/utils v0.0.0-20221012122500-cfd413dd9e85 // indirect
-       sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
-       sigs.k8s.io/kustomize/api v0.12.1 // indirect
-       sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
-       sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
-       sigs.k8s.io/yaml v1.3.0 // indirect
+       k8s.io/api v0.34.1 // indirect
+       k8s.io/klog/v2 v2.130.1 // indirect
+       k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
+       k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
+       sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
+       sigs.k8s.io/kustomize/api v0.20.1 // indirect
+       sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
+       sigs.k8s.io/randfill v1.0.0 // indirect
+       sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
+       sigs.k8s.io/yaml v1.6.0 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubectl-tree-0.4.3/go.sum 
new/kubectl-tree-0.4.6/go.sum
--- old/kubectl-tree-0.4.3/go.sum       2022-10-25 19:18:57.000000000 +0200
+++ new/kubectl-tree-0.4.6/go.sum       2025-11-15 23:25:26.000000000 +0100
@@ -1,351 +1,218 @@
-cloud.google.com/go v0.26.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go/compute v1.10.0 
h1:aoLIYaA1fX3ywihqpBk2APQKOo20nXsp1GEZQbx5Jk4=
-cloud.google.com/go/compute v1.10.0/go.mod 
h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
-github.com/Azure/go-autorest v14.2.0+incompatible 
h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
-github.com/Azure/go-autorest v14.2.0+incompatible/go.mod 
h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.28 
h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM=
-github.com/Azure/go-autorest/autorest v0.11.28/go.mod 
h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA=
-github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod 
h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ=
-github.com/Azure/go-autorest/autorest/adal v0.9.21 
h1:jjQnVFXPfekaqb8vIsv2G1lxshoW+oGv4MDlhRtnYZk=
-github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod 
h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U=
-github.com/Azure/go-autorest/autorest/date v0.3.0 
h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
-github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod 
h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod 
h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
-github.com/Azure/go-autorest/autorest/mocks v0.4.2 
h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
-github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod 
h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
-github.com/Azure/go-autorest/logger v0.2.1 
h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
-github.com/Azure/go-autorest/logger v0.2.1/go.mod 
h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.6.0 
h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
-github.com/Azure/go-autorest/tracing v0.6.0/go.mod 
h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
-github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/OneOfOne/xxhash v1.2.2/go.mod 
h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/antihax/optional v1.0.0/go.mod 
h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/buger/jsonparser v1.1.1/go.mod 
h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash v1.1.0/go.mod 
h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/chzyer/logex v1.1.10/go.mod 
h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
-github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod 
h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
-github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod 
h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod 
h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod 
h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 
h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod 
h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/blang/semver/v4 v4.0.0 
h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
+github.com/blang/semver/v4 v4.0.0/go.mod 
h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
+github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod 
h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
+github.com/creack/pty v1.1.9/go.mod 
h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
+github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod 
h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/emicklei/go-restful/v3 v3.9.0 
h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
-github.com/emicklei/go-restful/v3 v3.9.0/go.mod 
h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane 
v0.9.1-0.20191026205805-5f8ba28d4473/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod 
h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/go-control-plane 
v0.9.9-0.20201210154907-fd9021fe5dad/go.mod 
h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane 
v0.9.9-0.20210512163311-63b5d3c536b0/go.mod 
h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v5.6.0+incompatible 
h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
-github.com/evanphx/json-patch v5.6.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
-github.com/fatih/color v1.13.0/go.mod 
h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
-github.com/flowstack/go-jsonschema v0.1.1/go.mod 
h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0=
-github.com/ghodss/yaml v1.0.0/go.mod 
h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/emicklei/go-restful/v3 v3.12.2 
h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
+github.com/emicklei/go-restful/v3 v3.12.2/go.mod 
h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
+github.com/fatih/color v1.15.0/go.mod 
h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
+github.com/fxamacker/cbor/v2 v2.9.0 
h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
+github.com/fxamacker/cbor/v2 v2.9.0/go.mod 
h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
 github.com/go-errors/errors v1.4.2 
h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 github.com/go-errors/errors v1.4.2/go.mod 
h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 github.com/go-logr/logr v0.1.0/go.mod 
h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v1.2.0/go.mod 
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
-github.com/go-logr/logr v1.2.3/go.mod 
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-openapi/jsonpointer v0.19.3/go.mod 
h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonpointer v0.19.5 
h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
-github.com/go-openapi/jsonpointer v0.19.5/go.mod 
h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonreference v0.20.0 
h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA=
-github.com/go-openapi/jsonreference v0.20.0/go.mod 
h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
-github.com/go-openapi/swag v0.19.5/go.mod 
h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.22.3 
h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod 
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-openapi/jsonpointer v0.19.6/go.mod 
h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
+github.com/go-openapi/jsonpointer v0.21.0 
h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
+github.com/go-openapi/jsonpointer v0.21.0/go.mod 
h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
+github.com/go-openapi/jsonreference v0.20.2 
h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod 
h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
 github.com/go-openapi/swag v0.22.3/go.mod 
h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-openapi/swag v0.23.0 
h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
+github.com/go-openapi/swag v0.23.0/go.mod 
h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
+github.com/go-task/slim-sprig/v3 v3.0.0 
h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
+github.com/go-task/slim-sprig/v3 v3.0.0/go.mod 
h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-jwt/jwt/v4 v4.0.0/go.mod 
h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
-github.com/golang-jwt/jwt/v4 v4.2.0/go.mod 
h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
-github.com/golang-jwt/jwt/v4 v4.4.2 
h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs=
-github.com/golang-jwt/jwt/v4 v4.4.2/go.mod 
h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod 
h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/mock v1.1.1/go.mod 
h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod 
h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod 
h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod 
h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod 
h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod 
h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod 
h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod 
h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2/go.mod 
h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3/go.mod 
h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2 
h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
-github.com/golang/protobuf v1.5.2/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=
-github.com/google/btree v1.1.2/go.mod 
h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
-github.com/google/gnostic v0.6.9 
h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0=
-github.com/google/gnostic v0.6.9/go.mod 
h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E=
-github.com/google/go-cmp v0.2.0/go.mod 
h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.1/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
+github.com/google/btree v1.1.3/go.mod 
h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
+github.com/google/gnostic-models v0.7.0 
h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
+github.com/google/gnostic-models v0.7.0/go.mod 
h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
+github.com/google/go-cmp v0.7.0/go.mod 
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
 github.com/google/gofuzz v1.0.0/go.mod 
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
-github.com/google/gofuzz v1.2.0/go.mod 
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 
h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
-github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod 
h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
-github.com/google/uuid v1.1.2/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db 
h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
+github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod 
h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/gosuri/uitable v0.0.4 
h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY=
 github.com/gosuri/uitable v0.0.4/go.mod 
h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo=
 github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 
h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
 github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod 
h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
-github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod 
h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/imdario/mergo v0.3.13 
h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
-github.com/imdario/mergo v0.3.13/go.mod 
h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
-github.com/inconshreveable/mousetrap v1.0.1 
h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc=
-github.com/inconshreveable/mousetrap v1.0.1/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/josharian/intern v1.0.0 
h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod 
h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/json-iterator/go v1.1.12 
h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 github.com/json-iterator/go v1.1.12/go.mod 
h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 github.com/kisielk/errcheck v1.5.0/go.mod 
h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod 
h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/kr/pretty v0.1.0/go.mod 
h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
-github.com/kr/pretty v0.2.0/go.mod 
h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.2.1/go.mod 
h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod 
h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0/go.mod 
h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de 
h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
 github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod 
h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod 
h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod 
h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.7 
h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod 
h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.1.9/go.mod 
h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.13 
h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
 github.com/mattn/go-colorable v0.1.13/go.mod 
h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-isatty v0.0.12/go.mod 
h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.14/go.mod 
h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-isatty v0.0.16 
h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
 github.com/mattn/go-isatty v0.0.16/go.mod 
h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-runewidth v0.0.14 
h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
-github.com/mattn/go-runewidth v0.0.14/go.mod 
h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/mattn/go-isatty v0.0.17 
h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
+github.com/mattn/go-isatty v0.0.17/go.mod 
h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/mattn/go-runewidth v0.0.15 
h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
+github.com/mattn/go-runewidth v0.0.15/go.mod 
h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
+github.com/moby/term v0.5.0/go.mod 
h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd 
h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v1.0.2 
h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod 
h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee 
h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
+github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod 
h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 
h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
 github.com/monochromegane/go-gitignore 
v0.0.0-20200626010858-205db1a8cc00/go.mod 
h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 
h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod 
h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/onsi/ginkgo/v2 v2.21.0 
h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
+github.com/onsi/ginkgo/v2 v2.21.0/go.mod 
h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
+github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
+github.com/onsi/gomega v1.35.1/go.mod 
h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
 github.com/peterbourgon/diskv v2.0.1+incompatible 
h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod 
h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
 github.com/rivo/uniseg v0.2.0/go.mod 
h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
-github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8=
-github.com/rivo/uniseg v0.4.2/go.mod 
h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/rogpeppe/fastuuid v1.2.0/go.mod 
h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
+github.com/rogpeppe/go-internal v1.13.1 
h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod 
h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod 
h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA=
-github.com/spf13/cobra v1.6.1/go.mod 
h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
-github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
-github.com/spf13/pflag v1.0.5/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/stoewer/go-strcase v1.2.0/go.mod 
h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
+github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
+github.com/sergi/go-diff v1.2.0/go.mod 
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
+github.com/spf13/cobra v1.10.1/go.mod 
h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
+github.com/spf13/pflag v1.0.9/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
+github.com/spf13/pflag v1.0.10/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod 
h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
-github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
 github.com/stretchr/objx v0.5.0/go.mod 
h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
+github.com/stretchr/objx v0.5.2/go.mod 
h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
 github.com/stretchr/testify v1.3.0/go.mod 
h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.5.1/go.mod 
h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod 
h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1 
h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
 github.com/stretchr/testify v1.8.1/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod 
h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
-github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod 
h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
-github.com/xeipuuv/gojsonschema v1.2.0/go.mod 
h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
-github.com/xlab/treeprint v1.1.0 
h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
-github.com/xlab/treeprint v1.1.0/go.mod 
h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
+github.com/stretchr/testify v1.10.0 
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod 
h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
+github.com/xlab/treeprint v1.2.0 
h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
+github.com/xlab/treeprint v1.2.0/go.mod 
h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
 github.com/yuin/goldmark v1.1.27/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod 
h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.starlark.net v0.0.0-20221020143700-22309ac47eac 
h1:gBO5Qfcw5V9404yzsu2FEIsxK/u2mBNTNogK0uIoVhk=
-go.starlark.net v0.0.0-20221020143700-22309ac47eac/go.mod 
h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod 
h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
+go.yaml.in/yaml/v2 v2.4.2/go.mod 
h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
-golang.org/x/crypto v0.1.0/go.mod 
h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod 
h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod 
h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod 
h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod 
h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod 
h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0=
-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.1.0 h1:isLCZuhj4v+tYv7eskaN4v/TM+A1begWWgyVJDdl1+Y=
-golang.org/x/oauth2 v0.1.0/go.mod 
h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
+golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
+golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
+golang.org/x/oauth2 v0.27.0/go.mod 
h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
+golang.org/x/sync v0.12.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw=
-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
+golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
+golang.org/x/term v0.30.0/go.mod 
h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA=
-golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
+golang.org/x/text v0.23.0/go.mod 
h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
+golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
+golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod 
h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod 
h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod 
h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
+golang.org/x/tools v0.26.0/go.mod 
h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.6.7 
h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
-google.golang.org/appengine v1.6.7/go.mod 
h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod 
h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod 
h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod 
h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod 
h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod 
h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod 
h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod 
h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.33.1/go.mod 
h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
-google.golang.org/grpc v1.36.0/go.mod 
h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.40.0/go.mod 
h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod 
h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod 
h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0/go.mod 
h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod 
h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.28.1 
h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
-google.golang.org/protobuf v1.28.1/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.36.5 
h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
+google.golang.org/protobuf v1.36.5/go.mod 
h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 
h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod 
h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-k8s.io/api v0.25.3 h1:Q1v5UFfYe87vi5H7NU0p4RXC26PPMT8KOpr1TLQbCMQ=
-k8s.io/api v0.25.3/go.mod h1:o42gKscFrEVjHdQnyRenACrMtbuJsVdP+WVjqejfzmI=
-k8s.io/apimachinery v0.25.3 h1:7o9ium4uyUOM76t6aunP0nZuex7gDf8VGwkR5RcJnQc=
-k8s.io/apimachinery v0.25.3/go.mod 
h1:jaF9C/iPNM1FuLl7Zuy5b9v+n35HGSh6AQ4HYRkCqwo=
-k8s.io/cli-runtime v0.25.3 h1:Zs7P7l7db/5J+KDePOVtDlArAa9pZXaDinGWGZl0aM8=
-k8s.io/cli-runtime v0.25.3/go.mod 
h1:InHHsjkyW5hQsILJGpGjeruiDZT/R0OkROQgD6GzxO4=
-k8s.io/client-go v0.25.3 h1:oB4Dyl8d6UbfDHD8Bv8evKylzs3BXzzufLiO27xuPs0=
-k8s.io/client-go v0.25.3/go.mod h1:t39LPczAIMwycjcXkVc+CB+PZV69jQuNx4um5ORDjQA=
+k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM=
+k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk=
+k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4=
+k8s.io/apimachinery v0.34.1/go.mod 
h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
+k8s.io/cli-runtime v0.34.1 h1:btlgAgTrYd4sk8vJTRG6zVtqBKt9ZMDeQZo2PIzbL7M=
+k8s.io/cli-runtime v0.34.1/go.mod 
h1:aVA65c+f0MZiMUPbseU/M9l1Wo2byeaGwUuQEQVVveE=
+k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY=
+k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8=
 k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
 k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
-k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
-k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 
h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
-k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod 
h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4=
-k8s.io/utils v0.0.0-20221012122500-cfd413dd9e85 
h1:cTdVh7LYu82xeClmfzGtgyspNh6UxpwLWGi8R4sspNo=
-k8s.io/utils v0.0.0-20221012122500-cfd413dd9e85/go.mod 
h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 
h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k=
-sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod 
h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/kustomize/api v0.12.1 
h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
-sigs.k8s.io/kustomize/api v0.12.1/go.mod 
h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
-sigs.k8s.io/kustomize/kyaml v0.13.9 
h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
-sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod 
h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.3 
h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod 
h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
-sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
+k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
+k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
+k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b 
h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
+k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod 
h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts=
+k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 
h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
+k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod 
h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+sigs.k8s.io/cli-utils v0.35.0 h1:dfSJaF1W0frW74PtjwiyoB4cwdRygbHnC7qe7HF0g/Y=
+sigs.k8s.io/cli-utils v0.35.0/go.mod 
h1:ITitykCJxP1vaj1Cew/FZEaVJ2YsTN9Q71m02jebkoE=
+sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 
h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
+sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod 
h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
+sigs.k8s.io/kustomize/api v0.20.1 
h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I=
+sigs.k8s.io/kustomize/api v0.20.1/go.mod 
h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM=
+sigs.k8s.io/kustomize/kyaml v0.20.1 
h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78=
+sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod 
h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
+sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
+sigs.k8s.io/randfill v1.0.0/go.mod 
h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
+sigs.k8s.io/structured-merge-diff/v6 v6.3.0 
h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=
+sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod 
h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
+sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
+sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=

++++++ kubectl-tree.obsinfo ++++++
--- /var/tmp/diff_new_pack.Iyq4ea/_old  2025-11-17 12:25:27.335025576 +0100
+++ /var/tmp/diff_new_pack.Iyq4ea/_new  2025-11-17 12:25:27.339025744 +0100
@@ -1,5 +1,5 @@
 name: kubectl-tree
-version: 0.4.3
-mtime: 1666718337
-commit: 3bfade5a143ad329cec21ad3c074f45500aa533a
+version: 0.4.6
+mtime: 1763245526
+commit: ee7f2ca11e271c8ece1a8426bce4119d1ff38bac
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kubectl-tree/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.kubectl-tree.new.2061/vendor.tar.gz differ: char 5, 
line 1

Reply via email to