diff --git a/api/restHandler/ExternalCiRestHandler.go b/api/restHandler/ExternalCiRestHandler.go
index 7385d3d6af..f1ab9a2d73 100644
--- a/api/restHandler/ExternalCiRestHandler.go
+++ b/api/restHandler/ExternalCiRestHandler.go
@@ -19,8 +19,8 @@ package restHandler
import (
"encoding/json"
- "github.com/devtron-labs/devtron/pkg/workflow/dag"
util3 "github.com/devtron-labs/devtron/api/util"
+ "github.com/devtron-labs/devtron/pkg/workflow/dag"
"net/http"
"strconv"
diff --git a/go.mod b/go.mod
index 2cb7645d2a..0a479441dd 100644
--- a/go.mod
+++ b/go.mod
@@ -4,7 +4,7 @@ go 1.20
require (
github.com/Pallinder/go-randomdata v1.2.0
- github.com/argoproj/argo-cd/v2 v2.6.15
+ github.com/argoproj/argo-cd/v2 v2.8.13
github.com/argoproj/argo-workflows/v3 v3.4.3
github.com/argoproj/gitops-engine v0.7.1-0.20231013183858-f15cf615b814
github.com/aws/aws-sdk-go v1.44.290
@@ -16,9 +16,9 @@ require (
github.com/coreos/go-oidc v2.2.1+incompatible
github.com/davecgh/go-spew v1.1.1
github.com/deckarep/golang-set v1.8.0
- github.com/devtron-labs/authenticator v0.4.35-0.20240216091211-80e10a80ce7b
- github.com/devtron-labs/common-lib v0.0.16-0.20240320102218-5807b1301538
- github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb
+ github.com/devtron-labs/authenticator v0.4.35-0.20240321064236-a95dc8d0403f
+ github.com/devtron-labs/common-lib v0.0.16-0.20240326053557-bff4518a731d
+ github.com/devtron-labs/protos v0.0.3-0.20240326053929-48e42d9d4534
github.com/evanphx/json-patch v5.6.0+incompatible
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32
github.com/go-git/go-billy/v5 v5.5.0
@@ -28,7 +28,7 @@ require (
github.com/gogo/protobuf v1.3.2
github.com/golang-jwt/jwt/v4 v4.5.0
github.com/golang/mock v1.6.0
- github.com/golang/protobuf v1.5.3
+ github.com/golang/protobuf v1.5.4
github.com/google/go-cmp v0.6.0
github.com/google/go-github v17.0.0+incompatible
github.com/google/uuid v1.3.1
@@ -42,20 +42,20 @@ require (
github.com/hashicorp/hcl2 v0.0.0-20191002203319-fb75b3253c80
github.com/invopop/jsonschema v0.7.0
github.com/juju/errors v0.0.0-20200330140219-3fe23663418f
- github.com/ktrysmt/go-bitbucket v0.9.55
+ github.com/ktrysmt/go-bitbucket v0.9.60
github.com/lib/pq v1.10.4
github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5
github.com/otiai10/copy v1.0.2
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/posthog/posthog-go v0.0.0-20210610161230-cd4408afb35a
- github.com/prometheus/client_golang v1.14.0
+ github.com/prometheus/client_golang v1.16.0
github.com/robfig/cron/v3 v3.0.1
github.com/satori/go.uuid v1.2.0
github.com/stretchr/testify v1.8.4
github.com/tidwall/gjson v1.14.3
github.com/tidwall/sjson v1.2.4
- github.com/xanzy/go-gitlab v0.60.0
+ github.com/xanzy/go-gitlab v0.86.0
github.com/xeipuuv/gojsonschema v1.2.0
github.com/yannh/kubeconform v0.5.0
github.com/zclconf/go-cty v1.13.2
@@ -71,7 +71,7 @@ require (
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63
golang.org/x/oauth2 v0.11.0
google.golang.org/grpc v1.59.0
- google.golang.org/protobuf v1.31.0
+ google.golang.org/protobuf v1.33.0
gopkg.in/go-playground/validator.v9 v9.30.0
gopkg.in/igm/sockjs-go.v3 v3.0.0
gopkg.in/yaml.v2 v2.4.0
@@ -107,24 +107,25 @@ require (
github.com/MakeNowJust/heredoc v1.0.0 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
- github.com/Masterminds/semver/v3 v3.2.0 // indirect
+ github.com/Masterminds/semver/v3 v3.2.1 // indirect
github.com/Masterminds/sprig/v3 v3.2.3 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
github.com/agext/levenshtein v1.2.1 // indirect
- github.com/antonmedv/expr v1.9.0 // indirect
+ github.com/antonmedv/expr v1.12.5 // indirect
github.com/apparentlymart/go-textseg v1.0.0 // indirect
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
github.com/argoproj/pkg v0.13.7-0.20230627120311-a4dd357b057e // indirect
github.com/aws/smithy-go v1.14.2 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
+ github.com/bmatcuk/doublestar/v4 v4.6.0 // indirect
github.com/bombsimon/logrusr/v2 v2.0.1 // indirect
- github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 // indirect
+ github.com/bradleyfalzon/ghinstallation/v2 v2.5.0 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chai2010/gettext-go v1.0.2 // indirect
- github.com/cloudflare/circl v1.3.3 // indirect
+ github.com/cloudflare/circl v1.3.7 // indirect
github.com/colinmarc/hdfs v1.1.4-0.20180805212432-9746310a4d31 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
@@ -136,7 +137,7 @@ require (
github.com/fatih/camelcase v1.0.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fvbommel/sortorder v1.0.1 // indirect
- github.com/go-errors/errors v1.0.1 // indirect
+ github.com/go-errors/errors v1.4.2 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-logr/logr v1.3.0 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
@@ -145,15 +146,14 @@ require (
github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
- github.com/go-redis/cache/v8 v8.4.2 // indirect
- github.com/go-redis/redis/v8 v8.11.5 // indirect
+ github.com/go-redis/cache/v9 v9.0.0 // indirect
github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/go-xorm/xorm v0.7.9 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/google/btree v1.0.1 // indirect
- github.com/google/gnostic v0.5.7-v3refs // indirect
- github.com/google/go-github/v45 v45.2.0 // indirect
+ github.com/google/btree v1.1.2 // indirect
+ github.com/google/gnostic v0.6.9 // indirect
+ github.com/google/go-github/v53 v53.0.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/s2a-go v0.1.4 // indirect
@@ -163,16 +163,16 @@ require (
github.com/gorilla/securecookie v1.1.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
+ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
github.com/hashicorp/errwrap v1.0.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
- github.com/hashicorp/go-retryablehttp v0.7.0 // indirect
+ github.com/hashicorp/go-retryablehttp v0.7.4 // indirect
github.com/hashicorp/go-uuid v1.0.2 // indirect
github.com/huandu/xstrings v1.3.3 // indirect
github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 // indirect
github.com/igm/sockjs-go v3.0.0+incompatible // indirect
- github.com/imdario/mergo v0.3.13 // indirect
+ github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jcmturner/gofork v1.0.0 // indirect
@@ -208,13 +208,15 @@ require (
github.com/nats-io/nuid v1.0.1 // indirect
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
+ github.com/opencontainers/image-spec v1.1.0-rc.3 // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/pquerna/cachecontrol v0.1.0 // indirect
github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect
- github.com/prometheus/common v0.38.0 // indirect
+ github.com/prometheus/common v0.42.0 // indirect
github.com/prometheus/procfs v0.11.1 // indirect
+ github.com/redis/go-redis/v9 v9.0.5 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sergi/go-diff v1.1.0 // indirect
github.com/shopspring/decimal v1.2.0 // indirect
@@ -228,7 +230,7 @@ require (
github.com/tidwall/pretty v1.2.0 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
- github.com/vmihailenco/go-tinylfu v0.2.1 // indirect
+ github.com/vmihailenco/go-tinylfu v0.2.2 // indirect
github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
@@ -240,13 +242,13 @@ require (
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 // indirect
go.opentelemetry.io/otel/metric v1.20.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
- go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
+ go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sync v0.3.0 // indirect
- golang.org/x/sys v0.15.0 // indirect
+ golang.org/x/sys v0.18.0 // indirect
golang.org/x/term v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.3.0 // indirect
@@ -276,6 +278,7 @@ require (
k8s.io/kube-aggregator v0.26.4 // indirect
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
mellium.im/sasl v0.3.1 // indirect
+ oras.land/oras-go/v2 v2.2.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/kustomize/api v0.12.1 // indirect
sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
diff --git a/go.sum b/go.sum
index 4eeaa4cbdb..9bd1fe1ecf 100644
--- a/go.sum
+++ b/go.sum
@@ -24,6 +24,7 @@ cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4g
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
@@ -44,7 +45,6 @@ cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7Biccwk
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U=
github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k=
github.com/Azure/azure-storage-blob-go v0.12.0 h1:7bFXA1QB+lOK2/ASWHhp6/vnxjaeeZq6t8w1Jyp0Iaw=
@@ -71,7 +71,6 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
@@ -80,63 +79,54 @@ github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJ
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
+github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/Pallinder/go-randomdata v1.2.0 h1:DZ41wBchNRb/0GfsePLiSwb0PHZmT67XY00lCDlaYPg=
github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y=
+github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g=
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg=
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
-github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8=
github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk=
-github.com/alicebob/miniredis/v2 v2.23.1 h1:jR6wZggBxwWygeXcdNyguCOCIjPsZyNUNlAkTx2fu0U=
+github.com/alicebob/miniredis/v2 v2.30.3 h1:hrqDB4cHFSHQf4gO3xu6YKQg8PqJpNjLYsQAFYHstqw=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antonmedv/expr v1.9.0 h1:j4HI3NHEdgDnN9p6oI6Ndr0G5QryMY0FNxT4ONrFDGU=
-github.com/antonmedv/expr v1.9.0/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8=
+github.com/antonmedv/expr v1.12.5 h1:Fq4okale9swwL3OeLLs9WD9H6GbgBLJyN/NUHRv+n0E=
+github.com/antonmedv/expr v1.12.5/go.mod h1:FPC8iWArxls7axbVLsW+kpg1mz29A1b2M6jt+hZfDkU=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
-github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0=
github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk=
github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
-github.com/argoproj/argo-cd/v2 v2.6.15 h1:pc8h1ggF/gx9y08w+XAhS7Jfcxj0DJwkaDe2azr5Vqg=
-github.com/argoproj/argo-cd/v2 v2.6.15/go.mod h1:xaf087ms1hB9L+BHcXOP9+tztCo3/J9yzRpKBP5RXnw=
+github.com/argoproj/argo-cd/v2 v2.8.13 h1:DrKWdEGVOwiyC4zgS7vB9ngP16xumA6x5/AgN/stJw0=
+github.com/argoproj/argo-cd/v2 v2.8.13/go.mod h1:3GmH9xEJtiWZNfZ5hx1qdzbF2t9gIS/3vNV5vJBmI/g=
github.com/argoproj/argo-workflows/v3 v3.4.3 h1:4pt7+Rjy9Lzq/r6dWp6wL8mr3ucPHSsGIlWwoP3fueM=
github.com/argoproj/argo-workflows/v3 v3.4.3/go.mod h1:Od1rQK5j9/WefqFaUsIwAqTialDhLlhups0RE/WYzz4=
github.com/argoproj/gitops-engine v0.7.1-0.20231013183858-f15cf615b814 h1:oTaLRbCwjnGtScIX2ZRdIEDsiDxonwh9/BbUxdXrjYc=
github.com/argoproj/gitops-engine v0.7.1-0.20231013183858-f15cf615b814/go.mod h1:1TchqKw9XmYYZluyEHa1dTJQoZgbV6PhabB/e8Wf3KY=
github.com/argoproj/pkg v0.13.7-0.20230627120311-a4dd357b057e h1:kuLQvJqwwRMQTheT4MFyKVM8Txncu21CHT4yBWUl1Mk=
github.com/argoproj/pkg v0.13.7-0.20230627120311-a4dd357b057e/go.mod h1:xBN5PLx2MoK63dmPfMo/PGBvd77K1Y0m/rzZOe4cs1s=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
-github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.44.290 h1:Md4+os9DQtJjow0lWLMzeJljsimD+XS2xwwHDr5Z+Lk=
github.com/aws/aws-sdk-go v1.44.290/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
-github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41/go.mod h1:CrObHAuPneJBlfEJ5T3szXOUkLEThaGfvnhTf33buas=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw=
@@ -147,17 +137,21 @@ github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
+github.com/bmatcuk/doublestar/v4 v4.6.0 h1:HTuxyug8GyFbRkrffIpzNCSK4luc0TY3wzXvzIZhEXc=
+github.com/bmatcuk/doublestar/v4 v4.6.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
github.com/bombsimon/logrusr/v2 v2.0.1 h1:1VgxVNQMCvjirZIYaT9JYn6sAVGVEcNtRE0y4mvaOAM=
github.com/bombsimon/logrusr/v2 v2.0.1/go.mod h1:ByVAX+vHdLGAfdroiMg6q0zgq2FODY2lc5YJvzmOJio=
-github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 h1:5+NghM1Zred9Z078QEZtm28G/kfDfZN/92gkDlLwGVA=
-github.com/bradleyfalzon/ghinstallation/v2 v2.1.0/go.mod h1:Xg3xPRN5Mcq6GDqeUVhFbjEWMb4JHCyWEeeBGEYQoTU=
+github.com/bradleyfalzon/ghinstallation/v2 v2.5.0 h1:yaYcGQ7yEIGbsJfW/9z7v1sLiZg/5rSNNXwmMct5XaE=
+github.com/bradleyfalzon/ghinstallation/v2 v2.5.0/go.mod h1:amcvPQMrRkWNdueWOjPytGL25xQGzox7425qMgzo+Vo=
+github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao=
github.com/bsm/go-vlq v0.0.0-20150828105119-ec6e8d4f5f4e/go.mod h1:N+BjUcTjSxc2mtRGSCPsat1kze3CUtvJN3/jTXlp29k=
+github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y=
+github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
+github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/caarlos0/env v3.5.0+incompatible h1:Yy0UN8o9Wtr/jGHZDpCBLpNrzcFLLM2yixi/rBrKyJs=
github.com/caarlos0/env v3.5.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y=
@@ -165,15 +159,13 @@ github.com/caarlos0/env/v6 v6.7.2 h1:Jiy2dBHvNgCfNGMP0hOZW6jHUbiENvP+VWDtLz4n1Kg
github.com/caarlos0/env/v6 v6.7.2/go.mod h1:FE0jGiAnQqtv2TenJ4KTa8+/T2Ss8kdS5s1VEjasoN0=
github.com/casbin/casbin v1.9.1 h1:ucjbS5zTrmSLtH4XogqOG920Poe6QatdXtz1FEbApeM=
github.com/casbin/casbin v1.9.1/go.mod h1:z8uPsfBJGUsnkagrt3G8QvjgTKFMBJ32UP8HpZllfog=
-github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
github.com/casbin/xorm-adapter v1.0.1-0.20190716004226-a317737a1007 h1:KEBrEhQjSCzUt5bQKxX8ZbS3S46sRnzOmwemTOu+LLQ=
github.com/casbin/xorm-adapter v1.0.1-0.20190716004226-a317737a1007/go.mod h1:6sy40UQdWR0blO1DJdEzbcu6rcEW89odCMcEdoB1qdM=
-github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
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/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
@@ -181,37 +173,31 @@ github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHe
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/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
+github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
+github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
+github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
+github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
-github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/colinmarc/hdfs v1.1.4-0.20180805212432-9746310a4d31 h1:ow7T77012NSZVW0uOWoQxz3yj9fHKYeZ4QmNrMtWMbM=
github.com/colinmarc/hdfs v1.1.4-0.20180805212432-9746310a4d31/go.mod h1:vSBumefK4HA5uiRSwNP+3ofgrEoScpCS2MMWcWXEuQ4=
github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
-github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
-github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -219,12 +205,12 @@ github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsP
github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo=
github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4 h1:YcpmyvADGYw5LqMnHqSkyIELsHCGF6PkrmM31V8rF7o=
github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
-github.com/devtron-labs/authenticator v0.4.35-0.20240216091211-80e10a80ce7b h1:aHKsdB4ghsp+x8167W8MZyF3WQOixTSJFyARrU+qR6s=
-github.com/devtron-labs/authenticator v0.4.35-0.20240216091211-80e10a80ce7b/go.mod h1:a5gxST+HNmJReXE2TkCicFQFWtlhp8eqBRwS23GydNE=
-github.com/devtron-labs/common-lib v0.0.16-0.20240320102218-5807b1301538 h1:KG/XRlhT3Mc066fE5qOk02kybqtnWTIsJhsUZ3gzDHc=
-github.com/devtron-labs/common-lib v0.0.16-0.20240320102218-5807b1301538/go.mod h1:95/DizzVXu1kHap/VwEvdxwgd+BvPVYc0bJzt8yqGDU=
-github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb h1:CkfQQgZc950/hTPqtQSiHV2RmZgkBLGCzwR02FZYjAU=
-github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb/go.mod h1:pjLjgoa1GzbkOkvbMyP4SAKsaiK7eG6GoQCNauG03JA=
+github.com/devtron-labs/authenticator v0.4.35-0.20240321064236-a95dc8d0403f h1:TPpMSx7NZUo+CX4CBfc39q0dak8OurrQnymTupJkE0Y=
+github.com/devtron-labs/authenticator v0.4.35-0.20240321064236-a95dc8d0403f/go.mod h1:JQxTCMmQisrpjzETJr0tzVadV+wW23rHEZAY7JVyK3s=
+github.com/devtron-labs/common-lib v0.0.16-0.20240326053557-bff4518a731d h1:YMJPqkVb11zU6QXMovLGR3xuzV7D8Hv7fIYEcML/FUw=
+github.com/devtron-labs/common-lib v0.0.16-0.20240326053557-bff4518a731d/go.mod h1:6QrrtLoLnuEdHkrx5HqkEVwMxEmnhAH1R/SJVMswuCc=
+github.com/devtron-labs/protos v0.0.3-0.20240326053929-48e42d9d4534 h1:TElPRU69QedW7DIQiiQxtjwSQ6cK0fCTAMGvSLhP0ac=
+github.com/devtron-labs/protos v0.0.3-0.20240326053929-48e42d9d4534/go.mod h1:ypUknVph8Ph4dxSlrFoouf7wLedQxHku2LQwgRrdgS4=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
@@ -233,12 +219,10 @@ github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/doublerebel/bellows v0.0.0-20160303004610-f177d92a03d3 h1:7nllYTGLnq4CqBL27lV6oNfXzM2tJ2mrKF8E+aBXOV0=
github.com/doublerebel/bellows v0.0.0-20160303004610-f177d92a03d3/go.mod h1:v/MTKot4he5oRHGirOYGN4/hEOONNnWtDBLAzllSGMw=
-github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
-github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
@@ -248,11 +232,11 @@ github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhF
github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
-github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.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/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA=
@@ -263,27 +247,23 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwC
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
-github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
+github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
-github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
-github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM=
github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew=
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I=
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
-github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
-github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
+github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
+github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
@@ -295,10 +275,8 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
@@ -330,14 +308,10 @@ github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
-github.com/go-redis/cache/v8 v8.4.2 h1:8YbsmnU1Ws3TKS6T+qALzYE/MlGE+A/lrlx1XTA3p6M=
-github.com/go-redis/cache/v8 v8.4.2/go.mod h1:X7Jjd69Ssbrf3xBQLtIDE0g3WcSbFoQiSGeb8QfEJ+g=
-github.com/go-redis/redis/v8 v8.11.3/go.mod h1:xNJ9xDG09FsIPwh3bWdk+0oDWHbtF9rPN0F/oD9XeKc=
-github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
-github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
+github.com/go-redis/cache/v9 v9.0.0 h1:0thdtFo0xJi0/WXbRVu8B066z8OvVymXTJGaXrVWnN0=
+github.com/go-redis/cache/v9 v9.0.0/go.mod h1:cMwi1N8ASBOufbIvk7cdXe2PbPjK/WMRL95FFHWsSgI=
github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I=
-github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
@@ -352,19 +326,15 @@ github.com/go-xorm/xorm v0.7.9/go.mod h1:XiVxrMMIhFkwSkh96BW7PACl7UhLtx2iJIHMdmj
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/gogo/protobuf v1.3.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.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -380,7 +350,6 @@ github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
-github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -398,15 +367,17 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
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/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
-github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
+github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
+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.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+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=
@@ -417,15 +388,14 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY=
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
-github.com/google/go-github/v45 v45.2.0 h1:5oRLszbrkvxDDqBCNj2hjDZMKmvexaZ1xw/FCD+K3FI=
-github.com/google/go-github/v45 v45.2.0/go.mod h1:FObaZJEDSTa/WGCzZ2Z3eoCDXWJKMenWWTrd8jrta28=
+github.com/google/go-github/v53 v53.0.0 h1:T1RyHbSnpHYnoF0ZYKiIPSgPtuJ8G6vgc0MKodXsQDQ=
+github.com/google/go-github/v53 v53.0.0/go.mod h1:XhFRObz+m/l+UCm9b7KSIC3lT3NWSXGt7mOsAWEloao=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -450,7 +420,6 @@ github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkj
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
-github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -464,10 +433,8 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4=
github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI=
-github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/schema v1.1.0 h1:CamqUDOFUBqzrvxuz2vEwo8+SUdwsluFh7IlzJh30LY=
@@ -476,63 +443,42 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
-github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
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/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
-github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
-github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v0.0.0-20180717150148-3d5d8f294aa0/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
-github.com/hashicorp/go-retryablehttp v0.7.0 h1:eu1EI/mbirUgP5C8hVsTNaGZreBDlYiwC1FZWkvQPQ4=
-github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
+github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA=
+github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
github.com/hashicorp/go-uuid v0.0.0-20180228145832-27454136f036/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl2 v0.0.0-20191002203319-fb75b3253c80 h1:PFfGModn55JA0oBsvFghhj0v93me+Ctr3uHC/UmFAls=
github.com/hashicorp/hcl2 v0.0.0-20191002203319-fb75b3253c80/go.mod h1:Cxv+IJLuBiEhQ7pBYGEuORa0nr4U994pE8mYLuFd7v0=
-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4=
github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 h1:i462o439ZjprVSFSZLZxcsoAe592sZB1rci2Z8j4wdk=
github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -541,12 +487,10 @@ github.com/igm/sockjs-go v3.0.0+incompatible h1:4w5ztbp2brVLJYz+o3u0m7+zmuup6eZ/
github.com/igm/sockjs-go v3.0.0+incompatible/go.mod h1:Yu6pvqjNniWNJe07LPObeCG6R77Qc97C6Kss0roF8tU=
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
-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.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
+github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So=
github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0=
github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=
@@ -559,25 +503,20 @@ github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/U
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
-github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
-github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
-github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/juju/ansiterm v0.0.0-20160907234532-b99631de12cf/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU=
github.com/juju/clock v0.0.0-20190205081909-9c5c9712527c/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA=
github.com/juju/cmd v0.0.0-20171107070456-e74f39857ca0/go.mod h1:yWJQHl73rdSX4DHVKGqkAip+huBslxRwS8m9CrOLq18=
@@ -613,10 +552,9 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNU
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
@@ -631,13 +569,14 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
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/ktrysmt/go-bitbucket v0.9.55 h1:eOrF7wWmG4wz5iPr7ymgyWLoti2OfmrhU2tmT6yhAu8=
-github.com/ktrysmt/go-bitbucket v0.9.55/go.mod h1:y5wrrDHCGUFAtuC43GyLBeFigq7rwrh4HqeDOOyZT+A=
+github.com/ktrysmt/go-bitbucket v0.9.60 h1:dw9e4COfaKjQfOxmhaEzvS+PM6ET5KKFodr/OU1DyzE=
+github.com/ktrysmt/go-bitbucket v0.9.60/go.mod h1:kwdc/BFWtw1YuiJFLpY8gf7ZIRWXY3oZ+3X4i/H5SX4=
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
@@ -647,12 +586,7 @@ github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk=
github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
-github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
-github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s=
-github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/lunixbochs/vtclean v0.0.0-20160125035106-4fbf7632a2c6/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
-github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
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.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
@@ -669,10 +603,6 @@ github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqf
github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
github.com/mattn/go-isatty v0.0.0-20160806122752-66b8e73f3f5c/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
@@ -680,25 +610,17 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 h1:YH424zrwLTlyHSH/GzLMJeu5zhYVZSx5RQxGKm1h96s=
github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5/go.mod h1:PoGiBqKSQK1vIfQ+yVaFcGjDySHvym6FM1cNYnwzbrY=
-github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.58/go.mod h1:NUDy4A4oXPq1l2yK6LTSvCEzAMeIcoz9lcj5dbzSrRE=
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
-github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=
github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
@@ -712,7 +634,6 @@ github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6U
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
@@ -724,17 +645,11 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
-github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
-github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a h1:lem6QCvxR0Y28gth9P+wV2K/zYUUAkJ+55U8cpS0p5I=
github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k=
-github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
github.com/nats-io/nats-server/v2 v2.9.23 h1:6Wj6H6QpP9FMlpCyWUaNu2yeZ/qGj+mdRkZ1wbikExU=
-github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
github.com/nats-io/nats.go v1.28.0 h1:Th4G6zdsz2d0OqXdfzKLClo6bOfoI/b1kInhRtFIy5c=
github.com/nats-io/nats.go v1.28.0/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc=
-github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
github.com/nats-io/nkeys v0.4.6 h1:IzVe95ru2CT6ta874rt9saQRkWfe2nFj1NtvYSLqMzY=
github.com/nats-io/nkeys v0.4.6/go.mod h1:4DxZNzenSVd1cYQoAa8948QY3QDjrHfcfVADymtkpts=
@@ -745,9 +660,6 @@ github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
-github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
-github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 h1:Yl0tPBa8QPjGmesFh1D0rDy+q1Twx6FyU7VWHi8wZbI=
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -757,50 +669,45 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
+github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU=
github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=
github.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0=
-github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs=
github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=
+github.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw=
+github.com/onsi/ginkgo/v2 v2.7.0 h1:/XxtEV3I3Eif/HobnVx9YmJgk8ENdRsuUmM+fLCFNow=
+github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo=
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
github.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc=
github.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM=
github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
+github.com/onsi/gomega v1.24.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
+github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM=
+github.com/onsi/gomega v1.25.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM=
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
-github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
-github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
-github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
-github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
+github.com/opencontainers/image-spec v1.1.0-rc.3 h1:GT9Xon8YrLxz6N7sErbN81V8J4lOQKGUZQmI3ioviqU=
+github.com/opencontainers/image-spec v1.1.0-rc.3/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
-github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
github.com/otiai10/copy v1.0.2 h1:DDNipYy6RkIkjMwy+AWzgKiNTyj2RUI9yEMeETEpVyc=
github.com/otiai10/copy v1.0.2/go.mod h1:c7RpqBkwMom4bYTSkLSym4VSJz/XtncWRAj/J4PEIMY=
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
github.com/otiai10/mint v1.3.0 h1:Ady6MKVezQwHBkGzLFbrsywyp09Ah7rkmfjV3Bcr5uc=
github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
-github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pborman/getopt v0.0.0-20180729010549-6fdd0a2c7117/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
-github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
-github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
@@ -808,60 +715,44 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
-github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posthog/posthog-go v0.0.0-20210610161230-cd4408afb35a h1:wm95cDvqeISA1Vs2a56hEtERmzZ3bNrRQSuDbeZr9GU=
github.com/posthog/posthog-go v0.0.0-20210610161230-cd4408afb35a/go.mod h1:oa2sAs9tGai3VldabTV0eWejt/O4/OOD7azP8GaikqU=
github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc=
github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
-github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
-github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM=
github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
-github.com/prometheus/common v0.38.0 h1:VTQitp6mXTdUoCmDMugDVOJ1opi6ADftKfp/yeqTR/E=
-github.com/prometheus/common v0.38.0/go.mod h1:MBXfmBQZrK5XpbCkjofnXs96LD2QQ7fEq4C0xjC/yec=
+github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
+github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
-github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84=
-github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/redis/go-redis/v9 v9.0.0-rc.4/go.mod h1:Vo3EsyWnicKnSKCA7HhgnvnyA74wOA69Cd2Meli5mmA=
+github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o=
+github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
-github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
-github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
-github.com/rs/zerolog v1.21.0/go.mod h1:ZPhntP/xmq1nnND05hhpAh2QMhSsA4UN3MGZ6O2J3hM=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
-github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu9FXAw2W4=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
@@ -878,32 +769,23 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
-github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
-github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
-github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
-github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.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/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
@@ -926,24 +808,21 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/sjson v1.2.4 h1:cuiLzLnaMeBhRmEv00Lpk3tkYrcxpmbU81tAY4Dw0tc=
github.com/tidwall/sjson v1.2.4/go.mod h1:098SZ494YoMWPmMO6ct4dcFnqxwj9r/gF0Etp19pSNM=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
-github.com/vmihailenco/go-tinylfu v0.2.1 h1:78/wH+STtgM8+fN2GdjvvKoxF3mkdzoOoKQTchQRj+g=
-github.com/vmihailenco/go-tinylfu v0.2.1/go.mod h1:CutYi2Q9puTxfcolkliPq4npPuofg9N9t8JVrjzwa3Q=
+github.com/vmihailenco/go-tinylfu v0.2.2 h1:H1eiG6HM36iniK6+21n9LLpzx1G9R3DJa2UjUjbynsI=
+github.com/vmihailenco/go-tinylfu v0.2.2/go.mod h1:CutYi2Q9puTxfcolkliPq4npPuofg9N9t8JVrjzwa3Q=
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
github.com/vmihailenco/msgpack/v5 v5.3.4/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
-github.com/xanzy/go-gitlab v0.60.0 h1:HaIlc14k4t9eJjAhY0Gmq2fBHgKd1MthBn3+vzDtsbA=
-github.com/xanzy/go-gitlab v0.60.0/go.mod h1:F0QEXwmqiBUxCgJm8fE9S+1veX4XC9Z4cfaAbqwk4YM=
+github.com/xanzy/go-gitlab v0.86.0 h1:jR8V9cK9jXRQDb46KOB20NCF3ksY09luaG0IfXE6p7w=
+github.com/xanzy/go-gitlab v0.86.0/go.mod h1:5ryv+MnpZStBH8I/77HuQBsMbBGANtVpLWC15qOjWAw=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
@@ -953,7 +832,6 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
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/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c h1:3lbZUMbMiGUW/LMkfsEABsc5zNT9+b1CvsJx47JzJ8g=
@@ -967,16 +845,13 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRFc9q3yYbBkB6tsm4aCwwQV/j1JQAQ=
+github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE=
github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
github.com/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0=
github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0=
github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs=
github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
-go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -990,64 +865,47 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.4
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0/go.mod h1:Ct6zzQEuGK3WpJs2n4dn+wfJYzd/+hNnxMRTWjGn30M=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 h1:KfYpVmrjI7JuToy5k8XV3nkapjWx48k4E4JOtVstzQI=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48=
-go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
go.opentelemetry.io/otel v1.20.0 h1:vsb/ggIY+hUjD/zCAQHpzTmndPqv/ml2ArbsbfBYTAc=
go.opentelemetry.io/otel v1.20.0/go.mod h1:oUIGj3D77RwJdM6PPZImDpSZGDvkD9fhesHny69JFrs=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 h1:DeFD0VgTZ+Cj6hxravYYZE2W4GlneVH81iAOPjZkzk8=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0/go.mod h1:GijYcYmNpX1KazD5JmWGsi4P7dDTTTnfv1UbGn84MnU=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 h1:gvmNvqrPYovvyRmCSygkUDyL8lC5Tl845MLEwqpxhEU=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0=
-go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
go.opentelemetry.io/otel/metric v1.20.0 h1:ZlrO8Hu9+GAhnepmRGhSU7/VkpjrNowxRN9GyKR4wzA=
go.opentelemetry.io/otel/metric v1.20.0/go.mod h1:90DRw3nfK4D7Sm/75yQ00gTJxtkBxX+wu6YaNymbpVM=
-go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
-go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
go.opentelemetry.io/otel/sdk v1.20.0 h1:5Jf6imeFZlZtKv9Qbo6qt2ZkmWtdWx/wzcCbNUlAWGM=
go.opentelemetry.io/otel/sdk v1.20.0/go.mod h1:rmkSx1cZCm/tn16iWDn1GQbLtsW/LvsdEEFzCSRM6V0=
-go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
go.opentelemetry.io/otel/trace v1.20.0 h1:+yxVAPZPbQhbC3OfAkeIVTky6iTFpcr4SiY9om7mXSQ=
go.opentelemetry.io/otel/trace v1.20.0/go.mod h1:HJSK7F/hA5RlzpZ0zKDCHCDHm556LCDtKaAo6JmBFUU=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
-go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
-go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o=
-go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM=
+go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
+go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
-go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
+go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
golang.org/x/crypto v0.0.0-20180214000028-650f4a345ab4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180723164146-c126467f60eb/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
@@ -1064,7 +922,6 @@ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
-golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
@@ -1072,7 +929,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
-golang.org/x/exp v0.0.0-20210901193431-a062eea981d2/go.mod h1:a3o/VtDNHN+dCVLEpzjjUHOzR+Ln3DHX056ZPzoZGGA=
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
@@ -1089,32 +945,26 @@ golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPI
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
-golang.org/x/mobile v0.0.0-20201217150744-e6ae53a27f4f/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.5.1-0.20210830214625-1b1db11ec8f4/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
+golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1124,11 +974,9 @@ golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -1152,6 +1000,7 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY
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-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
+golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -1161,6 +1010,8 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
+golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
+golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
@@ -1168,13 +1019,14 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
-golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
+golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw=
golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU=
golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1191,13 +1043,9 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
-golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1210,18 +1058,14 @@ golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1241,7 +1085,6 @@ golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7w
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-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/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=
@@ -1249,7 +1092,9 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210608053332-aa57babbf139/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1261,16 +1106,19 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
-golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
+golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
+golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
+golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
@@ -1282,24 +1130,25 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1307,7 +1156,6 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
@@ -1319,8 +1167,7 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1328,8 +1175,6 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
@@ -1352,13 +1197,13 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
+golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
@@ -1387,9 +1232,7 @@ google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSr
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o=
google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw=
-google.golang.org/appengine v1.0.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -1404,7 +1247,6 @@ google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRn
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
@@ -1432,6 +1274,7 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY=
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q=
@@ -1440,13 +1283,9 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@@ -1458,6 +1297,7 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
@@ -1476,8 +1316,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
-google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
+google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -1486,11 +1326,9 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
gopkg.in/errgo.v1 v1.0.0-20161222125816-442357a80af5/go.mod h1:u0ALmqvLRxLI95fkdCEWrE6mhWYZW1aMOJHp5YXLHTg=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
gopkg.in/go-playground/validator.v9 v9.30.0 h1:Wk0Z37oBmKj9/n+tPyBHZmeL19LaCoK3Qq48VwYENss=
@@ -1514,7 +1352,6 @@ gopkg.in/jcmturner/rpc.v0 v0.0.2/go.mod h1:NzMq6cRzR9lipgw7WxRBHNx5N8SifBuaCQsOT
gopkg.in/mgo.v2 v2.0.0-20160818015218-f2b6f6c918c4/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
-gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
@@ -1523,7 +1360,6 @@ gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637/go.mod h1:BHsqpu/nsuzkT5BpiH
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.0.0-20170712054546-1be3d31502d6/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
-gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -1535,7 +1371,6 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/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=
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
@@ -1548,7 +1383,6 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
k8s.io/api v0.26.4 h1:qSG2PmtcD23BkYiWfoYAcak870eF/hE7NNYBYavTT94=
k8s.io/api v0.26.4/go.mod h1:WwKEXU3R1rgCZ77AYa7DFksd9/BAIKyOmRlbVxgvjCk=
@@ -1597,6 +1431,8 @@ launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80
launchpad.net/xmlpath v0.0.0-20130614043138-000000000004/go.mod h1:vqyExLOM3qBx7mvYRkoxjSCF945s0mbe7YynlKYXtsA=
mellium.im/sasl v0.3.1 h1:wE0LW6g7U83vhvxjC1IY8DnXM+EU095yeo8XClvCdfo=
mellium.im/sasl v0.3.1/go.mod h1:xm59PUYpZHhgQ9ZqoJ5QaCqzWMi8IeS49dhp6plPCzw=
+oras.land/oras-go/v2 v2.2.0 h1:E1fqITD56Eg5neZbxBtAdZVgDHD6wBabJo6xESTcQyo=
+oras.land/oras-go/v2 v2.2.0/go.mod h1:pXjn0+KfarspMHHNR3A56j3tgvr+mxArHuI8qVn59v8=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
@@ -1611,11 +1447,9 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK
sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
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.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
-sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
upper.io/db.v3 v3.8.0+incompatible h1:XNeEO2vQRVqq70M98ghzq6M30F5Bzo+99ess5v+eVYw=
upper.io/db.v3 v3.8.0+incompatible/go.mod h1:FgTdD24eBjJAbPKsQSiHUNgXjOR4Lub3u1UMHSIh82Y=
xorm.io/builder v0.3.6 h1:ha28mQ2M+TFx96Hxo+iq6tQgnkC9IZkM6D8w9sKHHF8=
diff --git a/pkg/appStore/installedApp/service/FullMode/deployment/InstalledAppGitOpsService.go b/pkg/appStore/installedApp/service/FullMode/deployment/InstalledAppGitOpsService.go
index cb4e605fff..9c1e49c19d 100644
--- a/pkg/appStore/installedApp/service/FullMode/deployment/InstalledAppGitOpsService.go
+++ b/pkg/appStore/installedApp/service/FullMode/deployment/InstalledAppGitOpsService.go
@@ -16,6 +16,8 @@ import (
"github.com/google/go-github/github"
"github.com/microsoft/azure-devops-go-api/azuredevops"
"github.com/xanzy/go-gitlab"
+
+ //"github.com/xanzy/go-gitlab"
"net/http"
"regexp"
)
diff --git a/vendor/github.com/Masterminds/semver/v3/.golangci.yml b/vendor/github.com/Masterminds/semver/v3/.golangci.yml
index c87d1c4b90..fbc6332592 100644
--- a/vendor/github.com/Masterminds/semver/v3/.golangci.yml
+++ b/vendor/github.com/Masterminds/semver/v3/.golangci.yml
@@ -5,12 +5,9 @@ linters:
disable-all: true
enable:
- misspell
- - structcheck
- govet
- staticcheck
- - deadcode
- errcheck
- - varcheck
- unparam
- ineffassign
- nakedret
diff --git a/vendor/github.com/Masterminds/semver/v3/Makefile b/vendor/github.com/Masterminds/semver/v3/Makefile
index eac19178fb..0e7b5c7138 100644
--- a/vendor/github.com/Masterminds/semver/v3/Makefile
+++ b/vendor/github.com/Masterminds/semver/v3/Makefile
@@ -1,7 +1,5 @@
GOPATH=$(shell go env GOPATH)
GOLANGCI_LINT=$(GOPATH)/bin/golangci-lint
-GOFUZZBUILD = $(GOPATH)/bin/go-fuzz-build
-GOFUZZ = $(GOPATH)/bin/go-fuzz
.PHONY: lint
lint: $(GOLANGCI_LINT)
@@ -19,19 +17,14 @@ test-cover:
GO111MODULE=on go test -cover .
.PHONY: fuzz
-fuzz: $(GOFUZZBUILD) $(GOFUZZ)
- @echo "==> Fuzz testing"
- $(GOFUZZBUILD)
- $(GOFUZZ) -workdir=_fuzz
+fuzz:
+ @echo "==> Running Fuzz Tests"
+ go test -fuzz=FuzzNewVersion -fuzztime=15s .
+ go test -fuzz=FuzzStrictNewVersion -fuzztime=15s .
+ go test -fuzz=FuzzNewConstraint -fuzztime=15s .
$(GOLANGCI_LINT):
# Install golangci-lint. The configuration for it is in the .golangci.yml
# file in the root of the repository
echo ${GOPATH}
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(GOPATH)/bin v1.17.1
-
-$(GOFUZZBUILD):
- cd / && go get -u github.com/dvyukov/go-fuzz/go-fuzz-build
-
-$(GOFUZZ):
- cd / && go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-dep
\ No newline at end of file
diff --git a/vendor/github.com/Masterminds/semver/v3/README.md b/vendor/github.com/Masterminds/semver/v3/README.md
index d8f54dcbd3..eab8cac3b7 100644
--- a/vendor/github.com/Masterminds/semver/v3/README.md
+++ b/vendor/github.com/Masterminds/semver/v3/README.md
@@ -18,18 +18,20 @@ If you are looking for a command line tool for version comparisons please see
## Package Versions
+Note, import `github.com/github.com/Masterminds/semver/v3` to use the latest version.
+
There are three major versions fo the `semver` package.
-* 3.x.x is the new stable and active version. This version is focused on constraint
+* 3.x.x is the stable and active version. This version is focused on constraint
compatibility for range handling in other tools from other languages. It has
a similar API to the v1 releases. The development of this version is on the master
branch. The documentation for this version is below.
* 2.x was developed primarily for [dep](https://github.com/golang/dep). There are
no tagged releases and the development was performed by [@sdboyer](https://github.com/sdboyer).
There are API breaking changes from v1. This version lives on the [2.x branch](https://github.com/Masterminds/semver/tree/2.x).
-* 1.x.x is the most widely used version with numerous tagged releases. This is the
- previous stable and is still maintained for bug fixes. The development, to fix
- bugs, occurs on the release-1 branch. You can read the documentation [here](https://github.com/Masterminds/semver/blob/release-1/README.md).
+* 1.x.x is the original release. It is no longer maintained. You should use the
+ v3 release instead. You can read the documentation for the 1.x.x release
+ [here](https://github.com/Masterminds/semver/blob/release-1/README.md).
## Parsing Semantic Versions
@@ -242,3 +244,15 @@ for _, m := range msgs {
If you find an issue or want to contribute please file an [issue](https://github.com/Masterminds/semver/issues)
or [create a pull request](https://github.com/Masterminds/semver/pulls).
+
+## Security
+
+Security is an important consideration for this project. The project currently
+uses the following tools to help discover security issues:
+
+* [CodeQL](https://github.com/Masterminds/semver)
+* [gosec](https://github.com/securego/gosec)
+* Daily Fuzz testing
+
+If you believe you have found a security vulnerability you can privately disclose
+it through the [GitHub security page](https://github.com/Masterminds/semver/security).
diff --git a/vendor/github.com/Masterminds/semver/v3/SECURITY.md b/vendor/github.com/Masterminds/semver/v3/SECURITY.md
new file mode 100644
index 0000000000..a30a66b1f7
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/SECURITY.md
@@ -0,0 +1,19 @@
+# Security Policy
+
+## Supported Versions
+
+The following versions of semver are currently supported:
+
+| Version | Supported |
+| ------- | ------------------ |
+| 3.x | :white_check_mark: |
+| 2.x | :x: |
+| 1.x | :x: |
+
+Fixes are only released for the latest minor version in the form of a patch release.
+
+## Reporting a Vulnerability
+
+You can privately disclose a vulnerability through GitHubs
+[private vulnerability reporting](https://github.com/Masterminds/semver/security/advisories)
+mechanism.
diff --git a/vendor/github.com/Masterminds/semver/v3/constraints.go b/vendor/github.com/Masterminds/semver/v3/constraints.go
index 203072e464..8461c7ed90 100644
--- a/vendor/github.com/Masterminds/semver/v3/constraints.go
+++ b/vendor/github.com/Masterminds/semver/v3/constraints.go
@@ -586,7 +586,7 @@ func rewriteRange(i string) string {
}
o := i
for _, v := range m {
- t := fmt.Sprintf(">= %s, <= %s", v[1], v[11])
+ t := fmt.Sprintf(">= %s, <= %s ", v[1], v[11])
o = strings.Replace(o, v[0], t, 1)
}
diff --git a/vendor/github.com/Masterminds/semver/v3/fuzz.go b/vendor/github.com/Masterminds/semver/v3/fuzz.go
deleted file mode 100644
index a242ad7058..0000000000
--- a/vendor/github.com/Masterminds/semver/v3/fuzz.go
+++ /dev/null
@@ -1,22 +0,0 @@
-// +build gofuzz
-
-package semver
-
-func Fuzz(data []byte) int {
- d := string(data)
-
- // Test NewVersion
- _, _ = NewVersion(d)
-
- // Test StrictNewVersion
- _, _ = StrictNewVersion(d)
-
- // Test NewConstraint
- _, _ = NewConstraint(d)
-
- // The return value should be 0 normally, 1 if the priority in future tests
- // should be increased, and -1 if future tests should skip passing in that
- // data. We do not have a reason to change priority so 0 is always returned.
- // There are example tests that do this.
- return 0
-}
diff --git a/vendor/github.com/antonmedv/expr/.gitignore b/vendor/github.com/antonmedv/expr/.gitignore
index 39b3c48207..b0df3eb444 100644
--- a/vendor/github.com/antonmedv/expr/.gitignore
+++ b/vendor/github.com/antonmedv/expr/.gitignore
@@ -5,3 +5,4 @@
*.dylib
*.test
*.out
+*.html
diff --git a/vendor/github.com/antonmedv/expr/.travis.yml b/vendor/github.com/antonmedv/expr/.travis.yml
deleted file mode 100644
index 745b115e20..0000000000
--- a/vendor/github.com/antonmedv/expr/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: go
-go:
- - 1.13.x
diff --git a/vendor/github.com/antonmedv/expr/README.md b/vendor/github.com/antonmedv/expr/README.md
index 00a644f048..242431f2ce 100644
--- a/vendor/github.com/antonmedv/expr/README.md
+++ b/vendor/github.com/antonmedv/expr/README.md
@@ -1,9 +1,9 @@
# Expr
-[](https://travis-ci.org/antonmedv/expr)
+[](https://github.com/antonmedv/expr/actions/workflows/test.yml)
[](https://goreportcard.com/report/github.com/antonmedv/expr)
[](https://godoc.org/github.com/antonmedv/expr)
-
+
**Expr** package provides an engine that can compile and evaluate expressions.
An expression is a one-liner that returns a value (mostly, but not limited to, booleans).
@@ -50,13 +50,13 @@ go get github.com/antonmedv/expr
## Documentation
-* See [Getting Started](docs/Getting-Started.md) page for developer documentation.
-* See [Language Definition](docs/Language-Definition.md) page to learn the syntax.
+* See [Getting Started](https://expr.medv.io/docs/Getting-Started) page for developer documentation.
+* See [Language Definition](https://expr.medv.io/docs/Language-Definition) page to learn the syntax.
## Expr Code Editor
-
-
+
+
Also, I have an embeddable code editor written in JavaScript which allows editing expressions with syntax highlighting and autocomplete based on your types declaration.
@@ -136,28 +136,25 @@ func main() {
}
```
-## Contributing
-
-**Expr** consist of a few packages for parsing source code to AST, type checking AST, compiling to bytecode and VM for running bytecode program.
-
-Also expr provides powerful tool [exe](cmd/exe) for debugging. It has interactive terminal debugger for our bytecode virtual machine.
-
-
-
-
-
-
-## Who is using Expr?
-
-*
[Aviasales](https://aviasales.ru) are actively using Expr for different parts of the search engine.
-*
[Argo Rollouts](https://argoproj.github.io/argo-rollouts/) - Progressive Delivery for Kubernetes.
-*
[Argo Workflows](https://argoproj.github.io/argo/) - The workflow engine for KubernetesOverview.
-*
[Crowdsec](https://crowdsec.net/) - A security automation tool.
-* [Mystery Minds](https://www.mysteryminds.com/en/) uses Expr to allow easy yet powerful customization of its matching algorithm.
-*
[qiniu](https://www.qiniu.com/) qiniu cloud use Expr in trade systems.
+## Who uses Expr?
+
+* [Aviasales](https://aviasales.ru) uses Expr as a business rule engine for our flight search engine.
+* [Wish.com](https://www.wish.com) uses Expr for decision-making rule engine in the Wish Assistant.
+* [Argo](https://argoproj.github.io) uses Expr in Argo Rollouts and Argo Workflows for Kubernetes.
+* [Crowdsec](https://crowdsec.net) uses Expr in a security automation tool.
+* [FACEIT](https://www.faceit.com) uses Expr to allow customization of its eSports matchmaking algorithm.
+* [qiniu](https://www.qiniu.com) uses Expr in trade systems.
+* [Junglee Games](https://www.jungleegames.com/) uses Expr for an in house marketing retention tool [Project Audience](https://www.linkedin.com/pulse/meet-project-audience-our-no-code-swiss-army-knife-product-bharti).
+* [OpenTelemetry](https://opentelemetry.io) uses Expr in the OpenTelemetry Collector.
+* [Philips Labs](https://github.com/philips-labs/tabia) uses Expr in Tabia, a tool for collecting insights on the characteristics of our code bases.
+* [CoreDNS](https://coredns.io) uses Expr in CoreDNS, a DNS server.
+* [Chaos Mesh](https://chaos-mesh.org) uses Expr in Chaos Mesh, a cloud-native Chaos Engineering platform.
+* [Milvus](https://milvus.io) uses Expr in Milvus, an open-source vector database.
+* [Visually.io](https://visually.io) uses Expr as a business rule engine for our personalization targeting algorithm.
+* [Akvorado](https://github.com/akvorado/akvorado) uses Expr to classify exporters and interfaces in network flows.
[Add your company too](https://github.com/antonmedv/expr/edit/master/README.md)
## License
-[MIT](LICENSE)
+[MIT](https://github.com/antonmedv/expr/blob/master/LICENSE)
diff --git a/vendor/github.com/antonmedv/expr/ast/node.go b/vendor/github.com/antonmedv/expr/ast/node.go
index 4b2b5c277b..e85f853e91 100644
--- a/vendor/github.com/antonmedv/expr/ast/node.go
+++ b/vendor/github.com/antonmedv/expr/ast/node.go
@@ -4,6 +4,7 @@ import (
"reflect"
"regexp"
+ "github.com/antonmedv/expr/builtin"
"github.com/antonmedv/expr/file"
)
@@ -48,8 +49,11 @@ type NilNode struct {
type IdentifierNode struct {
base
- Value string
- NilSafe bool
+ Value string
+ Deref bool
+ FieldIndex []int
+ Method bool // true if method, false if field
+ MethodIndex int // index of method, set only if Method is true
}
type IntegerNode struct {
@@ -85,29 +89,29 @@ type UnaryNode struct {
type BinaryNode struct {
base
+ Regexp *regexp.Regexp
Operator string
Left Node
Right Node
}
-type MatchesNode struct {
+type ChainNode struct {
base
- Regexp *regexp.Regexp
- Left Node
- Right Node
+ Node Node
}
-type PropertyNode struct {
+type MemberNode struct {
base
- Node Node
- Property string
- NilSafe bool
-}
+ Node Node
+ Property Node
+ Name string // Name of the filed or method. Used for error reporting.
+ Optional bool
+ Deref bool
+ FieldIndex []int
-type IndexNode struct {
- base
- Node Node
- Index Node
+ // TODO: Replace with a single MethodIndex field of &int type.
+ Method bool
+ MethodIndex int
}
type SliceNode struct {
@@ -117,19 +121,13 @@ type SliceNode struct {
To Node
}
-type MethodNode struct {
+type CallNode struct {
base
- Node Node
- Method string
- Arguments []Node
- NilSafe bool
-}
-
-type FunctionNode struct {
- base
- Name string
+ Callee Node
Arguments []Node
+ Typed int
Fast bool
+ Func *builtin.Function
}
type BuiltinNode struct {
diff --git a/vendor/github.com/antonmedv/expr/ast/print.go b/vendor/github.com/antonmedv/expr/ast/print.go
index 285984bd9a..56bc7dbe2e 100644
--- a/vendor/github.com/antonmedv/expr/ast/print.go
+++ b/vendor/github.com/antonmedv/expr/ast/print.go
@@ -29,9 +29,9 @@ func dump(v reflect.Value, ident string) string {
return out + ident + "}"
case reflect.Slice:
if v.Len() == 0 {
- return "[]"
+ return t.String() + "{}"
}
- out := "[\n"
+ out := t.String() + "{\n"
for i := 0; i < v.Len(); i++ {
s := v.Index(i)
out += fmt.Sprintf("%v%v,", ident+"\t", dump(s, ident+"\t"))
@@ -39,7 +39,7 @@ func dump(v reflect.Value, ident string) string {
out += "\n"
}
}
- return out + "\n" + ident + "]"
+ return out + "\n" + ident + "}"
case reflect.Ptr:
return dump(v.Elem(), ident)
case reflect.Interface:
diff --git a/vendor/github.com/antonmedv/expr/ast/visitor.go b/vendor/github.com/antonmedv/expr/ast/visitor.go
index a3e270e030..351e5d72b2 100644
--- a/vendor/github.com/antonmedv/expr/ast/visitor.go
+++ b/vendor/github.com/antonmedv/expr/ast/visitor.go
@@ -3,106 +3,66 @@ package ast
import "fmt"
type Visitor interface {
- Enter(node *Node)
- Exit(node *Node)
+ Visit(node *Node)
}
-type walker struct {
- visitor Visitor
-}
-
-func Walk(node *Node, visitor Visitor) {
- w := walker{
- visitor: visitor,
- }
- w.walk(node)
-}
-
-func (w *walker) walk(node *Node) {
- w.visitor.Enter(node)
-
+func Walk(node *Node, v Visitor) {
switch n := (*node).(type) {
case *NilNode:
- w.visitor.Exit(node)
case *IdentifierNode:
- w.visitor.Exit(node)
case *IntegerNode:
- w.visitor.Exit(node)
case *FloatNode:
- w.visitor.Exit(node)
case *BoolNode:
- w.visitor.Exit(node)
case *StringNode:
- w.visitor.Exit(node)
case *ConstantNode:
- w.visitor.Exit(node)
case *UnaryNode:
- w.walk(&n.Node)
- w.visitor.Exit(node)
+ Walk(&n.Node, v)
case *BinaryNode:
- w.walk(&n.Left)
- w.walk(&n.Right)
- w.visitor.Exit(node)
- case *MatchesNode:
- w.walk(&n.Left)
- w.walk(&n.Right)
- w.visitor.Exit(node)
- case *PropertyNode:
- w.walk(&n.Node)
- w.visitor.Exit(node)
- case *IndexNode:
- w.walk(&n.Node)
- w.walk(&n.Index)
- w.visitor.Exit(node)
+ Walk(&n.Left, v)
+ Walk(&n.Right, v)
+ case *ChainNode:
+ Walk(&n.Node, v)
+ case *MemberNode:
+ Walk(&n.Node, v)
+ Walk(&n.Property, v)
case *SliceNode:
+ Walk(&n.Node, v)
if n.From != nil {
- w.walk(&n.From)
+ Walk(&n.From, v)
}
if n.To != nil {
- w.walk(&n.To)
- }
- w.visitor.Exit(node)
- case *MethodNode:
- w.walk(&n.Node)
- for i := range n.Arguments {
- w.walk(&n.Arguments[i])
+ Walk(&n.To, v)
}
- w.visitor.Exit(node)
- case *FunctionNode:
+ case *CallNode:
+ Walk(&n.Callee, v)
for i := range n.Arguments {
- w.walk(&n.Arguments[i])
+ Walk(&n.Arguments[i], v)
}
- w.visitor.Exit(node)
case *BuiltinNode:
for i := range n.Arguments {
- w.walk(&n.Arguments[i])
+ Walk(&n.Arguments[i], v)
}
- w.visitor.Exit(node)
case *ClosureNode:
- w.walk(&n.Node)
- w.visitor.Exit(node)
+ Walk(&n.Node, v)
case *PointerNode:
- w.visitor.Exit(node)
case *ConditionalNode:
- w.walk(&n.Cond)
- w.walk(&n.Exp1)
- w.walk(&n.Exp2)
- w.visitor.Exit(node)
+ Walk(&n.Cond, v)
+ Walk(&n.Exp1, v)
+ Walk(&n.Exp2, v)
case *ArrayNode:
for i := range n.Nodes {
- w.walk(&n.Nodes[i])
+ Walk(&n.Nodes[i], v)
}
- w.visitor.Exit(node)
case *MapNode:
for i := range n.Pairs {
- w.walk(&n.Pairs[i])
+ Walk(&n.Pairs[i], v)
}
- w.visitor.Exit(node)
case *PairNode:
- w.walk(&n.Key)
- w.walk(&n.Value)
- w.visitor.Exit(node)
+ Walk(&n.Key, v)
+ Walk(&n.Value, v)
default:
panic(fmt.Sprintf("undefined node type (%T)", node))
}
+
+ v.Visit(node)
}
diff --git a/vendor/github.com/antonmedv/expr/builtin/builtin.go b/vendor/github.com/antonmedv/expr/builtin/builtin.go
new file mode 100644
index 0000000000..ad9376962e
--- /dev/null
+++ b/vendor/github.com/antonmedv/expr/builtin/builtin.go
@@ -0,0 +1,101 @@
+package builtin
+
+import (
+ "fmt"
+ "reflect"
+)
+
+var (
+ anyType = reflect.TypeOf(new(interface{})).Elem()
+ integerType = reflect.TypeOf(0)
+ floatType = reflect.TypeOf(float64(0))
+)
+
+type Function struct {
+ Name string
+ Func func(args ...interface{}) (interface{}, error)
+ Opcode int
+ Types []reflect.Type
+ Validate func(args []reflect.Type) (reflect.Type, error)
+}
+
+const (
+ Len = iota + 1
+ Abs
+ Int
+ Float
+)
+
+var Builtins = map[int]*Function{
+ Len: {
+ Name: "len",
+ Opcode: Len,
+ Validate: func(args []reflect.Type) (reflect.Type, error) {
+ if len(args) != 1 {
+ return anyType, fmt.Errorf("invalid number of arguments for len (expected 1, got %d)", len(args))
+ }
+ switch kind(args[0]) {
+ case reflect.Array, reflect.Map, reflect.Slice, reflect.String, reflect.Interface:
+ return integerType, nil
+ }
+ return anyType, fmt.Errorf("invalid argument for len (type %s)", args[0])
+ },
+ },
+ Abs: {
+ Name: "abs",
+ Opcode: Abs,
+ Validate: func(args []reflect.Type) (reflect.Type, error) {
+ if len(args) != 1 {
+ return anyType, fmt.Errorf("invalid number of arguments for abs (expected 1, got %d)", len(args))
+ }
+ switch kind(args[0]) {
+ case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Interface:
+ return args[0], nil
+ }
+ return anyType, fmt.Errorf("invalid argument for abs (type %s)", args[0])
+ },
+ },
+ Int: {
+ Name: "int",
+ Opcode: Int,
+ Validate: func(args []reflect.Type) (reflect.Type, error) {
+ if len(args) != 1 {
+ return anyType, fmt.Errorf("invalid number of arguments for int (expected 1, got %d)", len(args))
+ }
+ switch kind(args[0]) {
+ case reflect.Interface:
+ return integerType, nil
+ case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ return integerType, nil
+ case reflect.String:
+ return integerType, nil
+ }
+ return anyType, fmt.Errorf("invalid argument for int (type %s)", args[0])
+ },
+ },
+ Float: {
+ Name: "float",
+ Opcode: Float,
+ Validate: func(args []reflect.Type) (reflect.Type, error) {
+ if len(args) != 1 {
+ return anyType, fmt.Errorf("invalid number of arguments for float (expected 1, got %d)", len(args))
+ }
+ switch kind(args[0]) {
+ case reflect.Interface:
+ return floatType, nil
+ case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ return floatType, nil
+ case reflect.String:
+ return floatType, nil
+ }
+ return anyType, fmt.Errorf("invalid argument for float (type %s)", args[0])
+ },
+ },
+}
+
+func kind(t reflect.Type) reflect.Kind {
+ if t == nil {
+ return reflect.Invalid
+ }
+ return t.Kind()
+}
diff --git a/vendor/github.com/antonmedv/expr/checker/checker.go b/vendor/github.com/antonmedv/expr/checker/checker.go
index 282031a1fb..00025a33ce 100644
--- a/vendor/github.com/antonmedv/expr/checker/checker.go
+++ b/vendor/github.com/antonmedv/expr/checker/checker.go
@@ -3,182 +3,199 @@ package checker
import (
"fmt"
"reflect"
+ "regexp"
"github.com/antonmedv/expr/ast"
+ "github.com/antonmedv/expr/builtin"
"github.com/antonmedv/expr/conf"
"github.com/antonmedv/expr/file"
"github.com/antonmedv/expr/parser"
+ "github.com/antonmedv/expr/vm"
)
-var errorType = reflect.TypeOf((*error)(nil)).Elem()
+func Check(tree *parser.Tree, config *conf.Config) (t reflect.Type, err error) {
+ if config == nil {
+ config = conf.New(nil)
+ }
-func Check(tree *parser.Tree, config *conf.Config) (reflect.Type, error) {
v := &visitor{
+ config: config,
collections: make([]reflect.Type, 0),
- }
- if config != nil {
- v.types = config.Types
- v.operators = config.Operators
- v.expect = config.Expect
- v.strict = config.Strict
- v.defaultType = config.DefaultType
+ parents: make([]ast.Node, 0),
}
- t := v.visit(tree.Node)
+ t, _ = v.visit(tree.Node)
+
+ if v.err != nil {
+ return t, v.err.Bind(tree.Source)
+ }
- if v.expect != reflect.Invalid {
- switch v.expect {
- case reflect.Int64, reflect.Float64:
- if !isNumber(t) {
- return nil, fmt.Errorf("expected %v, but got %v", v.expect, t)
+ if v.config.Expect != reflect.Invalid {
+ switch v.config.Expect {
+ case reflect.Int, reflect.Int64, reflect.Float64:
+ if !isNumber(t) && !isAny(t) {
+ return nil, fmt.Errorf("expected %v, but got %v", v.config.Expect, t)
}
default:
- if t.Kind() != v.expect {
- return nil, fmt.Errorf("expected %v, but got %v", v.expect, t)
+ if t != nil {
+ if t.Kind() == v.config.Expect {
+ return t, nil
+ }
}
+ return nil, fmt.Errorf("expected %v, but got %v", v.config.Expect, t)
}
}
- if v.err != nil {
- return t, v.err.Bind(tree.Source)
- }
-
return t, nil
}
type visitor struct {
- types conf.TypesTable
- operators conf.OperatorsTable
- expect reflect.Kind
+ config *conf.Config
collections []reflect.Type
- strict bool
- defaultType reflect.Type
+ parents []ast.Node
err *file.Error
}
-func (v *visitor) visit(node ast.Node) reflect.Type {
+type info struct {
+ method bool
+ fn *builtin.Function
+}
+
+func (v *visitor) visit(node ast.Node) (reflect.Type, info) {
var t reflect.Type
+ var i info
+ v.parents = append(v.parents, node)
switch n := node.(type) {
case *ast.NilNode:
- t = v.NilNode(n)
+ t, i = v.NilNode(n)
case *ast.IdentifierNode:
- t = v.IdentifierNode(n)
+ t, i = v.IdentifierNode(n)
case *ast.IntegerNode:
- t = v.IntegerNode(n)
+ t, i = v.IntegerNode(n)
case *ast.FloatNode:
- t = v.FloatNode(n)
+ t, i = v.FloatNode(n)
case *ast.BoolNode:
- t = v.BoolNode(n)
+ t, i = v.BoolNode(n)
case *ast.StringNode:
- t = v.StringNode(n)
+ t, i = v.StringNode(n)
case *ast.ConstantNode:
- t = v.ConstantNode(n)
+ t, i = v.ConstantNode(n)
case *ast.UnaryNode:
- t = v.UnaryNode(n)
+ t, i = v.UnaryNode(n)
case *ast.BinaryNode:
- t = v.BinaryNode(n)
- case *ast.MatchesNode:
- t = v.MatchesNode(n)
- case *ast.PropertyNode:
- t = v.PropertyNode(n)
- case *ast.IndexNode:
- t = v.IndexNode(n)
+ t, i = v.BinaryNode(n)
+ case *ast.ChainNode:
+ t, i = v.ChainNode(n)
+ case *ast.MemberNode:
+ t, i = v.MemberNode(n)
case *ast.SliceNode:
- t = v.SliceNode(n)
- case *ast.MethodNode:
- t = v.MethodNode(n)
- case *ast.FunctionNode:
- t = v.FunctionNode(n)
+ t, i = v.SliceNode(n)
+ case *ast.CallNode:
+ t, i = v.CallNode(n)
case *ast.BuiltinNode:
- t = v.BuiltinNode(n)
+ t, i = v.BuiltinNode(n)
case *ast.ClosureNode:
- t = v.ClosureNode(n)
+ t, i = v.ClosureNode(n)
case *ast.PointerNode:
- t = v.PointerNode(n)
+ t, i = v.PointerNode(n)
case *ast.ConditionalNode:
- t = v.ConditionalNode(n)
+ t, i = v.ConditionalNode(n)
case *ast.ArrayNode:
- t = v.ArrayNode(n)
+ t, i = v.ArrayNode(n)
case *ast.MapNode:
- t = v.MapNode(n)
+ t, i = v.MapNode(n)
case *ast.PairNode:
- t = v.PairNode(n)
+ t, i = v.PairNode(n)
default:
panic(fmt.Sprintf("undefined node type (%T)", node))
}
+ v.parents = v.parents[:len(v.parents)-1]
node.SetType(t)
- return t
+ return t, i
}
-func (v *visitor) error(node ast.Node, format string, args ...interface{}) reflect.Type {
+func (v *visitor) error(node ast.Node, format string, args ...interface{}) (reflect.Type, info) {
if v.err == nil { // show first error
v.err = &file.Error{
Location: node.Location(),
Message: fmt.Sprintf(format, args...),
}
}
- return interfaceType // interface represent undefined type
+ return anyType, info{} // interface represent undefined type
}
-func (v *visitor) NilNode(*ast.NilNode) reflect.Type {
- return nilType
+func (v *visitor) NilNode(*ast.NilNode) (reflect.Type, info) {
+ return nilType, info{}
}
-func (v *visitor) IdentifierNode(node *ast.IdentifierNode) reflect.Type {
- if v.types == nil {
- return interfaceType
+func (v *visitor) IdentifierNode(node *ast.IdentifierNode) (reflect.Type, info) {
+ if fn, ok := v.config.Functions[node.Value]; ok {
+ // Return anyType instead of func type as we don't know the arguments yet.
+ // The func type can be one of the fn.Types. The type will be resolved
+ // when the arguments are known in CallNode.
+ return anyType, info{fn: fn}
}
- if t, ok := v.types[node.Value]; ok {
+ if v.config.Types == nil {
+ node.Deref = true
+ } else if t, ok := v.config.Types[node.Value]; ok {
if t.Ambiguous {
return v.error(node, "ambiguous identifier %v", node.Value)
}
- return t.Type
- }
- if !v.strict {
- if v.defaultType != nil {
- return v.defaultType
- }
- return interfaceType
+ d, c := deref(t.Type)
+ node.Deref = c
+ node.Method = t.Method
+ node.MethodIndex = t.MethodIndex
+ node.FieldIndex = t.FieldIndex
+ return d, info{method: t.Method}
}
- if !node.NilSafe {
+ if v.config.Strict {
return v.error(node, "unknown name %v", node.Value)
}
- return nilType
+ if v.config.DefaultType != nil {
+ return v.config.DefaultType, info{}
+ }
+ return anyType, info{}
}
-func (v *visitor) IntegerNode(*ast.IntegerNode) reflect.Type {
- return integerType
+func (v *visitor) IntegerNode(*ast.IntegerNode) (reflect.Type, info) {
+ return integerType, info{}
}
-func (v *visitor) FloatNode(*ast.FloatNode) reflect.Type {
- return floatType
+func (v *visitor) FloatNode(*ast.FloatNode) (reflect.Type, info) {
+ return floatType, info{}
}
-func (v *visitor) BoolNode(*ast.BoolNode) reflect.Type {
- return boolType
+func (v *visitor) BoolNode(*ast.BoolNode) (reflect.Type, info) {
+ return boolType, info{}
}
-func (v *visitor) StringNode(*ast.StringNode) reflect.Type {
- return stringType
+func (v *visitor) StringNode(*ast.StringNode) (reflect.Type, info) {
+ return stringType, info{}
}
-func (v *visitor) ConstantNode(node *ast.ConstantNode) reflect.Type {
- return reflect.TypeOf(node.Value)
+func (v *visitor) ConstantNode(node *ast.ConstantNode) (reflect.Type, info) {
+ return reflect.TypeOf(node.Value), info{}
}
-func (v *visitor) UnaryNode(node *ast.UnaryNode) reflect.Type {
- t := v.visit(node.Node)
+func (v *visitor) UnaryNode(node *ast.UnaryNode) (reflect.Type, info) {
+ t, _ := v.visit(node.Node)
switch node.Operator {
case "!", "not":
if isBool(t) {
- return boolType
+ return boolType, info{}
+ }
+ if isAny(t) {
+ return boolType, info{}
}
case "+", "-":
if isNumber(t) {
- return t
+ return t, info{}
+ }
+ if isAny(t) {
+ return anyType, info{}
}
default:
@@ -188,83 +205,170 @@ func (v *visitor) UnaryNode(node *ast.UnaryNode) reflect.Type {
return v.error(node, `invalid operation: %v (mismatched type %v)`, node.Operator, t)
}
-func (v *visitor) BinaryNode(node *ast.BinaryNode) reflect.Type {
- l := v.visit(node.Left)
- r := v.visit(node.Right)
+func (v *visitor) BinaryNode(node *ast.BinaryNode) (reflect.Type, info) {
+ l, _ := v.visit(node.Left)
+ r, _ := v.visit(node.Right)
// check operator overloading
- if fns, ok := v.operators[node.Operator]; ok {
- t, _, ok := conf.FindSuitableOperatorOverload(fns, v.types, l, r)
+ if fns, ok := v.config.Operators[node.Operator]; ok {
+ t, _, ok := conf.FindSuitableOperatorOverload(fns, v.config.Types, l, r)
if ok {
- return t
+ return t, info{}
}
}
switch node.Operator {
case "==", "!=":
if isNumber(l) && isNumber(r) {
- return boolType
+ return boolType, info{}
+ }
+ if l == nil || r == nil { // It is possible to compare with nil.
+ return boolType, info{}
+ }
+ if l.Kind() == r.Kind() {
+ return boolType, info{}
}
- if isComparable(l, r) {
- return boolType
+ if isAny(l) || isAny(r) {
+ return boolType, info{}
}
case "or", "||", "and", "&&":
if isBool(l) && isBool(r) {
- return boolType
+ return boolType, info{}
+ }
+ if or(l, r, isBool) {
+ return boolType, info{}
}
- case "in", "not in":
- if isString(l) && isStruct(r) {
- return boolType
+ case "<", ">", ">=", "<=":
+ if isNumber(l) && isNumber(r) {
+ return boolType, info{}
}
- if isMap(r) {
- return boolType
+ if isString(l) && isString(r) {
+ return boolType, info{}
}
- if isArray(r) {
- return boolType
+ if isTime(l) && isTime(r) {
+ return boolType, info{}
+ }
+ if or(l, r, isNumber, isString, isTime) {
+ return boolType, info{}
}
- case "<", ">", ">=", "<=":
+ case "-":
if isNumber(l) && isNumber(r) {
- return boolType
+ return combined(l, r), info{}
}
- if isString(l) && isString(r) {
- return boolType
+ if isTime(l) && isTime(r) {
+ return durationType, info{}
+ }
+ if or(l, r, isNumber, isTime) {
+ return anyType, info{}
}
- case "/", "-", "*":
+ case "/", "*":
if isNumber(l) && isNumber(r) {
- return combined(l, r)
+ return combined(l, r), info{}
+ }
+ if or(l, r, isNumber) {
+ return anyType, info{}
}
- case "**":
+ case "**", "^":
if isNumber(l) && isNumber(r) {
- return floatType
+ return floatType, info{}
+ }
+ if or(l, r, isNumber) {
+ return floatType, info{}
}
case "%":
if isInteger(l) && isInteger(r) {
- return combined(l, r)
+ return combined(l, r), info{}
+ }
+ if or(l, r, isInteger) {
+ return anyType, info{}
}
case "+":
if isNumber(l) && isNumber(r) {
- return combined(l, r)
+ return combined(l, r), info{}
+ }
+ if isString(l) && isString(r) {
+ return stringType, info{}
+ }
+ if isTime(l) && isDuration(r) {
+ return timeType, info{}
+ }
+ if isDuration(l) && isTime(r) {
+ return timeType, info{}
+ }
+ if or(l, r, isNumber, isString, isTime, isDuration) {
+ return anyType, info{}
+ }
+
+ case "in":
+ if (isString(l) || isAny(l)) && isStruct(r) {
+ return boolType, info{}
+ }
+ if isMap(r) {
+ return boolType, info{}
+ }
+ if isArray(r) {
+ return boolType, info{}
+ }
+ if isAny(l) && anyOf(r, isString, isArray, isMap) {
+ return boolType, info{}
+ }
+ if isAny(r) {
+ return boolType, info{}
+ }
+
+ case "matches":
+ if s, ok := node.Right.(*ast.StringNode); ok {
+ r, err := regexp.Compile(s.Value)
+ if err != nil {
+ return v.error(node, err.Error())
+ }
+ node.Regexp = r
}
if isString(l) && isString(r) {
- return stringType
+ return boolType, info{}
+ }
+ if or(l, r, isString) {
+ return boolType, info{}
}
case "contains", "startsWith", "endsWith":
if isString(l) && isString(r) {
- return boolType
+ return boolType, info{}
+ }
+ if or(l, r, isString) {
+ return boolType, info{}
}
case "..":
+ ret := reflect.SliceOf(integerType)
if isInteger(l) && isInteger(r) {
- return reflect.SliceOf(integerType)
+ return ret, info{}
+ }
+ if or(l, r, isInteger) {
+ return ret, info{}
+ }
+
+ case "??":
+ if l == nil && r != nil {
+ return r, info{}
+ }
+ if l != nil && r == nil {
+ return l, info{}
+ }
+ if l == nil && r == nil {
+ return nilType, info{}
}
+ if r.AssignableTo(l) {
+ return l, info{}
+ }
+ return anyType, info{}
default:
return v.error(node, "unknown operator (%v)", node.Operator)
@@ -274,169 +378,268 @@ func (v *visitor) BinaryNode(node *ast.BinaryNode) reflect.Type {
return v.error(node, `invalid operation: %v (mismatched types %v and %v)`, node.Operator, l, r)
}
-func (v *visitor) MatchesNode(node *ast.MatchesNode) reflect.Type {
- l := v.visit(node.Left)
- r := v.visit(node.Right)
-
- if isString(l) && isString(r) {
- return boolType
- }
-
- return v.error(node, `invalid operation: matches (mismatched types %v and %v)`, l, r)
+func (v *visitor) ChainNode(node *ast.ChainNode) (reflect.Type, info) {
+ return v.visit(node.Node)
}
-func (v *visitor) PropertyNode(node *ast.PropertyNode) reflect.Type {
- t := v.visit(node.Node)
- if t, ok := fieldType(t, node.Property); ok {
- return t
+func (v *visitor) MemberNode(node *ast.MemberNode) (reflect.Type, info) {
+ base, _ := v.visit(node.Node)
+ prop, _ := v.visit(node.Property)
+
+ if name, ok := node.Property.(*ast.StringNode); ok {
+ if base == nil {
+ return v.error(node, "type %v has no field %v", base, name.Value)
+ }
+ // First, check methods defined on base type itself,
+ // independent of which type it is. Without dereferencing.
+ if m, ok := base.MethodByName(name.Value); ok {
+ if base.Kind() == reflect.Interface {
+ // In case of interface type method will not have a receiver,
+ // and to prevent checker decreasing numbers of in arguments
+ // return method type as not method (second argument is false).
+
+ // Also, we can not use m.Index here, because it will be
+ // different indexes for different types which implement
+ // the same interface.
+ return m.Type, info{}
+ } else {
+ node.Method = true
+ node.MethodIndex = m.Index
+ node.Name = name.Value
+ return m.Type, info{method: true}
+ }
+ }
}
- if !node.NilSafe {
- return v.error(node, "type %v has no field %v", t, node.Property)
+
+ if base.Kind() == reflect.Ptr {
+ base = base.Elem()
}
- return nil
-}
-func (v *visitor) IndexNode(node *ast.IndexNode) reflect.Type {
- t := v.visit(node.Node)
- i := v.visit(node.Index)
+ switch base.Kind() {
+ case reflect.Interface:
+ node.Deref = true
+ return anyType, info{}
- if t, ok := indexType(t); ok {
- if !isInteger(i) && !isString(i) {
- return v.error(node, "invalid operation: cannot use %v as index to %v", i, t)
+ case reflect.Map:
+ if prop != nil && !prop.AssignableTo(base.Key()) && !isAny(prop) {
+ return v.error(node.Property, "cannot use %v to get an element from %v", prop, base)
+ }
+ t, c := deref(base.Elem())
+ node.Deref = c
+ return t, info{}
+
+ case reflect.Array, reflect.Slice:
+ if !isInteger(prop) && !isAny(prop) {
+ return v.error(node.Property, "array elements can only be selected using an integer (got %v)", prop)
+ }
+ t, c := deref(base.Elem())
+ node.Deref = c
+ return t, info{}
+
+ case reflect.Struct:
+ if name, ok := node.Property.(*ast.StringNode); ok {
+ propertyName := name.Value
+ if field, ok := fetchField(base, propertyName); ok {
+ t, c := deref(field.Type)
+ node.Deref = c
+ node.FieldIndex = field.Index
+ node.Name = propertyName
+ return t, info{}
+ }
+ if len(v.parents) > 1 {
+ if _, ok := v.parents[len(v.parents)-2].(*ast.CallNode); ok {
+ return v.error(node, "type %v has no method %v", base, propertyName)
+ }
+ }
+ return v.error(node, "type %v has no field %v", base, propertyName)
}
- return t
}
- return v.error(node, "invalid operation: type %v does not support indexing", t)
+ return v.error(node, "type %v[%v] is undefined", base, prop)
}
-func (v *visitor) SliceNode(node *ast.SliceNode) reflect.Type {
- t := v.visit(node.Node)
+func (v *visitor) SliceNode(node *ast.SliceNode) (reflect.Type, info) {
+ t, _ := v.visit(node.Node)
- _, isIndex := indexType(t)
+ switch t.Kind() {
+ case reflect.Interface:
+ // ok
+ case reflect.String, reflect.Array, reflect.Slice:
+ // ok
+ default:
+ return v.error(node, "cannot slice %v", t)
+ }
- if isIndex || isString(t) {
- if node.From != nil {
- from := v.visit(node.From)
- if !isInteger(from) {
- return v.error(node.From, "invalid operation: non-integer slice index %v", from)
- }
+ if node.From != nil {
+ from, _ := v.visit(node.From)
+ if !isInteger(from) && !isAny(from) {
+ return v.error(node.From, "non-integer slice index %v", from)
}
- if node.To != nil {
- to := v.visit(node.To)
- if !isInteger(to) {
- return v.error(node.To, "invalid operation: non-integer slice index %v", to)
- }
+ }
+ if node.To != nil {
+ to, _ := v.visit(node.To)
+ if !isInteger(to) && !isAny(to) {
+ return v.error(node.To, "non-integer slice index %v", to)
}
- return t
}
-
- return v.error(node, "invalid operation: cannot slice %v", t)
+ return t, info{}
}
-func (v *visitor) FunctionNode(node *ast.FunctionNode) reflect.Type {
- if f, ok := v.types[node.Name]; ok {
- if fn, ok := isFuncType(f.Type); ok {
+func (v *visitor) CallNode(node *ast.CallNode) (reflect.Type, info) {
+ fn, fnInfo := v.visit(node.Callee)
- inputParamsCount := 1 // for functions
- if f.Method {
- inputParamsCount = 2 // for methods
+ if fnInfo.fn != nil {
+ f := fnInfo.fn
+ node.Func = f
+ if f.Validate != nil {
+ args := make([]reflect.Type, len(node.Arguments))
+ for i, arg := range node.Arguments {
+ args[i], _ = v.visit(arg)
}
-
- if !isInterface(fn) &&
- fn.IsVariadic() &&
- fn.NumIn() == inputParamsCount &&
- ((fn.NumOut() == 1 && // Function with one return value
- fn.Out(0).Kind() == reflect.Interface) ||
- (fn.NumOut() == 2 && // Function with one return value and an error
- fn.Out(0).Kind() == reflect.Interface &&
- fn.Out(1) == errorType)) {
- rest := fn.In(fn.NumIn() - 1) // function has only one param for functions and two for methods
- if rest.Kind() == reflect.Slice && rest.Elem().Kind() == reflect.Interface {
- node.Fast = true
+ t, err := f.Validate(args)
+ if err != nil {
+ return v.error(node, "%v", err)
+ }
+ return t, info{}
+ }
+ if len(f.Types) == 0 {
+ t, err := v.checkFunc(f.Name, functionType, false, node)
+ if err != nil {
+ if v.err == nil {
+ v.err = err
}
+ return anyType, info{}
}
-
- return v.checkFunc(fn, f.Method, node, node.Name, node.Arguments)
+ // No type was specified, so we assume the function returns any.
+ return t, info{}
+ }
+ var lastErr *file.Error
+ for _, t := range f.Types {
+ outType, err := v.checkFunc(f.Name, t, false, node)
+ if err != nil {
+ lastErr = err
+ continue
+ }
+ return outType, info{}
}
- }
- if !v.strict {
- if v.defaultType != nil {
- return v.defaultType
+ if lastErr != nil {
+ if v.err == nil {
+ v.err = lastErr
+ }
+ return anyType, info{}
}
- return interfaceType
}
- return v.error(node, "unknown func %v", node.Name)
-}
-func (v *visitor) MethodNode(node *ast.MethodNode) reflect.Type {
- t := v.visit(node.Node)
- if f, method, ok := methodType(t, node.Method); ok {
- if fn, ok := isFuncType(f); ok {
- return v.checkFunc(fn, method, node, node.Method, node.Arguments)
+ fnName := "function"
+ if identifier, ok := node.Callee.(*ast.IdentifierNode); ok {
+ fnName = identifier.Value
+ }
+ if member, ok := node.Callee.(*ast.MemberNode); ok {
+ if name, ok := member.Property.(*ast.StringNode); ok {
+ fnName = name.Value
}
}
- if !node.NilSafe {
- return v.error(node, "type %v has no method %v", t, node.Method)
+ switch fn.Kind() {
+ case reflect.Interface:
+ return anyType, info{}
+ case reflect.Func:
+ inputParamsCount := 1 // for functions
+ if fnInfo.method {
+ inputParamsCount = 2 // for methods
+ }
+ // TODO: Deprecate OpCallFast and move fn(...any) any to TypedFunc list.
+ // To do this we need add support for variadic arguments in OpCallTyped.
+ if !isAny(fn) &&
+ fn.IsVariadic() &&
+ fn.NumIn() == inputParamsCount &&
+ fn.NumOut() == 1 &&
+ fn.Out(0).Kind() == reflect.Interface {
+ rest := fn.In(fn.NumIn() - 1) // function has only one param for functions and two for methods
+ if rest.Kind() == reflect.Slice && rest.Elem().Kind() == reflect.Interface {
+ node.Fast = true
+ }
+ }
+
+ outType, err := v.checkFunc(fnName, fn, fnInfo.method, node)
+ if err != nil {
+ if v.err == nil {
+ v.err = err
+ }
+ return anyType, info{}
+ }
+
+ v.findTypedFunc(node, fn, fnInfo.method)
+
+ return outType, info{}
}
- return nil
+ return v.error(node, "%v is not callable", fn)
}
-// checkFunc checks func arguments and returns "return type" of func or method.
-func (v *visitor) checkFunc(fn reflect.Type, method bool, node ast.Node, name string, arguments []ast.Node) reflect.Type {
- if isInterface(fn) {
- return interfaceType
+func (v *visitor) checkFunc(name string, fn reflect.Type, method bool, node *ast.CallNode) (reflect.Type, *file.Error) {
+ if isAny(fn) {
+ return anyType, nil
}
if fn.NumOut() == 0 {
- return v.error(node, "func %v doesn't return value", name)
+ return anyType, &file.Error{
+ Location: node.Location(),
+ Message: fmt.Sprintf("func %v doesn't return value", name),
+ }
}
if numOut := fn.NumOut(); numOut > 2 {
- return v.error(node, "func %v returns more then two values", name)
+ return anyType, &file.Error{
+ Location: node.Location(),
+ Message: fmt.Sprintf("func %v returns more then two values", name),
+ }
}
- numIn := fn.NumIn()
-
// If func is method on an env, first argument should be a receiver,
- // and actual arguments less then numIn by one.
+ // and actual arguments less than fnNumIn by one.
+ fnNumIn := fn.NumIn()
+ if method {
+ fnNumIn--
+ }
+ // Skip first argument in case of the receiver.
+ fnInOffset := 0
if method {
- numIn--
+ fnInOffset = 1
}
if fn.IsVariadic() {
- if len(arguments) < numIn-1 {
- return v.error(node, "not enough arguments to call %v", name)
+ if len(node.Arguments) < fnNumIn-1 {
+ return anyType, &file.Error{
+ Location: node.Location(),
+ Message: fmt.Sprintf("not enough arguments to call %v", name),
+ }
}
} else {
- if len(arguments) > numIn {
- return v.error(node, "too many arguments to call %v", name)
+ if len(node.Arguments) > fnNumIn {
+ return anyType, &file.Error{
+ Location: node.Location(),
+ Message: fmt.Sprintf("too many arguments to call %v", name),
+ }
}
- if len(arguments) < numIn {
- return v.error(node, "not enough arguments to call %v", name)
+ if len(node.Arguments) < fnNumIn {
+ return anyType, &file.Error{
+ Location: node.Location(),
+ Message: fmt.Sprintf("not enough arguments to call %v", name),
+ }
}
}
- offset := 0
-
- // Skip first argument in case of the receiver.
- if method {
- offset = 1
- }
-
- for i, arg := range arguments {
- t := v.visit(arg)
+ for i, arg := range node.Arguments {
+ t, _ := v.visit(arg)
var in reflect.Type
- if fn.IsVariadic() && i >= numIn-1 {
+ if fn.IsVariadic() && i >= fnNumIn-1 {
// For variadic arguments fn(xs ...int), go replaces type of xs (int) with ([]int).
// As we compare arguments one by one, we need underling type.
- in = fn.In(fn.NumIn() - 1)
- in, _ = indexType(in)
+ in = fn.In(fn.NumIn() - 1).Elem()
} else {
- in = fn.In(i + offset)
+ in = fn.In(i + fnInOffset)
}
- if isIntegerOrArithmeticOperation(arg) {
+ if isIntegerOrArithmeticOperation(arg) && (isInteger(in) || isFloat(in)) {
t = in
setTypeForIntegers(arg, t)
}
@@ -446,104 +649,99 @@ func (v *visitor) checkFunc(fn reflect.Type, method bool, node ast.Node, name st
}
if !t.AssignableTo(in) && t.Kind() != reflect.Interface {
- return v.error(arg, "cannot use %v as argument (type %v) to call %v ", t, in, name)
+ return anyType, &file.Error{
+ Location: arg.Location(),
+ Message: fmt.Sprintf("cannot use %v as argument (type %v) to call %v ", t, in, name),
+ }
}
}
- return fn.Out(0)
+ return fn.Out(0), nil
}
-func (v *visitor) BuiltinNode(node *ast.BuiltinNode) reflect.Type {
+func (v *visitor) BuiltinNode(node *ast.BuiltinNode) (reflect.Type, info) {
switch node.Name {
-
- case "len":
- param := v.visit(node.Arguments[0])
- if isArray(param) || isMap(param) || isString(param) {
- return integerType
- }
- return v.error(node, "invalid argument for len (type %v)", param)
-
case "all", "none", "any", "one":
- collection := v.visit(node.Arguments[0])
- if !isArray(collection) {
+ collection, _ := v.visit(node.Arguments[0])
+ if !isArray(collection) && !isAny(collection) {
return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection)
}
v.collections = append(v.collections, collection)
- closure := v.visit(node.Arguments[1])
+ closure, _ := v.visit(node.Arguments[1])
v.collections = v.collections[:len(v.collections)-1]
if isFunc(closure) &&
closure.NumOut() == 1 &&
- closure.NumIn() == 1 && isInterface(closure.In(0)) {
+ closure.NumIn() == 1 && isAny(closure.In(0)) {
- if !isBool(closure.Out(0)) {
+ if !isBool(closure.Out(0)) && !isAny(closure.Out(0)) {
return v.error(node.Arguments[1], "closure should return boolean (got %v)", closure.Out(0).String())
}
- return boolType
+ return boolType, info{}
}
return v.error(node.Arguments[1], "closure should has one input and one output param")
case "filter":
- collection := v.visit(node.Arguments[0])
- if !isArray(collection) {
+ collection, _ := v.visit(node.Arguments[0])
+ if !isArray(collection) && !isAny(collection) {
return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection)
}
v.collections = append(v.collections, collection)
- closure := v.visit(node.Arguments[1])
+ closure, _ := v.visit(node.Arguments[1])
v.collections = v.collections[:len(v.collections)-1]
if isFunc(closure) &&
closure.NumOut() == 1 &&
- closure.NumIn() == 1 && isInterface(closure.In(0)) {
+ closure.NumIn() == 1 && isAny(closure.In(0)) {
- if !isBool(closure.Out(0)) {
+ if !isBool(closure.Out(0)) && !isAny(closure.Out(0)) {
return v.error(node.Arguments[1], "closure should return boolean (got %v)", closure.Out(0).String())
}
- if isInterface(collection) {
- return arrayType
+ if isAny(collection) {
+ return arrayType, info{}
}
- return reflect.SliceOf(collection.Elem())
+ return reflect.SliceOf(collection.Elem()), info{}
}
return v.error(node.Arguments[1], "closure should has one input and one output param")
case "map":
- collection := v.visit(node.Arguments[0])
- if !isArray(collection) {
+ collection, _ := v.visit(node.Arguments[0])
+ if !isArray(collection) && !isAny(collection) {
return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection)
}
v.collections = append(v.collections, collection)
- closure := v.visit(node.Arguments[1])
+ closure, _ := v.visit(node.Arguments[1])
v.collections = v.collections[:len(v.collections)-1]
if isFunc(closure) &&
closure.NumOut() == 1 &&
- closure.NumIn() == 1 && isInterface(closure.In(0)) {
+ closure.NumIn() == 1 && isAny(closure.In(0)) {
- return reflect.SliceOf(closure.Out(0))
+ return reflect.SliceOf(closure.Out(0)), info{}
}
return v.error(node.Arguments[1], "closure should has one input and one output param")
case "count":
- collection := v.visit(node.Arguments[0])
- if !isArray(collection) {
+ collection, _ := v.visit(node.Arguments[0])
+ if !isArray(collection) && !isAny(collection) {
return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection)
}
v.collections = append(v.collections, collection)
- closure := v.visit(node.Arguments[1])
+ closure, _ := v.visit(node.Arguments[1])
v.collections = v.collections[:len(v.collections)-1]
if isFunc(closure) &&
closure.NumOut() == 1 &&
- closure.NumIn() == 1 && isInterface(closure.In(0)) {
- if !isBool(closure.Out(0)) {
+ closure.NumIn() == 1 && isAny(closure.In(0)) {
+ if !isBool(closure.Out(0)) && !isAny(closure.Out(0)) {
return v.error(node.Arguments[1], "closure should return boolean (got %v)", closure.Out(0).String())
}
- return integerType
+ return integerType, info{}
}
return v.error(node.Arguments[1], "closure should has one input and one output param")
@@ -552,64 +750,107 @@ func (v *visitor) BuiltinNode(node *ast.BuiltinNode) reflect.Type {
}
}
-func (v *visitor) ClosureNode(node *ast.ClosureNode) reflect.Type {
- t := v.visit(node.Node)
- return reflect.FuncOf([]reflect.Type{interfaceType}, []reflect.Type{t}, false)
+func (v *visitor) ClosureNode(node *ast.ClosureNode) (reflect.Type, info) {
+ t, _ := v.visit(node.Node)
+ return reflect.FuncOf([]reflect.Type{anyType}, []reflect.Type{t}, false), info{}
}
-func (v *visitor) PointerNode(node *ast.PointerNode) reflect.Type {
+func (v *visitor) PointerNode(node *ast.PointerNode) (reflect.Type, info) {
if len(v.collections) == 0 {
return v.error(node, "cannot use pointer accessor outside closure")
}
collection := v.collections[len(v.collections)-1]
-
- if t, ok := indexType(collection); ok {
- return t
+ switch collection.Kind() {
+ case reflect.Interface:
+ return anyType, info{}
+ case reflect.Array, reflect.Slice:
+ return collection.Elem(), info{}
}
return v.error(node, "cannot use %v as array", collection)
}
-func (v *visitor) ConditionalNode(node *ast.ConditionalNode) reflect.Type {
- c := v.visit(node.Cond)
- if !isBool(c) {
+func (v *visitor) ConditionalNode(node *ast.ConditionalNode) (reflect.Type, info) {
+ c, _ := v.visit(node.Cond)
+ if !isBool(c) && !isAny(c) {
return v.error(node.Cond, "non-bool expression (type %v) used as condition", c)
}
- t1 := v.visit(node.Exp1)
- t2 := v.visit(node.Exp2)
+ t1, _ := v.visit(node.Exp1)
+ t2, _ := v.visit(node.Exp2)
if t1 == nil && t2 != nil {
- return t2
+ return t2, info{}
}
if t1 != nil && t2 == nil {
- return t1
+ return t1, info{}
}
if t1 == nil && t2 == nil {
- return nilType
+ return nilType, info{}
}
if t1.AssignableTo(t2) {
- return t1
+ return t1, info{}
}
- return interfaceType
+ return anyType, info{}
}
-func (v *visitor) ArrayNode(node *ast.ArrayNode) reflect.Type {
+func (v *visitor) ArrayNode(node *ast.ArrayNode) (reflect.Type, info) {
for _, node := range node.Nodes {
- _ = v.visit(node)
+ v.visit(node)
}
- return arrayType
+ return arrayType, info{}
}
-func (v *visitor) MapNode(node *ast.MapNode) reflect.Type {
+func (v *visitor) MapNode(node *ast.MapNode) (reflect.Type, info) {
for _, pair := range node.Pairs {
v.visit(pair)
}
- return mapType
+ return mapType, info{}
}
-func (v *visitor) PairNode(node *ast.PairNode) reflect.Type {
+func (v *visitor) PairNode(node *ast.PairNode) (reflect.Type, info) {
v.visit(node.Key)
v.visit(node.Value)
- return nilType
+ return nilType, info{}
+}
+
+func (v *visitor) findTypedFunc(node *ast.CallNode, fn reflect.Type, method bool) {
+ // OnCallTyped doesn't work for functions with variadic arguments,
+ // and doesn't work named function, like `type MyFunc func() int`.
+ // In PkgPath() is an empty string, it's unnamed function.
+ if !fn.IsVariadic() && fn.PkgPath() == "" {
+ fnNumIn := fn.NumIn()
+ fnInOffset := 0
+ if method {
+ fnNumIn--
+ fnInOffset = 1
+ }
+ funcTypes:
+ for i := range vm.FuncTypes {
+ if i == 0 {
+ continue
+ }
+ typed := reflect.ValueOf(vm.FuncTypes[i]).Elem().Type()
+ if typed.Kind() != reflect.Func {
+ continue
+ }
+ if typed.NumOut() != fn.NumOut() {
+ continue
+ }
+ for j := 0; j < typed.NumOut(); j++ {
+ if typed.Out(j) != fn.Out(j) {
+ continue funcTypes
+ }
+ }
+ if typed.NumIn() != fnNumIn {
+ continue
+ }
+ for j := 0; j < typed.NumIn(); j++ {
+ if typed.In(j) != fn.In(j+fnInOffset) {
+ continue funcTypes
+ }
+ }
+ node.Typed = i
+ }
+ }
}
diff --git a/vendor/github.com/antonmedv/expr/checker/types.go b/vendor/github.com/antonmedv/expr/checker/types.go
index 756ed8f5db..7ccd894809 100644
--- a/vendor/github.com/antonmedv/expr/checker/types.go
+++ b/vendor/github.com/antonmedv/expr/checker/types.go
@@ -2,88 +2,60 @@ package checker
import (
"reflect"
+ "time"
"github.com/antonmedv/expr/ast"
+ "github.com/antonmedv/expr/conf"
)
var (
- nilType = reflect.TypeOf(nil)
- boolType = reflect.TypeOf(true)
- integerType = reflect.TypeOf(int(0))
- floatType = reflect.TypeOf(float64(0))
- stringType = reflect.TypeOf("")
- arrayType = reflect.TypeOf([]interface{}{})
- mapType = reflect.TypeOf(map[string]interface{}{})
- interfaceType = reflect.TypeOf(new(interface{})).Elem()
+ nilType = reflect.TypeOf(nil)
+ boolType = reflect.TypeOf(true)
+ integerType = reflect.TypeOf(0)
+ floatType = reflect.TypeOf(float64(0))
+ stringType = reflect.TypeOf("")
+ arrayType = reflect.TypeOf([]interface{}{})
+ mapType = reflect.TypeOf(map[string]interface{}{})
+ anyType = reflect.TypeOf(new(interface{})).Elem()
+ timeType = reflect.TypeOf(time.Time{})
+ durationType = reflect.TypeOf(time.Duration(0))
+ functionType = reflect.TypeOf(new(func(...interface{}) (interface{}, error))).Elem()
+ errorType = reflect.TypeOf((*error)(nil)).Elem()
)
-func typeWeight(t reflect.Type) int {
- switch t.Kind() {
- case reflect.Uint:
- return 1
- case reflect.Uint8:
- return 2
- case reflect.Uint16:
- return 3
- case reflect.Uint32:
- return 4
- case reflect.Uint64:
- return 5
- case reflect.Int:
- return 6
- case reflect.Int8:
- return 7
- case reflect.Int16:
- return 8
- case reflect.Int32:
- return 9
- case reflect.Int64:
- return 10
- case reflect.Float32:
- return 11
- case reflect.Float64:
- return 12
- default:
- return 0
- }
-}
-
func combined(a, b reflect.Type) reflect.Type {
- if typeWeight(a) > typeWeight(b) {
+ if a.Kind() == b.Kind() {
return a
- } else {
- return b
}
+ if isFloat(a) || isFloat(b) {
+ return floatType
+ }
+ return integerType
}
-func dereference(t reflect.Type) reflect.Type {
- if t == nil {
- return nil
- }
- if t.Kind() == reflect.Ptr {
- t = dereference(t.Elem())
+func anyOf(t reflect.Type, fns ...func(reflect.Type) bool) bool {
+ for _, fn := range fns {
+ if fn(t) {
+ return true
+ }
}
- return t
+ return false
}
-func isComparable(l, r reflect.Type) bool {
- l = dereference(l)
- r = dereference(r)
-
- if l == nil || r == nil { // It is possible to compare with nil.
+func or(l, r reflect.Type, fns ...func(reflect.Type) bool) bool {
+ if isAny(l) && isAny(r) {
return true
}
- if l.Kind() == r.Kind() {
+ if isAny(l) && anyOf(r, fns...) {
return true
}
- if isInterface(l) || isInterface(r) {
+ if isAny(r) && anyOf(l, fns...) {
return true
}
return false
}
-func isInterface(t reflect.Type) bool {
- t = dereference(t)
+func isAny(t reflect.Type) bool {
if t != nil {
switch t.Kind() {
case reflect.Interface:
@@ -94,28 +66,22 @@ func isInterface(t reflect.Type) bool {
}
func isInteger(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
fallthrough
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
return true
- case reflect.Interface:
- return true
}
}
return false
}
func isFloat(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
case reflect.Float32, reflect.Float64:
return true
- case reflect.Interface:
- return true
}
}
return false
@@ -125,62 +91,75 @@ func isNumber(t reflect.Type) bool {
return isInteger(t) || isFloat(t)
}
+func isTime(t reflect.Type) bool {
+ if t != nil {
+ switch t {
+ case timeType:
+ return true
+ }
+ }
+ return isAny(t)
+}
+
+func isDuration(t reflect.Type) bool {
+ if t != nil {
+ switch t {
+ case durationType:
+ return true
+ }
+ }
+ return false
+}
+
func isBool(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
case reflect.Bool:
return true
- case reflect.Interface:
- return true
}
}
return false
}
func isString(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
case reflect.String:
return true
- case reflect.Interface:
- return true
}
}
return false
}
func isArray(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
+ case reflect.Ptr:
+ return isArray(t.Elem())
case reflect.Slice, reflect.Array:
return true
- case reflect.Interface:
- return true
}
}
return false
}
func isMap(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
+ case reflect.Ptr:
+ return isMap(t.Elem())
case reflect.Map:
return true
- case reflect.Interface:
- return true
}
}
return false
}
func isStruct(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
+ case reflect.Ptr:
+ return isStruct(t.Elem())
case reflect.Struct:
return true
}
@@ -189,9 +168,10 @@ func isStruct(t reflect.Type) bool {
}
func isFunc(t reflect.Type) bool {
- t = dereference(t)
if t != nil {
switch t.Kind() {
+ case reflect.Ptr:
+ return isFunc(t.Elem())
case reflect.Func:
return true
}
@@ -199,117 +179,50 @@ func isFunc(t reflect.Type) bool {
return false
}
-func fieldType(ntype reflect.Type, name string) (reflect.Type, bool) {
- ntype = dereference(ntype)
- if ntype != nil {
- switch ntype.Kind() {
- case reflect.Interface:
- return interfaceType, true
- case reflect.Struct:
- // First check all struct's fields.
- for i := 0; i < ntype.NumField(); i++ {
- f := ntype.Field(i)
- if f.Name == name {
- return f.Type, true
- }
- }
-
- // Second check fields of embedded structs.
- for i := 0; i < ntype.NumField(); i++ {
- f := ntype.Field(i)
- if f.Anonymous {
- if t, ok := fieldType(f.Type, name); ok {
- return t, true
- }
- }
- }
- case reflect.Map:
- return ntype.Elem(), true
- }
- }
-
- return nil, false
-}
-
-func methodType(t reflect.Type, name string) (reflect.Type, bool, bool) {
+func fetchField(t reflect.Type, name string) (reflect.StructField, bool) {
if t != nil {
- // First, check methods defined on type itself,
- // independent of which type it is.
- if m, ok := t.MethodByName(name); ok {
- if t.Kind() == reflect.Interface {
- // In case of interface type method will not have a receiver,
- // and to prevent checker decreasing numbers of in arguments
- // return method type as not method (second argument is false).
- return m.Type, false, true
- } else {
- return m.Type, true, true
+ // First check all structs fields.
+ for i := 0; i < t.NumField(); i++ {
+ field := t.Field(i)
+ // Search all fields, even embedded structs.
+ if conf.FieldName(field) == name {
+ return field, true
}
}
- d := t
- if t.Kind() == reflect.Ptr {
- d = t.Elem()
- }
-
- switch d.Kind() {
- case reflect.Interface:
- return interfaceType, false, true
- case reflect.Struct:
- // First, check all struct's fields.
- for i := 0; i < d.NumField(); i++ {
- f := d.Field(i)
- if !f.Anonymous && f.Name == name {
- return f.Type, false, true
- }
- }
-
- // Second, check fields of embedded structs.
- for i := 0; i < d.NumField(); i++ {
- f := d.Field(i)
- if f.Anonymous {
- if t, method, ok := methodType(f.Type, name); ok {
- return t, method, true
- }
+ // Second check fields of embedded structs.
+ for i := 0; i < t.NumField(); i++ {
+ anon := t.Field(i)
+ if anon.Anonymous {
+ if field, ok := fetchField(anon.Type, name); ok {
+ field.Index = append(anon.Index, field.Index...)
+ return field, true
}
}
-
- case reflect.Map:
- return d.Elem(), false, true
}
}
- return nil, false, false
+ return reflect.StructField{}, false
}
-func indexType(ntype reflect.Type) (reflect.Type, bool) {
- ntype = dereference(ntype)
- if ntype == nil {
+func deref(t reflect.Type) (reflect.Type, bool) {
+ if t == nil {
return nil, false
}
-
- switch ntype.Kind() {
- case reflect.Interface:
- return interfaceType, true
- case reflect.Map, reflect.Array, reflect.Slice:
- return ntype.Elem(), true
- }
-
- return nil, false
-}
-
-func isFuncType(ntype reflect.Type) (reflect.Type, bool) {
- ntype = dereference(ntype)
- if ntype == nil {
- return nil, false
+ if t.Kind() == reflect.Interface {
+ return t, true
}
-
- switch ntype.Kind() {
- case reflect.Interface:
- return interfaceType, true
- case reflect.Func:
- return ntype, true
+ found := false
+ for t != nil && t.Kind() == reflect.Ptr {
+ e := t.Elem()
+ switch e.Kind() {
+ case reflect.Struct, reflect.Map, reflect.Array, reflect.Slice:
+ return t, false
+ default:
+ found = true
+ t = e
+ }
}
-
- return nil, false
+ return t, found
}
func isIntegerOrArithmeticOperation(node ast.Node) bool {
diff --git a/vendor/github.com/antonmedv/expr/compiler/compiler.go b/vendor/github.com/antonmedv/expr/compiler/compiler.go
index 36ac92f233..3cd32af0f2 100644
--- a/vendor/github.com/antonmedv/expr/compiler/compiler.go
+++ b/vendor/github.com/antonmedv/expr/compiler/compiler.go
@@ -1,9 +1,7 @@
package compiler
import (
- "encoding/binary"
"fmt"
- "math"
"reflect"
"github.com/antonmedv/expr/ast"
@@ -11,6 +9,11 @@ import (
"github.com/antonmedv/expr/file"
"github.com/antonmedv/expr/parser"
. "github.com/antonmedv/expr/vm"
+ "github.com/antonmedv/expr/vm/runtime"
+)
+
+const (
+ placeholder = 12345
)
func Compile(tree *parser.Tree, config *conf.Config) (program *Program, err error) {
@@ -21,8 +24,9 @@ func Compile(tree *parser.Tree, config *conf.Config) (program *Program, err erro
}()
c := &compiler{
- index: make(map[interface{}]uint16),
- locations: make(map[int]file.Location),
+ locations: make([]file.Location, 0),
+ constantsIndex: make(map[interface{}]int),
+ functionsIndex: make(map[string]int),
}
if config != nil {
@@ -33,87 +37,115 @@ func Compile(tree *parser.Tree, config *conf.Config) (program *Program, err erro
c.compile(tree.Node)
switch c.cast {
+ case reflect.Int:
+ c.emit(OpCast, 0)
case reflect.Int64:
- c.emit(OpCast, encode(0)...)
+ c.emit(OpCast, 1)
case reflect.Float64:
- c.emit(OpCast, encode(1)...)
+ c.emit(OpCast, 2)
}
program = &Program{
+ Node: tree.Node,
Source: tree.Source,
Locations: c.locations,
Constants: c.constants,
Bytecode: c.bytecode,
+ Arguments: c.arguments,
+ Functions: c.functions,
}
return
}
type compiler struct {
- locations map[int]file.Location
- constants []interface{}
- bytecode []byte
- index map[interface{}]uint16
- mapEnv bool
- cast reflect.Kind
- nodes []ast.Node
-}
-
-func (c *compiler) emit(op byte, b ...byte) int {
+ locations []file.Location
+ bytecode []Opcode
+ constants []interface{}
+ constantsIndex map[interface{}]int
+ functions []Function
+ functionsIndex map[string]int
+ mapEnv bool
+ cast reflect.Kind
+ nodes []ast.Node
+ chains [][]int
+ arguments []int
+}
+
+func (c *compiler) emitLocation(loc file.Location, op Opcode, arg int) int {
c.bytecode = append(c.bytecode, op)
current := len(c.bytecode)
- c.bytecode = append(c.bytecode, b...)
+ c.arguments = append(c.arguments, arg)
+ c.locations = append(c.locations, loc)
+ return current
+}
+func (c *compiler) emit(op Opcode, args ...int) int {
+ arg := 0
+ if len(args) > 1 {
+ panic("too many arguments")
+ }
+ if len(args) == 1 {
+ arg = args[0]
+ }
var loc file.Location
if len(c.nodes) > 0 {
loc = c.nodes[len(c.nodes)-1].Location()
}
- c.locations[current-1] = loc
-
- return current
+ return c.emitLocation(loc, op, arg)
}
func (c *compiler) emitPush(value interface{}) int {
- return c.emit(OpPush, c.makeConstant(value)...)
+ return c.emit(OpPush, c.addConstant(value))
}
-func (c *compiler) makeConstant(i interface{}) []byte {
- hashable := true
- switch reflect.TypeOf(i).Kind() {
- case reflect.Slice, reflect.Map:
- hashable = false
+func (c *compiler) addConstant(constant interface{}) int {
+ indexable := true
+ hash := constant
+ switch reflect.TypeOf(constant).Kind() {
+ case reflect.Slice, reflect.Map, reflect.Struct:
+ indexable = false
}
-
- if hashable {
- if p, ok := c.index[i]; ok {
- return encode(p)
- }
+ if field, ok := constant.(*runtime.Field); ok {
+ indexable = true
+ hash = fmt.Sprintf("%v", field)
}
-
- c.constants = append(c.constants, i)
- if len(c.constants) > math.MaxUint16 {
- panic("exceeded constants max space limit")
+ if method, ok := constant.(*runtime.Method); ok {
+ indexable = true
+ hash = fmt.Sprintf("%v", method)
}
-
- p := uint16(len(c.constants) - 1)
- if hashable {
- c.index[i] = p
+ if indexable {
+ if p, ok := c.constantsIndex[hash]; ok {
+ return p
+ }
+ }
+ c.constants = append(c.constants, constant)
+ p := len(c.constants) - 1
+ if indexable {
+ c.constantsIndex[hash] = p
}
- return encode(p)
+ return p
}
-func (c *compiler) placeholder() []byte {
- return []byte{0xFF, 0xFF}
+func (c *compiler) addFunction(node *ast.CallNode) int {
+ if node.Func == nil {
+ panic("function is nil")
+ }
+ if p, ok := c.functionsIndex[node.Func.Name]; ok {
+ return p
+ }
+ p := len(c.functions)
+ c.functions = append(c.functions, node.Func.Func)
+ c.functionsIndex[node.Func.Name] = p
+ return p
}
func (c *compiler) patchJump(placeholder int) {
- offset := len(c.bytecode) - 2 - placeholder
- b := encode(uint16(offset))
- c.bytecode[placeholder] = b[0]
- c.bytecode[placeholder+1] = b[1]
+ offset := len(c.bytecode) - placeholder
+ c.arguments[placeholder-1] = offset
}
-func (c *compiler) calcBackwardJump(to int) []byte {
- return encode(uint16(len(c.bytecode) + 1 + 2 - to))
+func (c *compiler) calcBackwardJump(to int) int {
+ return len(c.bytecode) + 1 - to
}
func (c *compiler) compile(node ast.Node) {
@@ -141,18 +173,14 @@ func (c *compiler) compile(node ast.Node) {
c.UnaryNode(n)
case *ast.BinaryNode:
c.BinaryNode(n)
- case *ast.MatchesNode:
- c.MatchesNode(n)
- case *ast.PropertyNode:
- c.PropertyNode(n)
- case *ast.IndexNode:
- c.IndexNode(n)
+ case *ast.ChainNode:
+ c.ChainNode(n)
+ case *ast.MemberNode:
+ c.MemberNode(n)
case *ast.SliceNode:
c.SliceNode(n)
- case *ast.MethodNode:
- c.MethodNode(n)
- case *ast.FunctionNode:
- c.FunctionNode(n)
+ case *ast.CallNode:
+ c.CallNode(n)
case *ast.BuiltinNode:
c.BuiltinNode(n)
case *ast.ClosureNode:
@@ -172,18 +200,30 @@ func (c *compiler) compile(node ast.Node) {
}
}
-func (c *compiler) NilNode(node *ast.NilNode) {
+func (c *compiler) NilNode(_ *ast.NilNode) {
c.emit(OpNil)
}
func (c *compiler) IdentifierNode(node *ast.IdentifierNode) {
- v := c.makeConstant(node.Value)
if c.mapEnv {
- c.emit(OpFetchMap, v...)
- } else if node.NilSafe {
- c.emit(OpFetchNilSafe, v...)
+ c.emit(OpLoadFast, c.addConstant(node.Value))
+ } else if len(node.FieldIndex) > 0 {
+ c.emit(OpLoadField, c.addConstant(&runtime.Field{
+ Index: node.FieldIndex,
+ Path: []string{node.Value},
+ }))
+ } else if node.Method {
+ c.emit(OpLoadMethod, c.addConstant(&runtime.Method{
+ Name: node.Value,
+ Index: node.MethodIndex,
+ }))
} else {
- c.emit(OpFetch, v...)
+ c.emit(OpLoadConst, c.addConstant(node.Value))
+ }
+ if node.Deref {
+ c.emit(OpDeref)
+ } else if node.Type() == nil {
+ c.emit(OpDeref)
}
}
@@ -193,15 +233,13 @@ func (c *compiler) IntegerNode(node *ast.IntegerNode) {
c.emitPush(node.Value)
return
}
-
switch t.Kind() {
case reflect.Float32:
c.emitPush(float32(node.Value))
case reflect.Float64:
c.emitPush(float64(node.Value))
-
case reflect.Int:
- c.emitPush(int(node.Value))
+ c.emitPush(node.Value)
case reflect.Int8:
c.emitPush(int8(node.Value))
case reflect.Int16:
@@ -210,7 +248,6 @@ func (c *compiler) IntegerNode(node *ast.IntegerNode) {
c.emitPush(int32(node.Value))
case reflect.Int64:
c.emitPush(int64(node.Value))
-
case reflect.Uint:
c.emitPush(uint(node.Value))
case reflect.Uint8:
@@ -221,7 +258,6 @@ func (c *compiler) IntegerNode(node *ast.IntegerNode) {
c.emitPush(uint32(node.Value))
case reflect.Uint64:
c.emitPush(uint64(node.Value))
-
default:
c.emitPush(node.Value)
}
@@ -291,29 +327,18 @@ func (c *compiler) BinaryNode(node *ast.BinaryNode) {
case "or", "||":
c.compile(node.Left)
- end := c.emit(OpJumpIfTrue, c.placeholder()...)
+ end := c.emit(OpJumpIfTrue, placeholder)
c.emit(OpPop)
c.compile(node.Right)
c.patchJump(end)
case "and", "&&":
c.compile(node.Left)
- end := c.emit(OpJumpIfFalse, c.placeholder()...)
+ end := c.emit(OpJumpIfFalse, placeholder)
c.emit(OpPop)
c.compile(node.Right)
c.patchJump(end)
- case "in":
- c.compile(node.Left)
- c.compile(node.Right)
- c.emit(OpIn)
-
- case "not in":
- c.compile(node.Left)
- c.compile(node.Right)
- c.emit(OpIn)
- c.emit(OpNot)
-
case "<":
c.compile(node.Left)
c.compile(node.Right)
@@ -359,11 +384,26 @@ func (c *compiler) BinaryNode(node *ast.BinaryNode) {
c.compile(node.Right)
c.emit(OpModulo)
- case "**":
+ case "**", "^":
c.compile(node.Left)
c.compile(node.Right)
c.emit(OpExponent)
+ case "in":
+ c.compile(node.Left)
+ c.compile(node.Right)
+ c.emit(OpIn)
+
+ case "matches":
+ if node.Regexp != nil {
+ c.compile(node.Left)
+ c.emit(OpMatchesConst, c.addConstant(node.Regexp))
+ } else {
+ c.compile(node.Left)
+ c.compile(node.Right)
+ c.emit(OpMatches)
+ }
+
case "contains":
c.compile(node.Left)
c.compile(node.Right)
@@ -384,36 +424,94 @@ func (c *compiler) BinaryNode(node *ast.BinaryNode) {
c.compile(node.Right)
c.emit(OpRange)
+ case "??":
+ c.compile(node.Left)
+ end := c.emit(OpJumpIfNotNil, placeholder)
+ c.emit(OpPop)
+ c.compile(node.Right)
+ c.patchJump(end)
+
default:
panic(fmt.Sprintf("unknown operator (%v)", node.Operator))
}
}
-func (c *compiler) MatchesNode(node *ast.MatchesNode) {
- if node.Regexp != nil {
- c.compile(node.Left)
- c.emit(OpMatchesConst, c.makeConstant(node.Regexp)...)
- return
+func (c *compiler) ChainNode(node *ast.ChainNode) {
+ c.chains = append(c.chains, []int{})
+ c.compile(node.Node)
+ // Chain activate (got nit somewhere)
+ for _, ph := range c.chains[len(c.chains)-1] {
+ c.patchJump(ph)
}
- c.compile(node.Left)
- c.compile(node.Right)
- c.emit(OpMatches)
+ c.chains = c.chains[:len(c.chains)-1]
}
-func (c *compiler) PropertyNode(node *ast.PropertyNode) {
- c.compile(node.Node)
- if !node.NilSafe {
- c.emit(OpProperty, c.makeConstant(node.Property)...)
+func (c *compiler) MemberNode(node *ast.MemberNode) {
+ if node.Method {
+ c.compile(node.Node)
+ c.emit(OpMethod, c.addConstant(&runtime.Method{
+ Name: node.Name,
+ Index: node.MethodIndex,
+ }))
+ return
+ }
+ op := OpFetch
+ original := node
+ index := node.FieldIndex
+ path := []string{node.Name}
+ base := node.Node
+ if len(node.FieldIndex) > 0 {
+ op = OpFetchField
+ for !node.Optional {
+ ident, ok := base.(*ast.IdentifierNode)
+ if ok && len(ident.FieldIndex) > 0 {
+ if ident.Deref {
+ panic("IdentifierNode should not be dereferenced")
+ }
+ index = append(ident.FieldIndex, index...)
+ path = append([]string{ident.Value}, path...)
+ c.emitLocation(ident.Location(), OpLoadField, c.addConstant(
+ &runtime.Field{Index: index, Path: path},
+ ))
+ goto deref
+ }
+ member, ok := base.(*ast.MemberNode)
+ if ok && len(member.FieldIndex) > 0 {
+ if member.Deref {
+ panic("MemberNode should not be dereferenced")
+ }
+ index = append(member.FieldIndex, index...)
+ path = append([]string{member.Name}, path...)
+ node = member
+ base = member.Node
+ } else {
+ break
+ }
+ }
+ }
+
+ c.compile(base)
+ if node.Optional {
+ ph := c.emit(OpJumpIfNil, placeholder)
+ c.chains[len(c.chains)-1] = append(c.chains[len(c.chains)-1], ph)
+ }
+
+ if op == OpFetch {
+ c.compile(node.Property)
+ c.emit(OpFetch)
} else {
- c.emit(OpPropertyNilSafe, c.makeConstant(node.Property)...)
+ c.emitLocation(node.Location(), op, c.addConstant(
+ &runtime.Field{Index: index, Path: path},
+ ))
}
-}
-func (c *compiler) IndexNode(node *ast.IndexNode) {
- c.compile(node.Node)
- c.compile(node.Index)
- c.emit(OpIndex)
+deref:
+ if original.Deref {
+ c.emit(OpDeref)
+ } else if original.Type() == nil {
+ c.emit(OpDeref)
+ }
}
func (c *compiler) SliceNode(node *ast.SliceNode) {
@@ -431,44 +529,50 @@ func (c *compiler) SliceNode(node *ast.SliceNode) {
c.emit(OpSlice)
}
-func (c *compiler) MethodNode(node *ast.MethodNode) {
- c.compile(node.Node)
+func (c *compiler) CallNode(node *ast.CallNode) {
for _, arg := range node.Arguments {
c.compile(arg)
}
- if !node.NilSafe {
- c.emit(OpMethod, c.makeConstant(Call{Name: node.Method, Size: len(node.Arguments)})...)
- } else {
- c.emit(OpMethodNilSafe, c.makeConstant(Call{Name: node.Method, Size: len(node.Arguments)})...)
- }
-}
-
-func (c *compiler) FunctionNode(node *ast.FunctionNode) {
- for _, arg := range node.Arguments {
- c.compile(arg)
+ if node.Func != nil {
+ if node.Func.Opcode > 0 {
+ c.emit(OpBuiltin, node.Func.Opcode)
+ return
+ }
+ switch len(node.Arguments) {
+ case 0:
+ c.emit(OpCall0, c.addFunction(node))
+ case 1:
+ c.emit(OpCall1, c.addFunction(node))
+ case 2:
+ c.emit(OpCall2, c.addFunction(node))
+ case 3:
+ c.emit(OpCall3, c.addFunction(node))
+ default:
+ c.emit(OpLoadFunc, c.addFunction(node))
+ c.emit(OpCallN, len(node.Arguments))
+ }
+ return
}
- op := OpCall
- if node.Fast {
- op = OpCallFast
+ c.compile(node.Callee)
+ if node.Typed > 0 {
+ c.emit(OpCallTyped, node.Typed)
+ return
+ } else if node.Fast {
+ c.emit(OpCallFast, len(node.Arguments))
+ } else {
+ c.emit(OpCall, len(node.Arguments))
}
- c.emit(op, c.makeConstant(Call{Name: node.Name, Size: len(node.Arguments)})...)
}
func (c *compiler) BuiltinNode(node *ast.BuiltinNode) {
switch node.Name {
- case "len":
- c.compile(node.Arguments[0])
- c.emit(OpLen)
- c.emit(OpRot)
- c.emit(OpPop)
-
case "all":
c.compile(node.Arguments[0])
c.emit(OpBegin)
var loopBreak int
c.emitLoop(func() {
c.compile(node.Arguments[1])
- loopBreak = c.emit(OpJumpIfFalse, c.placeholder()...)
+ loopBreak = c.emit(OpJumpIfFalse, placeholder)
c.emit(OpPop)
})
c.emit(OpTrue)
@@ -482,7 +586,7 @@ func (c *compiler) BuiltinNode(node *ast.BuiltinNode) {
c.emitLoop(func() {
c.compile(node.Arguments[1])
c.emit(OpNot)
- loopBreak = c.emit(OpJumpIfFalse, c.placeholder()...)
+ loopBreak = c.emit(OpJumpIfFalse, placeholder)
c.emit(OpPop)
})
c.emit(OpTrue)
@@ -495,7 +599,7 @@ func (c *compiler) BuiltinNode(node *ast.BuiltinNode) {
var loopBreak int
c.emitLoop(func() {
c.compile(node.Arguments[1])
- loopBreak = c.emit(OpJumpIfTrue, c.placeholder()...)
+ loopBreak = c.emit(OpJumpIfTrue, placeholder)
c.emit(OpPop)
})
c.emit(OpFalse)
@@ -503,65 +607,53 @@ func (c *compiler) BuiltinNode(node *ast.BuiltinNode) {
c.emit(OpEnd)
case "one":
- count := c.makeConstant("count")
c.compile(node.Arguments[0])
c.emit(OpBegin)
- c.emitPush(0)
- c.emit(OpStore, count...)
c.emitLoop(func() {
c.compile(node.Arguments[1])
c.emitCond(func() {
- c.emit(OpInc, count...)
+ c.emit(OpIncrementCount)
})
})
- c.emit(OpLoad, count...)
+ c.emit(OpGetCount)
c.emitPush(1)
c.emit(OpEqual)
c.emit(OpEnd)
case "filter":
- count := c.makeConstant("count")
c.compile(node.Arguments[0])
c.emit(OpBegin)
- c.emitPush(0)
- c.emit(OpStore, count...)
c.emitLoop(func() {
c.compile(node.Arguments[1])
c.emitCond(func() {
- c.emit(OpInc, count...)
-
- c.emit(OpLoad, c.makeConstant("array")...)
- c.emit(OpLoad, c.makeConstant("i")...)
- c.emit(OpIndex)
+ c.emit(OpIncrementCount)
+ c.emit(OpPointer)
})
})
- c.emit(OpLoad, count...)
+ c.emit(OpGetCount)
c.emit(OpEnd)
c.emit(OpArray)
case "map":
c.compile(node.Arguments[0])
c.emit(OpBegin)
- size := c.emitLoop(func() {
+ c.emitLoop(func() {
c.compile(node.Arguments[1])
})
- c.emit(OpLoad, size...)
+ c.emit(OpGetLen)
c.emit(OpEnd)
c.emit(OpArray)
case "count":
- count := c.makeConstant("count")
c.compile(node.Arguments[0])
c.emit(OpBegin)
- c.emitPush(0)
- c.emit(OpStore, count...)
c.emitLoop(func() {
c.compile(node.Arguments[1])
c.emitCond(func() {
- c.emit(OpInc, count...)
+ c.emit(OpIncrementCount)
})
})
- c.emit(OpLoad, count...)
+ c.emit(OpGetCount)
c.emit(OpEnd)
default:
@@ -570,44 +662,26 @@ func (c *compiler) BuiltinNode(node *ast.BuiltinNode) {
}
func (c *compiler) emitCond(body func()) {
- noop := c.emit(OpJumpIfFalse, c.placeholder()...)
+ noop := c.emit(OpJumpIfFalse, placeholder)
c.emit(OpPop)
body()
- jmp := c.emit(OpJump, c.placeholder()...)
+ jmp := c.emit(OpJump, placeholder)
c.patchJump(noop)
c.emit(OpPop)
c.patchJump(jmp)
}
-func (c *compiler) emitLoop(body func()) []byte {
- i := c.makeConstant("i")
- size := c.makeConstant("size")
- array := c.makeConstant("array")
-
- c.emit(OpLen)
- c.emit(OpStore, size...)
- c.emit(OpStore, array...)
- c.emitPush(0)
- c.emit(OpStore, i...)
-
- cond := len(c.bytecode)
- c.emit(OpLoad, i...)
- c.emit(OpLoad, size...)
- c.emit(OpLess)
- end := c.emit(OpJumpIfFalse, c.placeholder()...)
- c.emit(OpPop)
+func (c *compiler) emitLoop(body func()) {
+ begin := len(c.bytecode)
+ end := c.emit(OpJumpIfEnd, placeholder)
body()
- c.emit(OpInc, i...)
- c.emit(OpJumpBackward, c.calcBackwardJump(cond)...)
-
+ c.emit(OpIncrementIt)
+ c.emit(OpJumpBackward, c.calcBackwardJump(begin))
c.patchJump(end)
- c.emit(OpPop)
-
- return size
}
func (c *compiler) ClosureNode(node *ast.ClosureNode) {
@@ -615,18 +689,16 @@ func (c *compiler) ClosureNode(node *ast.ClosureNode) {
}
func (c *compiler) PointerNode(node *ast.PointerNode) {
- c.emit(OpLoad, c.makeConstant("array")...)
- c.emit(OpLoad, c.makeConstant("i")...)
- c.emit(OpIndex)
+ c.emit(OpPointer)
}
func (c *compiler) ConditionalNode(node *ast.ConditionalNode) {
c.compile(node.Cond)
- otherwise := c.emit(OpJumpIfFalse, c.placeholder()...)
+ otherwise := c.emit(OpJumpIfFalse, placeholder)
c.emit(OpPop)
c.compile(node.Exp1)
- end := c.emit(OpJump, c.placeholder()...)
+ end := c.emit(OpJump, placeholder)
c.patchJump(otherwise)
c.emit(OpPop)
@@ -658,12 +730,6 @@ func (c *compiler) PairNode(node *ast.PairNode) {
c.compile(node.Value)
}
-func encode(i uint16) []byte {
- b := make([]byte, 2)
- binary.LittleEndian.PutUint16(b, i)
- return b
-}
-
func kind(node ast.Node) reflect.Kind {
t := node.Type()
if t == nil {
diff --git a/vendor/github.com/antonmedv/expr/compiler/patcher.go b/vendor/github.com/antonmedv/expr/compiler/patcher.go
deleted file mode 100644
index 2491dec9d4..0000000000
--- a/vendor/github.com/antonmedv/expr/compiler/patcher.go
+++ /dev/null
@@ -1,44 +0,0 @@
-package compiler
-
-import (
- "github.com/antonmedv/expr/ast"
- "github.com/antonmedv/expr/conf"
-)
-
-type operatorPatcher struct {
- ops map[string][]string
- types conf.TypesTable
-}
-
-func (p *operatorPatcher) Enter(node *ast.Node) {}
-func (p *operatorPatcher) Exit(node *ast.Node) {
- binaryNode, ok := (*node).(*ast.BinaryNode)
- if !ok {
- return
- }
-
- fns, ok := p.ops[binaryNode.Operator]
- if !ok {
- return
- }
-
- leftType := binaryNode.Left.Type()
- rightType := binaryNode.Right.Type()
-
- _, fn, ok := conf.FindSuitableOperatorOverload(fns, p.types, leftType, rightType)
- if ok {
- newNode := &ast.FunctionNode{
- Name: fn,
- Arguments: []ast.Node{binaryNode.Left, binaryNode.Right},
- }
- ast.Patch(node, newNode)
- }
-}
-
-func PatchOperators(node *ast.Node, config *conf.Config) {
- if len(config.Operators) == 0 {
- return
- }
- patcher := &operatorPatcher{ops: config.Operators, types: config.Types}
- ast.Walk(node, patcher)
-}
diff --git a/vendor/github.com/antonmedv/expr/conf/config.go b/vendor/github.com/antonmedv/expr/conf/config.go
index 7ba07fe0d5..1ac0fa7d29 100644
--- a/vendor/github.com/antonmedv/expr/conf/config.go
+++ b/vendor/github.com/antonmedv/expr/conf/config.go
@@ -5,24 +5,46 @@ import (
"reflect"
"github.com/antonmedv/expr/ast"
- "github.com/antonmedv/expr/vm"
+ "github.com/antonmedv/expr/builtin"
+ "github.com/antonmedv/expr/vm/runtime"
)
type Config struct {
- Env interface{}
- MapEnv bool
- Types TypesTable
- Operators OperatorsTable
- Expect reflect.Kind
- Optimize bool
- Strict bool
- DefaultType reflect.Type
- ConstExprFns map[string]reflect.Value
- Visitors []ast.Visitor
- err error
+ Env interface{}
+ Types TypesTable
+ MapEnv bool
+ DefaultType reflect.Type
+ Operators OperatorsTable
+ Expect reflect.Kind
+ Optimize bool
+ Strict bool
+ ConstFns map[string]reflect.Value
+ Visitors []ast.Visitor
+ Functions map[string]*builtin.Function
}
+// CreateNew creates new config with default values.
+func CreateNew() *Config {
+ c := &Config{
+ Operators: make(map[string][]string),
+ ConstFns: make(map[string]reflect.Value),
+ Functions: make(map[string]*builtin.Function),
+ Optimize: true,
+ }
+ for _, f := range builtin.Builtins {
+ c.Functions[f.Name] = f
+ }
+ return c
+}
+
+// New creates new config with environment.
func New(env interface{}) *Config {
+ c := CreateNew()
+ c.WithEnv(env)
+ return c
+}
+
+func (c *Config) WithEnv(env interface{}) {
var mapEnv bool
var mapValueType reflect.Type
if _, ok := env.(map[string]interface{}); ok {
@@ -33,57 +55,42 @@ func New(env interface{}) *Config {
}
}
- return &Config{
- Env: env,
- MapEnv: mapEnv,
- Types: CreateTypesTable(env),
- Optimize: true,
- Strict: true,
- DefaultType: mapValueType,
- ConstExprFns: make(map[string]reflect.Value),
+ c.Env = env
+ c.Types = CreateTypesTable(env)
+ c.MapEnv = mapEnv
+ c.DefaultType = mapValueType
+ c.Strict = true
+}
+
+func (c *Config) Operator(operator string, fns ...string) {
+ c.Operators[operator] = append(c.Operators[operator], fns...)
+}
+
+func (c *Config) ConstExpr(name string) {
+ if c.Env == nil {
+ panic("no environment is specified for ConstExpr()")
+ }
+ fn := reflect.ValueOf(runtime.Fetch(c.Env, name))
+ if fn.Kind() != reflect.Func {
+ panic(fmt.Errorf("const expression %q must be a function", name))
}
+ c.ConstFns[name] = fn
}
-// Check validates the compiler configuration.
-func (c *Config) Check() error {
- // Check that all functions that define operator overloading
- // exist in environment and have correct signatures.
- for op, fns := range c.Operators {
+func (c *Config) Check() {
+ for operator, fns := range c.Operators {
for _, fn := range fns {
fnType, ok := c.Types[fn]
if !ok || fnType.Type.Kind() != reflect.Func {
- return fmt.Errorf("function %s for %s operator does not exist in environment", fn, op)
+ panic(fmt.Errorf("function %s for %s operator does not exist in the environment", fn, operator))
}
requiredNumIn := 2
if fnType.Method {
requiredNumIn = 3 // As first argument of method is receiver.
}
if fnType.Type.NumIn() != requiredNumIn || fnType.Type.NumOut() != 1 {
- return fmt.Errorf("function %s for %s operator does not have a correct signature", fn, op)
+ panic(fmt.Errorf("function %s for %s operator does not have a correct signature", fn, operator))
}
}
}
-
- // Check that all ConstExprFns are functions.
- for name, fn := range c.ConstExprFns {
- if fn.Kind() != reflect.Func {
- return fmt.Errorf("const expression %q must be a function", name)
- }
- }
-
- return c.err
-}
-
-func (c *Config) ConstExpr(name string) {
- if c.Env == nil {
- c.Error(fmt.Errorf("no environment for const expression: %v", name))
- return
- }
- c.ConstExprFns[name] = vm.FetchFn(c.Env, name)
-}
-
-func (c *Config) Error(err error) {
- if c.err == nil {
- c.err = err
- }
}
diff --git a/vendor/github.com/antonmedv/expr/conf/functions.go b/vendor/github.com/antonmedv/expr/conf/functions.go
new file mode 100644
index 0000000000..8f52a95575
--- /dev/null
+++ b/vendor/github.com/antonmedv/expr/conf/functions.go
@@ -0,0 +1 @@
+package conf
diff --git a/vendor/github.com/antonmedv/expr/conf/operators_table.go b/vendor/github.com/antonmedv/expr/conf/operators.go
similarity index 59%
rename from vendor/github.com/antonmedv/expr/conf/operators_table.go
rename to vendor/github.com/antonmedv/expr/conf/operators.go
index 0ceb844002..13e069d76c 100644
--- a/vendor/github.com/antonmedv/expr/conf/operators_table.go
+++ b/vendor/github.com/antonmedv/expr/conf/operators.go
@@ -1,6 +1,10 @@
package conf
-import "reflect"
+import (
+ "reflect"
+
+ "github.com/antonmedv/expr/ast"
+)
// OperatorsTable maps binary operators to corresponding list of functions.
// Functions should be provided in the environment to allow operator overloading.
@@ -24,3 +28,32 @@ func FindSuitableOperatorOverload(fns []string, types TypesTable, l, r reflect.T
}
return nil, "", false
}
+
+type OperatorPatcher struct {
+ Operators OperatorsTable
+ Types TypesTable
+}
+
+func (p *OperatorPatcher) Visit(node *ast.Node) {
+ binaryNode, ok := (*node).(*ast.BinaryNode)
+ if !ok {
+ return
+ }
+
+ fns, ok := p.Operators[binaryNode.Operator]
+ if !ok {
+ return
+ }
+
+ leftType := binaryNode.Left.Type()
+ rightType := binaryNode.Right.Type()
+
+ _, fn, ok := FindSuitableOperatorOverload(fns, p.Types, leftType, rightType)
+ if ok {
+ newNode := &ast.CallNode{
+ Callee: &ast.IdentifierNode{Value: fn},
+ Arguments: []ast.Node{binaryNode.Left, binaryNode.Right},
+ }
+ ast.Patch(node, newNode)
+ }
+}
diff --git a/vendor/github.com/antonmedv/expr/conf/types_table.go b/vendor/github.com/antonmedv/expr/conf/types_table.go
index d5539da4ae..e917f5fa84 100644
--- a/vendor/github.com/antonmedv/expr/conf/types_table.go
+++ b/vendor/github.com/antonmedv/expr/conf/types_table.go
@@ -1,11 +1,15 @@
package conf
-import "reflect"
+import (
+ "reflect"
+)
type Tag struct {
- Type reflect.Type
- Method bool
- Ambiguous bool
+ Type reflect.Type
+ Ambiguous bool
+ FieldIndex []int
+ Method bool
+ MethodIndex int
}
type TypesTable map[string]Tag
@@ -39,7 +43,11 @@ func CreateTypesTable(i interface{}) TypesTable {
// all embedded structs methods as well, no need to recursion.
for i := 0; i < t.NumMethod(); i++ {
m := t.Method(i)
- types[m.Name] = Tag{Type: m.Type, Method: true}
+ types[m.Name] = Tag{
+ Type: m.Type,
+ Method: true,
+ MethodIndex: i,
+ }
}
case reflect.Map:
@@ -53,7 +61,11 @@ func CreateTypesTable(i interface{}) TypesTable {
// A map may have method too.
for i := 0; i < t.NumMethod(); i++ {
m := t.Method(i)
- types[m.Name] = Tag{Type: m.Type, Method: true}
+ types[m.Name] = Tag{
+ Type: m.Type,
+ Method: true,
+ MethodIndex: i,
+ }
}
}
@@ -77,12 +89,16 @@ func FieldsFromStruct(t reflect.Type) TypesTable {
if _, ok := types[name]; ok {
types[name] = Tag{Ambiguous: true}
} else {
+ typ.FieldIndex = append(f.Index, typ.FieldIndex...)
types[name] = typ
}
}
}
- types[f.Name] = Tag{Type: f.Type}
+ types[FieldName(f)] = Tag{
+ Type: f.Type,
+ FieldIndex: f.Index,
+ }
}
}
@@ -98,3 +114,10 @@ func dereference(t reflect.Type) reflect.Type {
}
return t
}
+
+func FieldName(field reflect.StructField) string {
+ if taggedName := field.Tag.Get("expr"); taggedName != "" {
+ return taggedName
+ }
+ return field.Name
+}
diff --git a/vendor/github.com/antonmedv/expr/expr.go b/vendor/github.com/antonmedv/expr/expr.go
index 05c54adb18..14f6af285c 100644
--- a/vendor/github.com/antonmedv/expr/expr.go
+++ b/vendor/github.com/antonmedv/expr/expr.go
@@ -2,13 +2,14 @@ package expr
import (
"fmt"
- "github.com/antonmedv/expr/ast"
- "github.com/antonmedv/expr/file"
"reflect"
+ "github.com/antonmedv/expr/ast"
+ "github.com/antonmedv/expr/builtin"
"github.com/antonmedv/expr/checker"
"github.com/antonmedv/expr/compiler"
"github.com/antonmedv/expr/conf"
+ "github.com/antonmedv/expr/file"
"github.com/antonmedv/expr/optimizer"
"github.com/antonmedv/expr/parser"
"github.com/antonmedv/expr/vm"
@@ -17,30 +18,6 @@ import (
// Option for configuring config.
type Option func(c *conf.Config)
-// Eval parses, compiles and runs given input.
-func Eval(input string, env interface{}) (interface{}, error) {
- if _, ok := env.(Option); ok {
- return nil, fmt.Errorf("misused expr.Eval: second argument (env) should be passed without expr.Env")
- }
-
- tree, err := parser.Parse(input)
- if err != nil {
- return nil, err
- }
-
- program, err := compiler.Compile(tree, nil)
- if err != nil {
- return nil, err
- }
-
- output, err := vm.Run(program, env)
- if err != nil {
- return nil, err
- }
-
- return output, nil
-}
-
// Env specifies expected input of env for type checks.
// If struct is passed, all fields will be treated as variables,
// as well as all fields of embedded structs and struct itself.
@@ -48,33 +25,22 @@ func Eval(input string, env interface{}) (interface{}, error) {
// Methods defined on this type will be available as functions.
func Env(env interface{}) Option {
return func(c *conf.Config) {
- if _, ok := env.(map[string]interface{}); ok {
- c.MapEnv = true
- } else {
- if reflect.ValueOf(env).Kind() == reflect.Map {
- c.DefaultType = reflect.TypeOf(env).Elem()
- }
- }
- c.Strict = true
- c.Types = conf.CreateTypesTable(env)
- c.Env = env
+ c.WithEnv(env)
}
}
// AllowUndefinedVariables allows to use undefined variables inside expressions.
// This can be used with expr.Env option to partially define a few variables.
-// Note what this option is only works in map environment are used, otherwise
-// runtime.fetch will panic as there is no way to get missing field zero value.
func AllowUndefinedVariables() Option {
return func(c *conf.Config) {
c.Strict = false
}
}
-// Operator allows to override binary operator with function.
+// Operator allows to replace a binary operator with a function.
func Operator(operator string, fn ...string) Option {
return func(c *conf.Config) {
- c.Operators[operator] = append(c.Operators[operator], fn...)
+ c.Operator(operator, fn...)
}
}
@@ -86,21 +52,35 @@ func ConstExpr(fn string) Option {
}
}
-// AsBool tells the compiler to expect boolean result.
+// AsKind tells the compiler to expect kind of the result.
+func AsKind(kind reflect.Kind) Option {
+ return func(c *conf.Config) {
+ c.Expect = kind
+ }
+}
+
+// AsBool tells the compiler to expect a boolean result.
func AsBool() Option {
return func(c *conf.Config) {
c.Expect = reflect.Bool
}
}
-// AsInt64 tells the compiler to expect int64 result.
+// AsInt tells the compiler to expect an int result.
+func AsInt() Option {
+ return func(c *conf.Config) {
+ c.Expect = reflect.Int
+ }
+}
+
+// AsInt64 tells the compiler to expect an int64 result.
func AsInt64() Option {
return func(c *conf.Config) {
c.Expect = reflect.Int64
}
}
-// AsFloat64 tells the compiler to expect float64 result.
+// AsFloat64 tells the compiler to expect a float64 result.
func AsFloat64() Option {
return func(c *conf.Config) {
c.Expect = reflect.Float64
@@ -121,20 +101,42 @@ func Patch(visitor ast.Visitor) Option {
}
}
+// Function adds function to list of functions what will be available in expressions.
+func Function(name string, fn func(params ...interface{}) (interface{}, error), types ...interface{}) Option {
+ return func(c *conf.Config) {
+ ts := make([]reflect.Type, len(types))
+ for i, t := range types {
+ t := reflect.TypeOf(t)
+ if t.Kind() == reflect.Ptr {
+ t = t.Elem()
+ }
+ if t.Kind() != reflect.Func {
+ panic(fmt.Sprintf("expr: type of %s is not a function", name))
+ }
+ ts[i] = t
+ }
+ c.Functions[name] = &builtin.Function{
+ Name: name,
+ Func: fn,
+ Types: ts,
+ }
+ }
+}
+
// Compile parses and compiles given input expression to bytecode program.
func Compile(input string, ops ...Option) (*vm.Program, error) {
- config := &conf.Config{
- Operators: make(map[string][]string),
- ConstExprFns: make(map[string]reflect.Value),
- Optimize: true,
- }
+ config := conf.CreateNew()
for _, op := range ops {
op(config)
}
+ config.Check()
- if err := config.Check(); err != nil {
- return nil, err
+ if len(config.Operators) > 0 {
+ config.Visitors = append(config.Visitors, &conf.OperatorPatcher{
+ Operators: config.Operators,
+ Types: config.Types,
+ })
}
tree, err := parser.Parse(input)
@@ -142,25 +144,22 @@ func Compile(input string, ops ...Option) (*vm.Program, error) {
return nil, err
}
- _, err = checker.Check(tree, config)
-
- // If we have a patch to apply, it may fix out error and
- // second type check is needed. Otherwise it is an error.
- if err != nil && len(config.Visitors) == 0 {
- return nil, err
- }
-
- // Patch operators before Optimize, as we may also mark it as ConstExpr.
- compiler.PatchOperators(&tree.Node, config)
-
- if len(config.Visitors) >= 0 {
+ if len(config.Visitors) > 0 {
for _, v := range config.Visitors {
+ // We need to perform types check, because some visitors may rely on
+ // types information available in the tree.
+ _, _ = checker.Check(tree, config)
ast.Walk(&tree.Node, v)
}
_, err = checker.Check(tree, config)
if err != nil {
return nil, err
}
+ } else {
+ _, err = checker.Check(tree, config)
+ if err != nil {
+ return nil, err
+ }
}
if config.Optimize {
@@ -185,3 +184,22 @@ func Compile(input string, ops ...Option) (*vm.Program, error) {
func Run(program *vm.Program, env interface{}) (interface{}, error) {
return vm.Run(program, env)
}
+
+// Eval parses, compiles and runs given input.
+func Eval(input string, env interface{}) (interface{}, error) {
+ if _, ok := env.(Option); ok {
+ return nil, fmt.Errorf("misused expr.Eval: second argument (env) should be passed without expr.Env")
+ }
+
+ program, err := Compile(input)
+ if err != nil {
+ return nil, err
+ }
+
+ output, err := Run(program, env)
+ if err != nil {
+ return nil, err
+ }
+
+ return output, nil
+}
diff --git a/vendor/github.com/antonmedv/expr/file/error.go b/vendor/github.com/antonmedv/expr/file/error.go
index b7af3e6e24..1e7e81b947 100644
--- a/vendor/github.com/antonmedv/expr/file/error.go
+++ b/vendor/github.com/antonmedv/expr/file/error.go
@@ -10,6 +10,7 @@ type Error struct {
Location
Message string
Snippet string
+ Prev error
}
func (e *Error) Error() string {
@@ -44,6 +45,16 @@ func (e *Error) Bind(source *Source) *Error {
return e
}
+
+func (e *Error) Unwrap() error {
+ return e.Prev
+}
+
+func (e *Error) Wrap(err error) {
+ e.Prev = err
+}
+
+
func (e *Error) format() string {
if e.Location.Empty() {
return e.Message
diff --git a/vendor/github.com/antonmedv/expr/file/source.go b/vendor/github.com/antonmedv/expr/file/source.go
index 185d1568ad..9ee297b580 100644
--- a/vendor/github.com/antonmedv/expr/file/source.go
+++ b/vendor/github.com/antonmedv/expr/file/source.go
@@ -74,22 +74,3 @@ func (s *Source) findLineOffset(line int) (int32, bool) {
}
return -1, false
}
-
-// findLine finds the line that contains the given character offset and
-// returns the line number and offset of the beginning of that line.
-// Note that the last line is treated as if it contains all offsets
-// beyond the end of the actual source.
-func (s *Source) findLine(characterOffset int32) (int32, int32) {
- var line int32 = 1
- for _, lineOffset := range s.lineOffsets {
- if lineOffset > characterOffset {
- break
- } else {
- line++
- }
- }
- if line == 1 {
- return line, 0
- }
- return line, s.lineOffsets[line-2]
-}
diff --git a/vendor/github.com/antonmedv/expr/optimizer/const_expr.go b/vendor/github.com/antonmedv/expr/optimizer/const_expr.go
index 85fcc337f0..7ececb3dba 100644
--- a/vendor/github.com/antonmedv/expr/optimizer/const_expr.go
+++ b/vendor/github.com/antonmedv/expr/optimizer/const_expr.go
@@ -2,20 +2,22 @@ package optimizer
import (
"fmt"
- . "github.com/antonmedv/expr/ast"
- "github.com/antonmedv/expr/file"
"reflect"
"strings"
+
+ . "github.com/antonmedv/expr/ast"
+ "github.com/antonmedv/expr/file"
)
+var errorType = reflect.TypeOf((*error)(nil)).Elem()
+
type constExpr struct {
applied bool
err error
fns map[string]reflect.Value
}
-func (*constExpr) Enter(*Node) {}
-func (c *constExpr) Exit(node *Node) {
+func (c *constExpr) Visit(node *Node) {
defer func() {
if r := recover(); r != nil {
msg := fmt.Sprintf("%v", r)
@@ -33,45 +35,51 @@ func (c *constExpr) Exit(node *Node) {
Patch(node, newNode)
}
- switch n := (*node).(type) {
- case *FunctionNode:
- fn, ok := c.fns[n.Name]
- if ok {
- in := make([]reflect.Value, len(n.Arguments))
- for i := 0; i < len(n.Arguments); i++ {
- arg := n.Arguments[i]
- var param interface{}
+ if call, ok := (*node).(*CallNode); ok {
+ if name, ok := call.Callee.(*IdentifierNode); ok {
+ fn, ok := c.fns[name.Value]
+ if ok {
+ in := make([]reflect.Value, len(call.Arguments))
+ for i := 0; i < len(call.Arguments); i++ {
+ arg := call.Arguments[i]
+ var param interface{}
- switch a := arg.(type) {
- case *NilNode:
- param = nil
- case *IntegerNode:
- param = a.Value
- case *FloatNode:
- param = a.Value
- case *BoolNode:
- param = a.Value
- case *StringNode:
- param = a.Value
- case *ConstantNode:
- param = a.Value
+ switch a := arg.(type) {
+ case *NilNode:
+ param = nil
+ case *IntegerNode:
+ param = a.Value
+ case *FloatNode:
+ param = a.Value
+ case *BoolNode:
+ param = a.Value
+ case *StringNode:
+ param = a.Value
+ case *ConstantNode:
+ param = a.Value
- default:
- return // Const expr optimization not applicable.
+ default:
+ return // Const expr optimization not applicable.
+ }
+
+ if param == nil && reflect.TypeOf(param) == nil {
+ // In case of nil value and nil type use this hack,
+ // otherwise reflect.Call will panic on zero value.
+ in[i] = reflect.ValueOf(¶m).Elem()
+ } else {
+ in[i] = reflect.ValueOf(param)
+ }
}
- if param == nil && reflect.TypeOf(param) == nil {
- // In case of nil value and nil type use this hack,
- // otherwise reflect.Call will panic on zero value.
- in[i] = reflect.ValueOf(¶m).Elem()
- } else {
- in[i] = reflect.ValueOf(param)
+ out := fn.Call(in)
+ value := out[0].Interface()
+ if len(out) == 2 && out[1].Type() == errorType && !out[1].IsNil() {
+ c.err = out[1].Interface().(error)
+ return
}
+ constNode := &ConstantNode{Value: value}
+ patch(constNode)
}
-
- out := fn.Call(in)
- constNode := &ConstantNode{Value: out[0].Interface()}
- patch(constNode)
}
}
}
diff --git a/vendor/github.com/antonmedv/expr/optimizer/const_range.go b/vendor/github.com/antonmedv/expr/optimizer/const_range.go
index 5205aa14fa..26d6d6f571 100644
--- a/vendor/github.com/antonmedv/expr/optimizer/const_range.go
+++ b/vendor/github.com/antonmedv/expr/optimizer/const_range.go
@@ -6,8 +6,7 @@ import (
type constRange struct{}
-func (*constRange) Enter(*Node) {}
-func (*constRange) Exit(node *Node) {
+func (*constRange) Visit(node *Node) {
switch n := (*node).(type) {
case *BinaryNode:
if n.Operator == ".." {
diff --git a/vendor/github.com/antonmedv/expr/optimizer/fold.go b/vendor/github.com/antonmedv/expr/optimizer/fold.go
index 666912541e..b62b2d7ed4 100644
--- a/vendor/github.com/antonmedv/expr/optimizer/fold.go
+++ b/vendor/github.com/antonmedv/expr/optimizer/fold.go
@@ -13,8 +13,7 @@ type fold struct {
err *file.Error
}
-func (*fold) Enter(*Node) {}
-func (fold *fold) Exit(node *Node) {
+func (fold *fold) Visit(node *Node) {
patch := func(newNode Node) {
fold.applied = true
Patch(node, newNode)
@@ -33,48 +32,145 @@ func (fold *fold) Exit(node *Node) {
if i, ok := n.Node.(*IntegerNode); ok {
patchWithType(&IntegerNode{Value: -i.Value}, n.Node.Type())
}
+ if i, ok := n.Node.(*FloatNode); ok {
+ patchWithType(&FloatNode{Value: -i.Value}, n.Node.Type())
+ }
case "+":
if i, ok := n.Node.(*IntegerNode); ok {
patchWithType(&IntegerNode{Value: i.Value}, n.Node.Type())
}
+ if i, ok := n.Node.(*FloatNode); ok {
+ patchWithType(&FloatNode{Value: i.Value}, n.Node.Type())
+ }
+ case "!", "not":
+ if a := toBool(n.Node); a != nil {
+ patch(&BoolNode{Value: !a.Value})
+ }
}
case *BinaryNode:
switch n.Operator {
case "+":
- if a, ok := n.Left.(*IntegerNode); ok {
- if b, ok := n.Right.(*IntegerNode); ok {
+ {
+ a := toInteger(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
patchWithType(&IntegerNode{Value: a.Value + b.Value}, a.Type())
}
}
- if a, ok := n.Left.(*StringNode); ok {
- if b, ok := n.Right.(*StringNode); ok {
+ {
+ a := toInteger(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: float64(a.Value) + b.Value}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value + float64(b.Value)}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value + b.Value}, a.Type())
+ }
+ }
+ {
+ a := toString(n.Left)
+ b := toString(n.Right)
+ if a != nil && b != nil {
patch(&StringNode{Value: a.Value + b.Value})
}
}
case "-":
- if a, ok := n.Left.(*IntegerNode); ok {
- if b, ok := n.Right.(*IntegerNode); ok {
+ {
+ a := toInteger(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
patchWithType(&IntegerNode{Value: a.Value - b.Value}, a.Type())
}
}
+ {
+ a := toInteger(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: float64(a.Value) - b.Value}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value - float64(b.Value)}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value - b.Value}, a.Type())
+ }
+ }
case "*":
- if a, ok := n.Left.(*IntegerNode); ok {
- if b, ok := n.Right.(*IntegerNode); ok {
+ {
+ a := toInteger(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
patchWithType(&IntegerNode{Value: a.Value * b.Value}, a.Type())
}
}
+ {
+ a := toInteger(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: float64(a.Value) * b.Value}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value * float64(b.Value)}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value * b.Value}, a.Type())
+ }
+ }
case "/":
- if a, ok := n.Left.(*IntegerNode); ok {
- if b, ok := n.Right.(*IntegerNode); ok {
- if b.Value == 0 {
- fold.err = &file.Error{
- Location: (*node).Location(),
- Message: "integer divide by zero",
- }
- return
- }
- patchWithType(&IntegerNode{Value: a.Value / b.Value}, a.Type())
+ {
+ a := toInteger(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: float64(a.Value) / float64(b.Value)}, a.Type())
+ }
+ }
+ {
+ a := toInteger(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: float64(a.Value) / b.Value}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value / float64(b.Value)}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: a.Value / b.Value}, a.Type())
}
}
case "%":
@@ -90,44 +186,158 @@ func (fold *fold) Exit(node *Node) {
patch(&IntegerNode{Value: a.Value % b.Value})
}
}
- case "**":
- if a, ok := n.Left.(*IntegerNode); ok {
- if b, ok := n.Right.(*IntegerNode); ok {
- patch(&FloatNode{Value: math.Pow(float64(a.Value), float64(b.Value))})
+ case "**", "^":
+ {
+ a := toInteger(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: math.Pow(float64(a.Value), float64(b.Value))}, a.Type())
}
}
- }
+ {
+ a := toInteger(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: math.Pow(float64(a.Value), b.Value)}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: math.Pow(a.Value, float64(b.Value))}, a.Type())
+ }
+ }
+ {
+ a := toFloat(n.Left)
+ b := toFloat(n.Right)
+ if a != nil && b != nil {
+ patchWithType(&FloatNode{Value: math.Pow(a.Value, b.Value)}, a.Type())
+ }
+ }
+ case "and", "&&":
+ a := toBool(n.Left)
+ b := toBool(n.Right)
- case *ArrayNode:
- if len(n.Nodes) > 0 {
+ if a != nil && a.Value { // true and x
+ patch(n.Right)
+ } else if b != nil && b.Value { // x and true
+ patch(n.Left)
+ } else if (a != nil && !a.Value) || (b != nil && !b.Value) { // "x and false" or "false and x"
+ patch(&BoolNode{Value: false})
+ }
+ case "or", "||":
+ a := toBool(n.Left)
+ b := toBool(n.Right)
- for _, a := range n.Nodes {
- if _, ok := a.(*IntegerNode); !ok {
- goto string
+ if a != nil && !a.Value { // false or x
+ patch(n.Right)
+ } else if b != nil && !b.Value { // x or false
+ patch(n.Left)
+ } else if (a != nil && a.Value) || (b != nil && b.Value) { // "x or true" or "true or x"
+ patch(&BoolNode{Value: true})
+ }
+ case "==":
+ {
+ a := toInteger(n.Left)
+ b := toInteger(n.Right)
+ if a != nil && b != nil {
+ patch(&BoolNode{Value: a.Value == b.Value})
}
}
{
- value := make([]int, len(n.Nodes))
- for i, a := range n.Nodes {
- value[i] = a.(*IntegerNode).Value
+ a := toString(n.Left)
+ b := toString(n.Right)
+ if a != nil && b != nil {
+ patch(&BoolNode{Value: a.Value == b.Value})
}
- patch(&ConstantNode{Value: value})
}
+ {
+ a := toBool(n.Left)
+ b := toBool(n.Right)
+ if a != nil && b != nil {
+ patch(&BoolNode{Value: a.Value == b.Value})
+ }
+ }
+ }
- string:
+ case *ArrayNode:
+ if len(n.Nodes) > 0 {
for _, a := range n.Nodes {
- if _, ok := a.(*StringNode); !ok {
+ switch a.(type) {
+ case *IntegerNode, *FloatNode, *StringNode, *BoolNode:
+ continue
+ default:
return
}
}
- {
- value := make([]string, len(n.Nodes))
- for i, a := range n.Nodes {
- value[i] = a.(*StringNode).Value
+ value := make([]interface{}, len(n.Nodes))
+ for i, a := range n.Nodes {
+ switch b := a.(type) {
+ case *IntegerNode:
+ value[i] = b.Value
+ case *FloatNode:
+ value[i] = b.Value
+ case *StringNode:
+ value[i] = b.Value
+ case *BoolNode:
+ value[i] = b.Value
}
- patch(&ConstantNode{Value: value})
}
+ patch(&ConstantNode{Value: value})
+ }
+ case *BuiltinNode:
+ switch n.Name {
+ case "filter":
+ if len(n.Arguments) != 2 {
+ return
+ }
+ if base, ok := n.Arguments[0].(*BuiltinNode); ok && base.Name == "filter" {
+ patch(&BuiltinNode{
+ Name: "filter",
+ Arguments: []Node{
+ base.Arguments[0],
+ &BinaryNode{
+ Operator: "&&",
+ Left: base.Arguments[1],
+ Right: n.Arguments[1],
+ },
+ },
+ })
+ }
}
}
}
+
+func toString(n Node) *StringNode {
+ switch a := n.(type) {
+ case *StringNode:
+ return a
+ }
+ return nil
+}
+
+func toInteger(n Node) *IntegerNode {
+ switch a := n.(type) {
+ case *IntegerNode:
+ return a
+ }
+ return nil
+}
+
+func toFloat(n Node) *FloatNode {
+ switch a := n.(type) {
+ case *FloatNode:
+ return a
+ }
+ return nil
+}
+
+func toBool(n Node) *BoolNode {
+ switch a := n.(type) {
+ case *BoolNode:
+ return a
+ }
+ return nil
+}
diff --git a/vendor/github.com/antonmedv/expr/optimizer/in_array.go b/vendor/github.com/antonmedv/expr/optimizer/in_array.go
index 8156faa5e0..a51957631c 100644
--- a/vendor/github.com/antonmedv/expr/optimizer/in_array.go
+++ b/vendor/github.com/antonmedv/expr/optimizer/in_array.go
@@ -8,11 +8,10 @@ import (
type inArray struct{}
-func (*inArray) Enter(*Node) {}
-func (*inArray) Exit(node *Node) {
+func (*inArray) Visit(node *Node) {
switch n := (*node).(type) {
case *BinaryNode:
- if n.Operator == "in" || n.Operator == "not in" {
+ if n.Operator == "in" {
if array, ok := n.Right.(*ArrayNode); ok {
if len(array.Nodes) > 0 {
t := n.Left.Type()
diff --git a/vendor/github.com/antonmedv/expr/optimizer/in_range.go b/vendor/github.com/antonmedv/expr/optimizer/in_range.go
index 177c91933d..7895249e0b 100644
--- a/vendor/github.com/antonmedv/expr/optimizer/in_range.go
+++ b/vendor/github.com/antonmedv/expr/optimizer/in_range.go
@@ -6,11 +6,10 @@ import (
type inRange struct{}
-func (*inRange) Enter(*Node) {}
-func (*inRange) Exit(node *Node) {
+func (*inRange) Visit(node *Node) {
switch n := (*node).(type) {
case *BinaryNode:
- if n.Operator == "in" || n.Operator == "not in" {
+ if n.Operator == "in" {
if rng, ok := n.Right.(*BinaryNode); ok && rng.Operator == ".." {
if from, ok := rng.Left.(*IntegerNode); ok {
if to, ok := rng.Right.(*IntegerNode); ok {
@@ -27,12 +26,6 @@ func (*inRange) Exit(node *Node) {
Right: to,
},
})
- if n.Operator == "not in" {
- Patch(node, &UnaryNode{
- Operator: "not",
- Node: *node,
- })
- }
}
}
}
diff --git a/vendor/github.com/antonmedv/expr/optimizer/optimizer.go b/vendor/github.com/antonmedv/expr/optimizer/optimizer.go
index 738348dc36..9c97496c8d 100644
--- a/vendor/github.com/antonmedv/expr/optimizer/optimizer.go
+++ b/vendor/github.com/antonmedv/expr/optimizer/optimizer.go
@@ -17,10 +17,10 @@ func Optimize(node *Node, config *conf.Config) error {
break
}
}
- if config != nil && len(config.ConstExprFns) > 0 {
+ if config != nil && len(config.ConstFns) > 0 {
for limit := 100; limit >= 0; limit-- {
constExpr := &constExpr{
- fns: config.ConstExprFns,
+ fns: config.ConstFns,
}
Walk(node, constExpr)
if constExpr.err != nil {
diff --git a/vendor/github.com/antonmedv/expr/parser/lexer/lexer.go b/vendor/github.com/antonmedv/expr/parser/lexer/lexer.go
index 6e4848a834..cfb1e8c61b 100644
--- a/vendor/github.com/antonmedv/expr/parser/lexer/lexer.go
+++ b/vendor/github.com/antonmedv/expr/parser/lexer/lexer.go
@@ -95,6 +95,11 @@ func (l *lexer) emitEOF() {
l.startLoc = l.loc
}
+func (l *lexer) skip() {
+ l.start = l.end
+ l.startLoc = l.loc
+}
+
func (l *lexer) word() string {
return l.input[l.start:l.end]
}
@@ -118,14 +123,18 @@ func (l *lexer) acceptRun(valid string) {
l.backup()
}
-func (l *lexer) acceptWord(word string) bool {
- pos, loc, prev := l.end, l.loc, l.prev
-
- // Skip spaces (U+0020) if any
+func (l *lexer) skipSpaces() {
r := l.peek()
for ; r == ' '; r = l.peek() {
l.next()
}
+ l.skip()
+}
+
+func (l *lexer) acceptWord(word string) bool {
+ pos, loc, prev := l.end, l.loc, l.prev
+
+ l.skipSpaces()
for _, ch := range word {
if l.next() != ch {
@@ -133,7 +142,7 @@ func (l *lexer) acceptWord(word string) bool {
return false
}
}
- if r = l.peek(); r != ' ' && r != eof {
+ if r := l.peek(); r != ' ' && r != eof {
l.end, l.loc, l.prev = pos, loc, prev
return false
}
diff --git a/vendor/github.com/antonmedv/expr/parser/lexer/state.go b/vendor/github.com/antonmedv/expr/parser/lexer/state.go
index 0d4bece4b7..1212aa3217 100644
--- a/vendor/github.com/antonmedv/expr/parser/lexer/state.go
+++ b/vendor/github.com/antonmedv/expr/parser/lexer/state.go
@@ -25,15 +25,14 @@ func root(l *lexer) stateFn {
l.backup()
return number
case r == '?':
- if l.peek() == '.' {
- return nilsafe
- }
- l.emit(Operator)
+ return questionMark
+ case r == '/':
+ return slash
case strings.ContainsRune("([{", r):
l.emit(Bracket)
case strings.ContainsRune(")]}", r):
l.emit(Bracket)
- case strings.ContainsRune("#,?:%+-/", r): // single rune operator
+ case strings.ContainsRune("#,:%+-^", r): // single rune operator
l.emit(Operator)
case strings.ContainsRune("&|!=*<>", r): // possible double rune operator
l.accept("&|=*")
@@ -107,13 +106,6 @@ func dot(l *lexer) stateFn {
return root
}
-func nilsafe(l *lexer) stateFn {
- l.next()
- l.accept("?.")
- l.emit(Operator)
- return root
-}
-
func identifier(l *lexer) stateFn {
loop:
for {
@@ -137,12 +129,70 @@ loop:
}
func not(l *lexer) stateFn {
- switch l.acceptWord("in") {
- case true:
- l.emitValue(Operator, "not in")
- case false:
- l.emitValue(Operator, "not")
+ l.emit(Operator)
+
+ l.skipSpaces()
+
+ pos, loc, prev := l.end, l.loc, l.prev
+
+ // Get the next word.
+ for {
+ r := l.next()
+ if IsAlphaNumeric(r) {
+ // absorb
+ } else {
+ l.backup()
+ break
+ }
+ }
+
+ switch l.word() {
+ case "in", "matches", "contains", "startsWith", "endsWith":
+ l.emit(Operator)
+ default:
+ l.end, l.loc, l.prev = pos, loc, prev
+ }
+ return root
+}
+
+func questionMark(l *lexer) stateFn {
+ l.accept(".?")
+ l.emit(Operator)
+ return root
+}
+
+func slash(l *lexer) stateFn {
+ if l.accept("/") {
+ return singleLineComment
+ }
+ if l.accept("*") {
+ return multiLineComment
}
+ l.emit(Operator)
+ return root
+}
+func singleLineComment(l *lexer) stateFn {
+ for {
+ r := l.next()
+ if r == eof || r == '\n' {
+ break
+ }
+ }
+ l.ignore()
+ return root
+}
+
+func multiLineComment(l *lexer) stateFn {
+ for {
+ r := l.next()
+ if r == eof {
+ return l.error("unclosed comment")
+ }
+ if r == '*' && l.accept("/") {
+ break
+ }
+ }
+ l.ignore()
return root
}
diff --git a/vendor/github.com/antonmedv/expr/parser/parser.go b/vendor/github.com/antonmedv/expr/parser/parser.go
index 821de9d35c..fd26fe18bd 100644
--- a/vendor/github.com/antonmedv/expr/parser/parser.go
+++ b/vendor/github.com/antonmedv/expr/parser/parser.go
@@ -2,7 +2,6 @@ package parser
import (
"fmt"
- "regexp"
"strconv"
"strings"
"unicode/utf8"
@@ -31,8 +30,8 @@ type builtin struct {
var unaryOperators = map[string]operator{
"not": {50, left},
"!": {50, left},
- "-": {500, left},
- "+": {500, left},
+ "-": {90, left},
+ "+": {90, left},
}
var binaryOperators = map[string]operator{
@@ -46,7 +45,6 @@ var binaryOperators = map[string]operator{
">": {20, left},
">=": {20, left},
"<=": {20, left},
- "not in": {20, left},
"in": {20, left},
"matches": {20, left},
"contains": {20, left},
@@ -58,11 +56,12 @@ var binaryOperators = map[string]operator{
"*": {60, left},
"/": {60, left},
"%": {60, left},
- "**": {70, right},
+ "**": {100, right},
+ "^": {100, right},
+ "??": {500, left},
}
var builtins = map[string]builtin{
- "len": {1},
"all": {2},
"none": {2},
"any": {2},
@@ -115,9 +114,13 @@ func Parse(input string) (*Tree, error) {
}
func (p *parser) error(format string, args ...interface{}) {
+ p.errorAt(p.current, format, args...)
+}
+
+func (p *parser) errorAt(token Token, format string, args ...interface{}) {
if p.err == nil { // show first error
p.err = &file.Error{
- Location: p.current.Location,
+ Location: token.Location,
Message: fmt.Sprintf(format, args...),
}
}
@@ -145,12 +148,28 @@ func (p *parser) expect(kind Kind, values ...string) {
func (p *parser) parseExpression(precedence int) Node {
nodeLeft := p.parsePrimary()
- token := p.current
- for token.Is(Operator) && p.err == nil {
- if op, ok := binaryOperators[token.Value]; ok {
+ lastOperator := ""
+ opToken := p.current
+ for opToken.Is(Operator) && p.err == nil {
+ negate := false
+ var notToken Token
+
+ if opToken.Is(Operator, "not") {
+ p.next()
+ notToken = p.current
+ negate = true
+ opToken = p.current
+ }
+
+ if op, ok := binaryOperators[opToken.Value]; ok {
if op.precedence >= precedence {
p.next()
+ if lastOperator == "??" && opToken.Value != "??" && !opToken.Is(Bracket, "(") {
+ p.errorAt(opToken, "Operator (%v) and coalesce expressions (??) cannot be mixed. Wrap either by parentheses.", opToken.Value)
+ break
+ }
+
var nodeRight Node
if op.associativity == left {
nodeRight = p.parseExpression(op.precedence + 1)
@@ -158,31 +177,23 @@ func (p *parser) parseExpression(precedence int) Node {
nodeRight = p.parseExpression(op.precedence)
}
- if token.Is(Operator, "matches") {
- var r *regexp.Regexp
- var err error
+ nodeLeft = &BinaryNode{
+ Operator: opToken.Value,
+ Left: nodeLeft,
+ Right: nodeRight,
+ }
+ nodeLeft.SetLocation(opToken.Location)
- if s, ok := nodeRight.(*StringNode); ok {
- r, err = regexp.Compile(s.Value)
- if err != nil {
- p.error("%v", err)
- }
- }
- nodeLeft = &MatchesNode{
- Regexp: r,
- Left: nodeLeft,
- Right: nodeRight,
- }
- nodeLeft.SetLocation(token.Location)
- } else {
- nodeLeft = &BinaryNode{
- Operator: token.Value,
- Left: nodeLeft,
- Right: nodeRight,
+ if negate {
+ nodeLeft = &UnaryNode{
+ Operator: "not",
+ Node: nodeLeft,
}
- nodeLeft.SetLocation(token.Location)
+ nodeLeft.SetLocation(notToken.Location)
}
- token = p.current
+
+ lastOperator = opToken.Value
+ opToken = p.current
continue
}
}
@@ -283,26 +294,26 @@ func (p *parser) parsePrimaryExpression() Node {
node.SetLocation(token.Location)
return node
default:
- node = p.parseIdentifierExpression(token, p.current)
+ node = p.parseIdentifierExpression(token)
}
case Number:
p.next()
value := strings.Replace(token.Value, "_", "", -1)
- if strings.ContainsAny(value, ".eE") {
- number, err := strconv.ParseFloat(value, 64)
+ if strings.Contains(value, "x") {
+ number, err := strconv.ParseInt(value, 0, 64)
if err != nil {
- p.error("invalid float literal: %v", err)
+ p.error("invalid hex literal: %v", err)
}
- node := &FloatNode{Value: number}
+ node := &IntegerNode{Value: int(number)}
node.SetLocation(token.Location)
return node
- } else if strings.Contains(value, "x") {
- number, err := strconv.ParseInt(value, 0, 64)
+ } else if strings.ContainsAny(value, ".eE") {
+ number, err := strconv.ParseFloat(value, 64)
if err != nil {
- p.error("invalid hex literal: %v", err)
+ p.error("invalid float literal: %v", err)
}
- node := &IntegerNode{Value: int(number)}
+ node := &FloatNode{Value: number}
node.SetLocation(token.Location)
return node
} else {
@@ -334,7 +345,7 @@ func (p *parser) parsePrimaryExpression() Node {
return p.parsePostfixExpression(node)
}
-func (p *parser) parseIdentifierExpression(token, next Token) Node {
+func (p *parser) parseIdentifierExpression(token Token) Node {
var node Node
if p.current.Is(Bracket, "(") {
var arguments []Node
@@ -359,37 +370,40 @@ func (p *parser) parseIdentifierExpression(token, next Token) Node {
}
node.SetLocation(token.Location)
} else {
- arguments = p.parseArguments()
- node = &FunctionNode{
- Name: token.Value,
- Arguments: arguments,
+ callee := &IdentifierNode{Value: token.Value}
+ callee.SetLocation(token.Location)
+ node = &CallNode{
+ Callee: callee,
+ Arguments: p.parseArguments(),
}
node.SetLocation(token.Location)
}
} else {
- var nilsafe bool
- if next.Value == "?." {
- nilsafe = true
- }
- node = &IdentifierNode{Value: token.Value, NilSafe: nilsafe}
+ node = &IdentifierNode{Value: token.Value}
node.SetLocation(token.Location)
}
return node
}
func (p *parser) parseClosure() Node {
- token := p.current
- p.expect(Bracket, "{")
+ startToken := p.current
+ expectClosingBracket := false
+ if p.current.Is(Bracket, "{") {
+ p.next()
+ expectClosingBracket = true
+ }
p.depth++
node := p.parseExpression(0)
p.depth--
- p.expect(Bracket, "}")
+ if expectClosingBracket {
+ p.expect(Bracket, "}")
+ }
closure := &ClosureNode{
Node: node,
}
- closure.SetLocation(token.Location)
+ closure.SetLocation(startToken.Location)
return closure
}
@@ -431,11 +445,11 @@ func (p *parser) parseMapExpression(token Token) Node {
}
var key Node
- // a map key can be:
- // * a number
- // * a string
- // * a identifier, which is equivalent to a string
- // * an expression, which must be enclosed in parentheses -- (1 + 2)
+ // Map key can be one of:
+ // * number
+ // * string
+ // * identifier, which is equivalent to a string
+ // * expression, which must be enclosed in parentheses -- (1 + 2)
if p.current.Is(Number) || p.current.Is(String) || p.current.Is(Identifier) {
key = &StringNode{Value: p.current.Value}
key.SetLocation(token.Location)
@@ -463,43 +477,52 @@ end:
}
func (p *parser) parsePostfixExpression(node Node) Node {
- token := p.current
- var nilsafe bool
- for (token.Is(Operator) || token.Is(Bracket)) && p.err == nil {
- if token.Value == "." || token.Value == "?." {
- if token.Value == "?." {
- nilsafe = true
- }
+ postfixToken := p.current
+ for (postfixToken.Is(Operator) || postfixToken.Is(Bracket)) && p.err == nil {
+ if postfixToken.Value == "." || postfixToken.Value == "?." {
p.next()
- token = p.current
+ propertyToken := p.current
p.next()
- if token.Kind != Identifier &&
+ if propertyToken.Kind != Identifier &&
// Operators like "not" and "matches" are valid methods or property names.
- (token.Kind != Operator || !isValidIdentifier(token.Value)) {
+ (propertyToken.Kind != Operator || !isValidIdentifier(propertyToken.Value)) {
p.error("expected name")
}
+ property := &StringNode{Value: propertyToken.Value}
+ property.SetLocation(propertyToken.Location)
+
+ chainNode, isChain := node.(*ChainNode)
+ optional := postfixToken.Value == "?."
+
+ if isChain {
+ node = chainNode.Node
+ }
+
+ memberNode := &MemberNode{
+ Node: node,
+ Property: property,
+ Optional: optional,
+ }
+ memberNode.SetLocation(propertyToken.Location)
+
if p.current.Is(Bracket, "(") {
- arguments := p.parseArguments()
- node = &MethodNode{
- Node: node,
- Method: token.Value,
- Arguments: arguments,
- NilSafe: nilsafe,
+ node = &CallNode{
+ Callee: memberNode,
+ Arguments: p.parseArguments(),
}
- node.SetLocation(token.Location)
+ node.SetLocation(propertyToken.Location)
} else {
- node = &PropertyNode{
- Node: node,
- Property: token.Value,
- NilSafe: nilsafe,
- }
- node.SetLocation(token.Location)
+ node = memberNode
+ }
+
+ if isChain || optional {
+ node = &ChainNode{Node: node}
}
- } else if token.Value == "[" {
+ } else if postfixToken.Value == "[" {
p.next()
var from, to Node
@@ -514,7 +537,7 @@ func (p *parser) parsePostfixExpression(node Node) Node {
Node: node,
To: to,
}
- node.SetLocation(token.Location)
+ node.SetLocation(postfixToken.Location)
p.expect(Bracket, "]")
} else {
@@ -533,25 +556,24 @@ func (p *parser) parsePostfixExpression(node Node) Node {
From: from,
To: to,
}
- node.SetLocation(token.Location)
+ node.SetLocation(postfixToken.Location)
p.expect(Bracket, "]")
} else {
- // Slice operator [:] was not found, it should by just index node.
-
- node = &IndexNode{
- Node: node,
- Index: from,
+ // Slice operator [:] was not found,
+ // it should be just an index node.
+ node = &MemberNode{
+ Node: node,
+ Property: from,
}
- node.SetLocation(token.Location)
+ node.SetLocation(postfixToken.Location)
p.expect(Bracket, "]")
}
}
} else {
break
}
-
- token = p.current
+ postfixToken = p.current
}
return node
}
diff --git a/vendor/github.com/antonmedv/expr/vm/generated.go b/vendor/github.com/antonmedv/expr/vm/generated.go
new file mode 100644
index 0000000000..9fc7883e2d
--- /dev/null
+++ b/vendor/github.com/antonmedv/expr/vm/generated.go
@@ -0,0 +1,262 @@
+// Code generated by vm/func_types/main.go. DO NOT EDIT.
+
+package vm
+
+import (
+ "fmt"
+ "time"
+)
+
+var FuncTypes = []interface{}{
+ 1: new(func() time.Duration),
+ 2: new(func() time.Month),
+ 3: new(func() time.Time),
+ 4: new(func() time.Weekday),
+ 5: new(func() []uint8),
+ 6: new(func() []interface{}),
+ 7: new(func() bool),
+ 8: new(func() uint8),
+ 9: new(func() float64),
+ 10: new(func() int),
+ 11: new(func() int64),
+ 12: new(func() interface{}),
+ 13: new(func() map[string]interface{}),
+ 14: new(func() int32),
+ 15: new(func() string),
+ 16: new(func() uint),
+ 17: new(func() uint64),
+ 18: new(func(time.Duration) time.Duration),
+ 19: new(func(time.Duration) time.Time),
+ 20: new(func(time.Time) time.Duration),
+ 21: new(func(time.Time) bool),
+ 22: new(func([]interface{}, string) string),
+ 23: new(func([]string, string) string),
+ 24: new(func(bool) bool),
+ 25: new(func(bool) float64),
+ 26: new(func(bool) int),
+ 27: new(func(bool) string),
+ 28: new(func(float64) bool),
+ 29: new(func(float64) float64),
+ 30: new(func(float64) int),
+ 31: new(func(float64) string),
+ 32: new(func(int) bool),
+ 33: new(func(int) float64),
+ 34: new(func(int) int),
+ 35: new(func(int) string),
+ 36: new(func(int, int) int),
+ 37: new(func(int, int) string),
+ 38: new(func(int64) time.Time),
+ 39: new(func(string) []string),
+ 40: new(func(string) bool),
+ 41: new(func(string) float64),
+ 42: new(func(string) int),
+ 43: new(func(string) string),
+ 44: new(func(string, uint8) int),
+ 45: new(func(string, int) int),
+ 46: new(func(string, int32) int),
+ 47: new(func(string, string) bool),
+ 48: new(func(string, string) string),
+ 49: new(func(interface{}) bool),
+ 50: new(func(interface{}) float64),
+ 51: new(func(interface{}) int),
+ 52: new(func(interface{}) string),
+ 53: new(func(interface{}) interface{}),
+ 54: new(func(interface{}) []interface{}),
+ 55: new(func(interface{}) map[string]interface{}),
+ 56: new(func([]interface{}) interface{}),
+ 57: new(func([]interface{}) []interface{}),
+ 58: new(func([]interface{}) map[string]interface{}),
+ 59: new(func(interface{}, interface{}) bool),
+ 60: new(func(interface{}, interface{}) string),
+ 61: new(func(interface{}, interface{}) interface{}),
+ 62: new(func(interface{}, interface{}) []interface{}),
+}
+
+func (vm *VM) call(fn interface{}, kind int) interface{} {
+ switch kind {
+ case 1:
+ return fn.(func() time.Duration)()
+ case 2:
+ return fn.(func() time.Month)()
+ case 3:
+ return fn.(func() time.Time)()
+ case 4:
+ return fn.(func() time.Weekday)()
+ case 5:
+ return fn.(func() []uint8)()
+ case 6:
+ return fn.(func() []interface{})()
+ case 7:
+ return fn.(func() bool)()
+ case 8:
+ return fn.(func() uint8)()
+ case 9:
+ return fn.(func() float64)()
+ case 10:
+ return fn.(func() int)()
+ case 11:
+ return fn.(func() int64)()
+ case 12:
+ return fn.(func() interface{})()
+ case 13:
+ return fn.(func() map[string]interface{})()
+ case 14:
+ return fn.(func() int32)()
+ case 15:
+ return fn.(func() string)()
+ case 16:
+ return fn.(func() uint)()
+ case 17:
+ return fn.(func() uint64)()
+ case 18:
+ arg1 := vm.pop().(time.Duration)
+ return fn.(func(time.Duration) time.Duration)(arg1)
+ case 19:
+ arg1 := vm.pop().(time.Duration)
+ return fn.(func(time.Duration) time.Time)(arg1)
+ case 20:
+ arg1 := vm.pop().(time.Time)
+ return fn.(func(time.Time) time.Duration)(arg1)
+ case 21:
+ arg1 := vm.pop().(time.Time)
+ return fn.(func(time.Time) bool)(arg1)
+ case 22:
+ arg2 := vm.pop().(string)
+ arg1 := vm.pop().([]interface{})
+ return fn.(func([]interface{}, string) string)(arg1, arg2)
+ case 23:
+ arg2 := vm.pop().(string)
+ arg1 := vm.pop().([]string)
+ return fn.(func([]string, string) string)(arg1, arg2)
+ case 24:
+ arg1 := vm.pop().(bool)
+ return fn.(func(bool) bool)(arg1)
+ case 25:
+ arg1 := vm.pop().(bool)
+ return fn.(func(bool) float64)(arg1)
+ case 26:
+ arg1 := vm.pop().(bool)
+ return fn.(func(bool) int)(arg1)
+ case 27:
+ arg1 := vm.pop().(bool)
+ return fn.(func(bool) string)(arg1)
+ case 28:
+ arg1 := vm.pop().(float64)
+ return fn.(func(float64) bool)(arg1)
+ case 29:
+ arg1 := vm.pop().(float64)
+ return fn.(func(float64) float64)(arg1)
+ case 30:
+ arg1 := vm.pop().(float64)
+ return fn.(func(float64) int)(arg1)
+ case 31:
+ arg1 := vm.pop().(float64)
+ return fn.(func(float64) string)(arg1)
+ case 32:
+ arg1 := vm.pop().(int)
+ return fn.(func(int) bool)(arg1)
+ case 33:
+ arg1 := vm.pop().(int)
+ return fn.(func(int) float64)(arg1)
+ case 34:
+ arg1 := vm.pop().(int)
+ return fn.(func(int) int)(arg1)
+ case 35:
+ arg1 := vm.pop().(int)
+ return fn.(func(int) string)(arg1)
+ case 36:
+ arg2 := vm.pop().(int)
+ arg1 := vm.pop().(int)
+ return fn.(func(int, int) int)(arg1, arg2)
+ case 37:
+ arg2 := vm.pop().(int)
+ arg1 := vm.pop().(int)
+ return fn.(func(int, int) string)(arg1, arg2)
+ case 38:
+ arg1 := vm.pop().(int64)
+ return fn.(func(int64) time.Time)(arg1)
+ case 39:
+ arg1 := vm.pop().(string)
+ return fn.(func(string) []string)(arg1)
+ case 40:
+ arg1 := vm.pop().(string)
+ return fn.(func(string) bool)(arg1)
+ case 41:
+ arg1 := vm.pop().(string)
+ return fn.(func(string) float64)(arg1)
+ case 42:
+ arg1 := vm.pop().(string)
+ return fn.(func(string) int)(arg1)
+ case 43:
+ arg1 := vm.pop().(string)
+ return fn.(func(string) string)(arg1)
+ case 44:
+ arg2 := vm.pop().(uint8)
+ arg1 := vm.pop().(string)
+ return fn.(func(string, uint8) int)(arg1, arg2)
+ case 45:
+ arg2 := vm.pop().(int)
+ arg1 := vm.pop().(string)
+ return fn.(func(string, int) int)(arg1, arg2)
+ case 46:
+ arg2 := vm.pop().(int32)
+ arg1 := vm.pop().(string)
+ return fn.(func(string, int32) int)(arg1, arg2)
+ case 47:
+ arg2 := vm.pop().(string)
+ arg1 := vm.pop().(string)
+ return fn.(func(string, string) bool)(arg1, arg2)
+ case 48:
+ arg2 := vm.pop().(string)
+ arg1 := vm.pop().(string)
+ return fn.(func(string, string) string)(arg1, arg2)
+ case 49:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) bool)(arg1)
+ case 50:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) float64)(arg1)
+ case 51:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) int)(arg1)
+ case 52:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) string)(arg1)
+ case 53:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) interface{})(arg1)
+ case 54:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) []interface{})(arg1)
+ case 55:
+ arg1 := vm.pop()
+ return fn.(func(interface{}) map[string]interface{})(arg1)
+ case 56:
+ arg1 := vm.pop().([]interface{})
+ return fn.(func([]interface{}) interface{})(arg1)
+ case 57:
+ arg1 := vm.pop().([]interface{})
+ return fn.(func([]interface{}) []interface{})(arg1)
+ case 58:
+ arg1 := vm.pop().([]interface{})
+ return fn.(func([]interface{}) map[string]interface{})(arg1)
+ case 59:
+ arg2 := vm.pop()
+ arg1 := vm.pop()
+ return fn.(func(interface{}, interface{}) bool)(arg1, arg2)
+ case 60:
+ arg2 := vm.pop()
+ arg1 := vm.pop()
+ return fn.(func(interface{}, interface{}) string)(arg1, arg2)
+ case 61:
+ arg2 := vm.pop()
+ arg1 := vm.pop()
+ return fn.(func(interface{}, interface{}) interface{})(arg1, arg2)
+ case 62:
+ arg2 := vm.pop()
+ arg1 := vm.pop()
+ return fn.(func(interface{}, interface{}) []interface{})(arg1, arg2)
+
+ }
+ panic(fmt.Sprintf("unknown function kind (%v)", kind))
+}
diff --git a/vendor/github.com/antonmedv/expr/vm/helpers.go b/vendor/github.com/antonmedv/expr/vm/helpers.go
deleted file mode 100644
index 775b0e759f..0000000000
--- a/vendor/github.com/antonmedv/expr/vm/helpers.go
+++ /dev/null
@@ -1,3247 +0,0 @@
-// Code generated by vm/generate/main.go. DO NOT EDIT.
-
-package vm
-
-import (
- "fmt"
- "reflect"
-)
-
-func equal(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x == y
- case uint8:
- return uint8(x) == y
- case uint16:
- return uint16(x) == y
- case uint32:
- return uint32(x) == y
- case uint64:
- return uint64(x) == y
- case int:
- return int(x) == y
- case int8:
- return int8(x) == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x == uint8(y)
- case uint8:
- return x == y
- case uint16:
- return uint16(x) == y
- case uint32:
- return uint32(x) == y
- case uint64:
- return uint64(x) == y
- case int:
- return int(x) == y
- case int8:
- return int8(x) == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x == uint16(y)
- case uint8:
- return x == uint16(y)
- case uint16:
- return x == y
- case uint32:
- return uint32(x) == y
- case uint64:
- return uint64(x) == y
- case int:
- return int(x) == y
- case int8:
- return int8(x) == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x == uint32(y)
- case uint8:
- return x == uint32(y)
- case uint16:
- return x == uint32(y)
- case uint32:
- return x == y
- case uint64:
- return uint64(x) == y
- case int:
- return int(x) == y
- case int8:
- return int8(x) == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x == uint64(y)
- case uint8:
- return x == uint64(y)
- case uint16:
- return x == uint64(y)
- case uint32:
- return x == uint64(y)
- case uint64:
- return x == y
- case int:
- return int(x) == y
- case int8:
- return int8(x) == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x == int(y)
- case uint8:
- return x == int(y)
- case uint16:
- return x == int(y)
- case uint32:
- return x == int(y)
- case uint64:
- return x == int(y)
- case int:
- return x == y
- case int8:
- return int8(x) == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x == int8(y)
- case uint8:
- return x == int8(y)
- case uint16:
- return x == int8(y)
- case uint32:
- return x == int8(y)
- case uint64:
- return x == int8(y)
- case int:
- return x == int8(y)
- case int8:
- return x == y
- case int16:
- return int16(x) == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x == int16(y)
- case uint8:
- return x == int16(y)
- case uint16:
- return x == int16(y)
- case uint32:
- return x == int16(y)
- case uint64:
- return x == int16(y)
- case int:
- return x == int16(y)
- case int8:
- return x == int16(y)
- case int16:
- return x == y
- case int32:
- return int32(x) == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x == int32(y)
- case uint8:
- return x == int32(y)
- case uint16:
- return x == int32(y)
- case uint32:
- return x == int32(y)
- case uint64:
- return x == int32(y)
- case int:
- return x == int32(y)
- case int8:
- return x == int32(y)
- case int16:
- return x == int32(y)
- case int32:
- return x == y
- case int64:
- return int64(x) == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x == int64(y)
- case uint8:
- return x == int64(y)
- case uint16:
- return x == int64(y)
- case uint32:
- return x == int64(y)
- case uint64:
- return x == int64(y)
- case int:
- return x == int64(y)
- case int8:
- return x == int64(y)
- case int16:
- return x == int64(y)
- case int32:
- return x == int64(y)
- case int64:
- return x == y
- case float32:
- return float32(x) == y
- case float64:
- return float64(x) == y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x == float32(y)
- case uint8:
- return x == float32(y)
- case uint16:
- return x == float32(y)
- case uint32:
- return x == float32(y)
- case uint64:
- return x == float32(y)
- case int:
- return x == float32(y)
- case int8:
- return x == float32(y)
- case int16:
- return x == float32(y)
- case int32:
- return x == float32(y)
- case int64:
- return x == float32(y)
- case float32:
- return x == y
- case float64:
- return float64(x) == y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x == float64(y)
- case uint8:
- return x == float64(y)
- case uint16:
- return x == float64(y)
- case uint32:
- return x == float64(y)
- case uint64:
- return x == float64(y)
- case int:
- return x == float64(y)
- case int8:
- return x == float64(y)
- case int16:
- return x == float64(y)
- case int32:
- return x == float64(y)
- case int64:
- return x == float64(y)
- case float32:
- return x == float64(y)
- case float64:
- return x == y
- }
- case string:
- switch y := b.(type) {
- case string:
- return x == y
- }
- }
- if isNil(a) && isNil(b) {
- return true
- }
- return reflect.DeepEqual(a, b)
-}
-
-func less(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x < y
- case uint8:
- return uint8(x) < y
- case uint16:
- return uint16(x) < y
- case uint32:
- return uint32(x) < y
- case uint64:
- return uint64(x) < y
- case int:
- return int(x) < y
- case int8:
- return int8(x) < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x < uint8(y)
- case uint8:
- return x < y
- case uint16:
- return uint16(x) < y
- case uint32:
- return uint32(x) < y
- case uint64:
- return uint64(x) < y
- case int:
- return int(x) < y
- case int8:
- return int8(x) < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x < uint16(y)
- case uint8:
- return x < uint16(y)
- case uint16:
- return x < y
- case uint32:
- return uint32(x) < y
- case uint64:
- return uint64(x) < y
- case int:
- return int(x) < y
- case int8:
- return int8(x) < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x < uint32(y)
- case uint8:
- return x < uint32(y)
- case uint16:
- return x < uint32(y)
- case uint32:
- return x < y
- case uint64:
- return uint64(x) < y
- case int:
- return int(x) < y
- case int8:
- return int8(x) < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x < uint64(y)
- case uint8:
- return x < uint64(y)
- case uint16:
- return x < uint64(y)
- case uint32:
- return x < uint64(y)
- case uint64:
- return x < y
- case int:
- return int(x) < y
- case int8:
- return int8(x) < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x < int(y)
- case uint8:
- return x < int(y)
- case uint16:
- return x < int(y)
- case uint32:
- return x < int(y)
- case uint64:
- return x < int(y)
- case int:
- return x < y
- case int8:
- return int8(x) < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x < int8(y)
- case uint8:
- return x < int8(y)
- case uint16:
- return x < int8(y)
- case uint32:
- return x < int8(y)
- case uint64:
- return x < int8(y)
- case int:
- return x < int8(y)
- case int8:
- return x < y
- case int16:
- return int16(x) < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x < int16(y)
- case uint8:
- return x < int16(y)
- case uint16:
- return x < int16(y)
- case uint32:
- return x < int16(y)
- case uint64:
- return x < int16(y)
- case int:
- return x < int16(y)
- case int8:
- return x < int16(y)
- case int16:
- return x < y
- case int32:
- return int32(x) < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x < int32(y)
- case uint8:
- return x < int32(y)
- case uint16:
- return x < int32(y)
- case uint32:
- return x < int32(y)
- case uint64:
- return x < int32(y)
- case int:
- return x < int32(y)
- case int8:
- return x < int32(y)
- case int16:
- return x < int32(y)
- case int32:
- return x < y
- case int64:
- return int64(x) < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x < int64(y)
- case uint8:
- return x < int64(y)
- case uint16:
- return x < int64(y)
- case uint32:
- return x < int64(y)
- case uint64:
- return x < int64(y)
- case int:
- return x < int64(y)
- case int8:
- return x < int64(y)
- case int16:
- return x < int64(y)
- case int32:
- return x < int64(y)
- case int64:
- return x < y
- case float32:
- return float32(x) < y
- case float64:
- return float64(x) < y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x < float32(y)
- case uint8:
- return x < float32(y)
- case uint16:
- return x < float32(y)
- case uint32:
- return x < float32(y)
- case uint64:
- return x < float32(y)
- case int:
- return x < float32(y)
- case int8:
- return x < float32(y)
- case int16:
- return x < float32(y)
- case int32:
- return x < float32(y)
- case int64:
- return x < float32(y)
- case float32:
- return x < y
- case float64:
- return float64(x) < y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x < float64(y)
- case uint8:
- return x < float64(y)
- case uint16:
- return x < float64(y)
- case uint32:
- return x < float64(y)
- case uint64:
- return x < float64(y)
- case int:
- return x < float64(y)
- case int8:
- return x < float64(y)
- case int16:
- return x < float64(y)
- case int32:
- return x < float64(y)
- case int64:
- return x < float64(y)
- case float32:
- return x < float64(y)
- case float64:
- return x < y
- }
- case string:
- switch y := b.(type) {
- case string:
- return x < y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "<", b))
-}
-
-func more(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x > y
- case uint8:
- return uint8(x) > y
- case uint16:
- return uint16(x) > y
- case uint32:
- return uint32(x) > y
- case uint64:
- return uint64(x) > y
- case int:
- return int(x) > y
- case int8:
- return int8(x) > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x > uint8(y)
- case uint8:
- return x > y
- case uint16:
- return uint16(x) > y
- case uint32:
- return uint32(x) > y
- case uint64:
- return uint64(x) > y
- case int:
- return int(x) > y
- case int8:
- return int8(x) > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x > uint16(y)
- case uint8:
- return x > uint16(y)
- case uint16:
- return x > y
- case uint32:
- return uint32(x) > y
- case uint64:
- return uint64(x) > y
- case int:
- return int(x) > y
- case int8:
- return int8(x) > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x > uint32(y)
- case uint8:
- return x > uint32(y)
- case uint16:
- return x > uint32(y)
- case uint32:
- return x > y
- case uint64:
- return uint64(x) > y
- case int:
- return int(x) > y
- case int8:
- return int8(x) > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x > uint64(y)
- case uint8:
- return x > uint64(y)
- case uint16:
- return x > uint64(y)
- case uint32:
- return x > uint64(y)
- case uint64:
- return x > y
- case int:
- return int(x) > y
- case int8:
- return int8(x) > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x > int(y)
- case uint8:
- return x > int(y)
- case uint16:
- return x > int(y)
- case uint32:
- return x > int(y)
- case uint64:
- return x > int(y)
- case int:
- return x > y
- case int8:
- return int8(x) > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x > int8(y)
- case uint8:
- return x > int8(y)
- case uint16:
- return x > int8(y)
- case uint32:
- return x > int8(y)
- case uint64:
- return x > int8(y)
- case int:
- return x > int8(y)
- case int8:
- return x > y
- case int16:
- return int16(x) > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x > int16(y)
- case uint8:
- return x > int16(y)
- case uint16:
- return x > int16(y)
- case uint32:
- return x > int16(y)
- case uint64:
- return x > int16(y)
- case int:
- return x > int16(y)
- case int8:
- return x > int16(y)
- case int16:
- return x > y
- case int32:
- return int32(x) > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x > int32(y)
- case uint8:
- return x > int32(y)
- case uint16:
- return x > int32(y)
- case uint32:
- return x > int32(y)
- case uint64:
- return x > int32(y)
- case int:
- return x > int32(y)
- case int8:
- return x > int32(y)
- case int16:
- return x > int32(y)
- case int32:
- return x > y
- case int64:
- return int64(x) > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x > int64(y)
- case uint8:
- return x > int64(y)
- case uint16:
- return x > int64(y)
- case uint32:
- return x > int64(y)
- case uint64:
- return x > int64(y)
- case int:
- return x > int64(y)
- case int8:
- return x > int64(y)
- case int16:
- return x > int64(y)
- case int32:
- return x > int64(y)
- case int64:
- return x > y
- case float32:
- return float32(x) > y
- case float64:
- return float64(x) > y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x > float32(y)
- case uint8:
- return x > float32(y)
- case uint16:
- return x > float32(y)
- case uint32:
- return x > float32(y)
- case uint64:
- return x > float32(y)
- case int:
- return x > float32(y)
- case int8:
- return x > float32(y)
- case int16:
- return x > float32(y)
- case int32:
- return x > float32(y)
- case int64:
- return x > float32(y)
- case float32:
- return x > y
- case float64:
- return float64(x) > y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x > float64(y)
- case uint8:
- return x > float64(y)
- case uint16:
- return x > float64(y)
- case uint32:
- return x > float64(y)
- case uint64:
- return x > float64(y)
- case int:
- return x > float64(y)
- case int8:
- return x > float64(y)
- case int16:
- return x > float64(y)
- case int32:
- return x > float64(y)
- case int64:
- return x > float64(y)
- case float32:
- return x > float64(y)
- case float64:
- return x > y
- }
- case string:
- switch y := b.(type) {
- case string:
- return x > y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, ">", b))
-}
-
-func lessOrEqual(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x <= y
- case uint8:
- return uint8(x) <= y
- case uint16:
- return uint16(x) <= y
- case uint32:
- return uint32(x) <= y
- case uint64:
- return uint64(x) <= y
- case int:
- return int(x) <= y
- case int8:
- return int8(x) <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x <= uint8(y)
- case uint8:
- return x <= y
- case uint16:
- return uint16(x) <= y
- case uint32:
- return uint32(x) <= y
- case uint64:
- return uint64(x) <= y
- case int:
- return int(x) <= y
- case int8:
- return int8(x) <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x <= uint16(y)
- case uint8:
- return x <= uint16(y)
- case uint16:
- return x <= y
- case uint32:
- return uint32(x) <= y
- case uint64:
- return uint64(x) <= y
- case int:
- return int(x) <= y
- case int8:
- return int8(x) <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x <= uint32(y)
- case uint8:
- return x <= uint32(y)
- case uint16:
- return x <= uint32(y)
- case uint32:
- return x <= y
- case uint64:
- return uint64(x) <= y
- case int:
- return int(x) <= y
- case int8:
- return int8(x) <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x <= uint64(y)
- case uint8:
- return x <= uint64(y)
- case uint16:
- return x <= uint64(y)
- case uint32:
- return x <= uint64(y)
- case uint64:
- return x <= y
- case int:
- return int(x) <= y
- case int8:
- return int8(x) <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x <= int(y)
- case uint8:
- return x <= int(y)
- case uint16:
- return x <= int(y)
- case uint32:
- return x <= int(y)
- case uint64:
- return x <= int(y)
- case int:
- return x <= y
- case int8:
- return int8(x) <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x <= int8(y)
- case uint8:
- return x <= int8(y)
- case uint16:
- return x <= int8(y)
- case uint32:
- return x <= int8(y)
- case uint64:
- return x <= int8(y)
- case int:
- return x <= int8(y)
- case int8:
- return x <= y
- case int16:
- return int16(x) <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x <= int16(y)
- case uint8:
- return x <= int16(y)
- case uint16:
- return x <= int16(y)
- case uint32:
- return x <= int16(y)
- case uint64:
- return x <= int16(y)
- case int:
- return x <= int16(y)
- case int8:
- return x <= int16(y)
- case int16:
- return x <= y
- case int32:
- return int32(x) <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x <= int32(y)
- case uint8:
- return x <= int32(y)
- case uint16:
- return x <= int32(y)
- case uint32:
- return x <= int32(y)
- case uint64:
- return x <= int32(y)
- case int:
- return x <= int32(y)
- case int8:
- return x <= int32(y)
- case int16:
- return x <= int32(y)
- case int32:
- return x <= y
- case int64:
- return int64(x) <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x <= int64(y)
- case uint8:
- return x <= int64(y)
- case uint16:
- return x <= int64(y)
- case uint32:
- return x <= int64(y)
- case uint64:
- return x <= int64(y)
- case int:
- return x <= int64(y)
- case int8:
- return x <= int64(y)
- case int16:
- return x <= int64(y)
- case int32:
- return x <= int64(y)
- case int64:
- return x <= y
- case float32:
- return float32(x) <= y
- case float64:
- return float64(x) <= y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x <= float32(y)
- case uint8:
- return x <= float32(y)
- case uint16:
- return x <= float32(y)
- case uint32:
- return x <= float32(y)
- case uint64:
- return x <= float32(y)
- case int:
- return x <= float32(y)
- case int8:
- return x <= float32(y)
- case int16:
- return x <= float32(y)
- case int32:
- return x <= float32(y)
- case int64:
- return x <= float32(y)
- case float32:
- return x <= y
- case float64:
- return float64(x) <= y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x <= float64(y)
- case uint8:
- return x <= float64(y)
- case uint16:
- return x <= float64(y)
- case uint32:
- return x <= float64(y)
- case uint64:
- return x <= float64(y)
- case int:
- return x <= float64(y)
- case int8:
- return x <= float64(y)
- case int16:
- return x <= float64(y)
- case int32:
- return x <= float64(y)
- case int64:
- return x <= float64(y)
- case float32:
- return x <= float64(y)
- case float64:
- return x <= y
- }
- case string:
- switch y := b.(type) {
- case string:
- return x <= y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "<=", b))
-}
-
-func moreOrEqual(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x >= y
- case uint8:
- return uint8(x) >= y
- case uint16:
- return uint16(x) >= y
- case uint32:
- return uint32(x) >= y
- case uint64:
- return uint64(x) >= y
- case int:
- return int(x) >= y
- case int8:
- return int8(x) >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x >= uint8(y)
- case uint8:
- return x >= y
- case uint16:
- return uint16(x) >= y
- case uint32:
- return uint32(x) >= y
- case uint64:
- return uint64(x) >= y
- case int:
- return int(x) >= y
- case int8:
- return int8(x) >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x >= uint16(y)
- case uint8:
- return x >= uint16(y)
- case uint16:
- return x >= y
- case uint32:
- return uint32(x) >= y
- case uint64:
- return uint64(x) >= y
- case int:
- return int(x) >= y
- case int8:
- return int8(x) >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x >= uint32(y)
- case uint8:
- return x >= uint32(y)
- case uint16:
- return x >= uint32(y)
- case uint32:
- return x >= y
- case uint64:
- return uint64(x) >= y
- case int:
- return int(x) >= y
- case int8:
- return int8(x) >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x >= uint64(y)
- case uint8:
- return x >= uint64(y)
- case uint16:
- return x >= uint64(y)
- case uint32:
- return x >= uint64(y)
- case uint64:
- return x >= y
- case int:
- return int(x) >= y
- case int8:
- return int8(x) >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x >= int(y)
- case uint8:
- return x >= int(y)
- case uint16:
- return x >= int(y)
- case uint32:
- return x >= int(y)
- case uint64:
- return x >= int(y)
- case int:
- return x >= y
- case int8:
- return int8(x) >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x >= int8(y)
- case uint8:
- return x >= int8(y)
- case uint16:
- return x >= int8(y)
- case uint32:
- return x >= int8(y)
- case uint64:
- return x >= int8(y)
- case int:
- return x >= int8(y)
- case int8:
- return x >= y
- case int16:
- return int16(x) >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x >= int16(y)
- case uint8:
- return x >= int16(y)
- case uint16:
- return x >= int16(y)
- case uint32:
- return x >= int16(y)
- case uint64:
- return x >= int16(y)
- case int:
- return x >= int16(y)
- case int8:
- return x >= int16(y)
- case int16:
- return x >= y
- case int32:
- return int32(x) >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x >= int32(y)
- case uint8:
- return x >= int32(y)
- case uint16:
- return x >= int32(y)
- case uint32:
- return x >= int32(y)
- case uint64:
- return x >= int32(y)
- case int:
- return x >= int32(y)
- case int8:
- return x >= int32(y)
- case int16:
- return x >= int32(y)
- case int32:
- return x >= y
- case int64:
- return int64(x) >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x >= int64(y)
- case uint8:
- return x >= int64(y)
- case uint16:
- return x >= int64(y)
- case uint32:
- return x >= int64(y)
- case uint64:
- return x >= int64(y)
- case int:
- return x >= int64(y)
- case int8:
- return x >= int64(y)
- case int16:
- return x >= int64(y)
- case int32:
- return x >= int64(y)
- case int64:
- return x >= y
- case float32:
- return float32(x) >= y
- case float64:
- return float64(x) >= y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x >= float32(y)
- case uint8:
- return x >= float32(y)
- case uint16:
- return x >= float32(y)
- case uint32:
- return x >= float32(y)
- case uint64:
- return x >= float32(y)
- case int:
- return x >= float32(y)
- case int8:
- return x >= float32(y)
- case int16:
- return x >= float32(y)
- case int32:
- return x >= float32(y)
- case int64:
- return x >= float32(y)
- case float32:
- return x >= y
- case float64:
- return float64(x) >= y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x >= float64(y)
- case uint8:
- return x >= float64(y)
- case uint16:
- return x >= float64(y)
- case uint32:
- return x >= float64(y)
- case uint64:
- return x >= float64(y)
- case int:
- return x >= float64(y)
- case int8:
- return x >= float64(y)
- case int16:
- return x >= float64(y)
- case int32:
- return x >= float64(y)
- case int64:
- return x >= float64(y)
- case float32:
- return x >= float64(y)
- case float64:
- return x >= y
- }
- case string:
- switch y := b.(type) {
- case string:
- return x >= y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, ">=", b))
-}
-
-func add(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x + y
- case uint8:
- return uint8(x) + y
- case uint16:
- return uint16(x) + y
- case uint32:
- return uint32(x) + y
- case uint64:
- return uint64(x) + y
- case int:
- return int(x) + y
- case int8:
- return int8(x) + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x + uint8(y)
- case uint8:
- return x + y
- case uint16:
- return uint16(x) + y
- case uint32:
- return uint32(x) + y
- case uint64:
- return uint64(x) + y
- case int:
- return int(x) + y
- case int8:
- return int8(x) + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x + uint16(y)
- case uint8:
- return x + uint16(y)
- case uint16:
- return x + y
- case uint32:
- return uint32(x) + y
- case uint64:
- return uint64(x) + y
- case int:
- return int(x) + y
- case int8:
- return int8(x) + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x + uint32(y)
- case uint8:
- return x + uint32(y)
- case uint16:
- return x + uint32(y)
- case uint32:
- return x + y
- case uint64:
- return uint64(x) + y
- case int:
- return int(x) + y
- case int8:
- return int8(x) + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x + uint64(y)
- case uint8:
- return x + uint64(y)
- case uint16:
- return x + uint64(y)
- case uint32:
- return x + uint64(y)
- case uint64:
- return x + y
- case int:
- return int(x) + y
- case int8:
- return int8(x) + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x + int(y)
- case uint8:
- return x + int(y)
- case uint16:
- return x + int(y)
- case uint32:
- return x + int(y)
- case uint64:
- return x + int(y)
- case int:
- return x + y
- case int8:
- return int8(x) + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x + int8(y)
- case uint8:
- return x + int8(y)
- case uint16:
- return x + int8(y)
- case uint32:
- return x + int8(y)
- case uint64:
- return x + int8(y)
- case int:
- return x + int8(y)
- case int8:
- return x + y
- case int16:
- return int16(x) + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x + int16(y)
- case uint8:
- return x + int16(y)
- case uint16:
- return x + int16(y)
- case uint32:
- return x + int16(y)
- case uint64:
- return x + int16(y)
- case int:
- return x + int16(y)
- case int8:
- return x + int16(y)
- case int16:
- return x + y
- case int32:
- return int32(x) + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x + int32(y)
- case uint8:
- return x + int32(y)
- case uint16:
- return x + int32(y)
- case uint32:
- return x + int32(y)
- case uint64:
- return x + int32(y)
- case int:
- return x + int32(y)
- case int8:
- return x + int32(y)
- case int16:
- return x + int32(y)
- case int32:
- return x + y
- case int64:
- return int64(x) + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x + int64(y)
- case uint8:
- return x + int64(y)
- case uint16:
- return x + int64(y)
- case uint32:
- return x + int64(y)
- case uint64:
- return x + int64(y)
- case int:
- return x + int64(y)
- case int8:
- return x + int64(y)
- case int16:
- return x + int64(y)
- case int32:
- return x + int64(y)
- case int64:
- return x + y
- case float32:
- return float32(x) + y
- case float64:
- return float64(x) + y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x + float32(y)
- case uint8:
- return x + float32(y)
- case uint16:
- return x + float32(y)
- case uint32:
- return x + float32(y)
- case uint64:
- return x + float32(y)
- case int:
- return x + float32(y)
- case int8:
- return x + float32(y)
- case int16:
- return x + float32(y)
- case int32:
- return x + float32(y)
- case int64:
- return x + float32(y)
- case float32:
- return x + y
- case float64:
- return float64(x) + y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x + float64(y)
- case uint8:
- return x + float64(y)
- case uint16:
- return x + float64(y)
- case uint32:
- return x + float64(y)
- case uint64:
- return x + float64(y)
- case int:
- return x + float64(y)
- case int8:
- return x + float64(y)
- case int16:
- return x + float64(y)
- case int32:
- return x + float64(y)
- case int64:
- return x + float64(y)
- case float32:
- return x + float64(y)
- case float64:
- return x + y
- }
- case string:
- switch y := b.(type) {
- case string:
- return x + y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "+", b))
-}
-
-func subtract(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x - y
- case uint8:
- return uint8(x) - y
- case uint16:
- return uint16(x) - y
- case uint32:
- return uint32(x) - y
- case uint64:
- return uint64(x) - y
- case int:
- return int(x) - y
- case int8:
- return int8(x) - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x - uint8(y)
- case uint8:
- return x - y
- case uint16:
- return uint16(x) - y
- case uint32:
- return uint32(x) - y
- case uint64:
- return uint64(x) - y
- case int:
- return int(x) - y
- case int8:
- return int8(x) - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x - uint16(y)
- case uint8:
- return x - uint16(y)
- case uint16:
- return x - y
- case uint32:
- return uint32(x) - y
- case uint64:
- return uint64(x) - y
- case int:
- return int(x) - y
- case int8:
- return int8(x) - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x - uint32(y)
- case uint8:
- return x - uint32(y)
- case uint16:
- return x - uint32(y)
- case uint32:
- return x - y
- case uint64:
- return uint64(x) - y
- case int:
- return int(x) - y
- case int8:
- return int8(x) - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x - uint64(y)
- case uint8:
- return x - uint64(y)
- case uint16:
- return x - uint64(y)
- case uint32:
- return x - uint64(y)
- case uint64:
- return x - y
- case int:
- return int(x) - y
- case int8:
- return int8(x) - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x - int(y)
- case uint8:
- return x - int(y)
- case uint16:
- return x - int(y)
- case uint32:
- return x - int(y)
- case uint64:
- return x - int(y)
- case int:
- return x - y
- case int8:
- return int8(x) - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x - int8(y)
- case uint8:
- return x - int8(y)
- case uint16:
- return x - int8(y)
- case uint32:
- return x - int8(y)
- case uint64:
- return x - int8(y)
- case int:
- return x - int8(y)
- case int8:
- return x - y
- case int16:
- return int16(x) - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x - int16(y)
- case uint8:
- return x - int16(y)
- case uint16:
- return x - int16(y)
- case uint32:
- return x - int16(y)
- case uint64:
- return x - int16(y)
- case int:
- return x - int16(y)
- case int8:
- return x - int16(y)
- case int16:
- return x - y
- case int32:
- return int32(x) - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x - int32(y)
- case uint8:
- return x - int32(y)
- case uint16:
- return x - int32(y)
- case uint32:
- return x - int32(y)
- case uint64:
- return x - int32(y)
- case int:
- return x - int32(y)
- case int8:
- return x - int32(y)
- case int16:
- return x - int32(y)
- case int32:
- return x - y
- case int64:
- return int64(x) - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x - int64(y)
- case uint8:
- return x - int64(y)
- case uint16:
- return x - int64(y)
- case uint32:
- return x - int64(y)
- case uint64:
- return x - int64(y)
- case int:
- return x - int64(y)
- case int8:
- return x - int64(y)
- case int16:
- return x - int64(y)
- case int32:
- return x - int64(y)
- case int64:
- return x - y
- case float32:
- return float32(x) - y
- case float64:
- return float64(x) - y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x - float32(y)
- case uint8:
- return x - float32(y)
- case uint16:
- return x - float32(y)
- case uint32:
- return x - float32(y)
- case uint64:
- return x - float32(y)
- case int:
- return x - float32(y)
- case int8:
- return x - float32(y)
- case int16:
- return x - float32(y)
- case int32:
- return x - float32(y)
- case int64:
- return x - float32(y)
- case float32:
- return x - y
- case float64:
- return float64(x) - y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x - float64(y)
- case uint8:
- return x - float64(y)
- case uint16:
- return x - float64(y)
- case uint32:
- return x - float64(y)
- case uint64:
- return x - float64(y)
- case int:
- return x - float64(y)
- case int8:
- return x - float64(y)
- case int16:
- return x - float64(y)
- case int32:
- return x - float64(y)
- case int64:
- return x - float64(y)
- case float32:
- return x - float64(y)
- case float64:
- return x - y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "-", b))
-}
-
-func multiply(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x * y
- case uint8:
- return uint8(x) * y
- case uint16:
- return uint16(x) * y
- case uint32:
- return uint32(x) * y
- case uint64:
- return uint64(x) * y
- case int:
- return int(x) * y
- case int8:
- return int8(x) * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x * uint8(y)
- case uint8:
- return x * y
- case uint16:
- return uint16(x) * y
- case uint32:
- return uint32(x) * y
- case uint64:
- return uint64(x) * y
- case int:
- return int(x) * y
- case int8:
- return int8(x) * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x * uint16(y)
- case uint8:
- return x * uint16(y)
- case uint16:
- return x * y
- case uint32:
- return uint32(x) * y
- case uint64:
- return uint64(x) * y
- case int:
- return int(x) * y
- case int8:
- return int8(x) * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x * uint32(y)
- case uint8:
- return x * uint32(y)
- case uint16:
- return x * uint32(y)
- case uint32:
- return x * y
- case uint64:
- return uint64(x) * y
- case int:
- return int(x) * y
- case int8:
- return int8(x) * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x * uint64(y)
- case uint8:
- return x * uint64(y)
- case uint16:
- return x * uint64(y)
- case uint32:
- return x * uint64(y)
- case uint64:
- return x * y
- case int:
- return int(x) * y
- case int8:
- return int8(x) * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x * int(y)
- case uint8:
- return x * int(y)
- case uint16:
- return x * int(y)
- case uint32:
- return x * int(y)
- case uint64:
- return x * int(y)
- case int:
- return x * y
- case int8:
- return int8(x) * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x * int8(y)
- case uint8:
- return x * int8(y)
- case uint16:
- return x * int8(y)
- case uint32:
- return x * int8(y)
- case uint64:
- return x * int8(y)
- case int:
- return x * int8(y)
- case int8:
- return x * y
- case int16:
- return int16(x) * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x * int16(y)
- case uint8:
- return x * int16(y)
- case uint16:
- return x * int16(y)
- case uint32:
- return x * int16(y)
- case uint64:
- return x * int16(y)
- case int:
- return x * int16(y)
- case int8:
- return x * int16(y)
- case int16:
- return x * y
- case int32:
- return int32(x) * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x * int32(y)
- case uint8:
- return x * int32(y)
- case uint16:
- return x * int32(y)
- case uint32:
- return x * int32(y)
- case uint64:
- return x * int32(y)
- case int:
- return x * int32(y)
- case int8:
- return x * int32(y)
- case int16:
- return x * int32(y)
- case int32:
- return x * y
- case int64:
- return int64(x) * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x * int64(y)
- case uint8:
- return x * int64(y)
- case uint16:
- return x * int64(y)
- case uint32:
- return x * int64(y)
- case uint64:
- return x * int64(y)
- case int:
- return x * int64(y)
- case int8:
- return x * int64(y)
- case int16:
- return x * int64(y)
- case int32:
- return x * int64(y)
- case int64:
- return x * y
- case float32:
- return float32(x) * y
- case float64:
- return float64(x) * y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x * float32(y)
- case uint8:
- return x * float32(y)
- case uint16:
- return x * float32(y)
- case uint32:
- return x * float32(y)
- case uint64:
- return x * float32(y)
- case int:
- return x * float32(y)
- case int8:
- return x * float32(y)
- case int16:
- return x * float32(y)
- case int32:
- return x * float32(y)
- case int64:
- return x * float32(y)
- case float32:
- return x * y
- case float64:
- return float64(x) * y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x * float64(y)
- case uint8:
- return x * float64(y)
- case uint16:
- return x * float64(y)
- case uint32:
- return x * float64(y)
- case uint64:
- return x * float64(y)
- case int:
- return x * float64(y)
- case int8:
- return x * float64(y)
- case int16:
- return x * float64(y)
- case int32:
- return x * float64(y)
- case int64:
- return x * float64(y)
- case float32:
- return x * float64(y)
- case float64:
- return x * y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "*", b))
-}
-
-func divide(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x / y
- case uint8:
- return uint8(x) / y
- case uint16:
- return uint16(x) / y
- case uint32:
- return uint32(x) / y
- case uint64:
- return uint64(x) / y
- case int:
- return int(x) / y
- case int8:
- return int8(x) / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x / uint8(y)
- case uint8:
- return x / y
- case uint16:
- return uint16(x) / y
- case uint32:
- return uint32(x) / y
- case uint64:
- return uint64(x) / y
- case int:
- return int(x) / y
- case int8:
- return int8(x) / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x / uint16(y)
- case uint8:
- return x / uint16(y)
- case uint16:
- return x / y
- case uint32:
- return uint32(x) / y
- case uint64:
- return uint64(x) / y
- case int:
- return int(x) / y
- case int8:
- return int8(x) / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x / uint32(y)
- case uint8:
- return x / uint32(y)
- case uint16:
- return x / uint32(y)
- case uint32:
- return x / y
- case uint64:
- return uint64(x) / y
- case int:
- return int(x) / y
- case int8:
- return int8(x) / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x / uint64(y)
- case uint8:
- return x / uint64(y)
- case uint16:
- return x / uint64(y)
- case uint32:
- return x / uint64(y)
- case uint64:
- return x / y
- case int:
- return int(x) / y
- case int8:
- return int8(x) / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x / int(y)
- case uint8:
- return x / int(y)
- case uint16:
- return x / int(y)
- case uint32:
- return x / int(y)
- case uint64:
- return x / int(y)
- case int:
- return x / y
- case int8:
- return int8(x) / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x / int8(y)
- case uint8:
- return x / int8(y)
- case uint16:
- return x / int8(y)
- case uint32:
- return x / int8(y)
- case uint64:
- return x / int8(y)
- case int:
- return x / int8(y)
- case int8:
- return x / y
- case int16:
- return int16(x) / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x / int16(y)
- case uint8:
- return x / int16(y)
- case uint16:
- return x / int16(y)
- case uint32:
- return x / int16(y)
- case uint64:
- return x / int16(y)
- case int:
- return x / int16(y)
- case int8:
- return x / int16(y)
- case int16:
- return x / y
- case int32:
- return int32(x) / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x / int32(y)
- case uint8:
- return x / int32(y)
- case uint16:
- return x / int32(y)
- case uint32:
- return x / int32(y)
- case uint64:
- return x / int32(y)
- case int:
- return x / int32(y)
- case int8:
- return x / int32(y)
- case int16:
- return x / int32(y)
- case int32:
- return x / y
- case int64:
- return int64(x) / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x / int64(y)
- case uint8:
- return x / int64(y)
- case uint16:
- return x / int64(y)
- case uint32:
- return x / int64(y)
- case uint64:
- return x / int64(y)
- case int:
- return x / int64(y)
- case int8:
- return x / int64(y)
- case int16:
- return x / int64(y)
- case int32:
- return x / int64(y)
- case int64:
- return x / y
- case float32:
- return float32(x) / y
- case float64:
- return float64(x) / y
- }
- case float32:
- switch y := b.(type) {
- case uint:
- return x / float32(y)
- case uint8:
- return x / float32(y)
- case uint16:
- return x / float32(y)
- case uint32:
- return x / float32(y)
- case uint64:
- return x / float32(y)
- case int:
- return x / float32(y)
- case int8:
- return x / float32(y)
- case int16:
- return x / float32(y)
- case int32:
- return x / float32(y)
- case int64:
- return x / float32(y)
- case float32:
- return x / y
- case float64:
- return float64(x) / y
- }
- case float64:
- switch y := b.(type) {
- case uint:
- return x / float64(y)
- case uint8:
- return x / float64(y)
- case uint16:
- return x / float64(y)
- case uint32:
- return x / float64(y)
- case uint64:
- return x / float64(y)
- case int:
- return x / float64(y)
- case int8:
- return x / float64(y)
- case int16:
- return x / float64(y)
- case int32:
- return x / float64(y)
- case int64:
- return x / float64(y)
- case float32:
- return x / float64(y)
- case float64:
- return x / y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "/", b))
-}
-
-func modulo(a, b interface{}) interface{} {
- switch x := a.(type) {
- case uint:
- switch y := b.(type) {
- case uint:
- return x % y
- case uint8:
- return uint8(x) % y
- case uint16:
- return uint16(x) % y
- case uint32:
- return uint32(x) % y
- case uint64:
- return uint64(x) % y
- case int:
- return int(x) % y
- case int8:
- return int8(x) % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case uint8:
- switch y := b.(type) {
- case uint:
- return x % uint8(y)
- case uint8:
- return x % y
- case uint16:
- return uint16(x) % y
- case uint32:
- return uint32(x) % y
- case uint64:
- return uint64(x) % y
- case int:
- return int(x) % y
- case int8:
- return int8(x) % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case uint16:
- switch y := b.(type) {
- case uint:
- return x % uint16(y)
- case uint8:
- return x % uint16(y)
- case uint16:
- return x % y
- case uint32:
- return uint32(x) % y
- case uint64:
- return uint64(x) % y
- case int:
- return int(x) % y
- case int8:
- return int8(x) % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case uint32:
- switch y := b.(type) {
- case uint:
- return x % uint32(y)
- case uint8:
- return x % uint32(y)
- case uint16:
- return x % uint32(y)
- case uint32:
- return x % y
- case uint64:
- return uint64(x) % y
- case int:
- return int(x) % y
- case int8:
- return int8(x) % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case uint64:
- switch y := b.(type) {
- case uint:
- return x % uint64(y)
- case uint8:
- return x % uint64(y)
- case uint16:
- return x % uint64(y)
- case uint32:
- return x % uint64(y)
- case uint64:
- return x % y
- case int:
- return int(x) % y
- case int8:
- return int8(x) % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case int:
- switch y := b.(type) {
- case uint:
- return x % int(y)
- case uint8:
- return x % int(y)
- case uint16:
- return x % int(y)
- case uint32:
- return x % int(y)
- case uint64:
- return x % int(y)
- case int:
- return x % y
- case int8:
- return int8(x) % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case int8:
- switch y := b.(type) {
- case uint:
- return x % int8(y)
- case uint8:
- return x % int8(y)
- case uint16:
- return x % int8(y)
- case uint32:
- return x % int8(y)
- case uint64:
- return x % int8(y)
- case int:
- return x % int8(y)
- case int8:
- return x % y
- case int16:
- return int16(x) % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case int16:
- switch y := b.(type) {
- case uint:
- return x % int16(y)
- case uint8:
- return x % int16(y)
- case uint16:
- return x % int16(y)
- case uint32:
- return x % int16(y)
- case uint64:
- return x % int16(y)
- case int:
- return x % int16(y)
- case int8:
- return x % int16(y)
- case int16:
- return x % y
- case int32:
- return int32(x) % y
- case int64:
- return int64(x) % y
- }
- case int32:
- switch y := b.(type) {
- case uint:
- return x % int32(y)
- case uint8:
- return x % int32(y)
- case uint16:
- return x % int32(y)
- case uint32:
- return x % int32(y)
- case uint64:
- return x % int32(y)
- case int:
- return x % int32(y)
- case int8:
- return x % int32(y)
- case int16:
- return x % int32(y)
- case int32:
- return x % y
- case int64:
- return int64(x) % y
- }
- case int64:
- switch y := b.(type) {
- case uint:
- return x % int64(y)
- case uint8:
- return x % int64(y)
- case uint16:
- return x % int64(y)
- case uint32:
- return x % int64(y)
- case uint64:
- return x % int64(y)
- case int:
- return x % int64(y)
- case int8:
- return x % int64(y)
- case int16:
- return x % int64(y)
- case int32:
- return x % int64(y)
- case int64:
- return x % y
- }
- }
- panic(fmt.Sprintf("invalid operation: %T %v %T", a, "%", b))
-}
diff --git a/vendor/github.com/antonmedv/expr/vm/opcodes.go b/vendor/github.com/antonmedv/expr/vm/opcodes.go
index 7f2dd37e9b..b3117e73c2 100644
--- a/vendor/github.com/antonmedv/expr/vm/opcodes.go
+++ b/vendor/github.com/antonmedv/expr/vm/opcodes.go
@@ -1,12 +1,19 @@
package vm
+type Opcode byte
+
const (
- OpPush byte = iota
+ OpPush Opcode = iota
+ OpPushInt
OpPop
- OpRot
+ OpLoadConst
+ OpLoadField
+ OpLoadFast
+ OpLoadMethod
+ OpLoadFunc
OpFetch
- OpFetchNilSafe
- OpFetchMap
+ OpFetchField
+ OpMethod
OpTrue
OpFalse
OpNil
@@ -18,6 +25,9 @@ const (
OpJump
OpJumpIfTrue
OpJumpIfFalse
+ OpJumpIfNil
+ OpJumpIfNotNil
+ OpJumpIfEnd
OpJumpBackward
OpIn
OpLess
@@ -36,21 +46,26 @@ const (
OpContains
OpStartsWith
OpEndsWith
- OpIndex
OpSlice
- OpProperty
- OpPropertyNilSafe
OpCall
+ OpCall0
+ OpCall1
+ OpCall2
+ OpCall3
+ OpCallN
OpCallFast
- OpMethod
- OpMethodNilSafe
+ OpCallTyped
+ OpBuiltin
OpArray
OpMap
OpLen
OpCast
- OpStore
- OpLoad
- OpInc
+ OpDeref
+ OpIncrementIt
+ OpIncrementCount
+ OpGetCount
+ OpGetLen
+ OpPointer
OpBegin
OpEnd // This opcode must be at the end of this list.
)
diff --git a/vendor/github.com/antonmedv/expr/vm/program.go b/vendor/github.com/antonmedv/expr/vm/program.go
index 5a41f8af4f..d424df14f4 100644
--- a/vendor/github.com/antonmedv/expr/vm/program.go
+++ b/vendor/github.com/antonmedv/expr/vm/program.go
@@ -1,83 +1,110 @@
package vm
import (
- "encoding/binary"
+ "bytes"
"fmt"
+ "reflect"
"regexp"
+ "strings"
+ "text/tabwriter"
+ "github.com/antonmedv/expr/ast"
+ "github.com/antonmedv/expr/builtin"
"github.com/antonmedv/expr/file"
+ "github.com/antonmedv/expr/vm/runtime"
)
type Program struct {
+ Node ast.Node
Source *file.Source
- Locations map[int]file.Location
+ Locations []file.Location
Constants []interface{}
- Bytecode []byte
+ Bytecode []Opcode
+ Arguments []int
+ Functions []Function
}
func (program *Program) Disassemble() string {
- out := ""
+ var buf bytes.Buffer
+ w := tabwriter.NewWriter(&buf, 0, 0, 2, ' ', 0)
ip := 0
for ip < len(program.Bytecode) {
pp := ip
op := program.Bytecode[ip]
- ip++
-
- readArg := func() uint16 {
- if ip+1 >= len(program.Bytecode) {
- return 0
- }
-
- i := binary.LittleEndian.Uint16([]byte{program.Bytecode[ip], program.Bytecode[ip+1]})
- ip += 2
- return i
- }
+ arg := program.Arguments[ip]
+ ip += 1
code := func(label string) {
- out += fmt.Sprintf("%v\t%v\n", pp, label)
+ _, _ = fmt.Fprintf(w, "%v\t%v\n", pp, label)
}
jump := func(label string) {
- a := readArg()
- out += fmt.Sprintf("%v\t%v\t%v\t(%v)\n", pp, label, a, ip+int(a))
+ _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t(%v)\n", pp, label, arg, ip+arg)
}
- back := func(label string) {
- a := readArg()
- out += fmt.Sprintf("%v\t%v\t%v\t(%v)\n", pp, label, a, ip-int(a))
+ jumpBack := func(label string) {
+ _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t(%v)\n", pp, label, arg, ip-arg)
}
argument := func(label string) {
- a := readArg()
- out += fmt.Sprintf("%v\t%v\t%v\n", pp, label, a)
+ _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\n", pp, label, arg)
}
constant := func(label string) {
- a := readArg()
var c interface{}
- if int(a) < len(program.Constants) {
- c = program.Constants[a]
+ if arg < len(program.Constants) {
+ c = program.Constants[arg]
+ } else {
+ c = "out of range"
}
if r, ok := c.(*regexp.Regexp); ok {
c = r.String()
}
- out += fmt.Sprintf("%v\t%v\t%v\t%#v\n", pp, label, a, c)
+ if field, ok := c.(*runtime.Field); ok {
+ c = fmt.Sprintf("{%v %v}", strings.Join(field.Path, "."), field.Index)
+ }
+ if method, ok := c.(*runtime.Method); ok {
+ c = fmt.Sprintf("{%v %v}", method.Name, method.Index)
+ }
+ _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t%v\n", pp, label, arg, c)
+ }
+ builtIn := func(label string) {
+ f, ok := builtin.Builtins[arg]
+ if !ok {
+ panic(fmt.Sprintf("unknown builtin %v", arg))
+ }
+ _, _ = fmt.Fprintf(w, "%v\t%v\t%v\n", pp, "OpBuiltin", f.Name)
}
switch op {
case OpPush:
constant("OpPush")
+ case OpPushInt:
+ argument("OpPushInt")
+
case OpPop:
code("OpPop")
- case OpRot:
- code("OpRot")
+ case OpLoadConst:
+ constant("OpLoadConst")
+
+ case OpLoadField:
+ constant("OpLoadField")
+
+ case OpLoadFast:
+ constant("OpLoadFast")
+
+ case OpLoadMethod:
+ constant("OpLoadMethod")
+
+ case OpLoadFunc:
+ argument("OpLoadFunc")
case OpFetch:
- constant("OpFetch")
+ code("OpFetch")
- case OpFetchNilSafe:
- constant("OpFetchNilSafe")
+ case OpFetchField:
+ constant("OpFetchField")
- case OpFetchMap:
- constant("OpFetchMap")
+ case OpMethod:
+ constant("OpMethod")
case OpTrue:
code("OpTrue")
@@ -112,8 +139,17 @@ func (program *Program) Disassemble() string {
case OpJumpIfFalse:
jump("OpJumpIfFalse")
+ case OpJumpIfNil:
+ jump("OpJumpIfNil")
+
+ case OpJumpIfNotNil:
+ jump("OpJumpIfNotNil")
+
+ case OpJumpIfEnd:
+ jump("OpJumpIfEnd")
+
case OpJumpBackward:
- back("OpJumpBackward")
+ jumpBack("OpJumpBackward")
case OpIn:
code("OpIn")
@@ -166,29 +202,36 @@ func (program *Program) Disassemble() string {
case OpEndsWith:
code("OpEndsWith")
- case OpIndex:
- code("OpIndex")
-
case OpSlice:
code("OpSlice")
- case OpProperty:
- constant("OpProperty")
+ case OpCall:
+ argument("OpCall")
- case OpPropertyNilSafe:
- constant("OpPropertyNilSafe")
+ case OpCall0:
+ argument("OpCall0")
- case OpCall:
- constant("OpCall")
+ case OpCall1:
+ argument("OpCall1")
+
+ case OpCall2:
+ argument("OpCall2")
+
+ case OpCall3:
+ argument("OpCall3")
+
+ case OpCallN:
+ argument("OpCallN")
case OpCallFast:
- constant("OpCallFast")
+ argument("OpCallFast")
- case OpMethod:
- constant("OpMethod")
+ case OpCallTyped:
+ signature := reflect.TypeOf(FuncTypes[arg]).Elem().String()
+ _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t%v\n", pp, "OpCallTyped", arg, signature)
- case OpMethodNilSafe:
- constant("OpMethodNilSafe")
+ case OpBuiltin:
+ builtIn("OpBuiltin")
case OpArray:
code("OpArray")
@@ -202,14 +245,23 @@ func (program *Program) Disassemble() string {
case OpCast:
argument("OpCast")
- case OpStore:
- constant("OpStore")
+ case OpDeref:
+ code("OpDeref")
+
+ case OpIncrementIt:
+ code("OpIncrementIt")
+
+ case OpIncrementCount:
+ code("OpIncrementCount")
+
+ case OpGetCount:
+ code("OpGetCount")
- case OpLoad:
- constant("OpLoad")
+ case OpGetLen:
+ code("OpGetLen")
- case OpInc:
- constant("OpInc")
+ case OpPointer:
+ code("OpPointer")
case OpBegin:
code("OpBegin")
@@ -218,8 +270,9 @@ func (program *Program) Disassemble() string {
code("OpEnd")
default:
- out += fmt.Sprintf("%v\t%#x\n", pp, op)
+ _, _ = fmt.Fprintf(w, "%v\t%#x\n", ip, op)
}
}
- return out
+ _ = w.Flush()
+ return buf.String()
}
diff --git a/vendor/github.com/antonmedv/expr/vm/runtime.go b/vendor/github.com/antonmedv/expr/vm/runtime.go
deleted file mode 100644
index 2e0091314b..0000000000
--- a/vendor/github.com/antonmedv/expr/vm/runtime.go
+++ /dev/null
@@ -1,370 +0,0 @@
-package vm
-
-//go:generate go run ./generate
-
-import (
- "fmt"
- "math"
- "reflect"
-)
-
-type Call struct {
- Name string
- Size int
-}
-
-type Scope map[string]interface{}
-
-type Fetcher interface {
- Fetch(interface{}) interface{}
-}
-
-func fetch(from, i interface{}, nilsafe bool) interface{} {
- if fetcher, ok := from.(Fetcher); ok {
- value := fetcher.Fetch(i)
- if value != nil {
- return value
- }
- if !nilsafe {
- panic(fmt.Sprintf("cannot fetch %v from %T", i, from))
- }
- return nil
- }
-
- v := reflect.ValueOf(from)
- kind := v.Kind()
-
- // Structures can be access through a pointer or through a value, when they
- // are accessed through a pointer we don't want to copy them to a value.
- if kind == reflect.Ptr && reflect.Indirect(v).Kind() == reflect.Struct {
- v = reflect.Indirect(v)
- kind = v.Kind()
- }
-
- switch kind {
-
- case reflect.Array, reflect.Slice, reflect.String:
- value := v.Index(toInt(i))
- if value.IsValid() && value.CanInterface() {
- return value.Interface()
- }
-
- case reflect.Map:
- value := v.MapIndex(reflect.ValueOf(i))
- if value.IsValid() {
- if value.CanInterface() {
- return value.Interface()
- }
- } else {
- elem := reflect.TypeOf(from).Elem()
- return reflect.Zero(elem).Interface()
- }
-
- case reflect.Struct:
- value := v.FieldByName(reflect.ValueOf(i).String())
- if value.IsValid() && value.CanInterface() {
- return value.Interface()
- }
- }
- if !nilsafe {
- panic(fmt.Sprintf("cannot fetch %v from %T", i, from))
- }
- return nil
-}
-
-func slice(array, from, to interface{}) interface{} {
- v := reflect.ValueOf(array)
-
- switch v.Kind() {
- case reflect.Array, reflect.Slice, reflect.String:
- length := v.Len()
- a, b := toInt(from), toInt(to)
-
- if b > length {
- b = length
- }
- if a > b {
- a = b
- }
-
- value := v.Slice(a, b)
- if value.IsValid() && value.CanInterface() {
- return value.Interface()
- }
-
- case reflect.Ptr:
- value := v.Elem()
- if value.IsValid() && value.CanInterface() {
- return slice(value.Interface(), from, to)
- }
-
- }
- panic(fmt.Sprintf("cannot slice %v", from))
-}
-
-func FetchFn(from interface{}, name string) reflect.Value {
- v := reflect.ValueOf(from)
-
- // Methods can be defined on any type.
- if v.NumMethod() > 0 {
- method := v.MethodByName(name)
- if method.IsValid() {
- return method
- }
- }
-
- d := v
- if v.Kind() == reflect.Ptr {
- d = v.Elem()
- }
-
- switch d.Kind() {
- case reflect.Map:
- value := d.MapIndex(reflect.ValueOf(name))
- if value.IsValid() && value.CanInterface() {
- return value.Elem()
- }
- case reflect.Struct:
- // If struct has not method, maybe it has func field.
- // To access this field we need dereference value.
- value := d.FieldByName(name)
- if value.IsValid() {
- return value
- }
- }
- panic(fmt.Sprintf(`cannot get "%v" from %T`, name, from))
-}
-
-func FetchFnNil(from interface{}, name string) reflect.Value {
- if v := reflect.ValueOf(from); !v.IsValid() {
- return v
- }
- return FetchFn(from, name)
-}
-
-func in(needle interface{}, array interface{}) bool {
- if array == nil {
- return false
- }
- v := reflect.ValueOf(array)
-
- switch v.Kind() {
-
- case reflect.Array, reflect.Slice:
- for i := 0; i < v.Len(); i++ {
- value := v.Index(i)
- if value.IsValid() && value.CanInterface() {
- if equal(value.Interface(), needle).(bool) {
- return true
- }
- }
- }
- return false
-
- case reflect.Map:
- n := reflect.ValueOf(needle)
- if !n.IsValid() {
- panic(fmt.Sprintf("cannot use %T as index to %T", needle, array))
- }
- value := v.MapIndex(n)
- if value.IsValid() {
- return true
- }
- return false
-
- case reflect.Struct:
- n := reflect.ValueOf(needle)
- if !n.IsValid() || n.Kind() != reflect.String {
- panic(fmt.Sprintf("cannot use %T as field name of %T", needle, array))
- }
- value := v.FieldByName(n.String())
- if value.IsValid() {
- return true
- }
- return false
-
- case reflect.Ptr:
- value := v.Elem()
- if value.IsValid() && value.CanInterface() {
- return in(needle, value.Interface())
- }
- return false
- }
-
- panic(fmt.Sprintf(`operator "in"" not defined on %T`, array))
-}
-
-func length(a interface{}) int {
- v := reflect.ValueOf(a)
- switch v.Kind() {
- case reflect.Array, reflect.Slice, reflect.Map, reflect.String:
- return v.Len()
- default:
- panic(fmt.Sprintf("invalid argument for len (type %T)", a))
- }
-}
-
-func negate(i interface{}) interface{} {
- switch v := i.(type) {
- case float32:
- return -v
- case float64:
- return -v
-
- case int:
- return -v
- case int8:
- return -v
- case int16:
- return -v
- case int32:
- return -v
- case int64:
- return -v
-
- case uint:
- return -v
- case uint8:
- return -v
- case uint16:
- return -v
- case uint32:
- return -v
- case uint64:
- return -v
-
- default:
- panic(fmt.Sprintf("invalid operation: - %T", v))
- }
-}
-
-func exponent(a, b interface{}) float64 {
- return math.Pow(toFloat64(a), toFloat64(b))
-}
-
-func makeRange(min, max int) []int {
- size := max - min + 1
- if size <= 0 {
- return []int{}
- }
- rng := make([]int, size)
- for i := range rng {
- rng[i] = min + i
- }
- return rng
-}
-
-func toInt(a interface{}) int {
- switch x := a.(type) {
- case float32:
- return int(x)
- case float64:
- return int(x)
-
- case int:
- return x
- case int8:
- return int(x)
- case int16:
- return int(x)
- case int32:
- return int(x)
- case int64:
- return int(x)
-
- case uint:
- return int(x)
- case uint8:
- return int(x)
- case uint16:
- return int(x)
- case uint32:
- return int(x)
- case uint64:
- return int(x)
-
- default:
- panic(fmt.Sprintf("invalid operation: int(%T)", x))
- }
-}
-
-func toInt64(a interface{}) int64 {
- switch x := a.(type) {
- case float32:
- return int64(x)
- case float64:
- return int64(x)
-
- case int:
- return int64(x)
- case int8:
- return int64(x)
- case int16:
- return int64(x)
- case int32:
- return int64(x)
- case int64:
- return x
-
- case uint:
- return int64(x)
- case uint8:
- return int64(x)
- case uint16:
- return int64(x)
- case uint32:
- return int64(x)
- case uint64:
- return int64(x)
-
- default:
- panic(fmt.Sprintf("invalid operation: int64(%T)", x))
- }
-}
-
-func toFloat64(a interface{}) float64 {
- switch x := a.(type) {
- case float32:
- return float64(x)
- case float64:
- return x
-
- case int:
- return float64(x)
- case int8:
- return float64(x)
- case int16:
- return float64(x)
- case int32:
- return float64(x)
- case int64:
- return float64(x)
-
- case uint:
- return float64(x)
- case uint8:
- return float64(x)
- case uint16:
- return float64(x)
- case uint32:
- return float64(x)
- case uint64:
- return float64(x)
-
- default:
- panic(fmt.Sprintf("invalid operation: float64(%T)", x))
- }
-}
-
-func isNil(v interface{}) bool {
- if v == nil {
- return true
- }
- r := reflect.ValueOf(v)
- switch r.Kind() {
- case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Slice:
- return r.IsNil()
- default:
- return false
- }
-}
diff --git a/vendor/github.com/antonmedv/expr/vm/runtime/generated.go b/vendor/github.com/antonmedv/expr/vm/runtime/generated.go
new file mode 100644
index 0000000000..09a4a200ed
--- /dev/null
+++ b/vendor/github.com/antonmedv/expr/vm/runtime/generated.go
@@ -0,0 +1,3288 @@
+// Code generated by vm/runtime/helpers/main.go. DO NOT EDIT.
+
+package runtime
+
+import (
+ "fmt"
+ "reflect"
+ "time"
+)
+
+func Equal(a, b interface{}) bool {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) == int(y)
+ case uint8:
+ return int(x) == int(y)
+ case uint16:
+ return int(x) == int(y)
+ case uint32:
+ return int(x) == int(y)
+ case uint64:
+ return int(x) == int(y)
+ case int:
+ return int(x) == int(y)
+ case int8:
+ return int(x) == int(y)
+ case int16:
+ return int(x) == int(y)
+ case int32:
+ return int(x) == int(y)
+ case int64:
+ return int(x) == int(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) == float64(y)
+ case uint8:
+ return float64(x) == float64(y)
+ case uint16:
+ return float64(x) == float64(y)
+ case uint32:
+ return float64(x) == float64(y)
+ case uint64:
+ return float64(x) == float64(y)
+ case int:
+ return float64(x) == float64(y)
+ case int8:
+ return float64(x) == float64(y)
+ case int16:
+ return float64(x) == float64(y)
+ case int32:
+ return float64(x) == float64(y)
+ case int64:
+ return float64(x) == float64(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) == float64(y)
+ case uint8:
+ return float64(x) == float64(y)
+ case uint16:
+ return float64(x) == float64(y)
+ case uint32:
+ return float64(x) == float64(y)
+ case uint64:
+ return float64(x) == float64(y)
+ case int:
+ return float64(x) == float64(y)
+ case int8:
+ return float64(x) == float64(y)
+ case int16:
+ return float64(x) == float64(y)
+ case int32:
+ return float64(x) == float64(y)
+ case int64:
+ return float64(x) == float64(y)
+ case float32:
+ return float64(x) == float64(y)
+ case float64:
+ return float64(x) == float64(y)
+ }
+ case string:
+ switch y := b.(type) {
+ case string:
+ return x == y
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Time:
+ return x.Equal(y)
+ }
+ }
+ if IsNil(a) && IsNil(b) {
+ return true
+ }
+ return reflect.DeepEqual(a, b)
+}
+
+func Less(a, b interface{}) bool {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) < int(y)
+ case uint8:
+ return int(x) < int(y)
+ case uint16:
+ return int(x) < int(y)
+ case uint32:
+ return int(x) < int(y)
+ case uint64:
+ return int(x) < int(y)
+ case int:
+ return int(x) < int(y)
+ case int8:
+ return int(x) < int(y)
+ case int16:
+ return int(x) < int(y)
+ case int32:
+ return int(x) < int(y)
+ case int64:
+ return int(x) < int(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) < float64(y)
+ case uint8:
+ return float64(x) < float64(y)
+ case uint16:
+ return float64(x) < float64(y)
+ case uint32:
+ return float64(x) < float64(y)
+ case uint64:
+ return float64(x) < float64(y)
+ case int:
+ return float64(x) < float64(y)
+ case int8:
+ return float64(x) < float64(y)
+ case int16:
+ return float64(x) < float64(y)
+ case int32:
+ return float64(x) < float64(y)
+ case int64:
+ return float64(x) < float64(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) < float64(y)
+ case uint8:
+ return float64(x) < float64(y)
+ case uint16:
+ return float64(x) < float64(y)
+ case uint32:
+ return float64(x) < float64(y)
+ case uint64:
+ return float64(x) < float64(y)
+ case int:
+ return float64(x) < float64(y)
+ case int8:
+ return float64(x) < float64(y)
+ case int16:
+ return float64(x) < float64(y)
+ case int32:
+ return float64(x) < float64(y)
+ case int64:
+ return float64(x) < float64(y)
+ case float32:
+ return float64(x) < float64(y)
+ case float64:
+ return float64(x) < float64(y)
+ }
+ case string:
+ switch y := b.(type) {
+ case string:
+ return x < y
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Time:
+ return x.Before(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T < %T", a, b))
+}
+
+func More(a, b interface{}) bool {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) > int(y)
+ case uint8:
+ return int(x) > int(y)
+ case uint16:
+ return int(x) > int(y)
+ case uint32:
+ return int(x) > int(y)
+ case uint64:
+ return int(x) > int(y)
+ case int:
+ return int(x) > int(y)
+ case int8:
+ return int(x) > int(y)
+ case int16:
+ return int(x) > int(y)
+ case int32:
+ return int(x) > int(y)
+ case int64:
+ return int(x) > int(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) > float64(y)
+ case uint8:
+ return float64(x) > float64(y)
+ case uint16:
+ return float64(x) > float64(y)
+ case uint32:
+ return float64(x) > float64(y)
+ case uint64:
+ return float64(x) > float64(y)
+ case int:
+ return float64(x) > float64(y)
+ case int8:
+ return float64(x) > float64(y)
+ case int16:
+ return float64(x) > float64(y)
+ case int32:
+ return float64(x) > float64(y)
+ case int64:
+ return float64(x) > float64(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) > float64(y)
+ case uint8:
+ return float64(x) > float64(y)
+ case uint16:
+ return float64(x) > float64(y)
+ case uint32:
+ return float64(x) > float64(y)
+ case uint64:
+ return float64(x) > float64(y)
+ case int:
+ return float64(x) > float64(y)
+ case int8:
+ return float64(x) > float64(y)
+ case int16:
+ return float64(x) > float64(y)
+ case int32:
+ return float64(x) > float64(y)
+ case int64:
+ return float64(x) > float64(y)
+ case float32:
+ return float64(x) > float64(y)
+ case float64:
+ return float64(x) > float64(y)
+ }
+ case string:
+ switch y := b.(type) {
+ case string:
+ return x > y
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Time:
+ return x.After(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T > %T", a, b))
+}
+
+func LessOrEqual(a, b interface{}) bool {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) <= int(y)
+ case uint8:
+ return int(x) <= int(y)
+ case uint16:
+ return int(x) <= int(y)
+ case uint32:
+ return int(x) <= int(y)
+ case uint64:
+ return int(x) <= int(y)
+ case int:
+ return int(x) <= int(y)
+ case int8:
+ return int(x) <= int(y)
+ case int16:
+ return int(x) <= int(y)
+ case int32:
+ return int(x) <= int(y)
+ case int64:
+ return int(x) <= int(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) <= float64(y)
+ case uint8:
+ return float64(x) <= float64(y)
+ case uint16:
+ return float64(x) <= float64(y)
+ case uint32:
+ return float64(x) <= float64(y)
+ case uint64:
+ return float64(x) <= float64(y)
+ case int:
+ return float64(x) <= float64(y)
+ case int8:
+ return float64(x) <= float64(y)
+ case int16:
+ return float64(x) <= float64(y)
+ case int32:
+ return float64(x) <= float64(y)
+ case int64:
+ return float64(x) <= float64(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) <= float64(y)
+ case uint8:
+ return float64(x) <= float64(y)
+ case uint16:
+ return float64(x) <= float64(y)
+ case uint32:
+ return float64(x) <= float64(y)
+ case uint64:
+ return float64(x) <= float64(y)
+ case int:
+ return float64(x) <= float64(y)
+ case int8:
+ return float64(x) <= float64(y)
+ case int16:
+ return float64(x) <= float64(y)
+ case int32:
+ return float64(x) <= float64(y)
+ case int64:
+ return float64(x) <= float64(y)
+ case float32:
+ return float64(x) <= float64(y)
+ case float64:
+ return float64(x) <= float64(y)
+ }
+ case string:
+ switch y := b.(type) {
+ case string:
+ return x <= y
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Time:
+ return x.Before(y) || x.Equal(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T <= %T", a, b))
+}
+
+func MoreOrEqual(a, b interface{}) bool {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) >= int(y)
+ case uint8:
+ return int(x) >= int(y)
+ case uint16:
+ return int(x) >= int(y)
+ case uint32:
+ return int(x) >= int(y)
+ case uint64:
+ return int(x) >= int(y)
+ case int:
+ return int(x) >= int(y)
+ case int8:
+ return int(x) >= int(y)
+ case int16:
+ return int(x) >= int(y)
+ case int32:
+ return int(x) >= int(y)
+ case int64:
+ return int(x) >= int(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) >= float64(y)
+ case uint8:
+ return float64(x) >= float64(y)
+ case uint16:
+ return float64(x) >= float64(y)
+ case uint32:
+ return float64(x) >= float64(y)
+ case uint64:
+ return float64(x) >= float64(y)
+ case int:
+ return float64(x) >= float64(y)
+ case int8:
+ return float64(x) >= float64(y)
+ case int16:
+ return float64(x) >= float64(y)
+ case int32:
+ return float64(x) >= float64(y)
+ case int64:
+ return float64(x) >= float64(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) >= float64(y)
+ case uint8:
+ return float64(x) >= float64(y)
+ case uint16:
+ return float64(x) >= float64(y)
+ case uint32:
+ return float64(x) >= float64(y)
+ case uint64:
+ return float64(x) >= float64(y)
+ case int:
+ return float64(x) >= float64(y)
+ case int8:
+ return float64(x) >= float64(y)
+ case int16:
+ return float64(x) >= float64(y)
+ case int32:
+ return float64(x) >= float64(y)
+ case int64:
+ return float64(x) >= float64(y)
+ case float32:
+ return float64(x) >= float64(y)
+ case float64:
+ return float64(x) >= float64(y)
+ }
+ case string:
+ switch y := b.(type) {
+ case string:
+ return x >= y
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Time:
+ return x.After(y) || x.Equal(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T >= %T", a, b))
+}
+
+func Add(a, b interface{}) interface{} {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) + int(y)
+ case uint8:
+ return int(x) + int(y)
+ case uint16:
+ return int(x) + int(y)
+ case uint32:
+ return int(x) + int(y)
+ case uint64:
+ return int(x) + int(y)
+ case int:
+ return int(x) + int(y)
+ case int8:
+ return int(x) + int(y)
+ case int16:
+ return int(x) + int(y)
+ case int32:
+ return int(x) + int(y)
+ case int64:
+ return int(x) + int(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) + float64(y)
+ case uint8:
+ return float64(x) + float64(y)
+ case uint16:
+ return float64(x) + float64(y)
+ case uint32:
+ return float64(x) + float64(y)
+ case uint64:
+ return float64(x) + float64(y)
+ case int:
+ return float64(x) + float64(y)
+ case int8:
+ return float64(x) + float64(y)
+ case int16:
+ return float64(x) + float64(y)
+ case int32:
+ return float64(x) + float64(y)
+ case int64:
+ return float64(x) + float64(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) + float64(y)
+ case uint8:
+ return float64(x) + float64(y)
+ case uint16:
+ return float64(x) + float64(y)
+ case uint32:
+ return float64(x) + float64(y)
+ case uint64:
+ return float64(x) + float64(y)
+ case int:
+ return float64(x) + float64(y)
+ case int8:
+ return float64(x) + float64(y)
+ case int16:
+ return float64(x) + float64(y)
+ case int32:
+ return float64(x) + float64(y)
+ case int64:
+ return float64(x) + float64(y)
+ case float32:
+ return float64(x) + float64(y)
+ case float64:
+ return float64(x) + float64(y)
+ }
+ case string:
+ switch y := b.(type) {
+ case string:
+ return x + y
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Duration:
+ return x.Add(y)
+ }
+ case time.Duration:
+ switch y := b.(type) {
+ case time.Time:
+ return y.Add(x)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T + %T", a, b))
+}
+
+func Subtract(a, b interface{}) interface{} {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) - int(y)
+ case uint8:
+ return int(x) - int(y)
+ case uint16:
+ return int(x) - int(y)
+ case uint32:
+ return int(x) - int(y)
+ case uint64:
+ return int(x) - int(y)
+ case int:
+ return int(x) - int(y)
+ case int8:
+ return int(x) - int(y)
+ case int16:
+ return int(x) - int(y)
+ case int32:
+ return int(x) - int(y)
+ case int64:
+ return int(x) - int(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) - float64(y)
+ case uint8:
+ return float64(x) - float64(y)
+ case uint16:
+ return float64(x) - float64(y)
+ case uint32:
+ return float64(x) - float64(y)
+ case uint64:
+ return float64(x) - float64(y)
+ case int:
+ return float64(x) - float64(y)
+ case int8:
+ return float64(x) - float64(y)
+ case int16:
+ return float64(x) - float64(y)
+ case int32:
+ return float64(x) - float64(y)
+ case int64:
+ return float64(x) - float64(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) - float64(y)
+ case uint8:
+ return float64(x) - float64(y)
+ case uint16:
+ return float64(x) - float64(y)
+ case uint32:
+ return float64(x) - float64(y)
+ case uint64:
+ return float64(x) - float64(y)
+ case int:
+ return float64(x) - float64(y)
+ case int8:
+ return float64(x) - float64(y)
+ case int16:
+ return float64(x) - float64(y)
+ case int32:
+ return float64(x) - float64(y)
+ case int64:
+ return float64(x) - float64(y)
+ case float32:
+ return float64(x) - float64(y)
+ case float64:
+ return float64(x) - float64(y)
+ }
+ case time.Time:
+ switch y := b.(type) {
+ case time.Time:
+ return x.Sub(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T - %T", a, b))
+}
+
+func Multiply(a, b interface{}) interface{} {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) * int(y)
+ case uint8:
+ return int(x) * int(y)
+ case uint16:
+ return int(x) * int(y)
+ case uint32:
+ return int(x) * int(y)
+ case uint64:
+ return int(x) * int(y)
+ case int:
+ return int(x) * int(y)
+ case int8:
+ return int(x) * int(y)
+ case int16:
+ return int(x) * int(y)
+ case int32:
+ return int(x) * int(y)
+ case int64:
+ return int(x) * int(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) * float64(y)
+ case uint8:
+ return float64(x) * float64(y)
+ case uint16:
+ return float64(x) * float64(y)
+ case uint32:
+ return float64(x) * float64(y)
+ case uint64:
+ return float64(x) * float64(y)
+ case int:
+ return float64(x) * float64(y)
+ case int8:
+ return float64(x) * float64(y)
+ case int16:
+ return float64(x) * float64(y)
+ case int32:
+ return float64(x) * float64(y)
+ case int64:
+ return float64(x) * float64(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) * float64(y)
+ case uint8:
+ return float64(x) * float64(y)
+ case uint16:
+ return float64(x) * float64(y)
+ case uint32:
+ return float64(x) * float64(y)
+ case uint64:
+ return float64(x) * float64(y)
+ case int:
+ return float64(x) * float64(y)
+ case int8:
+ return float64(x) * float64(y)
+ case int16:
+ return float64(x) * float64(y)
+ case int32:
+ return float64(x) * float64(y)
+ case int64:
+ return float64(x) * float64(y)
+ case float32:
+ return float64(x) * float64(y)
+ case float64:
+ return float64(x) * float64(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T * %T", a, b))
+}
+
+func Divide(a, b interface{}) float64 {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case float32:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ case float64:
+ switch y := b.(type) {
+ case uint:
+ return float64(x) / float64(y)
+ case uint8:
+ return float64(x) / float64(y)
+ case uint16:
+ return float64(x) / float64(y)
+ case uint32:
+ return float64(x) / float64(y)
+ case uint64:
+ return float64(x) / float64(y)
+ case int:
+ return float64(x) / float64(y)
+ case int8:
+ return float64(x) / float64(y)
+ case int16:
+ return float64(x) / float64(y)
+ case int32:
+ return float64(x) / float64(y)
+ case int64:
+ return float64(x) / float64(y)
+ case float32:
+ return float64(x) / float64(y)
+ case float64:
+ return float64(x) / float64(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T / %T", a, b))
+}
+
+func Modulo(a, b interface{}) int {
+ switch x := a.(type) {
+ case uint:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case uint8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case uint16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case uint32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case uint64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case int:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case int8:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case int16:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case int32:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ case int64:
+ switch y := b.(type) {
+ case uint:
+ return int(x) % int(y)
+ case uint8:
+ return int(x) % int(y)
+ case uint16:
+ return int(x) % int(y)
+ case uint32:
+ return int(x) % int(y)
+ case uint64:
+ return int(x) % int(y)
+ case int:
+ return int(x) % int(y)
+ case int8:
+ return int(x) % int(y)
+ case int16:
+ return int(x) % int(y)
+ case int32:
+ return int(x) % int(y)
+ case int64:
+ return int(x) % int(y)
+ }
+ }
+ panic(fmt.Sprintf("invalid operation: %T %% %T", a, b))
+}
diff --git a/vendor/github.com/antonmedv/expr/vm/runtime/runtime.go b/vendor/github.com/antonmedv/expr/vm/runtime/runtime.go
new file mode 100644
index 0000000000..b2eeb65d83
--- /dev/null
+++ b/vendor/github.com/antonmedv/expr/vm/runtime/runtime.go
@@ -0,0 +1,517 @@
+package runtime
+
+//go:generate sh -c "go run ./helpers > ./generated.go"
+
+import (
+ "fmt"
+ "math"
+ "reflect"
+ "strconv"
+)
+
+func Fetch(from, i interface{}) interface{} {
+ v := reflect.ValueOf(from)
+ kind := v.Kind()
+ if kind == reflect.Invalid {
+ panic(fmt.Sprintf("cannot fetch %v from %T", i, from))
+ }
+
+ // Methods can be defined on any type.
+ if v.NumMethod() > 0 {
+ if methodName, ok := i.(string); ok {
+ method := v.MethodByName(methodName)
+ if method.IsValid() {
+ return method.Interface()
+ }
+ }
+ }
+
+ // Structs, maps, and slices can be access through a pointer or through
+ // a value, when they are accessed through a pointer we don't want to
+ // copy them to a value.
+ if kind == reflect.Ptr {
+ v = reflect.Indirect(v)
+ kind = v.Kind()
+ }
+
+ // TODO: We can create separate opcodes for each of the cases below to make
+ // the little bit faster.
+ switch kind {
+ case reflect.Array, reflect.Slice, reflect.String:
+ index := ToInt(i)
+ if index < 0 {
+ index = v.Len() + index
+ }
+ value := v.Index(index)
+ if value.IsValid() {
+ return value.Interface()
+ }
+
+ case reflect.Map:
+ var value reflect.Value
+ if i == nil {
+ value = v.MapIndex(reflect.Zero(v.Type().Key()))
+ } else {
+ value = v.MapIndex(reflect.ValueOf(i))
+ }
+ if value.IsValid() {
+ return value.Interface()
+ } else {
+ elem := reflect.TypeOf(from).Elem()
+ return reflect.Zero(elem).Interface()
+ }
+
+ case reflect.Struct:
+ fieldName := i.(string)
+ value := v.FieldByNameFunc(func(name string) bool {
+ field, _ := v.Type().FieldByName(name)
+ if field.Tag.Get("expr") == fieldName {
+ return true
+ }
+ return name == fieldName
+ })
+ if value.IsValid() {
+ return value.Interface()
+ }
+ }
+ panic(fmt.Sprintf("cannot fetch %v from %T", i, from))
+}
+
+type Field struct {
+ Index []int
+ Path []string
+}
+
+func FetchField(from interface{}, field *Field) interface{} {
+ v := reflect.ValueOf(from)
+ kind := v.Kind()
+ if kind != reflect.Invalid {
+ if kind == reflect.Ptr {
+ v = reflect.Indirect(v)
+ }
+ // We can use v.FieldByIndex here, but it will panic if the field
+ // is not exists. And we need to recover() to generate a more
+ // user-friendly error message.
+ // Also, our fieldByIndex() function is slightly faster than the
+ // v.FieldByIndex() function as we don't need to verify what a field
+ // is a struct as we already did it on compilation step.
+ value := fieldByIndex(v, field)
+ if value.IsValid() {
+ return value.Interface()
+ }
+ }
+ panic(fmt.Sprintf("cannot get %v from %T", field.Path[0], from))
+}
+
+func fieldByIndex(v reflect.Value, field *Field) reflect.Value {
+ if len(field.Index) == 1 {
+ return v.Field(field.Index[0])
+ }
+ for i, x := range field.Index {
+ if i > 0 {
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ panic(fmt.Sprintf("cannot get %v from %v", field.Path[i], field.Path[i-1]))
+ }
+ v = v.Elem()
+ }
+ }
+ v = v.Field(x)
+ }
+ return v
+}
+
+type Method struct {
+ Index int
+ Name string
+}
+
+func FetchMethod(from interface{}, method *Method) interface{} {
+ v := reflect.ValueOf(from)
+ kind := v.Kind()
+ if kind != reflect.Invalid {
+ // Methods can be defined on any type, no need to dereference.
+ method := v.Method(method.Index)
+ if method.IsValid() {
+ return method.Interface()
+ }
+ }
+ panic(fmt.Sprintf("cannot fetch %v from %T", method.Name, from))
+}
+
+func Deref(i interface{}) interface{} {
+ if i == nil {
+ return nil
+ }
+
+ v := reflect.ValueOf(i)
+
+ if v.Kind() == reflect.Interface {
+ if v.IsNil() {
+ return i
+ }
+ v = v.Elem()
+ }
+
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ return i
+ }
+ indirect := reflect.Indirect(v)
+ switch indirect.Kind() {
+ case reflect.Struct, reflect.Map, reflect.Array, reflect.Slice:
+ default:
+ v = v.Elem()
+ }
+ }
+
+ if v.IsValid() {
+ return v.Interface()
+ }
+
+ panic(fmt.Sprintf("cannot dereference %v", i))
+}
+
+func Slice(array, from, to interface{}) interface{} {
+ v := reflect.ValueOf(array)
+
+ switch v.Kind() {
+ case reflect.Array, reflect.Slice, reflect.String:
+ length := v.Len()
+ a, b := ToInt(from), ToInt(to)
+ if a < 0 {
+ a = length + a
+ }
+ if b < 0 {
+ b = length + b
+ }
+ if b > length {
+ b = length
+ }
+ if a > b {
+ a = b
+ }
+ value := v.Slice(a, b)
+ if value.IsValid() {
+ return value.Interface()
+ }
+
+ case reflect.Ptr:
+ value := v.Elem()
+ if value.IsValid() {
+ return Slice(value.Interface(), from, to)
+ }
+
+ }
+ panic(fmt.Sprintf("cannot slice %v", from))
+}
+
+func In(needle interface{}, array interface{}) bool {
+ if array == nil {
+ return false
+ }
+ v := reflect.ValueOf(array)
+
+ switch v.Kind() {
+
+ case reflect.Array, reflect.Slice:
+ for i := 0; i < v.Len(); i++ {
+ value := v.Index(i)
+ if value.IsValid() {
+ if Equal(value.Interface(), needle) {
+ return true
+ }
+ }
+ }
+ return false
+
+ case reflect.Map:
+ var value reflect.Value
+ if needle == nil {
+ value = v.MapIndex(reflect.Zero(v.Type().Key()))
+ } else {
+ n := reflect.ValueOf(needle)
+ if !n.IsValid() {
+ panic(fmt.Sprintf("cannot use %T as index to %T", needle, array))
+ }
+ value = v.MapIndex(n)
+ }
+ if value.IsValid() {
+ return true
+ }
+ return false
+
+ case reflect.Struct:
+ n := reflect.ValueOf(needle)
+ if !n.IsValid() || n.Kind() != reflect.String {
+ panic(fmt.Sprintf("cannot use %T as field name of %T", needle, array))
+ }
+ value := v.FieldByName(n.String())
+ if value.IsValid() {
+ return true
+ }
+ return false
+
+ case reflect.Ptr:
+ value := v.Elem()
+ if value.IsValid() {
+ return In(needle, value.Interface())
+ }
+ return false
+ }
+
+ panic(fmt.Sprintf(`operator "in"" not defined on %T`, array))
+}
+
+func Len(a interface{}) interface{} {
+ v := reflect.ValueOf(a)
+ switch v.Kind() {
+ case reflect.Array, reflect.Slice, reflect.Map, reflect.String:
+ return v.Len()
+ default:
+ panic(fmt.Sprintf("invalid argument for len (type %T)", a))
+ }
+}
+
+func Negate(i interface{}) interface{} {
+ switch v := i.(type) {
+ case float32:
+ return -v
+ case float64:
+ return -v
+ case int:
+ return -v
+ case int8:
+ return -v
+ case int16:
+ return -v
+ case int32:
+ return -v
+ case int64:
+ return -v
+ case uint:
+ return -v
+ case uint8:
+ return -v
+ case uint16:
+ return -v
+ case uint32:
+ return -v
+ case uint64:
+ return -v
+ default:
+ panic(fmt.Sprintf("invalid operation: - %T", v))
+ }
+}
+
+func Exponent(a, b interface{}) float64 {
+ return math.Pow(ToFloat64(a), ToFloat64(b))
+}
+
+func MakeRange(min, max int) []int {
+ size := max - min + 1
+ if size <= 0 {
+ return []int{}
+ }
+ rng := make([]int, size)
+ for i := range rng {
+ rng[i] = min + i
+ }
+ return rng
+}
+
+func ToInt(a interface{}) int {
+ switch x := a.(type) {
+ case float32:
+ return int(x)
+ case float64:
+ return int(x)
+ case int:
+ return x
+ case int8:
+ return int(x)
+ case int16:
+ return int(x)
+ case int32:
+ return int(x)
+ case int64:
+ return int(x)
+ case uint:
+ return int(x)
+ case uint8:
+ return int(x)
+ case uint16:
+ return int(x)
+ case uint32:
+ return int(x)
+ case uint64:
+ return int(x)
+ case string:
+ i, err := strconv.Atoi(x)
+ if err != nil {
+ panic(fmt.Sprintf("invalid operation: int(%s)", x))
+ }
+ return i
+ default:
+ panic(fmt.Sprintf("invalid operation: int(%T)", x))
+ }
+}
+
+func ToInt64(a interface{}) int64 {
+ switch x := a.(type) {
+ case float32:
+ return int64(x)
+ case float64:
+ return int64(x)
+ case int:
+ return int64(x)
+ case int8:
+ return int64(x)
+ case int16:
+ return int64(x)
+ case int32:
+ return int64(x)
+ case int64:
+ return x
+ case uint:
+ return int64(x)
+ case uint8:
+ return int64(x)
+ case uint16:
+ return int64(x)
+ case uint32:
+ return int64(x)
+ case uint64:
+ return int64(x)
+ default:
+ panic(fmt.Sprintf("invalid operation: int64(%T)", x))
+ }
+}
+
+func ToFloat64(a interface{}) float64 {
+ switch x := a.(type) {
+ case float32:
+ return float64(x)
+ case float64:
+ return x
+ case int:
+ return float64(x)
+ case int8:
+ return float64(x)
+ case int16:
+ return float64(x)
+ case int32:
+ return float64(x)
+ case int64:
+ return float64(x)
+ case uint:
+ return float64(x)
+ case uint8:
+ return float64(x)
+ case uint16:
+ return float64(x)
+ case uint32:
+ return float64(x)
+ case uint64:
+ return float64(x)
+ case string:
+ f, err := strconv.ParseFloat(x, 64)
+ if err != nil {
+ panic(fmt.Sprintf("invalid operation: float(%s)", x))
+ }
+ return f
+ default:
+ panic(fmt.Sprintf("invalid operation: float(%T)", x))
+ }
+}
+
+func IsNil(v interface{}) bool {
+ if v == nil {
+ return true
+ }
+ r := reflect.ValueOf(v)
+ switch r.Kind() {
+ case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Slice:
+ return r.IsNil()
+ default:
+ return false
+ }
+}
+
+func Abs(x interface{}) interface{} {
+ switch x.(type) {
+ case float32:
+ if x.(float32) < 0 {
+ return -x.(float32)
+ } else {
+ return x
+ }
+ case float64:
+ if x.(float64) < 0 {
+ return -x.(float64)
+ } else {
+ return x
+ }
+ case int:
+ if x.(int) < 0 {
+ return -x.(int)
+ } else {
+ return x
+ }
+ case int8:
+ if x.(int8) < 0 {
+ return -x.(int8)
+ } else {
+ return x
+ }
+ case int16:
+ if x.(int16) < 0 {
+ return -x.(int16)
+ } else {
+ return x
+ }
+ case int32:
+ if x.(int32) < 0 {
+ return -x.(int32)
+ } else {
+ return x
+ }
+ case int64:
+ if x.(int64) < 0 {
+ return -x.(int64)
+ } else {
+ return x
+ }
+ case uint:
+ if x.(uint) < 0 {
+ return -x.(uint)
+ } else {
+ return x
+ }
+ case uint8:
+ if x.(uint8) < 0 {
+ return -x.(uint8)
+ } else {
+ return x
+ }
+ case uint16:
+ if x.(uint16) < 0 {
+ return -x.(uint16)
+ } else {
+ return x
+ }
+ case uint32:
+ if x.(uint32) < 0 {
+ return -x.(uint32)
+ } else {
+ return x
+ }
+ case uint64:
+ if x.(uint64) < 0 {
+ return -x.(uint64)
+ } else {
+ return x
+ }
+ }
+ panic(fmt.Sprintf("invalid argument for abs (type %T)", x))
+}
diff --git a/vendor/github.com/antonmedv/expr/vm/vm.go b/vendor/github.com/antonmedv/expr/vm/vm.go
index 6957dfa64d..af4fc5bf75 100644
--- a/vendor/github.com/antonmedv/expr/vm/vm.go
+++ b/vendor/github.com/antonmedv/expr/vm/vm.go
@@ -1,19 +1,22 @@
package vm
+//go:generate sh -c "go run ./func_types > ./generated.go"
+
import (
"fmt"
"reflect"
"regexp"
"strings"
+ "github.com/antonmedv/expr/builtin"
"github.com/antonmedv/expr/file"
+ "github.com/antonmedv/expr/vm/runtime"
)
+var MemoryBudget int = 1e6
var errorType = reflect.TypeOf((*error)(nil)).Elem()
-var (
- MemoryBudget int = 1e6
-)
+type Function = func(params ...interface{}) (interface{}, error)
func Run(program *Program, env interface{}) (interface{}, error) {
if program == nil {
@@ -25,17 +28,21 @@ func Run(program *Program, env interface{}) (interface{}, error) {
}
type VM struct {
- stack []interface{}
- constants []interface{}
- bytecode []byte
- ip int
- pp int
- scopes []Scope
- debug bool
- step chan struct{}
- curr chan int
- memory int
- limit int
+ stack []interface{}
+ ip int
+ scopes []*Scope
+ debug bool
+ step chan struct{}
+ curr chan int
+ memory int
+ memoryBudget int
+}
+
+type Scope struct {
+ Array reflect.Value
+ It int
+ Len int
+ Count int
}
func Debug() *VM {
@@ -47,21 +54,20 @@ func Debug() *VM {
return vm
}
-func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error) {
+func (vm *VM) Run(program *Program, env interface{}) (_ interface{}, err error) {
defer func() {
if r := recover(); r != nil {
f := &file.Error{
- Location: program.Locations[vm.pp],
+ Location: program.Locations[vm.ip-1],
Message: fmt.Sprintf("%v", r),
}
+ if err, ok := r.(error); ok {
+ f.Wrap(err)
+ }
err = f.Bind(program.Source)
}
}()
- vm.limit = MemoryBudget
- vm.ip = 0
- vm.pp = 0
-
if vm.stack == nil {
vm.stack = make([]interface{}, 0, 2)
} else {
@@ -72,41 +78,54 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
vm.scopes = vm.scopes[0:0]
}
- vm.bytecode = program.Bytecode
- vm.constants = program.Constants
-
- for vm.ip < len(vm.bytecode) {
+ vm.memoryBudget = MemoryBudget
+ vm.memory = 0
+ vm.ip = 0
+ for vm.ip < len(program.Bytecode) {
if vm.debug {
<-vm.step
}
- vm.pp = vm.ip
- vm.ip++
- op := vm.bytecode[vm.pp]
+ op := program.Bytecode[vm.ip]
+ arg := program.Arguments[vm.ip]
+ vm.ip += 1
switch op {
case OpPush:
- vm.push(vm.constant())
+ vm.push(program.Constants[arg])
case OpPop:
vm.pop()
- case OpRot:
- b := vm.pop()
- a := vm.pop()
- vm.push(b)
- vm.push(a)
+ case OpLoadConst:
+ vm.push(runtime.Fetch(env, program.Constants[arg]))
+
+ case OpLoadField:
+ vm.push(runtime.FetchField(env, program.Constants[arg].(*runtime.Field)))
+
+ case OpLoadFast:
+ vm.push(env.(map[string]interface{})[program.Constants[arg].(string)])
+
+ case OpLoadMethod:
+ vm.push(runtime.FetchMethod(env, program.Constants[arg].(*runtime.Method)))
+
+ case OpLoadFunc:
+ vm.push(program.Functions[arg])
case OpFetch:
- vm.push(fetch(env, vm.constant(), false))
+ b := vm.pop()
+ a := vm.pop()
+ vm.push(runtime.Fetch(a, b))
- case OpFetchNilSafe:
- vm.push(fetch(env, vm.constant(), true))
+ case OpFetchField:
+ a := vm.pop()
+ vm.push(runtime.FetchField(a, program.Constants[arg].(*runtime.Field)))
- case OpFetchMap:
- vm.push(env.(map[string]interface{})[vm.constant().(string)])
+ case OpMethod:
+ a := vm.pop()
+ vm.push(runtime.FetchMethod(a, program.Constants[arg].(*runtime.Method)))
case OpTrue:
vm.push(true)
@@ -118,7 +137,7 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
vm.push(nil)
case OpNegate:
- v := negate(vm.pop())
+ v := runtime.Negate(vm.pop())
vm.push(v)
case OpNot:
@@ -128,7 +147,7 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
case OpEqual:
b := vm.pop()
a := vm.pop()
- vm.push(equal(a, b))
+ vm.push(runtime.Equal(a, b))
case OpEqualInt:
b := vm.pop()
@@ -141,90 +160,102 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
vm.push(a.(string) == b.(string))
case OpJump:
- offset := vm.arg()
- vm.ip += int(offset)
+ vm.ip += arg
case OpJumpIfTrue:
- offset := vm.arg()
if vm.current().(bool) {
- vm.ip += int(offset)
+ vm.ip += arg
}
case OpJumpIfFalse:
- offset := vm.arg()
if !vm.current().(bool) {
- vm.ip += int(offset)
+ vm.ip += arg
+ }
+
+ case OpJumpIfNil:
+ if runtime.IsNil(vm.current()) {
+ vm.ip += arg
+ }
+
+ case OpJumpIfNotNil:
+ if !runtime.IsNil(vm.current()) {
+ vm.ip += arg
+ }
+
+ case OpJumpIfEnd:
+ scope := vm.Scope()
+ if scope.It >= scope.Len {
+ vm.ip += arg
}
case OpJumpBackward:
- offset := vm.arg()
- vm.ip -= int(offset)
+ vm.ip -= arg
case OpIn:
b := vm.pop()
a := vm.pop()
- vm.push(in(a, b))
+ vm.push(runtime.In(a, b))
case OpLess:
b := vm.pop()
a := vm.pop()
- vm.push(less(a, b))
+ vm.push(runtime.Less(a, b))
case OpMore:
b := vm.pop()
a := vm.pop()
- vm.push(more(a, b))
+ vm.push(runtime.More(a, b))
case OpLessOrEqual:
b := vm.pop()
a := vm.pop()
- vm.push(lessOrEqual(a, b))
+ vm.push(runtime.LessOrEqual(a, b))
case OpMoreOrEqual:
b := vm.pop()
a := vm.pop()
- vm.push(moreOrEqual(a, b))
+ vm.push(runtime.MoreOrEqual(a, b))
case OpAdd:
b := vm.pop()
a := vm.pop()
- vm.push(add(a, b))
+ vm.push(runtime.Add(a, b))
case OpSubtract:
b := vm.pop()
a := vm.pop()
- vm.push(subtract(a, b))
+ vm.push(runtime.Subtract(a, b))
case OpMultiply:
b := vm.pop()
a := vm.pop()
- vm.push(multiply(a, b))
+ vm.push(runtime.Multiply(a, b))
case OpDivide:
b := vm.pop()
a := vm.pop()
- vm.push(divide(a, b))
+ vm.push(runtime.Divide(a, b))
case OpModulo:
b := vm.pop()
a := vm.pop()
- vm.push(modulo(a, b))
+ vm.push(runtime.Modulo(a, b))
case OpExponent:
b := vm.pop()
a := vm.pop()
- vm.push(exponent(a, b))
+ vm.push(runtime.Exponent(a, b))
case OpRange:
b := vm.pop()
a := vm.pop()
- min := toInt(a)
- max := toInt(b)
+ min := runtime.ToInt(a)
+ max := runtime.ToInt(b)
size := max - min + 1
- if vm.memory+size >= vm.limit {
+ if vm.memory+size >= vm.memoryBudget {
panic("memory budget exceeded")
}
- vm.push(makeRange(min, max))
+ vm.push(runtime.MakeRange(min, max))
vm.memory += size
case OpMatches:
@@ -239,7 +270,7 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
case OpMatchesConst:
a := vm.pop()
- r := vm.constant().(*regexp.Regexp)
+ r := program.Constants[arg].(*regexp.Regexp)
vm.push(r.MatchString(a.(string)))
case OpContains:
@@ -257,31 +288,17 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
a := vm.pop()
vm.push(strings.HasSuffix(a.(string), b.(string)))
- case OpIndex:
- b := vm.pop()
- a := vm.pop()
- vm.push(fetch(a, b, false))
-
case OpSlice:
from := vm.pop()
to := vm.pop()
node := vm.pop()
- vm.push(slice(node, from, to))
-
- case OpProperty:
- a := vm.pop()
- b := vm.constant()
- vm.push(fetch(a, b, false))
-
- case OpPropertyNilSafe:
- a := vm.pop()
- b := vm.constant()
- vm.push(fetch(a, b, true))
+ vm.push(runtime.Slice(node, from, to))
case OpCall:
- call := vm.constant().(Call)
- in := make([]reflect.Value, call.Size)
- for i := call.Size - 1; i >= 0; i-- {
+ fn := reflect.ValueOf(vm.pop())
+ size := arg
+ in := make([]reflect.Value, size)
+ for i := int(size) - 1; i >= 0; i-- {
param := vm.pop()
if param == nil && reflect.TypeOf(param) == nil {
// In case of nil value and nil type use this hack,
@@ -291,68 +308,72 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
in[i] = reflect.ValueOf(param)
}
}
- out := FetchFn(env, call.Name).Call(in)
+ out := fn.Call(in)
if len(out) == 2 && out[1].Type() == errorType && !out[1].IsNil() {
- return nil, out[1].Interface().(error)
+ panic(out[1].Interface().(error))
}
vm.push(out[0].Interface())
- case OpCallFast:
- call := vm.constant().(Call)
- in := make([]interface{}, call.Size)
- for i := call.Size - 1; i >= 0; i-- {
- in[i] = vm.pop()
+ case OpCall0:
+ out, err := program.Functions[arg]()
+ if err != nil {
+ panic(err)
}
- fn := FetchFn(env, call.Name).Interface()
- if typed, ok := fn.(func(...interface{}) interface{}); ok {
- vm.push(typed(in...))
- } else if typed, ok := fn.(func(...interface{}) (interface{}, error)); ok {
- res, err := typed(in...)
- if err != nil {
- return nil, err
- }
- vm.push(res)
+ vm.push(out)
+
+ case OpCall1:
+ a := vm.pop()
+ out, err := program.Functions[arg](a)
+ if err != nil {
+ panic(err)
}
+ vm.push(out)
- case OpMethod:
- call := vm.constants[vm.arg()].(Call)
- in := make([]reflect.Value, call.Size)
- for i := call.Size - 1; i >= 0; i-- {
- param := vm.pop()
- if param == nil && reflect.TypeOf(param) == nil {
- // In case of nil value and nil type use this hack,
- // otherwise reflect.Call will panic on zero value.
- in[i] = reflect.ValueOf(¶m).Elem()
- } else {
- in[i] = reflect.ValueOf(param)
- }
+ case OpCall2:
+ b := vm.pop()
+ a := vm.pop()
+ out, err := program.Functions[arg](a, b)
+ if err != nil {
+ panic(err)
}
- out := FetchFn(vm.pop(), call.Name).Call(in)
- if len(out) == 2 && out[1].Type() == errorType && !out[1].IsNil() {
- return nil, out[1].Interface().(error)
+ vm.push(out)
+
+ case OpCall3:
+ c := vm.pop()
+ b := vm.pop()
+ a := vm.pop()
+ out, err := program.Functions[arg](a, b, c)
+ if err != nil {
+ panic(err)
}
- vm.push(out[0].Interface())
+ vm.push(out)
- case OpMethodNilSafe:
- call := vm.constants[vm.arg()].(Call)
- in := make([]reflect.Value, call.Size)
- for i := call.Size - 1; i >= 0; i-- {
- param := vm.pop()
- if param == nil && reflect.TypeOf(param) == nil {
- // In case of nil value and nil type use this hack,
- // otherwise reflect.Call will panic on zero value.
- in[i] = reflect.ValueOf(¶m).Elem()
- } else {
- in[i] = reflect.ValueOf(param)
- }
+ case OpCallN:
+ fn := vm.pop().(Function)
+ size := arg
+ in := make([]interface{}, size)
+ for i := int(size) - 1; i >= 0; i-- {
+ in[i] = vm.pop()
+ }
+ out, err := fn(in...)
+ if err != nil {
+ panic(err)
}
- fn := FetchFnNil(vm.pop(), call.Name)
- if !fn.IsValid() {
- vm.push(nil)
- } else {
- out := fn.Call(in)
- vm.push(out[0].Interface())
+ vm.push(out)
+
+ case OpCallFast:
+ fn := vm.pop().(func(...interface{}) interface{})
+ size := arg
+ in := make([]interface{}, size)
+ for i := int(size) - 1; i >= 0; i-- {
+ in[i] = vm.pop()
}
+ vm.push(fn(in...))
+
+ case OpCallTyped:
+ fn := vm.pop()
+ out := vm.call(fn, arg)
+ vm.push(out)
case OpArray:
size := vm.pop().(int)
@@ -362,7 +383,7 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
}
vm.push(array)
vm.memory += size
- if vm.memory >= vm.limit {
+ if vm.memory >= vm.memoryBudget {
panic("memory budget exceeded")
}
@@ -376,47 +397,77 @@ func (vm *VM) Run(program *Program, env interface{}) (out interface{}, err error
}
vm.push(m)
vm.memory += size
- if vm.memory >= vm.limit {
+ if vm.memory >= vm.memoryBudget {
panic("memory budget exceeded")
}
case OpLen:
- vm.push(length(vm.current()))
+ vm.push(runtime.Len(vm.current()))
case OpCast:
- t := vm.arg()
+ t := arg
switch t {
case 0:
- vm.push(toInt64(vm.pop()))
+ vm.push(runtime.ToInt(vm.pop()))
case 1:
- vm.push(toFloat64(vm.pop()))
+ vm.push(runtime.ToInt64(vm.pop()))
+ case 2:
+ vm.push(runtime.ToFloat64(vm.pop()))
}
- case OpStore:
+ case OpDeref:
+ a := vm.pop()
+ vm.push(runtime.Deref(a))
+
+ case OpIncrementIt:
+ scope := vm.Scope()
+ scope.It++
+
+ case OpIncrementCount:
+ scope := vm.Scope()
+ scope.Count++
+
+ case OpGetCount:
scope := vm.Scope()
- key := vm.constant().(string)
- value := vm.pop()
- scope[key] = value
+ vm.push(scope.Count)
- case OpLoad:
+ case OpGetLen:
scope := vm.Scope()
- key := vm.constant().(string)
- vm.push(scope[key])
+ vm.push(scope.Len)
- case OpInc:
+ case OpPointer:
scope := vm.Scope()
- key := vm.constant().(string)
- i := scope[key].(int)
- i++
- scope[key] = i
+ vm.push(scope.Array.Index(scope.It).Interface())
case OpBegin:
- scope := make(Scope)
- vm.scopes = append(vm.scopes, scope)
+ a := vm.pop()
+ array := reflect.ValueOf(a)
+ vm.scopes = append(vm.scopes, &Scope{
+ Array: array,
+ Len: array.Len(),
+ })
case OpEnd:
vm.scopes = vm.scopes[:len(vm.scopes)-1]
+ case OpBuiltin:
+ switch arg {
+ case builtin.Len:
+ vm.push(runtime.Len(vm.pop()))
+
+ case builtin.Abs:
+ vm.push(runtime.Abs(vm.pop()))
+
+ case builtin.Int:
+ vm.push(runtime.ToInt(vm.pop()))
+
+ case builtin.Float:
+ vm.push(runtime.ToFloat64(vm.pop()))
+
+ default:
+ panic(fmt.Sprintf("unknown builtin %v", arg))
+ }
+
default:
panic(fmt.Sprintf("unknown bytecode %#x", op))
}
@@ -452,21 +503,11 @@ func (vm *VM) pop() interface{} {
return value
}
-func (vm *VM) arg() uint16 {
- b0, b1 := vm.bytecode[vm.ip], vm.bytecode[vm.ip+1]
- vm.ip += 2
- return uint16(b0) | uint16(b1)<<8
-}
-
-func (vm *VM) constant() interface{} {
- return vm.constants[vm.arg()]
-}
-
func (vm *VM) Stack() []interface{} {
return vm.stack
}
-func (vm *VM) Scope() Scope {
+func (vm *VM) Scope() *Scope {
if len(vm.scopes) > 0 {
return vm.scopes[len(vm.scopes)-1]
}
@@ -474,9 +515,7 @@ func (vm *VM) Scope() Scope {
}
func (vm *VM) Step() {
- if vm.ip < len(vm.bytecode) {
- vm.step <- struct{}{}
- }
+ vm.step <- struct{}{}
}
func (vm *VM) Position() chan int {
diff --git a/vendor/github.com/argoproj/argo-cd/v2/common/common.go b/vendor/github.com/argoproj/argo-cd/v2/common/common.go
index d4e5dbca89..b52fc85990 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/common/common.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/common/common.go
@@ -29,9 +29,9 @@ const (
ArgoCDNotificationsConfigMapName = "argocd-notifications-cm"
ArgoCDNotificationsSecretName = "argocd-notifications-secret"
ArgoCDRBACConfigMapName = "argocd-rbac-cm"
- // Contains SSH known hosts data for connecting repositories. Will get mounted as volume to pods
+ // ArgoCDKnownHostsConfigMapName contains SSH known hosts data for connecting repositories. Will get mounted as volume to pods
ArgoCDKnownHostsConfigMapName = "argocd-ssh-known-hosts-cm"
- // Contains TLS certificate data for connecting repositories. Will get mounted as volume to pods
+ // ArgoCDTLSCertsConfigMapName contains TLS certificate data for connecting repositories. Will get mounted as volume to pods
ArgoCDTLSCertsConfigMapName = "argocd-tls-certs-cm"
ArgoCDGPGKeysConfigMapName = "argocd-gpg-keys-cm"
)
@@ -51,28 +51,32 @@ const (
DefaultPortRepoServerMetrics = 8084
)
-// Default listener address for ArgoCD components
+// DefaultAddressAPIServer for ArgoCD components
const (
- DefaultAddressAPIServer = "localhost"
+ DefaultAddressAdminDashboard = "localhost"
+ DefaultAddressAPIServer = "0.0.0.0"
+ DefaultAddressAPIServerMetrics = "0.0.0.0"
+ DefaultAddressRepoServer = "0.0.0.0"
+ DefaultAddressRepoServerMetrics = "0.0.0.0"
)
// Default paths on the pod's file system
const (
- // The default path where TLS certificates for repositories are located
+ // DefaultPathTLSConfig is the default path where TLS certificates for repositories are located
DefaultPathTLSConfig = "/app/config/tls"
- // The default path where SSH known hosts are stored
+ // DefaultPathSSHConfig is the default path where SSH known hosts are stored
DefaultPathSSHConfig = "/app/config/ssh"
- // Default name for the SSH known hosts file
+ // DefaultSSHKnownHostsName is the Default name for the SSH known hosts file
DefaultSSHKnownHostsName = "ssh_known_hosts"
- // Default path to GnuPG home directory
+ // DefaultGnuPgHomePath is the Default path to GnuPG home directory
DefaultGnuPgHomePath = "/app/config/gpg/keys"
- // Default path to repo server TLS endpoint config
+ // DefaultAppConfigPath is the Default path to repo server TLS endpoint config
DefaultAppConfigPath = "/app/config"
- // Default path to cmp server plugin socket file
+ // DefaultPluginSockFilePath is the Default path to cmp server plugin socket file
DefaultPluginSockFilePath = "/home/argocd/cmp-server/plugins"
- // Default path to cmp server plugin configuration file
+ // DefaultPluginConfigFilePath is the Default path to cmp server plugin configuration file
DefaultPluginConfigFilePath = "/home/argocd/cmp-server/config"
- // Plugin Config File is a ConfigManagementPlugin manifest located inside the plugin container
+ // PluginConfigFileName is the Plugin Config File is a ConfigManagementPlugin manifest located inside the plugin container
PluginConfigFileName = "plugin.yaml"
)
@@ -99,6 +103,12 @@ const (
// PasswordPatten is the default password patten
PasswordPatten = `^.{8,32}$`
+
+ // LegacyShardingAlgorithm is the default value for Sharding Algorithm it uses an `uid` based distribution (non-uniform)
+ LegacyShardingAlgorithm = "legacy"
+ // RoundRobinShardingAlgorithm is a flag value that can be opted for Sharding Algorithm it uses an equal distribution accross all shards
+ RoundRobinShardingAlgorithm = "round-robin"
+ DefaultShardingAlgorithm = LegacyShardingAlgorithm
)
// Dex related constants
@@ -139,7 +149,7 @@ const (
// LabelValueSecretTypeRepoCreds indicates a secret type of repository credentials
LabelValueSecretTypeRepoCreds = "repo-creds"
- // The Argo CD application name is used as the instance name
+ // AnnotationKeyAppInstance is the Argo CD application name is used as the instance name
AnnotationKeyAppInstance = "argocd.argoproj.io/tracking-id"
// AnnotationCompareOptions is a comma-separated list of options for comparison
@@ -159,6 +169,10 @@ const (
// Ex: "http://grafana.example.com/d/yu5UH4MMz/deployments"
// Ex: "Go to Dashboard|http://grafana.example.com/d/yu5UH4MMz/deployments"
AnnotationKeyLinkPrefix = "link.argocd.argoproj.io/"
+
+ // AnnotationKeyAppSkipReconcile tells the Application to skip the Application controller reconcile.
+ // Skip reconcile when the value is "true" or any other string values that can be strconv.ParseBool() to be true.
+ AnnotationKeyAppSkipReconcile = "argocd.argoproj.io/skip-reconcile"
)
// Environment variables for tuning and debugging Argo CD
@@ -167,19 +181,19 @@ const (
EnvVarSSODebug = "ARGOCD_SSO_DEBUG"
// EnvVarRBACDebug is an environment variable to enable additional RBAC debugging in the API server
EnvVarRBACDebug = "ARGOCD_RBAC_DEBUG"
- // Overrides the location where SSH known hosts for repo access data is stored
+ // EnvVarSSHDataPath overrides the location where SSH known hosts for repo access data is stored
EnvVarSSHDataPath = "ARGOCD_SSH_DATA_PATH"
- // Overrides the location where TLS certificate for repo access data is stored
+ // EnvVarTLSDataPath overrides the location where TLS certificate for repo access data is stored
EnvVarTLSDataPath = "ARGOCD_TLS_DATA_PATH"
- // Specifies number of git remote operations attempts count
+ // EnvGitAttemptsCount specifies number of git remote operations attempts count
EnvGitAttemptsCount = "ARGOCD_GIT_ATTEMPTS_COUNT"
- // Specifices max duration of git remote operation retry
+ // EnvGitRetryMaxDuration specifices max duration of git remote operation retry
EnvGitRetryMaxDuration = "ARGOCD_GIT_RETRY_MAX_DURATION"
- // Specifies duration of git remote operation retry
+ // EnvGitRetryDuration specifies duration of git remote operation retry
EnvGitRetryDuration = "ARGOCD_GIT_RETRY_DURATION"
- // Specifies fator of git remote operation retry
+ // EnvGitRetryFactor specifies fator of git remote operation retry
EnvGitRetryFactor = "ARGOCD_GIT_RETRY_FACTOR"
- // Overrides git submodule support, true by default
+ // EnvGitSubmoduleEnabled overrides git submodule support, true by default
EnvGitSubmoduleEnabled = "ARGOCD_GIT_MODULES_ENABLED"
// EnvGnuPGHome is the path to ArgoCD's GnuPG keyring for signature verification
EnvGnuPGHome = "ARGOCD_GNUPGHOME"
@@ -195,13 +209,15 @@ const (
EnvControllerReplicas = "ARGOCD_CONTROLLER_REPLICAS"
// EnvControllerShard is the shard number that should be handled by controller
EnvControllerShard = "ARGOCD_CONTROLLER_SHARD"
+ // EnvControllerShardingAlgorithm is the distribution sharding algorithm to be used: legacy or round-robin
+ EnvControllerShardingAlgorithm = "ARGOCD_CONTROLLER_SHARDING_ALGORITHM"
// EnvEnableGRPCTimeHistogramEnv enables gRPC metrics collection
EnvEnableGRPCTimeHistogramEnv = "ARGOCD_ENABLE_GRPC_TIME_HISTOGRAM"
// EnvGithubAppCredsExpirationDuration controls the caching of Github app credentials. This value is in minutes (default: 60)
EnvGithubAppCredsExpirationDuration = "ARGOCD_GITHUB_APP_CREDS_EXPIRATION_DURATION"
// EnvHelmIndexCacheDuration controls how the helm repository index file is cached for (default: 0)
EnvHelmIndexCacheDuration = "ARGOCD_HELM_INDEX_CACHE_DURATION"
- // EnvRepoServerConfigPath allows to override the configuration path for repo server
+ // EnvAppConfigPath allows to override the configuration path for repo server
EnvAppConfigPath = "ARGOCD_APP_CONF_PATH"
// EnvLogFormat log format that is defined by `--logformat` option
EnvLogFormat = "ARGOCD_LOG_FORMAT"
@@ -215,6 +231,8 @@ const (
EnvCMPChunkSize = "ARGOCD_CMP_CHUNK_SIZE"
// EnvCMPWorkDir defines the full path of the work directory used by the CMP server
EnvCMPWorkDir = "ARGOCD_CMP_WORKDIR"
+ // EnvGPGDataPath overrides the location where GPG keyring for signature verification is stored
+ EnvGPGDataPath = "ARGOCD_GPG_DATA_PATH"
)
// Config Management Plugin related constants
@@ -292,14 +310,14 @@ func GetCMPWorkDir() string {
}
const (
- // AnnotationApplicationRefresh is an annotation that is added when an ApplicationSet is requested to be refreshed by a webhook. The ApplicationSet controller will remove this annotation at the end of reconciliation.
+ // AnnotationApplicationSetRefresh is an annotation that is added when an ApplicationSet is requested to be refreshed by a webhook. The ApplicationSet controller will remove this annotation at the end of reconciliation.
AnnotationApplicationSetRefresh = "argocd.argoproj.io/application-set-refresh"
)
// gRPC settings
const (
GRPCKeepAliveEnforcementMinimum = 10 * time.Second
- // Keep alive is 2x enforcement minimum to ensure network jitter does not introduce ENHANCE_YOUR_CALM errors
+ // GRPCKeepAliveTime is 2x enforcement minimum to ensure network jitter does not introduce ENHANCE_YOUR_CALM errors
GRPCKeepAliveTime = 2 * GRPCKeepAliveEnforcementMinimum
)
@@ -317,7 +335,7 @@ const (
SecurityLow = 1 // Unexceptional entries (i.e. successful access logs)
)
-// Common error messages
+// TokenVerificationError is a generic error message for a failure to verify a JWT
const TokenVerificationError = "failed to verify the token"
var TokenVerificationErr = errors.New(TokenVerificationError)
diff --git a/vendor/github.com/argoproj/argo-cd/v2/common/version.go b/vendor/github.com/argoproj/argo-cd/v2/common/version.go
index 8598f98c31..e8caf37a30 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/common/version.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/common/version.go
@@ -16,6 +16,7 @@ var (
gitTag = "" // output from `git describe --exact-match --tags HEAD` (if clean tree state)
gitTreeState = "" // determined from `git status --porcelain`. either 'clean' or 'dirty'
kubectlVersion = "" // determined from go.mod file
+ extraBuildInfo = "" // extra build information for vendors to populate during build
)
// Version contains Argo version information
@@ -29,6 +30,7 @@ type Version struct {
Compiler string
Platform string
KubectlVersion string
+ ExtraBuildInfo string
}
func (v Version) String() string {
@@ -66,6 +68,7 @@ func GetVersion() Version {
versionStr += "+unknown"
}
}
+
return Version{
Version: versionStr,
BuildDate: buildDate,
@@ -76,5 +79,6 @@ func GetVersion() Version {
Compiler: runtime.Compiler,
Platform: fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH),
KubectlVersion: kubectlVersion,
+ ExtraBuildInfo: extraBuildInfo,
}
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.go
index c235c0315c..8fd016ee36 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.go
@@ -36,7 +36,11 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
-// ApplicationQuery is a query for application resources
+// ApplicationQuery is a query for application resources. When getting multiple applications, the "projects" field acts
+// as a filter. When getting a single application, you may specify either zero or one project. If you specify zero
+// projects, the application will be returned regardless of which project it belongs to (assuming you have access). If
+// you specify one project, the application will only be returned if it exists and belongs to the specified project.
+// Otherwise you will receive a 404.
type ApplicationQuery struct {
// the application's name
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
@@ -211,6 +215,7 @@ type RevisionMetadataQuery struct {
Revision *string `protobuf:"bytes,2,req,name=revision" json:"revision,omitempty"`
// the application's namespace
AppNamespace *string `protobuf:"bytes,3,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,4,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -270,6 +275,13 @@ func (m *RevisionMetadataQuery) GetAppNamespace() string {
return ""
}
+func (m *RevisionMetadataQuery) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
// ApplicationEventsQuery is a query for application resource events
type ApplicationResourceEventsQuery struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
@@ -277,6 +289,7 @@ type ApplicationResourceEventsQuery struct {
ResourceName *string `protobuf:"bytes,3,opt,name=resourceName" json:"resourceName,omitempty"`
ResourceUID *string `protobuf:"bytes,4,opt,name=resourceUID" json:"resourceUID,omitempty"`
AppNamespace *string `protobuf:"bytes,5,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,6,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -350,11 +363,19 @@ func (m *ApplicationResourceEventsQuery) GetAppNamespace() string {
return ""
}
+func (m *ApplicationResourceEventsQuery) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
// ManifestQuery is a query for manifest resources
type ApplicationManifestQuery struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Revision *string `protobuf:"bytes,2,opt,name=revision" json:"revision,omitempty"`
AppNamespace *string `protobuf:"bytes,3,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,4,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -414,6 +435,13 @@ func (m *ApplicationManifestQuery) GetAppNamespace() string {
return ""
}
+func (m *ApplicationManifestQuery) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type FileChunk struct {
Chunk []byte `protobuf:"bytes,1,req,name=chunk" json:"chunk,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -465,6 +493,7 @@ type ApplicationManifestQueryWithFiles struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Checksum *string `protobuf:"bytes,2,req,name=checksum" json:"checksum,omitempty"`
AppNamespace *string `protobuf:"bytes,3,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,4,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -524,6 +553,13 @@ func (m *ApplicationManifestQueryWithFiles) GetAppNamespace() string {
return ""
}
+func (m *ApplicationManifestQueryWithFiles) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationManifestQueryWithFilesWrapper struct {
// Types that are valid to be assigned to Part:
// *ApplicationManifestQueryWithFilesWrapper_Query
@@ -721,6 +757,7 @@ func (m *ApplicationCreateRequest) GetValidate() bool {
type ApplicationUpdateRequest struct {
Application *v1alpha1.Application `protobuf:"bytes,1,req,name=application" json:"application,omitempty"`
Validate *bool `protobuf:"varint,2,opt,name=validate" json:"validate,omitempty"`
+ Project *string `protobuf:"bytes,3,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -773,11 +810,19 @@ func (m *ApplicationUpdateRequest) GetValidate() bool {
return false
}
+func (m *ApplicationUpdateRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationDeleteRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Cascade *bool `protobuf:"varint,2,opt,name=cascade" json:"cascade,omitempty"`
PropagationPolicy *string `protobuf:"bytes,3,opt,name=propagationPolicy" json:"propagationPolicy,omitempty"`
AppNamespace *string `protobuf:"bytes,4,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,5,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -844,6 +889,13 @@ func (m *ApplicationDeleteRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationDeleteRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type SyncOptions struct {
Items []string `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -904,6 +956,7 @@ type ApplicationSyncRequest struct {
RetryStrategy *v1alpha1.RetryStrategy `protobuf:"bytes,10,opt,name=retryStrategy" json:"retryStrategy,omitempty"`
SyncOptions *SyncOptions `protobuf:"bytes,11,opt,name=syncOptions" json:"syncOptions,omitempty"`
AppNamespace *string `protobuf:"bytes,12,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,13,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1019,12 +1072,20 @@ func (m *ApplicationSyncRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationSyncRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
// ApplicationUpdateSpecRequest is a request to update application spec
type ApplicationUpdateSpecRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Spec *v1alpha1.ApplicationSpec `protobuf:"bytes,2,req,name=spec" json:"spec,omitempty"`
Validate *bool `protobuf:"varint,3,opt,name=validate" json:"validate,omitempty"`
AppNamespace *string `protobuf:"bytes,4,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,5,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1091,12 +1152,20 @@ func (m *ApplicationUpdateSpecRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationUpdateSpecRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
// ApplicationPatchRequest is a request to patch an application
type ApplicationPatchRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Patch *string `protobuf:"bytes,2,req,name=patch" json:"patch,omitempty"`
PatchType *string `protobuf:"bytes,3,req,name=patchType" json:"patchType,omitempty"`
AppNamespace *string `protobuf:"bytes,5,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,6,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1163,12 +1232,20 @@ func (m *ApplicationPatchRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationPatchRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationRollbackRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Id *int64 `protobuf:"varint,2,req,name=id" json:"id,omitempty"`
DryRun *bool `protobuf:"varint,3,opt,name=dryRun" json:"dryRun,omitempty"`
Prune *bool `protobuf:"varint,4,opt,name=prune" json:"prune,omitempty"`
AppNamespace *string `protobuf:"bytes,6,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,7,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1242,6 +1319,13 @@ func (m *ApplicationRollbackRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationRollbackRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationResourceRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Namespace *string `protobuf:"bytes,2,opt,name=namespace" json:"namespace,omitempty"`
@@ -1250,6 +1334,7 @@ type ApplicationResourceRequest struct {
Group *string `protobuf:"bytes,5,opt,name=group" json:"group,omitempty"`
Kind *string `protobuf:"bytes,6,req,name=kind" json:"kind,omitempty"`
AppNamespace *string `protobuf:"bytes,7,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,8,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1337,6 +1422,13 @@ func (m *ApplicationResourceRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationResourceRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationResourcePatchRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Namespace *string `protobuf:"bytes,2,opt,name=namespace" json:"namespace,omitempty"`
@@ -1347,6 +1439,7 @@ type ApplicationResourcePatchRequest struct {
Patch *string `protobuf:"bytes,7,req,name=patch" json:"patch,omitempty"`
PatchType *string `protobuf:"bytes,8,req,name=patchType" json:"patchType,omitempty"`
AppNamespace *string `protobuf:"bytes,9,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,10,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1448,6 +1541,13 @@ func (m *ApplicationResourcePatchRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationResourcePatchRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationResourceDeleteRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Namespace *string `protobuf:"bytes,2,opt,name=namespace" json:"namespace,omitempty"`
@@ -1458,6 +1558,7 @@ type ApplicationResourceDeleteRequest struct {
Force *bool `protobuf:"varint,7,opt,name=force" json:"force,omitempty"`
Orphan *bool `protobuf:"varint,8,opt,name=orphan" json:"orphan,omitempty"`
AppNamespace *string `protobuf:"bytes,9,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,10,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1559,6 +1660,13 @@ func (m *ApplicationResourceDeleteRequest) GetAppNamespace() string {
return ""
}
+func (m *ApplicationResourceDeleteRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ResourceActionRunRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Namespace *string `protobuf:"bytes,2,opt,name=namespace" json:"namespace,omitempty"`
@@ -1568,6 +1676,7 @@ type ResourceActionRunRequest struct {
Kind *string `protobuf:"bytes,6,req,name=kind" json:"kind,omitempty"`
Action *string `protobuf:"bytes,7,req,name=action" json:"action,omitempty"`
AppNamespace *string `protobuf:"bytes,8,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,9,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1662,6 +1771,13 @@ func (m *ResourceActionRunRequest) GetAppNamespace() string {
return ""
}
+func (m *ResourceActionRunRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ResourceActionsListResponse struct {
Actions []*v1alpha1.ResourceAction `protobuf:"bytes,1,rep,name=actions" json:"actions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1772,6 +1888,7 @@ type ApplicationPodLogsQuery struct {
ResourceName *string `protobuf:"bytes,13,opt,name=resourceName" json:"resourceName,omitempty"`
Previous *bool `protobuf:"varint,14,opt,name=previous" json:"previous,omitempty"`
AppNamespace *string `protobuf:"bytes,15,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,16,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1915,6 +2032,13 @@ func (m *ApplicationPodLogsQuery) GetAppNamespace() string {
return ""
}
+func (m *ApplicationPodLogsQuery) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type LogEntry struct {
Content *string `protobuf:"bytes,1,req,name=content" json:"content,omitempty"`
// deprecated in favor of timeStampStr since meta.v1.Time don't support nano time
@@ -1998,6 +2122,7 @@ func (m *LogEntry) GetPodName() string {
type OperationTerminateRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
AppNamespace *string `protobuf:"bytes,2,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,3,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -2050,9 +2175,17 @@ func (m *OperationTerminateRequest) GetAppNamespace() string {
return ""
}
+func (m *OperationTerminateRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationSyncWindowsQuery struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
AppNamespace *string `protobuf:"bytes,2,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,3,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -2105,6 +2238,13 @@ func (m *ApplicationSyncWindowsQuery) GetAppNamespace() string {
return ""
}
+func (m *ApplicationSyncWindowsQuery) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ApplicationSyncWindowsResponse struct {
ActiveWindows []*ApplicationSyncWindow `protobuf:"bytes,1,rep,name=activeWindows" json:"activeWindows,omitempty"`
AssignedWindows []*ApplicationSyncWindow `protobuf:"bytes,2,rep,name=assignedWindows" json:"assignedWindows,omitempty"`
@@ -2286,6 +2426,7 @@ type ResourcesQuery struct {
Group *string `protobuf:"bytes,5,opt,name=group" json:"group,omitempty"`
Kind *string `protobuf:"bytes,6,opt,name=kind" json:"kind,omitempty"`
AppNamespace *string `protobuf:"bytes,7,opt,name=appNamespace" json:"appNamespace,omitempty"`
+ Project *string `protobuf:"bytes,8,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -2373,6 +2514,13 @@ func (m *ResourcesQuery) GetAppNamespace() string {
return ""
}
+func (m *ResourcesQuery) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
type ManagedResourcesResponse struct {
Items []*v1alpha1.ResourceDiff `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -2541,6 +2689,7 @@ func (m *LinksResponse) GetItems() []*LinkInfo {
type ListAppLinksRequest struct {
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Namespace *string `protobuf:"bytes,3,opt,name=namespace" json:"namespace,omitempty"`
+ Project *string `protobuf:"bytes,4,opt,name=project" json:"project,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -2593,6 +2742,13 @@ func (m *ListAppLinksRequest) GetNamespace() string {
return ""
}
+func (m *ListAppLinksRequest) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
func init() {
proto.RegisterType((*ApplicationQuery)(nil), "application.ApplicationQuery")
proto.RegisterType((*NodeQuery)(nil), "application.NodeQuery")
@@ -2636,169 +2792,175 @@ func init() {
}
var fileDescriptor_df6e82b174b5eaec = []byte{
- // 2590 bytes of a gzipped FileDescriptorProto
+ // 2673 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x8f, 0x1c, 0x47,
- 0x15, 0xa7, 0x66, 0xbf, 0x66, 0xde, 0xac, 0xbf, 0x2a, 0xf1, 0xd2, 0x69, 0xaf, 0xcd, 0xba, 0xfd,
- 0xb5, 0x5e, 0x7b, 0x67, 0xec, 0xc1, 0x20, 0x67, 0x13, 0x04, 0xb6, 0xe3, 0x2f, 0x58, 0x3b, 0xa6,
- 0xd7, 0xc6, 0x28, 0x1c, 0xa0, 0xd2, 0x53, 0x3b, 0xdb, 0x6c, 0x4f, 0x77, 0xbb, 0xbb, 0x67, 0xac,
- 0x91, 0xf1, 0x25, 0x88, 0x13, 0x51, 0x90, 0x92, 0x1c, 0x50, 0x14, 0x21, 0x94, 0x28, 0x17, 0x2e,
- 0xdc, 0x10, 0x12, 0x17, 0xb8, 0x20, 0x90, 0x38, 0x20, 0x3e, 0x2e, 0x9c, 0x90, 0xc5, 0x8d, 0x0b,
- 0x07, 0xfe, 0x00, 0x54, 0xd5, 0x55, 0xdd, 0xd5, 0x33, 0x3d, 0x3d, 0xbd, 0xec, 0x46, 0xf1, 0xad,
- 0x5e, 0x4d, 0xd5, 0x7b, 0xbf, 0x7a, 0xf5, 0xbe, 0xea, 0xf5, 0xc0, 0xc9, 0x90, 0x06, 0x7d, 0x1a,
- 0x34, 0x89, 0xef, 0x3b, 0xb6, 0x45, 0x22, 0xdb, 0x73, 0xd5, 0x71, 0xc3, 0x0f, 0xbc, 0xc8, 0xc3,
- 0x75, 0x65, 0x4a, 0x5f, 0xec, 0x78, 0x5e, 0xc7, 0xa1, 0x4d, 0xe2, 0xdb, 0x4d, 0xe2, 0xba, 0x5e,
- 0xc4, 0xa7, 0xc3, 0x78, 0xa9, 0x6e, 0x6c, 0x5f, 0x0e, 0x1b, 0xb6, 0xc7, 0x7f, 0xb5, 0xbc, 0x80,
- 0x36, 0xfb, 0x17, 0x9b, 0x1d, 0xea, 0xd2, 0x80, 0x44, 0xb4, 0x2d, 0xd6, 0x5c, 0x4a, 0xd7, 0x74,
- 0x89, 0xb5, 0x65, 0xbb, 0x34, 0x18, 0x34, 0xfd, 0xed, 0x0e, 0x9b, 0x08, 0x9b, 0x5d, 0x1a, 0x91,
- 0xbc, 0x5d, 0xeb, 0x1d, 0x3b, 0xda, 0xea, 0xbd, 0xd9, 0xb0, 0xbc, 0x6e, 0x93, 0x04, 0x1d, 0xcf,
- 0x0f, 0xbc, 0xef, 0xf3, 0xc1, 0xaa, 0xd5, 0x6e, 0xf6, 0x5b, 0x29, 0x03, 0xf5, 0x2c, 0xfd, 0x8b,
- 0xc4, 0xf1, 0xb7, 0xc8, 0x28, 0xb7, 0xeb, 0x13, 0xb8, 0x05, 0xd4, 0xf7, 0x84, 0x6e, 0xf8, 0xd0,
- 0x8e, 0xbc, 0x60, 0xa0, 0x0c, 0x63, 0x36, 0xc6, 0x7f, 0x11, 0x1c, 0xbc, 0x92, 0xca, 0xfb, 0x66,
- 0x8f, 0x06, 0x03, 0x8c, 0x61, 0xda, 0x25, 0x5d, 0xaa, 0xa1, 0x25, 0xb4, 0x5c, 0x33, 0xf9, 0x18,
- 0x6b, 0x30, 0x17, 0xd0, 0xcd, 0x80, 0x86, 0x5b, 0x5a, 0x85, 0x4f, 0x4b, 0x12, 0xeb, 0x50, 0x65,
- 0xc2, 0xa9, 0x15, 0x85, 0xda, 0xd4, 0xd2, 0xd4, 0x72, 0xcd, 0x4c, 0x68, 0xbc, 0x0c, 0x07, 0x02,
- 0x1a, 0x7a, 0xbd, 0xc0, 0xa2, 0xdf, 0xa2, 0x41, 0x68, 0x7b, 0xae, 0x36, 0xcd, 0x77, 0x0f, 0x4f,
- 0x33, 0x2e, 0x21, 0x75, 0xa8, 0x15, 0x79, 0x81, 0x36, 0xc3, 0x97, 0x24, 0x34, 0xc3, 0xc3, 0x80,
- 0x6b, 0xb3, 0x31, 0x1e, 0x36, 0xc6, 0x06, 0xcc, 0x13, 0xdf, 0xbf, 0x4b, 0xba, 0x34, 0xf4, 0x89,
- 0x45, 0xb5, 0x39, 0xfe, 0x5b, 0x66, 0x8e, 0x61, 0x16, 0x48, 0xb4, 0x2a, 0x07, 0x26, 0x49, 0xe3,
- 0x1a, 0xd4, 0xee, 0x7a, 0x6d, 0x3a, 0xfe, 0xb8, 0xc3, 0xec, 0x2b, 0xa3, 0xec, 0x8d, 0x6d, 0x38,
- 0x6c, 0xd2, 0xbe, 0xcd, 0xe0, 0xdf, 0xa1, 0x11, 0x69, 0x93, 0x88, 0x0c, 0x33, 0xac, 0x24, 0x0c,
- 0x75, 0xa8, 0x06, 0x62, 0xb1, 0x56, 0xe1, 0xf3, 0x09, 0x3d, 0x22, 0x6c, 0x2a, 0x47, 0xd8, 0x9f,
- 0x10, 0x1c, 0x53, 0x2e, 0xca, 0x14, 0xea, 0xbb, 0xde, 0xa7, 0x6e, 0x14, 0x8e, 0x17, 0x7b, 0x1e,
- 0x0e, 0x49, 0x4d, 0x0f, 0x1f, 0x66, 0xf4, 0x07, 0x06, 0x44, 0x9d, 0x94, 0x40, 0xd4, 0x39, 0xbc,
- 0x04, 0x75, 0x49, 0x3f, 0xb8, 0xfd, 0x9a, 0xb8, 0x4e, 0x75, 0x6a, 0xe4, 0x38, 0x33, 0x39, 0xc7,
- 0x71, 0x41, 0x53, 0x4e, 0x73, 0x87, 0xb8, 0xf6, 0x26, 0x0d, 0xa3, 0xb2, 0xea, 0x43, 0x3b, 0x56,
- 0xdf, 0x71, 0xa8, 0xdd, 0xb0, 0x1d, 0x7a, 0x6d, 0xab, 0xe7, 0x6e, 0xe3, 0x17, 0x61, 0xc6, 0x62,
- 0x03, 0x2e, 0x61, 0xde, 0x8c, 0x09, 0xe3, 0x31, 0x1c, 0x1f, 0x07, 0xe9, 0xa1, 0x1d, 0x6d, 0xb1,
- 0xed, 0xe1, 0x38, 0x6c, 0xd6, 0x16, 0xb5, 0xb6, 0xc3, 0x5e, 0x57, 0x5e, 0xad, 0xa4, 0x4b, 0x61,
- 0xfb, 0x05, 0x82, 0xe5, 0x89, 0x92, 0x1f, 0x06, 0xc4, 0xf7, 0x69, 0x80, 0x6f, 0xc0, 0xcc, 0x23,
- 0xf6, 0x03, 0xb7, 0xd6, 0x7a, 0xab, 0xd1, 0x50, 0xa3, 0xdd, 0x44, 0x2e, 0xb7, 0x3e, 0x67, 0xc6,
- 0xdb, 0x71, 0x43, 0xea, 0xa0, 0xc2, 0xf9, 0x2c, 0x64, 0xf8, 0x24, 0xaa, 0x62, 0xeb, 0xf9, 0xb2,
- 0xab, 0xb3, 0x30, 0xed, 0x93, 0x20, 0x32, 0x0e, 0xc3, 0x0b, 0x59, 0x33, 0xf4, 0x3d, 0x37, 0xa4,
- 0xc6, 0x6f, 0x50, 0xe6, 0x42, 0xaf, 0x05, 0x94, 0x44, 0xd4, 0xa4, 0x8f, 0x7a, 0x34, 0x8c, 0xf0,
- 0x36, 0xa8, 0x01, 0x98, 0xeb, 0xae, 0xde, 0xba, 0xdd, 0x48, 0x23, 0x58, 0x43, 0x46, 0x30, 0x3e,
- 0xf8, 0xae, 0xd5, 0x6e, 0xf4, 0x5b, 0x0d, 0x7f, 0xbb, 0xd3, 0x60, 0xf1, 0x30, 0x83, 0x4c, 0xc6,
- 0x43, 0xf5, 0xa8, 0xa6, 0xca, 0x1d, 0x2f, 0xc0, 0x6c, 0xcf, 0x0f, 0x69, 0x10, 0xf1, 0x93, 0x55,
- 0x4d, 0x41, 0xb1, 0x5b, 0xea, 0x13, 0xc7, 0x6e, 0x93, 0x28, 0xbe, 0x85, 0xaa, 0x99, 0xd0, 0xc6,
- 0xc7, 0x59, 0xf4, 0x0f, 0xfc, 0xf6, 0x67, 0x85, 0x5e, 0x45, 0x59, 0x19, 0x42, 0xf9, 0x41, 0x16,
- 0xe5, 0x6b, 0xd4, 0xa1, 0x29, 0xca, 0x3c, 0xc3, 0xd4, 0x60, 0xce, 0x22, 0xa1, 0x45, 0xda, 0x92,
- 0x97, 0x24, 0x59, 0x58, 0xf0, 0x03, 0xcf, 0x27, 0x1d, 0xce, 0xe9, 0x9e, 0xe7, 0xd8, 0xd6, 0x40,
- 0xd8, 0xe6, 0xe8, 0x0f, 0x23, 0x46, 0x3c, 0x9d, 0x63, 0xc4, 0x27, 0xa0, 0xbe, 0x31, 0x70, 0xad,
- 0xd7, 0x7d, 0x9e, 0x4c, 0x99, 0x8b, 0xd9, 0x11, 0xed, 0x86, 0x1a, 0xe2, 0x81, 0x37, 0x26, 0x8c,
- 0x0f, 0x67, 0x60, 0x41, 0x39, 0x01, 0xdb, 0x50, 0x84, 0xbf, 0xc8, 0xe9, 0x17, 0x60, 0xb6, 0x1d,
- 0x0c, 0xcc, 0x9e, 0x2b, 0x2e, 0x53, 0x50, 0x4c, 0xb0, 0x1f, 0xf4, 0xdc, 0x18, 0x64, 0xd5, 0x8c,
- 0x09, 0xbc, 0x09, 0xd5, 0x30, 0x62, 0xe9, 0xb3, 0x33, 0xe0, 0xe1, 0xa8, 0xde, 0xfa, 0xfa, 0xee,
- 0x2e, 0x90, 0x41, 0xdf, 0x10, 0x1c, 0xcd, 0x84, 0x37, 0x7e, 0x04, 0x35, 0x19, 0x09, 0x43, 0x6d,
- 0x6e, 0x69, 0x6a, 0xb9, 0xde, 0xda, 0xd8, 0xbd, 0xa0, 0xd7, 0x7d, 0x96, 0xfa, 0x95, 0xa8, 0x6f,
- 0xa6, 0x52, 0xf0, 0x22, 0xd4, 0xba, 0xc2, 0xd7, 0x43, 0x91, 0xe6, 0xd2, 0x09, 0xfc, 0x6d, 0x98,
- 0xb1, 0xdd, 0x4d, 0x2f, 0xd4, 0x6a, 0x1c, 0xcc, 0xd5, 0xdd, 0x81, 0xb9, 0xed, 0x6e, 0x7a, 0x66,
- 0xcc, 0x10, 0x3f, 0x82, 0x7d, 0x01, 0x8d, 0x82, 0x81, 0xd4, 0x82, 0x06, 0x5c, 0xaf, 0xdf, 0xd8,
- 0x9d, 0x04, 0x53, 0x65, 0x69, 0x66, 0x25, 0xe0, 0x35, 0xa8, 0x87, 0xa9, 0x8d, 0x69, 0x75, 0x2e,
- 0x50, 0xcb, 0x30, 0x52, 0x6c, 0xd0, 0x54, 0x17, 0x8f, 0xd8, 0xf0, 0x7c, 0x8e, 0x0d, 0xff, 0x1d,
- 0xc1, 0xe2, 0x48, 0x18, 0xd8, 0xf0, 0x69, 0xa1, 0x91, 0x12, 0x98, 0x0e, 0x7d, 0x6a, 0xf1, 0xc8,
- 0x5f, 0x6f, 0xdd, 0xd9, 0xb3, 0xb8, 0xc0, 0xe5, 0x72, 0xd6, 0x45, 0xa1, 0xab, 0x94, 0x6f, 0xfe,
- 0x08, 0xc1, 0xe7, 0x15, 0xce, 0xf7, 0x48, 0x64, 0x6d, 0x15, 0x1d, 0x89, 0xf9, 0x10, 0x5b, 0x23,
- 0xb2, 0x59, 0x4c, 0x30, 0x43, 0xe3, 0x83, 0xfb, 0x03, 0x9f, 0xc1, 0x60, 0xbf, 0xa4, 0x13, 0xa5,
- 0x92, 0xfe, 0xbb, 0x08, 0x74, 0x35, 0xf2, 0x79, 0x8e, 0xf3, 0x26, 0xb1, 0xb6, 0x8b, 0xa0, 0xec,
- 0x87, 0x8a, 0xdd, 0xe6, 0x38, 0xa6, 0xcc, 0x8a, 0xdd, 0xde, 0xa1, 0xdb, 0x0f, 0x83, 0x9a, 0xcd,
- 0x01, 0xf5, 0x8f, 0x21, 0x50, 0xd2, 0xc5, 0x0a, 0x40, 0x2d, 0x42, 0xcd, 0x1d, 0x2a, 0xa6, 0xd2,
- 0x89, 0x9c, 0x22, 0xaa, 0x32, 0x52, 0x44, 0x69, 0x30, 0xd7, 0x4f, 0xea, 0x61, 0xf6, 0xb3, 0x24,
- 0xd9, 0x41, 0x3a, 0x81, 0xd7, 0xf3, 0x85, 0x02, 0x63, 0x82, 0xa1, 0xd8, 0xb6, 0xdd, 0xb6, 0x36,
- 0x1b, 0xa3, 0x60, 0xe3, 0x32, 0x15, 0xb0, 0xf1, 0x5e, 0x05, 0xbe, 0x90, 0x73, 0xb8, 0x89, 0x16,
- 0xf0, 0x7c, 0x9c, 0x30, 0xb1, 0xc3, 0xb9, 0xb1, 0x76, 0x58, 0x9d, 0x64, 0x87, 0xb5, 0x1c, 0xad,
- 0xbc, 0x53, 0x81, 0xa5, 0x1c, 0xad, 0x4c, 0x4e, 0xa8, 0xcf, 0x8d, 0x5a, 0x36, 0xbd, 0x40, 0xdc,
- 0x78, 0xd5, 0x8c, 0x09, 0xe6, 0x19, 0x5e, 0xe0, 0x6f, 0x11, 0x57, 0xab, 0xc6, 0x9e, 0x11, 0x53,
- 0xa5, 0x14, 0xf2, 0x1f, 0x04, 0x9a, 0xd4, 0xc2, 0x15, 0x8b, 0xeb, 0xa4, 0xe7, 0x3e, 0xff, 0x8a,
- 0x58, 0x80, 0x59, 0xc2, 0xd1, 0x0a, 0x03, 0x11, 0xd4, 0xc8, 0x91, 0xab, 0xf9, 0x31, 0xf1, 0x48,
- 0xf6, 0xc8, 0xe1, 0xba, 0x1d, 0x46, 0xb2, 0xa0, 0xc5, 0x9b, 0x30, 0x17, 0x73, 0x8b, 0x4b, 0x98,
- 0x7a, 0x6b, 0x7d, 0xb7, 0x89, 0x2d, 0xa3, 0x5e, 0xc9, 0xdc, 0x78, 0x19, 0x8e, 0xe4, 0x46, 0x1f,
- 0x01, 0x43, 0x87, 0xaa, 0x4c, 0xe6, 0xe2, 0x02, 0x12, 0xda, 0xf8, 0xf7, 0x54, 0x36, 0xac, 0x7b,
- 0xed, 0x75, 0xaf, 0x53, 0xf0, 0x16, 0x2c, 0xbe, 0x34, 0xf6, 0x58, 0xf6, 0xda, 0xca, 0xb3, 0x4f,
- 0x92, 0x6c, 0x9f, 0xe5, 0xb9, 0x11, 0xb1, 0x5d, 0x1a, 0x88, 0xfc, 0x92, 0x4e, 0x30, 0x65, 0x87,
- 0xb6, 0x6b, 0xd1, 0x0d, 0x6a, 0x79, 0x6e, 0x3b, 0xe4, 0xb7, 0x36, 0x65, 0x66, 0xe6, 0xf0, 0x2d,
- 0xa8, 0x71, 0xfa, 0xbe, 0xdd, 0x8d, 0x83, 0x70, 0xbd, 0xb5, 0xd2, 0x88, 0x9b, 0x28, 0x0d, 0xb5,
- 0x89, 0x92, 0xea, 0xb0, 0x4b, 0x23, 0xd2, 0xe8, 0x5f, 0x6c, 0xb0, 0x1d, 0x66, 0xba, 0x99, 0x61,
- 0x89, 0x88, 0xed, 0xac, 0xdb, 0x2e, 0x2f, 0xb0, 0x98, 0xa8, 0x74, 0x82, 0x19, 0xc4, 0xa6, 0xe7,
- 0x38, 0xde, 0x63, 0xe9, 0x03, 0x31, 0xc5, 0x76, 0xf5, 0xdc, 0xc8, 0x76, 0xb8, 0xfc, 0xd8, 0x01,
- 0xd2, 0x09, 0xbe, 0xcb, 0x76, 0x22, 0x1a, 0xf0, 0x12, 0xa6, 0x66, 0x0a, 0x2a, 0x31, 0xb9, 0x7a,
- 0xdc, 0x17, 0x90, 0xbe, 0x17, 0x1b, 0xe7, 0xbc, 0x6a, 0x9c, 0xc3, 0x06, 0xbf, 0x2f, 0xe7, 0xdd,
- 0xcc, 0xdb, 0x24, 0xb4, 0x6f, 0x7b, 0xbd, 0x50, 0xdb, 0x1f, 0x27, 0x71, 0x49, 0x8f, 0x18, 0xec,
- 0x81, 0x1c, 0x83, 0xfd, 0x2d, 0x82, 0xea, 0xba, 0xd7, 0xb9, 0xee, 0x46, 0xc1, 0x80, 0x57, 0xf6,
- 0x9e, 0x1b, 0x51, 0x57, 0x5a, 0x85, 0x24, 0x99, 0xaa, 0x23, 0xbb, 0x4b, 0x37, 0x22, 0xd2, 0xf5,
- 0x45, 0x4d, 0xb2, 0x23, 0x55, 0x27, 0x9b, 0xd9, 0xf1, 0x1d, 0x12, 0x46, 0xdc, 0x7b, 0xab, 0x26,
- 0x1f, 0x33, 0xa0, 0xc9, 0x82, 0x8d, 0x28, 0x10, 0xae, 0x9b, 0x99, 0x53, 0x0d, 0x69, 0x26, 0xc6,
- 0x26, 0x48, 0x63, 0x03, 0x5e, 0x4a, 0x4a, 0xd9, 0xfb, 0x34, 0xe8, 0xda, 0x2e, 0x29, 0x8e, 0xb7,
- 0x65, 0xba, 0x30, 0x0f, 0x32, 0x0e, 0xc4, 0xea, 0xbf, 0x87, 0xb6, 0xdb, 0xf6, 0x1e, 0x17, 0x38,
- 0x42, 0x19, 0xb6, 0x7f, 0xc9, 0xf6, 0x5b, 0x14, 0xbe, 0x89, 0x6f, 0xde, 0x82, 0x7d, 0xcc, 0x8b,
- 0xfb, 0x54, 0xfc, 0x20, 0x02, 0x85, 0x31, 0xee, 0x49, 0x9e, 0xf2, 0x30, 0xb3, 0x1b, 0xf1, 0x3a,
- 0x1c, 0x20, 0x61, 0x68, 0x77, 0x5c, 0xda, 0x96, 0xbc, 0x2a, 0xa5, 0x79, 0x0d, 0x6f, 0x8d, 0x9f,
- 0x7d, 0x7c, 0x85, 0xb8, 0x3b, 0x49, 0x1a, 0x3f, 0x44, 0x70, 0x38, 0x97, 0x49, 0x62, 0xeb, 0x48,
- 0x09, 0xaf, 0x3a, 0x54, 0x43, 0x6b, 0x8b, 0xb6, 0x7b, 0x0e, 0x95, 0x7d, 0x0d, 0x49, 0xb3, 0xdf,
- 0xda, 0xbd, 0xf8, 0x26, 0x45, 0x78, 0x4f, 0x68, 0x7c, 0x0c, 0xa0, 0x4b, 0xdc, 0x1e, 0x71, 0x38,
- 0x84, 0x69, 0x0e, 0x41, 0x99, 0x31, 0x16, 0x41, 0xcf, 0x33, 0x03, 0xd1, 0x49, 0xf8, 0x1b, 0x82,
- 0xfd, 0x32, 0x0c, 0x8a, 0x3b, 0x5c, 0x86, 0x03, 0x8a, 0x1a, 0xee, 0xa6, 0xd7, 0x39, 0x3c, 0x3d,
- 0x21, 0xc4, 0x49, 0x5b, 0x98, 0xca, 0xf6, 0x35, 0xfb, 0x99, 0xce, 0x64, 0xe9, 0x3c, 0x84, 0x76,
- 0x54, 0x89, 0xfd, 0x00, 0xb4, 0x3b, 0xc4, 0x25, 0x1d, 0xda, 0x4e, 0x0e, 0x97, 0x18, 0xd2, 0xf7,
- 0xd4, 0xc7, 0xf2, 0xae, 0x9f, 0xa6, 0x49, 0x39, 0x63, 0x6f, 0x6e, 0xca, 0x87, 0x77, 0x00, 0xd5,
- 0x75, 0xdb, 0xdd, 0x66, 0xef, 0x37, 0x76, 0xae, 0xc8, 0x8e, 0x1c, 0xa9, 0xc3, 0x98, 0xc0, 0x07,
- 0x61, 0xaa, 0x17, 0x38, 0xe2, 0x9e, 0xd9, 0x10, 0x2f, 0x41, 0xbd, 0x4d, 0x43, 0x2b, 0xb0, 0x7d,
- 0x71, 0xcb, 0xbc, 0xd1, 0xa7, 0x4c, 0x31, 0x6d, 0xdb, 0x96, 0xe7, 0x5e, 0x73, 0x48, 0x18, 0xca,
- 0xc4, 0x90, 0x4c, 0x18, 0xaf, 0xc2, 0x3e, 0x26, 0x33, 0x3d, 0xe6, 0xb9, 0xec, 0x31, 0x0f, 0x67,
- 0xe0, 0x4b, 0x78, 0x12, 0xf1, 0x4d, 0x78, 0x81, 0xe5, 0xe3, 0x2b, 0xbe, 0x2f, 0x98, 0x94, 0x2c,
- 0x46, 0xa6, 0x86, 0x2e, 0xbd, 0xf5, 0x63, 0x03, 0xb0, 0x6a, 0xf3, 0x34, 0xe8, 0xdb, 0x16, 0xc5,
- 0xef, 0x22, 0x98, 0x66, 0x02, 0xf0, 0xd1, 0x71, 0x2e, 0xc6, 0x6d, 0x4f, 0xdf, 0xbb, 0x07, 0x1d,
- 0x93, 0x66, 0x2c, 0xbe, 0xf5, 0xd7, 0x7f, 0xbd, 0x57, 0x59, 0xc0, 0x2f, 0xf2, 0x0f, 0x0c, 0xfd,
- 0x8b, 0x6a, 0xb3, 0x3f, 0xc4, 0x6f, 0x23, 0xc0, 0xa2, 0x0a, 0x51, 0xba, 0xbb, 0xf8, 0xdc, 0x38,
- 0x88, 0x39, 0x5d, 0x60, 0xfd, 0xa8, 0x12, 0xed, 0x1b, 0x96, 0x17, 0x50, 0x16, 0xdb, 0xf9, 0x02,
- 0x0e, 0x60, 0x85, 0x03, 0x38, 0x89, 0x8d, 0x3c, 0x00, 0xcd, 0x27, 0x4c, 0x6f, 0x4f, 0x9b, 0x34,
- 0x96, 0xfb, 0x11, 0x82, 0x99, 0x87, 0xbc, 0xe6, 0x9e, 0xa0, 0xa4, 0x8d, 0x3d, 0x53, 0x12, 0x17,
- 0xc7, 0xd1, 0x1a, 0x27, 0x38, 0xd2, 0xa3, 0xf8, 0x88, 0x44, 0x1a, 0x46, 0x01, 0x25, 0xdd, 0x0c,
- 0xe0, 0x0b, 0x08, 0x7f, 0x82, 0x60, 0x36, 0x6e, 0x37, 0xe2, 0x53, 0xe3, 0x50, 0x66, 0xda, 0x91,
- 0xfa, 0xde, 0xf5, 0xee, 0x8c, 0xb3, 0x1c, 0xe3, 0x09, 0x23, 0xf7, 0x3a, 0xd7, 0x32, 0x9d, 0xbd,
- 0xf7, 0x11, 0x4c, 0xdd, 0xa4, 0x13, 0xed, 0x6d, 0x0f, 0xc1, 0x8d, 0x28, 0x30, 0xe7, 0xaa, 0xf1,
- 0xc7, 0x08, 0x5e, 0xba, 0x49, 0xa3, 0xfc, 0x54, 0x87, 0x97, 0x27, 0xe7, 0x1f, 0x61, 0x76, 0xe7,
- 0x4a, 0xac, 0x4c, 0x62, 0x7c, 0x93, 0x23, 0x3b, 0x8b, 0xcf, 0x14, 0x19, 0x61, 0x38, 0x70, 0xad,
- 0xc7, 0x02, 0xc7, 0x1f, 0x11, 0x1c, 0x1c, 0xfe, 0xd6, 0x82, 0xb3, 0xc9, 0x31, 0xf7, 0x53, 0x8c,
- 0x7e, 0x77, 0xb7, 0xb1, 0x34, 0xcb, 0xd4, 0xb8, 0xc2, 0x91, 0xbf, 0x82, 0x5f, 0x2e, 0x42, 0x2e,
- 0x9b, 0x94, 0x61, 0xf3, 0x89, 0x1c, 0x3e, 0xe5, 0x9f, 0x05, 0x39, 0xec, 0xb7, 0x10, 0xcc, 0xdf,
- 0xa4, 0xd1, 0x9d, 0xa4, 0x47, 0x77, 0xaa, 0x54, 0x0f, 0x5f, 0x5f, 0x6c, 0x28, 0x5f, 0xef, 0xe4,
- 0x4f, 0x89, 0x4a, 0x57, 0x39, 0xb0, 0x33, 0xf8, 0x54, 0x11, 0xb0, 0xb4, 0x2f, 0xf8, 0x11, 0x82,
- 0xc3, 0x2a, 0x88, 0xf4, 0x0b, 0xc7, 0x97, 0x76, 0xf6, 0x45, 0x41, 0x7c, 0x97, 0x98, 0x80, 0xae,
- 0xc5, 0xd1, 0x9d, 0x37, 0xf2, 0x2f, 0xbc, 0x3b, 0x82, 0x62, 0x0d, 0xad, 0x2c, 0x23, 0xfc, 0x3b,
- 0x04, 0xb3, 0x71, 0x13, 0x6e, 0xbc, 0x8e, 0x32, 0xbd, 0xfa, 0xbd, 0xf4, 0x9e, 0xeb, 0x1c, 0xf2,
- 0x57, 0xf5, 0x0b, 0xf9, 0x0a, 0x55, 0xf7, 0xcb, 0xab, 0x6d, 0x70, 0x2d, 0x67, 0xdd, 0xfe, 0x57,
- 0x08, 0x20, 0x6d, 0x24, 0xe2, 0xb3, 0xc5, 0xe7, 0x50, 0x9a, 0x8d, 0xfa, 0xde, 0xb6, 0x12, 0x8d,
- 0x06, 0x3f, 0xcf, 0xb2, 0xbe, 0x54, 0xe8, 0x73, 0x3e, 0xb5, 0xd6, 0xe2, 0xa6, 0xe3, 0xcf, 0x11,
- 0xcc, 0xf0, 0x3e, 0x11, 0x3e, 0x39, 0x0e, 0xb3, 0xda, 0x46, 0xda, 0x4b, 0xd5, 0x9f, 0xe6, 0x50,
- 0x97, 0x5a, 0x45, 0x81, 0x6b, 0x0d, 0xad, 0xe0, 0x3e, 0xcc, 0xc6, 0x3d, 0x9b, 0xf1, 0xe6, 0x91,
- 0xe9, 0xe9, 0xe8, 0x4b, 0x05, 0x89, 0x34, 0x36, 0x54, 0x11, 0x33, 0x57, 0x26, 0xc5, 0xcc, 0x69,
- 0x16, 0xd6, 0xf0, 0x89, 0xa2, 0xa0, 0xf7, 0x29, 0x28, 0xe6, 0x1c, 0x47, 0x77, 0xca, 0x58, 0x9a,
- 0x14, 0x37, 0x99, 0x76, 0x7e, 0x8a, 0xe0, 0xe0, 0x70, 0xc9, 0x89, 0x8f, 0x0c, 0xc5, 0x4c, 0xb5,
- 0xce, 0xd6, 0xb3, 0x5a, 0x1c, 0x57, 0xae, 0x1a, 0x5f, 0xe3, 0x28, 0xd6, 0xf0, 0xe5, 0x89, 0x9e,
- 0x71, 0x57, 0x46, 0x1d, 0xc6, 0x68, 0x35, 0xfd, 0x66, 0xf1, 0x6b, 0x04, 0xf3, 0x92, 0xef, 0xfd,
- 0x80, 0xd2, 0x62, 0x58, 0x7b, 0xe7, 0x08, 0x4c, 0x96, 0xf1, 0x2a, 0x87, 0xff, 0x65, 0x7c, 0xa9,
- 0x24, 0x7c, 0x09, 0x7b, 0x35, 0x62, 0x48, 0x7f, 0x8f, 0xe0, 0xd0, 0xc3, 0xd8, 0xee, 0x3f, 0x23,
- 0xfc, 0xd7, 0x38, 0xfe, 0xaf, 0xe0, 0x57, 0x0a, 0xea, 0xa2, 0x49, 0xc7, 0xb8, 0x80, 0xf0, 0x2f,
- 0x11, 0x54, 0x65, 0x07, 0x1e, 0x9f, 0x19, 0xeb, 0x18, 0xd9, 0x1e, 0xfd, 0x5e, 0x1a, 0xb3, 0x28,
- 0x02, 0x8c, 0x93, 0x85, 0xa9, 0x54, 0xc8, 0x67, 0x06, 0xfd, 0x3e, 0x02, 0x9c, 0xbc, 0x17, 0x93,
- 0x17, 0x24, 0x3e, 0x9d, 0x11, 0x35, 0xb6, 0xc1, 0xa0, 0x9f, 0x99, 0xb8, 0x2e, 0x9b, 0x4a, 0x57,
- 0x0a, 0x53, 0xa9, 0x97, 0xc8, 0x7f, 0x07, 0x41, 0xfd, 0x26, 0x4d, 0x6a, 0xf6, 0x02, 0x5d, 0x66,
- 0x3f, 0x2d, 0xe8, 0xcb, 0x93, 0x17, 0x0a, 0x44, 0xe7, 0x39, 0xa2, 0xd3, 0xb8, 0x58, 0x55, 0x12,
- 0xc0, 0x87, 0x08, 0xf6, 0xdd, 0x53, 0x4d, 0x14, 0x9f, 0x9f, 0x24, 0x29, 0x13, 0xc9, 0xcb, 0xe3,
- 0xfa, 0x22, 0xc7, 0xb5, 0x6a, 0x94, 0xc2, 0xb5, 0x26, 0xfa, 0xf7, 0x3f, 0x43, 0xf1, 0xd3, 0x6e,
- 0xa8, 0xfb, 0xfa, 0xff, 0xea, 0xad, 0xa0, 0x89, 0x6b, 0x5c, 0xe2, 0xf8, 0x1a, 0xf8, 0x7c, 0x19,
- 0x7c, 0x4d, 0xd1, 0x92, 0xc5, 0x1f, 0x20, 0x38, 0xc4, 0xfb, 0xdf, 0x2a, 0xe3, 0xa1, 0x14, 0x33,
- 0xae, 0x5b, 0x5e, 0x22, 0xc5, 0x88, 0xf8, 0x63, 0xec, 0x08, 0xd4, 0x9a, 0xec, 0x6d, 0xff, 0x04,
- 0xc1, 0x7e, 0x99, 0xd4, 0xc4, 0xed, 0xae, 0x4e, 0x52, 0xdc, 0x4e, 0x93, 0xa0, 0x30, 0xb7, 0x95,
- 0x72, 0xe6, 0xf6, 0x09, 0x82, 0x39, 0xd1, 0x7b, 0x2e, 0x28, 0x15, 0x94, 0xe6, 0xb4, 0x3e, 0xf4,
- 0xf2, 0x17, 0x4d, 0x4d, 0xe3, 0x3b, 0x5c, 0xec, 0x03, 0xdc, 0x2c, 0x12, 0xeb, 0x7b, 0xed, 0xb0,
- 0xf9, 0x44, 0x74, 0x14, 0x9f, 0x36, 0x1d, 0xaf, 0x13, 0xbe, 0x61, 0xe0, 0xc2, 0x84, 0xc8, 0xd6,
- 0x5c, 0x40, 0x38, 0x82, 0x1a, 0x33, 0x0e, 0xde, 0x4e, 0xc0, 0x4b, 0x43, 0xcd, 0x87, 0x91, 0x4e,
- 0x83, 0xae, 0x8f, 0xb4, 0x27, 0xd2, 0x0c, 0x28, 0x9e, 0x7d, 0xf8, 0x78, 0xa1, 0x58, 0x2e, 0xe8,
- 0x6d, 0x04, 0x87, 0x54, 0x6b, 0x8f, 0xc5, 0x97, 0xb6, 0xf5, 0x22, 0x14, 0xa2, 0xa8, 0xc6, 0x2b,
- 0xa5, 0x0c, 0x89, 0xc3, 0xb9, 0x7a, 0xe3, 0x0f, 0xcf, 0x8e, 0xa1, 0x3f, 0x3f, 0x3b, 0x86, 0xfe,
- 0xf9, 0xec, 0x18, 0x7a, 0xe3, 0x72, 0xb9, 0xbf, 0x24, 0x5a, 0x8e, 0x4d, 0xdd, 0x48, 0x65, 0xff,
- 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x96, 0x44, 0xa9, 0x6d, 0x78, 0x29, 0x00, 0x00,
+ 0x15, 0xa7, 0x66, 0xbf, 0x66, 0xde, 0xec, 0xfa, 0xa3, 0x12, 0x2f, 0x9d, 0xf6, 0xc6, 0x6c, 0xda,
+ 0x76, 0xbc, 0x59, 0x7b, 0x67, 0xec, 0xc1, 0x20, 0x67, 0x93, 0x08, 0xec, 0xf5, 0x27, 0xac, 0x1d,
+ 0xd3, 0x6b, 0x63, 0x14, 0x0e, 0x50, 0xe9, 0xae, 0x9d, 0x6d, 0xb6, 0xa7, 0xbb, 0xdd, 0xdd, 0x33,
+ 0xd6, 0xca, 0xf8, 0x12, 0x64, 0x09, 0xa1, 0x08, 0x04, 0xe4, 0x80, 0x10, 0x02, 0x14, 0x14, 0x09,
+ 0x21, 0x10, 0x17, 0x14, 0x21, 0x21, 0x24, 0xb8, 0x20, 0x38, 0x20, 0x21, 0x38, 0x72, 0x41, 0x16,
+ 0xe2, 0x08, 0x97, 0xfc, 0x01, 0xa8, 0xaa, 0xab, 0xba, 0xab, 0xe7, 0xa3, 0x67, 0x96, 0x19, 0x14,
+ 0xdf, 0xfa, 0xd5, 0x54, 0xbd, 0xf7, 0xab, 0x57, 0xbf, 0x7a, 0xaf, 0xea, 0xd5, 0xc0, 0x89, 0x88,
+ 0x86, 0x1d, 0x1a, 0xd6, 0x49, 0x10, 0xb8, 0x8e, 0x45, 0x62, 0xc7, 0xf7, 0xd4, 0xef, 0x5a, 0x10,
+ 0xfa, 0xb1, 0x8f, 0xab, 0x4a, 0x93, 0xbe, 0xd4, 0xf4, 0xfd, 0xa6, 0x4b, 0xeb, 0x24, 0x70, 0xea,
+ 0xc4, 0xf3, 0xfc, 0x98, 0x37, 0x47, 0x49, 0x57, 0xdd, 0xd8, 0xbd, 0x10, 0xd5, 0x1c, 0x9f, 0xff,
+ 0x6a, 0xf9, 0x21, 0xad, 0x77, 0xce, 0xd5, 0x9b, 0xd4, 0xa3, 0x21, 0x89, 0xa9, 0x2d, 0xfa, 0x9c,
+ 0xcf, 0xfa, 0xb4, 0x88, 0xb5, 0xe3, 0x78, 0x34, 0xdc, 0xab, 0x07, 0xbb, 0x4d, 0xd6, 0x10, 0xd5,
+ 0x5b, 0x34, 0x26, 0xfd, 0x46, 0x6d, 0x36, 0x9d, 0x78, 0xa7, 0xfd, 0x66, 0xcd, 0xf2, 0x5b, 0x75,
+ 0x12, 0x36, 0xfd, 0x20, 0xf4, 0xbf, 0xc2, 0x3f, 0xd6, 0x2c, 0xbb, 0xde, 0x69, 0x64, 0x0a, 0xd4,
+ 0xb9, 0x74, 0xce, 0x11, 0x37, 0xd8, 0x21, 0xbd, 0xda, 0xae, 0x0c, 0xd1, 0x16, 0xd2, 0xc0, 0x17,
+ 0xbe, 0xe1, 0x9f, 0x4e, 0xec, 0x87, 0x7b, 0xca, 0x67, 0xa2, 0xc6, 0xf8, 0x00, 0xc1, 0xa1, 0x8b,
+ 0x99, 0xbd, 0xcf, 0xb5, 0x69, 0xb8, 0x87, 0x31, 0x4c, 0x7b, 0xa4, 0x45, 0x35, 0xb4, 0x8c, 0x56,
+ 0x2a, 0x26, 0xff, 0xc6, 0x1a, 0xcc, 0x85, 0x74, 0x3b, 0xa4, 0xd1, 0x8e, 0x56, 0xe2, 0xcd, 0x52,
+ 0xc4, 0x3a, 0x94, 0x99, 0x71, 0x6a, 0xc5, 0x91, 0x36, 0xb5, 0x3c, 0xb5, 0x52, 0x31, 0x53, 0x19,
+ 0xaf, 0xc0, 0xc1, 0x90, 0x46, 0x7e, 0x3b, 0xb4, 0xe8, 0xe7, 0x69, 0x18, 0x39, 0xbe, 0xa7, 0x4d,
+ 0xf3, 0xd1, 0xdd, 0xcd, 0x4c, 0x4b, 0x44, 0x5d, 0x6a, 0xc5, 0x7e, 0xa8, 0xcd, 0xf0, 0x2e, 0xa9,
+ 0xcc, 0xf0, 0x30, 0xe0, 0xda, 0x6c, 0x82, 0x87, 0x7d, 0x63, 0x03, 0xe6, 0x49, 0x10, 0xdc, 0x22,
+ 0x2d, 0x1a, 0x05, 0xc4, 0xa2, 0xda, 0x1c, 0xff, 0x2d, 0xd7, 0xc6, 0x30, 0x0b, 0x24, 0x5a, 0x99,
+ 0x03, 0x93, 0xa2, 0xb1, 0x01, 0x95, 0x5b, 0xbe, 0x4d, 0x07, 0x4f, 0xb7, 0x5b, 0x7d, 0xa9, 0x57,
+ 0xbd, 0xf1, 0x18, 0xc1, 0x11, 0x93, 0x76, 0x1c, 0x86, 0xff, 0x26, 0x8d, 0x89, 0x4d, 0x62, 0xd2,
+ 0xad, 0xb1, 0x94, 0x6a, 0xd4, 0xa1, 0x1c, 0x8a, 0xce, 0x5a, 0x89, 0xb7, 0xa7, 0x72, 0x8f, 0xb5,
+ 0xa9, 0xe2, 0xc9, 0x24, 0x2e, 0x4c, 0x27, 0xf3, 0x2f, 0x04, 0xc7, 0x94, 0x35, 0x34, 0x85, 0x67,
+ 0xaf, 0x74, 0xa8, 0x17, 0x47, 0x83, 0x01, 0x9d, 0x81, 0xc3, 0x72, 0x11, 0xba, 0xe7, 0xd9, 0xfb,
+ 0x03, 0x83, 0xa8, 0x36, 0x4a, 0x88, 0x6a, 0x1b, 0x5e, 0x86, 0xaa, 0x94, 0xef, 0xde, 0xb8, 0x2c,
+ 0x60, 0xaa, 0x4d, 0x3d, 0x13, 0x9d, 0x29, 0x9e, 0xe8, 0x6c, 0x7e, 0xa2, 0x5f, 0x47, 0xa0, 0x29,
+ 0x13, 0xbd, 0x49, 0x3c, 0x67, 0x9b, 0x46, 0xf1, 0xa8, 0x3e, 0x47, 0x13, 0xf4, 0xf9, 0x0b, 0x50,
+ 0xb9, 0xea, 0xb8, 0x74, 0x63, 0xa7, 0xed, 0xed, 0xe2, 0x67, 0x61, 0xc6, 0x62, 0x1f, 0xdc, 0xf6,
+ 0xbc, 0x99, 0x08, 0xc6, 0xb7, 0x11, 0xbc, 0x30, 0x08, 0xed, 0x3d, 0x27, 0xde, 0x61, 0xe3, 0xa3,
+ 0x41, 0xb0, 0xad, 0x1d, 0x6a, 0xed, 0x46, 0xed, 0x96, 0xa4, 0x8a, 0x94, 0xc7, 0x84, 0xfd, 0x33,
+ 0x04, 0x2b, 0x43, 0x31, 0xdd, 0x0b, 0x49, 0x10, 0xd0, 0x10, 0x5f, 0x85, 0x99, 0xfb, 0xec, 0x07,
+ 0xbe, 0x31, 0xaa, 0x8d, 0x5a, 0x4d, 0x0d, 0xac, 0x43, 0xb5, 0x5c, 0xff, 0x88, 0x99, 0x0c, 0xc7,
+ 0x35, 0xe9, 0x9e, 0x12, 0xd7, 0xb3, 0x98, 0xd3, 0x93, 0x7a, 0x91, 0xf5, 0xe7, 0xdd, 0x2e, 0xcd,
+ 0xc2, 0x74, 0x40, 0xc2, 0xd8, 0x38, 0x02, 0xcf, 0xe4, 0x69, 0x1d, 0xf8, 0x5e, 0x44, 0x8d, 0xdf,
+ 0xe4, 0x59, 0xb0, 0x11, 0x52, 0x12, 0x53, 0x93, 0xde, 0x6f, 0xd3, 0x28, 0xc6, 0xbb, 0xa0, 0xc6,
+ 0x7a, 0xee, 0xd5, 0x6a, 0xe3, 0x46, 0x2d, 0x0b, 0x96, 0x35, 0x19, 0x2c, 0xf9, 0xc7, 0x97, 0x2c,
+ 0xbb, 0xd6, 0x69, 0xd4, 0x82, 0xdd, 0x66, 0x8d, 0x85, 0xde, 0x1c, 0x32, 0x19, 0x7a, 0xd5, 0xa9,
+ 0x9a, 0xaa, 0x76, 0xbc, 0x08, 0xb3, 0xed, 0x20, 0xa2, 0x61, 0xcc, 0x67, 0x56, 0x36, 0x85, 0xc4,
+ 0xd6, 0xaf, 0x43, 0x5c, 0xc7, 0x26, 0x71, 0xb2, 0x3e, 0x65, 0x33, 0x95, 0x8d, 0xdf, 0xe6, 0xd1,
+ 0xdf, 0x0d, 0xec, 0x0f, 0x0b, 0xbd, 0x8a, 0xb2, 0x94, 0x47, 0xa9, 0x32, 0x68, 0x2a, 0xcf, 0xa0,
+ 0x5f, 0xe5, 0xf1, 0x5f, 0xa6, 0x2e, 0xcd, 0xf0, 0xf7, 0x23, 0xb3, 0x06, 0x73, 0x16, 0x89, 0x2c,
+ 0x62, 0x4b, 0x2b, 0x52, 0x64, 0x01, 0x28, 0x08, 0xfd, 0x80, 0x34, 0xb9, 0xa6, 0xdb, 0xbe, 0xeb,
+ 0x58, 0x7b, 0xc2, 0x5c, 0xef, 0x0f, 0x3d, 0xc4, 0x9f, 0x2e, 0x26, 0xfe, 0x4c, 0x1e, 0xf6, 0x71,
+ 0xa8, 0x6e, 0xed, 0x79, 0xd6, 0xeb, 0x01, 0xcf, 0xf5, 0x6c, 0xc7, 0x3a, 0x31, 0x6d, 0x45, 0x1a,
+ 0xe2, 0x79, 0x21, 0x11, 0x8c, 0xf7, 0x67, 0x60, 0x51, 0x99, 0x1b, 0x1b, 0x50, 0x34, 0xb3, 0xa2,
+ 0xe8, 0xb2, 0x08, 0xb3, 0x76, 0xb8, 0x67, 0xb6, 0x3d, 0x41, 0x00, 0x21, 0x31, 0xc3, 0x41, 0xd8,
+ 0xf6, 0x12, 0xf8, 0x65, 0x33, 0x11, 0xf0, 0x36, 0x94, 0xa3, 0x98, 0x65, 0xf7, 0xe6, 0x1e, 0x07,
+ 0x5e, 0x6d, 0x7c, 0x66, 0xbc, 0x45, 0x67, 0xd0, 0xb7, 0x84, 0x46, 0x33, 0xd5, 0x8d, 0xef, 0x43,
+ 0x45, 0x46, 0xe3, 0x48, 0x9b, 0x5b, 0x9e, 0x5a, 0xa9, 0x36, 0xb6, 0xc6, 0x37, 0xf4, 0x7a, 0xc0,
+ 0x4e, 0x26, 0x4a, 0xe6, 0x31, 0x33, 0x2b, 0x78, 0x09, 0x2a, 0x2d, 0x11, 0x1f, 0x22, 0x91, 0x85,
+ 0xb3, 0x06, 0xfc, 0x05, 0x98, 0x71, 0xbc, 0x6d, 0x3f, 0xd2, 0x2a, 0x1c, 0xcc, 0xa5, 0xf1, 0xc0,
+ 0xdc, 0xf0, 0xb6, 0x7d, 0x33, 0x51, 0x88, 0xef, 0xc3, 0x42, 0x48, 0xe3, 0x70, 0x4f, 0x7a, 0x41,
+ 0x03, 0xee, 0xd7, 0xcf, 0x8e, 0x67, 0xc1, 0x54, 0x55, 0x9a, 0x79, 0x0b, 0x78, 0x1d, 0xaa, 0x51,
+ 0xc6, 0x31, 0xad, 0xca, 0x0d, 0x6a, 0x39, 0x45, 0x0a, 0x07, 0x4d, 0xb5, 0x73, 0x0f, 0xbb, 0xe7,
+ 0x8b, 0xd9, 0xbd, 0x90, 0x67, 0xf7, 0x7f, 0x10, 0x2c, 0xf5, 0x04, 0x95, 0xad, 0x80, 0x16, 0xd2,
+ 0x97, 0xc0, 0x74, 0x14, 0x50, 0x8b, 0x67, 0x98, 0x6a, 0xe3, 0xe6, 0xc4, 0xa2, 0x0c, 0xb7, 0xcb,
+ 0x55, 0x17, 0x05, 0xc2, 0x31, 0xf7, 0xf3, 0x8f, 0x10, 0x7c, 0x54, 0xb1, 0x79, 0x9b, 0xc4, 0xd6,
+ 0x4e, 0xd1, 0x64, 0xd9, 0xbe, 0x63, 0x7d, 0x44, 0x3e, 0x4d, 0x04, 0x46, 0x4e, 0xfe, 0x71, 0x67,
+ 0x2f, 0x60, 0x00, 0xd9, 0x2f, 0x59, 0xc3, 0x98, 0x87, 0x95, 0x9f, 0x23, 0xd0, 0xd5, 0xd8, 0xeb,
+ 0xbb, 0xee, 0x9b, 0xc4, 0xda, 0x2d, 0x02, 0x79, 0x00, 0x4a, 0x8e, 0xcd, 0x11, 0x4e, 0x99, 0x25,
+ 0xc7, 0xde, 0x67, 0x10, 0xe9, 0x86, 0x3b, 0x5b, 0x0c, 0x77, 0x2e, 0x0f, 0xf7, 0x83, 0x2e, 0xb8,
+ 0x72, 0x2b, 0x17, 0xc0, 0x5d, 0x82, 0x8a, 0xd7, 0x75, 0x70, 0xcc, 0x1a, 0xfa, 0x1c, 0x18, 0x4b,
+ 0x3d, 0x07, 0x46, 0x0d, 0xe6, 0x3a, 0xe9, 0xb5, 0x80, 0xfd, 0x2c, 0x45, 0x36, 0xc5, 0x66, 0xe8,
+ 0xb7, 0x03, 0xe1, 0xf4, 0x44, 0x60, 0x28, 0x76, 0x1d, 0xcf, 0xd6, 0x66, 0x13, 0x14, 0xec, 0x7b,
+ 0xff, 0x17, 0x81, 0xdc, 0xb4, 0x7f, 0x51, 0x82, 0x8f, 0xf5, 0x99, 0xf6, 0x50, 0x3e, 0x3d, 0x1d,
+ 0x73, 0x4f, 0x59, 0x3d, 0x37, 0x90, 0xd5, 0xe5, 0x61, 0xac, 0xae, 0x14, 0xfb, 0x0b, 0xf2, 0xfe,
+ 0xfa, 0x69, 0x09, 0x96, 0xfb, 0xf8, 0x6b, 0xf8, 0x31, 0xe0, 0xa9, 0x71, 0xd8, 0xb6, 0x1f, 0x0a,
+ 0x96, 0x94, 0xcd, 0x44, 0x60, 0xfb, 0xcc, 0x0f, 0x83, 0x1d, 0xe2, 0x71, 0x76, 0x94, 0x4d, 0x21,
+ 0x8d, 0xe9, 0xaa, 0x6f, 0x94, 0x40, 0x93, 0xfe, 0xb9, 0x68, 0x71, 0x6f, 0xb5, 0xbd, 0xa7, 0xdf,
+ 0x45, 0x8b, 0x30, 0x4b, 0x38, 0x5a, 0x41, 0x2a, 0x21, 0xf5, 0x38, 0xa3, 0x5c, 0xec, 0x8c, 0x4a,
+ 0xde, 0x19, 0x8f, 0x11, 0x1c, 0xcd, 0x3b, 0x23, 0xda, 0x74, 0xa2, 0x58, 0x1e, 0xea, 0xf1, 0x36,
+ 0xcc, 0x25, 0x76, 0x92, 0x23, 0x59, 0xb5, 0xb1, 0x39, 0x6e, 0xa2, 0xce, 0x39, 0x5e, 0x2a, 0x37,
+ 0x5e, 0x86, 0xa3, 0x7d, 0xa3, 0x9c, 0x80, 0xa1, 0x43, 0x59, 0x1e, 0x4e, 0xc4, 0xd2, 0xa4, 0xb2,
+ 0xf1, 0x78, 0x3a, 0x9f, 0x72, 0x7c, 0x7b, 0xd3, 0x6f, 0x16, 0xdc, 0xaf, 0x8b, 0x97, 0x93, 0xb9,
+ 0xca, 0xb7, 0x95, 0xab, 0xb4, 0x14, 0xd9, 0x38, 0xcb, 0xf7, 0x62, 0xe2, 0x78, 0x34, 0x14, 0x59,
+ 0x31, 0x6b, 0x60, 0xcb, 0x10, 0x39, 0x9e, 0x45, 0xb7, 0xa8, 0xe5, 0x7b, 0x76, 0xc4, 0xd7, 0x73,
+ 0xca, 0xcc, 0xb5, 0xe1, 0xeb, 0x50, 0xe1, 0xf2, 0x1d, 0xa7, 0x95, 0xa4, 0x81, 0x6a, 0x63, 0xb5,
+ 0x96, 0xd4, 0xac, 0x6a, 0x6a, 0xcd, 0x2a, 0xf3, 0x61, 0x8b, 0xc6, 0xa4, 0xd6, 0x39, 0x57, 0x63,
+ 0x23, 0xcc, 0x6c, 0x30, 0xc3, 0x12, 0x13, 0xc7, 0xdd, 0x74, 0x3c, 0x7e, 0x60, 0x64, 0xa6, 0xb2,
+ 0x06, 0x46, 0x95, 0x6d, 0xdf, 0x75, 0xfd, 0x07, 0x72, 0xdf, 0x24, 0x12, 0x1b, 0xd5, 0xf6, 0x62,
+ 0xc7, 0xe5, 0xf6, 0x13, 0x22, 0x64, 0x0d, 0x7c, 0x94, 0xe3, 0xc6, 0x34, 0x14, 0x1b, 0x46, 0x48,
+ 0x29, 0x19, 0xab, 0x49, 0x19, 0x46, 0xee, 0xd7, 0x84, 0xb6, 0xf3, 0x2a, 0x6d, 0xbb, 0xb7, 0xc2,
+ 0x42, 0x9f, 0x5a, 0x04, 0xaf, 0x4a, 0xd1, 0x8e, 0xe3, 0xb7, 0x23, 0xed, 0x40, 0x72, 0xf4, 0x90,
+ 0x72, 0x0f, 0x95, 0x0f, 0x16, 0x53, 0xf9, 0x50, 0x9e, 0xca, 0xbf, 0x43, 0x50, 0xde, 0xf4, 0x9b,
+ 0x57, 0xbc, 0x38, 0xdc, 0xe3, 0xb7, 0x1b, 0xdf, 0x8b, 0xa9, 0x27, 0xf9, 0x22, 0x45, 0xb6, 0x08,
+ 0xb1, 0xd3, 0xa2, 0x5b, 0x31, 0x69, 0x05, 0xe2, 0x8c, 0xb5, 0xaf, 0x45, 0x48, 0x07, 0x33, 0xc7,
+ 0xb8, 0x24, 0x8a, 0xf9, 0x8e, 0x2f, 0x9b, 0xfc, 0x9b, 0x4d, 0x21, 0xed, 0xb0, 0x15, 0x87, 0x62,
+ 0xbb, 0xe7, 0xda, 0x54, 0x8a, 0xcd, 0x24, 0xd8, 0x84, 0x68, 0xb4, 0xe0, 0xb9, 0xf4, 0xd0, 0x7e,
+ 0x87, 0x86, 0x2d, 0xc7, 0x23, 0xc5, 0xd1, 0x7b, 0x84, 0x72, 0x58, 0xc1, 0x9d, 0xd1, 0xcf, 0x6d,
+ 0x3a, 0x76, 0x06, 0xbe, 0xe7, 0x78, 0xb6, 0xff, 0xa0, 0x60, 0xf3, 0x8c, 0x67, 0xf0, 0xaf, 0xf9,
+ 0x8a, 0x98, 0x62, 0x31, 0xdd, 0xe9, 0xd7, 0x61, 0x81, 0xc5, 0x84, 0x0e, 0x15, 0x3f, 0x88, 0xb0,
+ 0x63, 0x0c, 0x2a, 0x72, 0x64, 0x3a, 0xcc, 0xfc, 0x40, 0xbc, 0x09, 0x07, 0x49, 0x14, 0x39, 0x4d,
+ 0x8f, 0xda, 0x52, 0x57, 0x69, 0x64, 0x5d, 0xdd, 0x43, 0x93, 0xeb, 0x32, 0xef, 0x21, 0xd6, 0x5b,
+ 0x8a, 0xc6, 0xd7, 0x10, 0x1c, 0xe9, 0xab, 0x24, 0xdd, 0x39, 0x48, 0x09, 0xe3, 0x3a, 0x94, 0x23,
+ 0x6b, 0x87, 0xda, 0x6d, 0x97, 0xca, 0x1a, 0x92, 0x94, 0xd9, 0x6f, 0x76, 0x3b, 0x59, 0x7d, 0x91,
+ 0x46, 0x52, 0x19, 0x1f, 0x03, 0x68, 0x11, 0xaf, 0x4d, 0x5c, 0x0e, 0x61, 0x9a, 0x43, 0x50, 0x5a,
+ 0x8c, 0x25, 0xd0, 0xfb, 0x51, 0x47, 0xd4, 0x66, 0xfe, 0x8d, 0xe0, 0x80, 0x0c, 0xaa, 0x62, 0x75,
+ 0x57, 0xe0, 0xa0, 0xe2, 0x86, 0x5b, 0xd9, 0x42, 0x77, 0x37, 0x0f, 0x09, 0x98, 0x92, 0x25, 0x53,
+ 0xf9, 0xa2, 0x74, 0x27, 0x57, 0x56, 0x1e, 0x39, 0xdf, 0xa1, 0x09, 0x9d, 0x1f, 0xbf, 0x0a, 0xda,
+ 0x4d, 0xe2, 0x91, 0x26, 0xb5, 0xd3, 0x69, 0xa7, 0x14, 0xfb, 0xb2, 0x5a, 0x64, 0x18, 0xfb, 0x4a,
+ 0x9f, 0x1e, 0xb5, 0x9c, 0xed, 0x6d, 0x59, 0xb0, 0x08, 0xa1, 0xbc, 0xe9, 0x78, 0xbb, 0xec, 0xde,
+ 0xcb, 0x66, 0x1c, 0x3b, 0xb1, 0x2b, 0xbd, 0x9b, 0x08, 0xf8, 0x10, 0x4c, 0xb5, 0x43, 0x57, 0x30,
+ 0x80, 0x7d, 0xe2, 0x65, 0xa8, 0xda, 0x34, 0xb2, 0x42, 0x27, 0x10, 0xeb, 0xcf, 0x8b, 0xb4, 0x4a,
+ 0x13, 0x5b, 0x07, 0xc7, 0xf2, 0xbd, 0x0d, 0x97, 0x44, 0x91, 0x4c, 0x40, 0x69, 0x83, 0xf1, 0x2a,
+ 0x2c, 0x30, 0x9b, 0xd9, 0x34, 0x4f, 0xe7, 0xa7, 0x79, 0x24, 0x07, 0x5f, 0xc2, 0x93, 0x88, 0x09,
+ 0x3c, 0xc3, 0xf2, 0xfe, 0xc5, 0x20, 0x10, 0x4a, 0x46, 0x3c, 0x0e, 0x4d, 0xf5, 0xcb, 0x9f, 0x7d,
+ 0x6b, 0x9c, 0x8d, 0xbf, 0x1f, 0x07, 0xac, 0xee, 0x13, 0x1a, 0x76, 0x1c, 0x8b, 0xe2, 0xef, 0x20,
+ 0x98, 0x66, 0xa6, 0xf1, 0xf3, 0x83, 0xb6, 0x25, 0xe7, 0xab, 0x3e, 0xb9, 0x8b, 0x30, 0xb3, 0x66,
+ 0x2c, 0xbd, 0xf5, 0xb7, 0x7f, 0x7e, 0xb7, 0xb4, 0x88, 0x9f, 0xe5, 0x2f, 0x4a, 0x9d, 0x73, 0xea,
+ 0xeb, 0x4e, 0x84, 0xdf, 0x46, 0x80, 0xc5, 0x39, 0x48, 0xa9, 0xd9, 0xe3, 0xd3, 0x83, 0x20, 0xf6,
+ 0xa9, 0xed, 0xeb, 0xcf, 0x2b, 0x59, 0xa5, 0x66, 0xf9, 0x21, 0x65, 0x39, 0x84, 0x77, 0xe0, 0x00,
+ 0x56, 0x39, 0x80, 0x13, 0xd8, 0xe8, 0x07, 0xa0, 0xfe, 0x90, 0x79, 0xf4, 0x51, 0x9d, 0x26, 0x76,
+ 0xdf, 0x45, 0x30, 0x73, 0x8f, 0xdf, 0x21, 0x86, 0x38, 0x69, 0x6b, 0x62, 0x4e, 0xe2, 0xe6, 0x38,
+ 0x5a, 0xe3, 0x38, 0x47, 0xfa, 0x3c, 0x3e, 0x2a, 0x91, 0x46, 0x71, 0x48, 0x49, 0x2b, 0x07, 0xf8,
+ 0x2c, 0xc2, 0xef, 0x21, 0x98, 0x4d, 0x8a, 0xbe, 0xf8, 0xe4, 0x20, 0x94, 0xb9, 0xa2, 0xb0, 0x3e,
+ 0xb9, 0x0a, 0xaa, 0xf1, 0x12, 0xc7, 0x78, 0xdc, 0xe8, 0xbb, 0x9c, 0xeb, 0xb9, 0xfa, 0xea, 0x3b,
+ 0x08, 0xa6, 0xae, 0xd1, 0xa1, 0x7c, 0x9b, 0x20, 0xb8, 0x1e, 0x07, 0xf6, 0x59, 0x6a, 0xfc, 0x13,
+ 0x04, 0xcf, 0x5d, 0xa3, 0x71, 0xff, 0xf4, 0x88, 0x57, 0x86, 0xe7, 0x2c, 0x41, 0xbb, 0xd3, 0x23,
+ 0xf4, 0x4c, 0xf3, 0x42, 0x9d, 0x23, 0x7b, 0x09, 0x9f, 0x2a, 0x22, 0x61, 0xb4, 0xe7, 0x59, 0x0f,
+ 0x04, 0x8e, 0x3f, 0x21, 0x38, 0xd4, 0xfd, 0xb6, 0x86, 0xf3, 0x09, 0xb5, 0xef, 0xd3, 0x9b, 0x7e,
+ 0x6b, 0xdc, 0x28, 0x9b, 0x57, 0x6a, 0x5c, 0xe4, 0xc8, 0x5f, 0xc1, 0x2f, 0x17, 0x21, 0x97, 0x65,
+ 0xdf, 0xa8, 0xfe, 0x50, 0x7e, 0x3e, 0xe2, 0xef, 0xc0, 0x1c, 0xf6, 0x9f, 0x11, 0x3c, 0x2b, 0xf5,
+ 0x6e, 0xec, 0x90, 0x30, 0xbe, 0x4c, 0xd9, 0x19, 0x3a, 0x1a, 0x69, 0x3e, 0x63, 0x66, 0x0d, 0xd5,
+ 0x9e, 0x71, 0x85, 0xcf, 0xe5, 0x53, 0xf8, 0xb5, 0x7d, 0xcf, 0xc5, 0x62, 0x6a, 0x6c, 0x01, 0xfb,
+ 0x2d, 0x04, 0xf3, 0xd7, 0x68, 0x7c, 0x33, 0xad, 0xe2, 0x9e, 0x1c, 0xe9, 0x65, 0x48, 0x5f, 0xaa,
+ 0x29, 0xcf, 0xcf, 0xf2, 0xa7, 0x94, 0x22, 0x6b, 0x1c, 0xdc, 0x29, 0x7c, 0xb2, 0x08, 0x5c, 0x56,
+ 0x39, 0x7e, 0x17, 0xc1, 0x11, 0x15, 0x44, 0xf6, 0xa2, 0xf6, 0x89, 0xfd, 0xbd, 0x53, 0x89, 0xd7,
+ 0xae, 0x21, 0xe8, 0x1a, 0x1c, 0xdd, 0x19, 0xa3, 0x3f, 0x81, 0x5b, 0x3d, 0x28, 0xd6, 0xd1, 0xea,
+ 0x0a, 0xc2, 0xbf, 0x47, 0x30, 0x9b, 0x14, 0x63, 0x07, 0xfb, 0x28, 0xf7, 0x02, 0x34, 0xc9, 0x68,
+ 0x20, 0x56, 0x5b, 0x3f, 0xdb, 0xdf, 0xa1, 0xea, 0x78, 0x49, 0xd5, 0x1a, 0xf7, 0x72, 0x3e, 0x8c,
+ 0xbd, 0x8f, 0x00, 0xb2, 0x82, 0x32, 0x7e, 0xa9, 0x78, 0x1e, 0x4a, 0xd1, 0x59, 0x9f, 0x6c, 0x49,
+ 0xd9, 0xa8, 0xf1, 0xf9, 0xac, 0xe8, 0xcb, 0x85, 0x31, 0x24, 0xa0, 0xd6, 0x7a, 0x52, 0x7c, 0xfe,
+ 0x31, 0x82, 0x19, 0x5e, 0xc7, 0xc3, 0x27, 0x06, 0x61, 0x56, 0xcb, 0x7c, 0x93, 0x74, 0xfd, 0x8b,
+ 0x1c, 0xea, 0x72, 0xa3, 0x28, 0x10, 0xaf, 0xa3, 0x55, 0xdc, 0x81, 0xd9, 0xa4, 0x72, 0x36, 0x98,
+ 0x1e, 0xb9, 0xca, 0x9a, 0xbe, 0x5c, 0x70, 0x30, 0x48, 0x88, 0x2a, 0x72, 0xc0, 0xea, 0xb0, 0x1c,
+ 0x30, 0xcd, 0xc2, 0x34, 0x3e, 0x5e, 0x14, 0xc4, 0xff, 0x0f, 0x8e, 0x39, 0xcd, 0xd1, 0x9d, 0x34,
+ 0x96, 0x87, 0xe5, 0x01, 0xe6, 0x9d, 0xef, 0x21, 0x38, 0xd4, 0x7d, 0xb8, 0xc6, 0x47, 0xbb, 0x62,
+ 0xa6, 0x7a, 0xd7, 0xd0, 0xf3, 0x5e, 0x1c, 0x74, 0x30, 0x37, 0x3e, 0xcd, 0x51, 0xac, 0xe3, 0x0b,
+ 0x43, 0x77, 0xc6, 0x2d, 0x19, 0x75, 0x98, 0xa2, 0xb5, 0xec, 0x55, 0xeb, 0xd7, 0x08, 0xe6, 0xa5,
+ 0xde, 0x3b, 0x21, 0xa5, 0xc5, 0xb0, 0x26, 0xb7, 0x11, 0x98, 0x2d, 0xe3, 0x55, 0x0e, 0xff, 0x93,
+ 0xf8, 0xfc, 0x88, 0xf0, 0x25, 0xec, 0xb5, 0x98, 0x21, 0xfd, 0x03, 0x82, 0xc3, 0xf7, 0x12, 0xde,
+ 0x7f, 0x48, 0xf8, 0x37, 0x38, 0xfe, 0xd7, 0xf0, 0x2b, 0x05, 0xe7, 0xbc, 0x61, 0xd3, 0x38, 0x8b,
+ 0xf0, 0x2f, 0x11, 0x94, 0xe5, 0xab, 0x0a, 0x3e, 0x35, 0x70, 0x63, 0xe4, 0xdf, 0x5d, 0x26, 0x49,
+ 0x66, 0x71, 0xa8, 0x31, 0x4e, 0x14, 0xa6, 0x53, 0x61, 0x9f, 0x11, 0xfa, 0x1d, 0x04, 0x38, 0xbd,
+ 0x33, 0xa7, 0xb7, 0x68, 0xfc, 0x62, 0xce, 0xd4, 0xc0, 0xc2, 0x8c, 0x7e, 0x6a, 0x68, 0xbf, 0x7c,
+ 0x2a, 0x5d, 0x2d, 0x4c, 0xa5, 0x7e, 0x6a, 0xff, 0x9b, 0x08, 0xaa, 0xd7, 0x68, 0x7a, 0x07, 0x29,
+ 0xf0, 0x65, 0xfe, 0x51, 0x48, 0x5f, 0x19, 0xde, 0x51, 0x20, 0x3a, 0xc3, 0x11, 0xbd, 0x88, 0x8b,
+ 0x5d, 0x25, 0x01, 0xfc, 0x00, 0xc1, 0xc2, 0x6d, 0x95, 0xa2, 0xf8, 0xcc, 0x30, 0x4b, 0xb9, 0x48,
+ 0x3e, 0x3a, 0xae, 0x8f, 0x73, 0x5c, 0x6b, 0xc6, 0x48, 0xb8, 0xd6, 0xc5, 0xfb, 0xca, 0x0f, 0x51,
+ 0x72, 0x89, 0xed, 0xaa, 0x67, 0xff, 0xaf, 0x7e, 0x2b, 0x28, 0x8b, 0x1b, 0xe7, 0x39, 0xbe, 0x1a,
+ 0x3e, 0x33, 0x0a, 0xbe, 0xba, 0x28, 0x72, 0xe3, 0xef, 0x23, 0x38, 0xcc, 0xdf, 0x1a, 0x54, 0xc5,
+ 0x5d, 0x29, 0x66, 0xd0, 0xcb, 0xc4, 0x08, 0x29, 0x46, 0xc4, 0x1f, 0x63, 0x5f, 0xa0, 0xd6, 0xe5,
+ 0x3b, 0xc2, 0xb7, 0x10, 0x1c, 0x90, 0x49, 0x4d, 0xac, 0xee, 0xda, 0x30, 0xc7, 0xed, 0x37, 0x09,
+ 0x0a, 0xba, 0xad, 0x8e, 0x46, 0xb7, 0xf7, 0x10, 0xcc, 0x89, 0x6a, 0x7e, 0xc1, 0x51, 0x41, 0x29,
+ 0xf7, 0xeb, 0x5d, 0x35, 0x0e, 0x51, 0x0c, 0x36, 0xbe, 0xc8, 0xcd, 0xde, 0xc5, 0xf5, 0x22, 0xb3,
+ 0x81, 0x6f, 0x47, 0xf5, 0x87, 0xa2, 0x12, 0xfb, 0xa8, 0xee, 0xfa, 0xcd, 0xe8, 0x0d, 0x03, 0x17,
+ 0x26, 0x44, 0xd6, 0xe7, 0x2c, 0xc2, 0x31, 0x54, 0x18, 0x39, 0x78, 0xe1, 0x04, 0x2f, 0x77, 0x95,
+ 0x59, 0x7a, 0x6a, 0x2a, 0xba, 0xde, 0x53, 0x88, 0xc9, 0x32, 0xa0, 0xb8, 0xc6, 0xe2, 0x17, 0x0a,
+ 0xcd, 0x72, 0x43, 0x6f, 0x23, 0x38, 0xac, 0xb2, 0x3d, 0x31, 0x3f, 0x32, 0xd7, 0x8b, 0x50, 0x88,
+ 0x43, 0x35, 0x5e, 0x1d, 0x89, 0x48, 0x1c, 0xce, 0xa5, 0xab, 0x7f, 0x7c, 0x72, 0x0c, 0xfd, 0xe5,
+ 0xc9, 0x31, 0xf4, 0x8f, 0x27, 0xc7, 0xd0, 0x1b, 0x17, 0x46, 0xfb, 0x4f, 0xad, 0xe5, 0x3a, 0xd4,
+ 0x8b, 0x55, 0xf5, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x30, 0xc0, 0x40, 0x7a, 0x39, 0x2c, 0x00,
+ 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -2827,6 +2989,8 @@ type ApplicationServiceClient interface {
GetApplicationSyncWindows(ctx context.Context, in *ApplicationSyncWindowsQuery, opts ...grpc.CallOption) (*ApplicationSyncWindowsResponse, error)
// Get the meta-data (author, date, tags, message) for a specific revision of the application
RevisionMetadata(ctx context.Context, in *RevisionMetadataQuery, opts ...grpc.CallOption) (*v1alpha1.RevisionMetadata, error)
+ // Get the chart metadata (description, maintainers, home) for a specific revision of the application
+ RevisionChartDetails(ctx context.Context, in *RevisionMetadataQuery, opts ...grpc.CallOption) (*v1alpha1.ChartDetails, error)
// GetManifests returns application manifests
GetManifests(ctx context.Context, in *ApplicationManifestQuery, opts ...grpc.CallOption) (*apiclient.ManifestResponse, error)
// GetManifestsWithFiles returns application manifests using provided files to generate them
@@ -2963,6 +3127,15 @@ func (c *applicationServiceClient) RevisionMetadata(ctx context.Context, in *Rev
return out, nil
}
+func (c *applicationServiceClient) RevisionChartDetails(ctx context.Context, in *RevisionMetadataQuery, opts ...grpc.CallOption) (*v1alpha1.ChartDetails, error) {
+ out := new(v1alpha1.ChartDetails)
+ err := c.cc.Invoke(ctx, "/application.ApplicationService/RevisionChartDetails", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *applicationServiceClient) GetManifests(ctx context.Context, in *ApplicationManifestQuery, opts ...grpc.CallOption) (*apiclient.ManifestResponse, error) {
out := new(apiclient.ManifestResponse)
err := c.cc.Invoke(ctx, "/application.ApplicationService/GetManifests", in, out, opts...)
@@ -3230,6 +3403,8 @@ type ApplicationServiceServer interface {
GetApplicationSyncWindows(context.Context, *ApplicationSyncWindowsQuery) (*ApplicationSyncWindowsResponse, error)
// Get the meta-data (author, date, tags, message) for a specific revision of the application
RevisionMetadata(context.Context, *RevisionMetadataQuery) (*v1alpha1.RevisionMetadata, error)
+ // Get the chart metadata (description, maintainers, home) for a specific revision of the application
+ RevisionChartDetails(context.Context, *RevisionMetadataQuery) (*v1alpha1.ChartDetails, error)
// GetManifests returns application manifests
GetManifests(context.Context, *ApplicationManifestQuery) (*apiclient.ManifestResponse, error)
// GetManifestsWithFiles returns application manifests using provided files to generate them
@@ -3297,6 +3472,9 @@ func (*UnimplementedApplicationServiceServer) GetApplicationSyncWindows(ctx cont
func (*UnimplementedApplicationServiceServer) RevisionMetadata(ctx context.Context, req *RevisionMetadataQuery) (*v1alpha1.RevisionMetadata, error) {
return nil, status.Errorf(codes.Unimplemented, "method RevisionMetadata not implemented")
}
+func (*UnimplementedApplicationServiceServer) RevisionChartDetails(ctx context.Context, req *RevisionMetadataQuery) (*v1alpha1.ChartDetails, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RevisionChartDetails not implemented")
+}
func (*UnimplementedApplicationServiceServer) GetManifests(ctx context.Context, req *ApplicationManifestQuery) (*apiclient.ManifestResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetManifests not implemented")
}
@@ -3491,6 +3669,24 @@ func _ApplicationService_RevisionMetadata_Handler(srv interface{}, ctx context.C
return interceptor(ctx, in, info, handler)
}
+func _ApplicationService_RevisionChartDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RevisionMetadataQuery)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ApplicationServiceServer).RevisionChartDetails(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/application.ApplicationService/RevisionChartDetails",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ApplicationServiceServer).RevisionChartDetails(ctx, req.(*RevisionMetadataQuery))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _ApplicationService_GetManifests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ApplicationManifestQuery)
if err := dec(in); err != nil {
@@ -3893,6 +4089,10 @@ var _ApplicationService_serviceDesc = grpc.ServiceDesc{
MethodName: "RevisionMetadata",
Handler: _ApplicationService_RevisionMetadata_Handler,
},
+ {
+ MethodName: "RevisionChartDetails",
+ Handler: _ApplicationService_RevisionChartDetails_Handler,
+ },
{
MethodName: "GetManifests",
Handler: _ApplicationService_GetManifests_Handler,
@@ -4139,6 +4339,13 @@ func (m *RevisionMetadataQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x22
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4191,6 +4398,13 @@ func (m *ApplicationResourceEventsQuery) MarshalToSizedBuffer(dAtA []byte) (int,
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x32
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4255,6 +4469,13 @@ func (m *ApplicationManifestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x22
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4341,6 +4562,13 @@ func (m *ApplicationManifestQueryWithFiles) MarshalToSizedBuffer(dAtA []byte) (i
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x22
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4559,6 +4787,13 @@ func (m *ApplicationUpdateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x1a
+ }
if m.Validate != nil {
i--
if *m.Validate {
@@ -4610,6 +4845,13 @@ func (m *ApplicationDeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x2a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4706,6 +4948,13 @@ func (m *ApplicationSyncRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x6a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4849,6 +5098,13 @@ func (m *ApplicationUpdateSpecRequest) MarshalToSizedBuffer(dAtA []byte) (int, e
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x2a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4916,6 +5172,13 @@ func (m *ApplicationPatchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x32
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -4977,6 +5240,13 @@ func (m *ApplicationRollbackRequest) MarshalToSizedBuffer(dAtA []byte) (int, err
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x3a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5047,6 +5317,13 @@ func (m *ApplicationResourceRequest) MarshalToSizedBuffer(dAtA []byte) (int, err
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x42
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5131,6 +5408,13 @@ func (m *ApplicationResourcePatchRequest) MarshalToSizedBuffer(dAtA []byte) (int
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x52
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5233,6 +5517,13 @@ func (m *ApplicationResourceDeleteRequest) MarshalToSizedBuffer(dAtA []byte) (in
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x52
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5337,6 +5628,13 @@ func (m *ResourceActionRunRequest) MarshalToSizedBuffer(dAtA []byte) (int, error
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x4a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5507,6 +5805,15 @@ func (m *ApplicationPodLogsQuery) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x82
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5728,6 +6035,13 @@ func (m *OperationTerminateRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x1a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5771,6 +6085,13 @@ func (m *ApplicationSyncWindowsQuery) MarshalToSizedBuffer(dAtA []byte) (int, er
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x1a
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -5974,6 +6295,13 @@ func (m *ResourcesQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x42
+ }
if m.AppNamespace != nil {
i -= len(*m.AppNamespace)
copy(dAtA[i:], *m.AppNamespace)
@@ -6193,6 +6521,13 @@ func (m *ListAppLinksRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.Project != nil {
+ i -= len(*m.Project)
+ copy(dAtA[i:], *m.Project)
+ i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project)))
+ i--
+ dAtA[i] = 0x22
+ }
if m.Namespace != nil {
i -= len(*m.Namespace)
copy(dAtA[i:], *m.Namespace)
@@ -6309,6 +6644,10 @@ func (m *RevisionMetadataQuery) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6341,6 +6680,10 @@ func (m *ApplicationResourceEventsQuery) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6365,6 +6708,10 @@ func (m *ApplicationManifestQuery) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6405,6 +6752,10 @@ func (m *ApplicationManifestQueryWithFiles) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6497,6 +6848,10 @@ func (m *ApplicationUpdateRequest) Size() (n int) {
if m.Validate != nil {
n += 2
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6524,6 +6879,10 @@ func (m *ApplicationDeleteRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6602,6 +6961,10 @@ func (m *ApplicationSyncRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6629,6 +6992,10 @@ func (m *ApplicationUpdateSpecRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6657,6 +7024,10 @@ func (m *ApplicationPatchRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6686,6 +7057,10 @@ func (m *ApplicationRollbackRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6726,6 +7101,10 @@ func (m *ApplicationResourceRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6774,6 +7153,10 @@ func (m *ApplicationResourcePatchRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6820,6 +7203,10 @@ func (m *ApplicationResourceDeleteRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6864,6 +7251,10 @@ func (m *ResourceActionRunRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -6966,6 +7357,10 @@ func (m *ApplicationPodLogsQuery) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 2 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -7017,6 +7412,10 @@ func (m *OperationTerminateRequest) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -7037,6 +7436,10 @@ func (m *ApplicationSyncWindowsQuery) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -7143,6 +7546,10 @@ func (m *ResourcesQuery) Size() (n int) {
l = len(*m.AppNamespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -7227,6 +7634,10 @@ func (m *ListAppLinksRequest) Size() (n int) {
l = len(*m.Namespace)
n += 1 + l + sovApplication(uint64(l))
}
+ if m.Project != nil {
+ l = len(*m.Project)
+ n += 1 + l + sovApplication(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -7800,6 +8211,39 @@ func (m *RevisionMetadataQuery) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -8024,17 +8468,50 @@ func (m *ApplicationResourceEventsQuery) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipApplication(dAtA[iNdEx:])
- if err != nil {
- return err
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
}
- if (skippy < 0) || (iNdEx+skippy) < 0 {
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthApplication
}
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipApplication(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
@@ -8179,6 +8656,39 @@ func (m *ApplicationManifestQuery) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -8425,6 +8935,39 @@ func (m *ApplicationManifestQueryWithFiles) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -8847,6 +9390,39 @@ func (m *ApplicationUpdateRequest) Unmarshal(dAtA []byte) error {
}
b := bool(v != 0)
m.Validate = &b
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -9023,6 +9599,39 @@ func (m *ApplicationDeleteRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -9511,6 +10120,39 @@ func (m *ApplicationSyncRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -9691,6 +10333,39 @@ func (m *ApplicationUpdateSpecRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -9884,6 +10559,39 @@ func (m *ApplicationPatchRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -10075,6 +10783,39 @@ func (m *ApplicationRollbackRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -10366,7 +11107,40 @@ func (m *ApplicationResourceRequest) Unmarshal(dAtA []byte) error {
return io.ErrUnexpectedEOF
}
s := string(dAtA[iNdEx:postIndex])
- m.AppNamespace = &s
+ m.AppNamespace = &s
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
iNdEx = postIndex
default:
iNdEx = preIndex
@@ -10735,6 +11509,39 @@ func (m *ApplicationResourcePatchRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -11082,6 +11889,39 @@ func (m *ApplicationResourceDeleteRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -11415,6 +12255,39 @@ func (m *ResourceActionRunRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -12105,6 +12978,39 @@ func (m *ApplicationPodLogsQuery) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 16:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -12455,6 +13361,39 @@ func (m *OperationTerminateRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -12577,6 +13516,39 @@ func (m *ApplicationSyncWindowsQuery) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -13248,6 +14220,39 @@ func (m *ResourcesQuery) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.AppNamespace = &s
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
@@ -13732,6 +14737,39 @@ func (m *ListAppLinksRequest) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.Namespace = &s
iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowApplication
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthApplication
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApplication
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.Project = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApplication(dAtA[iNdEx:])
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.gw.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.gw.go
index 80c86e4fc9..ed6064cadb 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.gw.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/application/application.pb.gw.go
@@ -459,6 +459,100 @@ func local_request_ApplicationService_RevisionMetadata_0(ctx context.Context, ma
}
+var (
+ filter_ApplicationService_RevisionChartDetails_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0, "revision": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+)
+
+func request_ApplicationService_RevisionChartDetails_0(ctx context.Context, marshaler runtime.Marshaler, client ApplicationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq RevisionMetadataQuery
+ var metadata runtime.ServerMetadata
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["name"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
+ }
+
+ protoReq.Name, err = runtime.StringP(val)
+
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
+ }
+
+ val, ok = pathParams["revision"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "revision")
+ }
+
+ protoReq.Revision, err = runtime.StringP(val)
+
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "revision", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApplicationService_RevisionChartDetails_0); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.RevisionChartDetails(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_ApplicationService_RevisionChartDetails_0(ctx context.Context, marshaler runtime.Marshaler, server ApplicationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq RevisionMetadataQuery
+ var metadata runtime.ServerMetadata
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["name"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
+ }
+
+ protoReq.Name, err = runtime.StringP(val)
+
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
+ }
+
+ val, ok = pathParams["revision"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "revision")
+ }
+
+ protoReq.Revision, err = runtime.StringP(val)
+
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "revision", err)
+ }
+
+ if err := req.ParseForm(); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+ if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApplicationService_RevisionChartDetails_0); err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.RevisionChartDetails(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
var (
filter_ApplicationService_GetManifests_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
)
@@ -2085,6 +2179,29 @@ func RegisterApplicationServiceHandlerServer(ctx context.Context, mux *runtime.S
})
+ mux.Handle("GET", pattern_ApplicationService_RevisionChartDetails_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_ApplicationService_RevisionChartDetails_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_ApplicationService_RevisionChartDetails_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("GET", pattern_ApplicationService_GetManifests_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -2685,6 +2802,26 @@ func RegisterApplicationServiceHandlerClient(ctx context.Context, mux *runtime.S
})
+ mux.Handle("GET", pattern_ApplicationService_RevisionChartDetails_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_ApplicationService_RevisionChartDetails_0(rctx, inboundMarshaler, client, req, pathParams)
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_ApplicationService_RevisionChartDetails_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("GET", pattern_ApplicationService_GetManifests_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -3123,6 +3260,8 @@ var (
pattern_ApplicationService_RevisionMetadata_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"api", "v1", "applications", "name", "revisions", "revision", "metadata"}, "", runtime.AssumeColonVerbOpt(true)))
+ pattern_ApplicationService_RevisionChartDetails_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"api", "v1", "applications", "name", "revisions", "revision", "chartdetails"}, "", runtime.AssumeColonVerbOpt(true)))
+
pattern_ApplicationService_GetManifests_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "applications", "name", "manifests"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_ApplicationService_GetManifestsWithFiles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "applications", "manifestsWithFiles"}, "", runtime.AssumeColonVerbOpt(true)))
@@ -3181,6 +3320,8 @@ var (
forward_ApplicationService_RevisionMetadata_0 = runtime.ForwardResponseMessage
+ forward_ApplicationService_RevisionChartDetails_0 = runtime.ForwardResponseMessage
+
forward_ApplicationService_GetManifests_0 = runtime.ForwardResponseMessage
forward_ApplicationService_GetManifestsWithFiles_0 = runtime.ForwardResponseMessage
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/version/version.pb.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/version/version.pb.go
index 35474d6312..0b58bf4a6c 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/version/version.pb.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apiclient/version/version.pb.go
@@ -46,6 +46,7 @@ type VersionMessage struct {
HelmVersion string `protobuf:"bytes,11,opt,name=HelmVersion,proto3" json:"HelmVersion,omitempty"`
KubectlVersion string `protobuf:"bytes,12,opt,name=KubectlVersion,proto3" json:"KubectlVersion,omitempty"`
JsonnetVersion string `protobuf:"bytes,13,opt,name=JsonnetVersion,proto3" json:"JsonnetVersion,omitempty"`
+ ExtraBuildInfo string `protobuf:"bytes,14,opt,name=ExtraBuildInfo,proto3" json:"ExtraBuildInfo,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -168,6 +169,13 @@ func (m *VersionMessage) GetJsonnetVersion() string {
return ""
}
+func (m *VersionMessage) GetExtraBuildInfo() string {
+ if m != nil {
+ return m.ExtraBuildInfo
+ }
+ return ""
+}
+
func init() {
proto.RegisterType((*VersionMessage)(nil), "version.VersionMessage")
}
@@ -175,32 +183,33 @@ func init() {
func init() { proto.RegisterFile("server/version/version.proto", fileDescriptor_8be80977d07a4107) }
var fileDescriptor_8be80977d07a4107 = []byte{
- // 399 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0xdf, 0x6a, 0xdb, 0x30,
- 0x18, 0xc5, 0x71, 0xb2, 0xe5, 0x8f, 0x92, 0x85, 0x21, 0x46, 0x66, 0xbc, 0x10, 0x42, 0x2e, 0xc6,
- 0x18, 0xcc, 0x86, 0x6c, 0x4f, 0x90, 0x6c, 0x64, 0x2c, 0x0c, 0xc2, 0x32, 0x7a, 0xd1, 0x3b, 0xd9,
- 0xf9, 0xe2, 0xaa, 0xb5, 0xfc, 0x19, 0x59, 0x36, 0xb4, 0x97, 0x7d, 0x85, 0x42, 0x9f, 0xa9, 0x97,
- 0x85, 0xbe, 0x40, 0x09, 0x7d, 0x90, 0x62, 0xd9, 0x72, 0x9b, 0xf6, 0xca, 0x3a, 0xe7, 0xfc, 0x7c,
- 0x10, 0x1c, 0x91, 0x51, 0x0a, 0x32, 0x07, 0xe9, 0xe5, 0x20, 0x53, 0x8e, 0xb1, 0xf9, 0xba, 0x89,
- 0x44, 0x85, 0xb4, 0x5d, 0x49, 0x67, 0x14, 0x22, 0x86, 0x11, 0x78, 0x2c, 0xe1, 0x1e, 0x8b, 0x63,
- 0x54, 0x4c, 0x71, 0x8c, 0xd3, 0x12, 0x73, 0x3e, 0x55, 0xa9, 0x56, 0x7e, 0xb6, 0xf3, 0x40, 0x24,
- 0xea, 0xbc, 0x0c, 0xa7, 0xd7, 0x4d, 0x32, 0x38, 0x2a, 0x6b, 0xfe, 0x42, 0x9a, 0xb2, 0x10, 0xa8,
- 0x4d, 0xda, 0x95, 0x63, 0x5b, 0x13, 0xeb, 0x4b, 0xf7, 0x9f, 0x91, 0x74, 0x44, 0xba, 0xf3, 0x8c,
- 0x47, 0xdb, 0x9f, 0x4c, 0x81, 0xdd, 0xd0, 0xd9, 0x93, 0x51, 0xa4, 0x4b, 0xae, 0x16, 0x28, 0x04,
- 0x57, 0x76, 0xb3, 0x4c, 0x6b, 0x83, 0x0e, 0x49, 0x6b, 0xc9, 0xd5, 0x7f, 0x16, 0xda, 0x6f, 0x74,
- 0x54, 0x29, 0x3a, 0x25, 0xfd, 0xe2, 0x24, 0x01, 0x36, 0xaa, 0xa8, 0x7d, 0xab, 0xd3, 0x03, 0x4f,
- 0x37, 0xa3, 0xb9, 0x53, 0xab, 0x6a, 0x36, 0x06, 0x75, 0x48, 0x67, 0x81, 0x22, 0xe1, 0x11, 0x48,
- 0xbb, 0xad, 0xc3, 0x5a, 0x17, 0xd9, 0x3a, 0x62, 0x6a, 0x87, 0x52, 0xd8, 0x9d, 0x32, 0x33, 0x9a,
- 0x7e, 0x25, 0xef, 0x57, 0x59, 0xaa, 0x50, 0xf0, 0x0b, 0x30, 0xe5, 0x44, 0x33, 0xaf, 0x7c, 0x3a,
- 0x21, 0xbd, 0xdf, 0x10, 0x09, 0x83, 0xf5, 0x34, 0xf6, 0xdc, 0xa2, 0x9f, 0xc9, 0x60, 0x95, 0xf9,
- 0x10, 0xa8, 0xc8, 0x40, 0x7d, 0x0d, 0xbd, 0x70, 0x0b, 0xee, 0x4f, 0x8a, 0x71, 0x0c, 0xca, 0x70,
- 0xef, 0x4a, 0xee, 0xd0, 0x9d, 0xf9, 0xf5, 0x2e, 0x1b, 0x90, 0x39, 0x0f, 0x80, 0xae, 0xeb, 0x5d,
- 0xe8, 0xd0, 0x2d, 0x37, 0x75, 0xcd, 0xa6, 0xee, 0xaf, 0x62, 0x53, 0xe7, 0xa3, 0x6b, 0x5e, 0xc8,
- 0xe1, 0xa6, 0xd3, 0x0f, 0x97, 0x77, 0x0f, 0x57, 0x8d, 0x01, 0xed, 0xeb, 0x37, 0x52, 0x41, 0xf3,
- 0xf9, 0xcd, 0x7e, 0x6c, 0xdd, 0xee, 0xc7, 0xd6, 0xfd, 0x7e, 0x6c, 0x1d, 0xff, 0x08, 0xb9, 0x3a,
- 0xc9, 0x7c, 0x37, 0x40, 0xe1, 0x31, 0x19, 0x62, 0x22, 0xf1, 0x54, 0x1f, 0xbe, 0x05, 0x5b, 0x2f,
- 0x9f, 0x79, 0xc9, 0x59, 0x58, 0xfc, 0x1d, 0x44, 0x1c, 0x62, 0x65, 0x3a, 0xfc, 0x96, 0xbe, 0xc2,
- 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x97, 0xec, 0x06, 0xab, 0x02, 0x00, 0x00,
+ // 415 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0xd1, 0x6a, 0x14, 0x31,
+ 0x18, 0x85, 0x99, 0x56, 0x77, 0xdb, 0x74, 0x5d, 0x24, 0x48, 0x0d, 0xeb, 0xb2, 0x94, 0xbd, 0x10,
+ 0x11, 0x9c, 0x81, 0xea, 0x13, 0x6c, 0x2d, 0x55, 0x8b, 0x50, 0xac, 0x78, 0xe1, 0x5d, 0x66, 0xfa,
+ 0xef, 0x18, 0x9d, 0xe4, 0x1f, 0x32, 0xff, 0x2c, 0xea, 0xa5, 0xaf, 0xe0, 0xfb, 0x78, 0xed, 0xa5,
+ 0xe0, 0x0b, 0xc8, 0xe2, 0x83, 0x48, 0x92, 0xc9, 0xe8, 0xd8, 0xab, 0xcd, 0x39, 0xe7, 0xdb, 0x43,
+ 0x98, 0x13, 0x36, 0x6f, 0xc0, 0x6e, 0xc0, 0x66, 0x1b, 0xb0, 0x8d, 0x42, 0x13, 0x7f, 0xd3, 0xda,
+ 0x22, 0x21, 0x1f, 0x77, 0x72, 0x36, 0x2f, 0x11, 0xcb, 0x0a, 0x32, 0x59, 0xab, 0x4c, 0x1a, 0x83,
+ 0x24, 0x49, 0xa1, 0x69, 0x02, 0x36, 0xbb, 0xd7, 0xa5, 0x5e, 0xe5, 0xed, 0x3a, 0x03, 0x5d, 0xd3,
+ 0xa7, 0x10, 0x2e, 0xbf, 0xed, 0xb2, 0xe9, 0x9b, 0x50, 0xf3, 0x12, 0x9a, 0x46, 0x96, 0xc0, 0x05,
+ 0x1b, 0x77, 0x8e, 0x48, 0x8e, 0x92, 0x07, 0xfb, 0xaf, 0xa2, 0xe4, 0x73, 0xb6, 0xbf, 0x6a, 0x55,
+ 0x75, 0xf5, 0x54, 0x12, 0x88, 0x1d, 0x9f, 0xfd, 0x35, 0x5c, 0x7a, 0xa6, 0xe8, 0x04, 0xb5, 0x56,
+ 0x24, 0x76, 0x43, 0xda, 0x1b, 0xfc, 0x90, 0x8d, 0xce, 0x14, 0xbd, 0x96, 0xa5, 0xb8, 0xe1, 0xa3,
+ 0x4e, 0xf1, 0x25, 0x9b, 0xb8, 0x93, 0x05, 0xb8, 0x24, 0x57, 0x7b, 0xd3, 0xa7, 0x03, 0xcf, 0x37,
+ 0x63, 0xbc, 0xd3, 0xa8, 0x6b, 0x8e, 0x06, 0x9f, 0xb1, 0xbd, 0x13, 0xd4, 0xb5, 0xaa, 0xc0, 0x8a,
+ 0xb1, 0x0f, 0x7b, 0xed, 0xb2, 0x8b, 0x4a, 0xd2, 0x1a, 0xad, 0x16, 0x7b, 0x21, 0x8b, 0x9a, 0x3f,
+ 0x64, 0xb7, 0xcf, 0xdb, 0x86, 0x50, 0xab, 0xcf, 0x10, 0xcb, 0x99, 0x67, 0xae, 0xf9, 0xfc, 0x88,
+ 0x1d, 0x3c, 0x83, 0x4a, 0x47, 0xec, 0xc0, 0x63, 0xff, 0x5a, 0xfc, 0x3e, 0x9b, 0x9e, 0xb7, 0x39,
+ 0x14, 0x54, 0x45, 0x68, 0xe2, 0xa1, 0xff, 0x5c, 0xc7, 0xbd, 0x68, 0xd0, 0x18, 0xa0, 0xc8, 0xdd,
+ 0x0a, 0xdc, 0xd0, 0x75, 0xdc, 0xe9, 0x47, 0xb2, 0xd2, 0x7f, 0xdf, 0xe7, 0x66, 0x8d, 0x62, 0x1a,
+ 0xb8, 0xa1, 0x7b, 0x9c, 0xf7, 0xfb, 0x5d, 0x82, 0xdd, 0xa8, 0x02, 0xf8, 0x45, 0xbf, 0x1f, 0x3f,
+ 0x4c, 0xc3, 0xf6, 0x69, 0xdc, 0x3e, 0x3d, 0x75, 0xdb, 0xcf, 0xee, 0xa6, 0xf1, 0x25, 0x0d, 0xb7,
+ 0x5f, 0xde, 0xf9, 0xf2, 0xf3, 0xf7, 0xd7, 0x9d, 0x29, 0x9f, 0xf8, 0xb7, 0xd4, 0x41, 0xab, 0xd5,
+ 0xf7, 0xed, 0x22, 0xf9, 0xb1, 0x5d, 0x24, 0xbf, 0xb6, 0x8b, 0xe4, 0xed, 0x93, 0x52, 0xd1, 0xbb,
+ 0x36, 0x4f, 0x0b, 0xd4, 0x99, 0xb4, 0x25, 0xd6, 0x16, 0xdf, 0xfb, 0xc3, 0xa3, 0xe2, 0x2a, 0xdb,
+ 0x1c, 0x67, 0xf5, 0x87, 0xd2, 0xfd, 0xbb, 0xa8, 0x14, 0x18, 0x8a, 0x1d, 0xf9, 0xc8, 0x5f, 0xe1,
+ 0xf1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x21, 0xc0, 0xd1, 0xd3, 0x02, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -309,6 +318,13 @@ func (m *VersionMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if len(m.ExtraBuildInfo) > 0 {
+ i -= len(m.ExtraBuildInfo)
+ copy(dAtA[i:], m.ExtraBuildInfo)
+ i = encodeVarintVersion(dAtA, i, uint64(len(m.ExtraBuildInfo)))
+ i--
+ dAtA[i] = 0x72
+ }
if len(m.JsonnetVersion) > 0 {
i -= len(m.JsonnetVersion)
copy(dAtA[i:], m.JsonnetVersion)
@@ -461,6 +477,10 @@ func (m *VersionMessage) Size() (n int) {
if l > 0 {
n += 1 + l + sovVersion(uint64(l))
}
+ l = len(m.ExtraBuildInfo)
+ if l > 0 {
+ n += 1 + l + sovVersion(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -886,6 +906,38 @@ func (m *VersionMessage) Unmarshal(dAtA []byte) error {
}
m.JsonnetVersion = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 14:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExtraBuildInfo", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVersion
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthVersion
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVersion
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ExtraBuildInfo = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipVersion(dAtA[iNdEx:])
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/applicationset_types.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/applicationset_types.go
index 508fc226fe..19edd05646 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/applicationset_types.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/applicationset_types.go
@@ -22,6 +22,7 @@ import (
"sort"
"github.com/argoproj/argo-cd/v2/common"
+ "github.com/argoproj/argo-cd/v2/util/security"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -48,17 +49,25 @@ type ApplicationSet struct {
}
// RBACName formats fully qualified application name for RBAC check.
-func (a *ApplicationSet) RBACName() string {
- return fmt.Sprintf("%s/%s", a.Spec.Template.Spec.GetProject(), a.ObjectMeta.Name)
+func (a *ApplicationSet) RBACName(defaultNS string) string {
+ return security.RBACName(defaultNS, a.Spec.Template.Spec.GetProject(), a.Namespace, a.Name)
}
// ApplicationSetSpec represents a class of application set state.
type ApplicationSetSpec struct {
- GoTemplate bool `json:"goTemplate,omitempty" protobuf:"bytes,1,name=goTemplate"`
- Generators []ApplicationSetGenerator `json:"generators" protobuf:"bytes,2,name=generators"`
- Template ApplicationSetTemplate `json:"template" protobuf:"bytes,3,name=template"`
- SyncPolicy *ApplicationSetSyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"`
- Strategy *ApplicationSetStrategy `json:"strategy,omitempty" protobuf:"bytes,5,opt,name=strategy"`
+ GoTemplate bool `json:"goTemplate,omitempty" protobuf:"bytes,1,name=goTemplate"`
+ Generators []ApplicationSetGenerator `json:"generators" protobuf:"bytes,2,name=generators"`
+ Template ApplicationSetTemplate `json:"template" protobuf:"bytes,3,name=template"`
+ SyncPolicy *ApplicationSetSyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"`
+ Strategy *ApplicationSetStrategy `json:"strategy,omitempty" protobuf:"bytes,5,opt,name=strategy"`
+ PreservedFields *ApplicationPreservedFields `json:"preservedFields,omitempty" protobuf:"bytes,6,opt,name=preservedFields"`
+ GoTemplateOptions []string `json:"goTemplateOptions,omitempty" protobuf:"bytes,7,opt,name=goTemplateOptions"`
+ // ApplyNestedSelectors enables selectors defined within the generators of two level-nested matrix or merge generators
+ ApplyNestedSelectors bool `json:"applyNestedSelectors,omitempty" protobuf:"bytes,8,name=applyNestedSelectors"`
+}
+
+type ApplicationPreservedFields struct {
+ Annotations []string `json:"annotations,omitempty" protobuf:"bytes,1,name=annotations"`
}
// ApplicationSetStrategy configures how generated Applications are updated in sequence.
@@ -82,11 +91,39 @@ type ApplicationMatchExpression struct {
Values []string `json:"values,omitempty" protobuf:"bytes,3,opt,name=values"`
}
+// ApplicationsSyncPolicy representation
+// "create-only" means applications are only created. If the generator's result contains update, applications won't be updated
+// "create-update" means applications are only created/Updated. If the generator's result contains update, applications will be updated, but not deleted
+// "create-delete" means applications are only created/deleted. If the generator's result contains update, applications won't be updated, if it results in deleted applications, the applications will be deleted
+// "sync" means create/update/deleted. If the generator's result contains update, applications will be updated, if it results in deleted applications, the applications will be deleted
+// If no ApplicationsSyncPolicy is defined, it defaults it to sync
+type ApplicationsSyncPolicy string
+
+// sync / create-only / create-update / create-delete
+const (
+ ApplicationsSyncPolicyCreateOnly ApplicationsSyncPolicy = "create-only"
+ ApplicationsSyncPolicyCreateUpdate ApplicationsSyncPolicy = "create-update"
+ ApplicationsSyncPolicyCreateDelete ApplicationsSyncPolicy = "create-delete"
+ ApplicationsSyncPolicySync ApplicationsSyncPolicy = "sync"
+)
+
+func (s ApplicationsSyncPolicy) AllowUpdate() bool {
+ return s == ApplicationsSyncPolicyCreateUpdate || s == ApplicationsSyncPolicySync
+}
+
+func (s ApplicationsSyncPolicy) AllowDelete() bool {
+ return s == ApplicationsSyncPolicySync || s == ApplicationsSyncPolicyCreateDelete
+}
+
// ApplicationSetSyncPolicy configures how generated Applications will relate to their
// ApplicationSet.
type ApplicationSetSyncPolicy struct {
// PreserveResourcesOnDeletion will preserve resources on deletion. If PreserveResourcesOnDeletion is set to true, these Applications will not be deleted.
PreserveResourcesOnDeletion bool `json:"preserveResourcesOnDeletion,omitempty" protobuf:"bytes,1,name=syncPolicy"`
+ // ApplicationsSync represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, sync
+ // +kubebuilder:validation:Optional
+ // +kubebuilder:validation:Enum=create-only;create-update;create-delete;sync
+ ApplicationsSync *ApplicationsSyncPolicy `json:"applicationsSync,omitempty" protobuf:"bytes,2,opt,name=applicationsSync,casttype=ApplicationsSyncPolicy"`
}
// ApplicationSetTemplate represents argocd ApplicationSpec
@@ -118,6 +155,8 @@ type ApplicationSetGenerator struct {
// Selector allows to post-filter all generator.
Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,9,name=selector"`
+
+ Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,10,name=plugin"`
}
// ApplicationSetNestedGenerator represents a generator nested within a combination-type generator (MatrixGenerator or
@@ -138,6 +177,8 @@ type ApplicationSetNestedGenerator struct {
// Selector allows to post-filter all generator.
Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,9,name=selector"`
+
+ Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,10,name=plugin"`
}
type ApplicationSetNestedGenerators []ApplicationSetNestedGenerator
@@ -153,6 +194,10 @@ type ApplicationSetTerminalGenerator struct {
SCMProvider *SCMProviderGenerator `json:"scmProvider,omitempty" protobuf:"bytes,4,name=scmProvider"`
ClusterDecisionResource *DuckTypeGenerator `json:"clusterDecisionResource,omitempty" protobuf:"bytes,5,name=clusterDecisionResource"`
PullRequest *PullRequestGenerator `json:"pullRequest,omitempty" protobuf:"bytes,6,name=pullRequest"`
+ Plugin *PluginGenerator `json:"plugin,omitempty" protobuf:"bytes,7,name=pullRequest"`
+
+ // Selector allows to post-filter all generator.
+ Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,8,name=selector"`
}
type ApplicationSetTerminalGenerators []ApplicationSetTerminalGenerator
@@ -170,6 +215,8 @@ func (g ApplicationSetTerminalGenerators) toApplicationSetNestedGenerators() []A
SCMProvider: terminalGenerator.SCMProvider,
ClusterDecisionResource: terminalGenerator.ClusterDecisionResource,
PullRequest: terminalGenerator.PullRequest,
+ Plugin: terminalGenerator.Plugin,
+ Selector: terminalGenerator.Selector,
}
}
return nestedGenerators
@@ -177,8 +224,9 @@ func (g ApplicationSetTerminalGenerators) toApplicationSetNestedGenerators() []A
// ListGenerator include items info
type ListGenerator struct {
- Elements []apiextensionsv1.JSON `json:"elements" protobuf:"bytes,1,name=elements"`
- Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"`
+ Elements []apiextensionsv1.JSON `json:"elements" protobuf:"bytes,1,name=elements"`
+ Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"`
+ ElementsYaml string `json:"elementsYaml,omitempty" protobuf:"bytes,3,opt,name=elementsYaml"`
}
// MatrixGenerator generates the cartesian product of two sets of parameters. The parameters are defined by two nested
@@ -314,6 +362,9 @@ type GitGenerator struct {
RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,5,name=requeueAfterSeconds"`
Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,6,name=template"`
PathParamPrefix string `json:"pathParamPrefix,omitempty" protobuf:"bytes,7,name=pathParamPrefix"`
+
+ // Values contains key/value pairs which are passed directly as parameters to the template
+ Values map[string]string `json:"values,omitempty" protobuf:"bytes,8,name=values"`
}
type GitDirectoryGeneratorItem struct {
@@ -342,6 +393,10 @@ type SCMProviderGenerator struct {
// Standard parameters.
RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,9,opt,name=requeueAfterSeconds"`
Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,10,opt,name=template"`
+
+ // Values contains key/value pairs which are passed directly as parameters to the template
+ Values map[string]string `json:"values,omitempty" protobuf:"bytes,11,name=values"`
+ AWSCodeCommit *SCMProviderGeneratorAWSCodeCommit `json:"awsCodeCommit,omitempty" protobuf:"bytes,12,opt,name=awsCodeCommit"`
}
// SCMProviderGeneratorGitea defines a connection info specific to Gitea.
@@ -384,6 +439,8 @@ type SCMProviderGeneratorGitlab struct {
TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,4,opt,name=tokenRef"`
// Scan all branches instead of just the default branch.
AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,5,opt,name=allBranches"`
+ // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false
+ Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"`
}
// SCMProviderGeneratorBitbucket defines connection info specific to Bitbucket Cloud (API version 2).
@@ -424,6 +481,25 @@ type SCMProviderGeneratorAzureDevOps struct {
AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,9,opt,name=allBranches"`
}
+type TagFilter struct {
+ Key string `json:"key" protobuf:"bytes,1,opt,name=key"`
+ Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
+}
+
+// SCMProviderGeneratorAWSCodeCommit defines connection info specific to AWS CodeCommit.
+type SCMProviderGeneratorAWSCodeCommit struct {
+ // TagFilters provides the tag filter(s) for repo discovery
+ TagFilters []*TagFilter `json:"tagFilters,omitempty" protobuf:"bytes,1,opt,name=tagFilters"`
+ // Role provides the AWS IAM role to assume, for cross-account repo discovery
+ // if not provided, AppSet controller will use its pod/node identity to discover.
+ Role string `json:"role,omitempty" protobuf:"bytes,2,opt,name=role"`
+ // Region provides the AWS region to discover repos.
+ // if not provided, AppSet controller will infer the current region from environment.
+ Region string `json:"region,omitempty" protobuf:"bytes,3,opt,name=region"`
+ // Scan all branches instead of just the default branch.
+ AllBranches bool `json:"allBranches,omitempty" protobuf:"varint,4,opt,name=allBranches"`
+}
+
// SCMProviderGeneratorFilter is a single repository filter.
// If multiple filter types are set on a single struct, they will be AND'd together. All filters must
// pass for a repo to be included.
@@ -450,11 +526,14 @@ type PullRequestGenerator struct {
// Filters for which pull requests should be considered.
Filters []PullRequestGeneratorFilter `json:"filters,omitempty" protobuf:"bytes,5,rep,name=filters"`
// Standard parameters.
- RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,6,opt,name=requeueAfterSeconds"`
- Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,7,opt,name=template"`
+ RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,6,opt,name=requeueAfterSeconds"`
+ Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,7,opt,name=template"`
+ Bitbucket *PullRequestGeneratorBitbucket `json:"bitbucket,omitempty" protobuf:"bytes,8,opt,name=bitbucket"`
+ // Additional provider to use and config for it.
+ AzureDevOps *PullRequestGeneratorAzureDevOps `json:"azuredevops,omitempty" protobuf:"bytes,9,opt,name=azuredevops"`
}
-// PullRequestGenerator defines connection info specific to Gitea.
+// PullRequestGeneratorGitea defines connection info specific to Gitea.
type PullRequestGeneratorGitea struct {
// Gitea org or user to scan. Required.
Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"`
@@ -468,6 +547,22 @@ type PullRequestGeneratorGitea struct {
Insecure bool `json:"insecure,omitempty" protobuf:"varint,5,opt,name=insecure"`
}
+// PullRequestGeneratorAzureDevOps defines connection info specific to AzureDevOps.
+type PullRequestGeneratorAzureDevOps struct {
+ // Azure DevOps org to scan. Required.
+ Organization string `json:"organization" protobuf:"bytes,1,opt,name=organization"`
+ // Azure DevOps project name to scan. Required.
+ Project string `json:"project" protobuf:"bytes,2,opt,name=project"`
+ // Azure DevOps repo name to scan. Required.
+ Repo string `json:"repo" protobuf:"bytes,3,opt,name=repo"`
+ // The Azure DevOps API URL to talk to. If blank, use https://dev.azure.com/.
+ API string `json:"api,omitempty" protobuf:"bytes,4,opt,name=api"`
+ // Authentication token reference.
+ TokenRef *SecretRef `json:"tokenRef,omitempty" protobuf:"bytes,5,opt,name=tokenRef"`
+ // Labels is used to filter the PRs that you want to target
+ Labels []string `json:"labels,omitempty" protobuf:"bytes,6,rep,name=labels"`
+}
+
// PullRequestGenerator defines connection info specific to GitHub.
type PullRequestGeneratorGithub struct {
// GitHub org or user to scan. Required.
@@ -496,9 +591,11 @@ type PullRequestGeneratorGitLab struct {
Labels []string `json:"labels,omitempty" protobuf:"bytes,4,rep,name=labels"`
// PullRequestState is an additional MRs filter to get only those with a certain state. Default: "" (all states)
PullRequestState string `json:"pullRequestState,omitempty" protobuf:"bytes,5,rep,name=pullRequestState"`
+ // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false
+ Insecure bool `json:"insecure,omitempty" protobuf:"varint,6,opt,name=insecure"`
}
-// PullRequestGenerator defines connection info specific to BitbucketServer.
+// PullRequestGeneratorBitbucketServer defines connection info specific to BitbucketServer.
type PullRequestGeneratorBitbucketServer struct {
// Project to scan. Required.
Project string `json:"project" protobuf:"bytes,1,opt,name=project"`
@@ -510,6 +607,26 @@ type PullRequestGeneratorBitbucketServer struct {
BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,4,opt,name=basicAuth"`
}
+// PullRequestGeneratorBitbucket defines connection info specific to Bitbucket.
+type PullRequestGeneratorBitbucket struct {
+ // Workspace to scan. Required.
+ Owner string `json:"owner" protobuf:"bytes,1,opt,name=owner"`
+ // Repo name to scan. Required.
+ Repo string `json:"repo" protobuf:"bytes,2,opt,name=repo"`
+ // The Bitbucket REST API URL to talk to. If blank, uses https://api.bitbucket.org/2.0.
+ API string `json:"api,omitempty" protobuf:"bytes,3,opt,name=api"`
+ // Credentials for Basic auth
+ BasicAuth *BasicAuthBitbucketServer `json:"basicAuth,omitempty" protobuf:"bytes,4,opt,name=basicAuth"`
+ // Credentials for AppToken (Bearer auth)
+ BearerToken *BearerTokenBitbucketCloud `json:"bearerToken,omitempty" protobuf:"bytes,5,opt,name=bearerToken"`
+}
+
+// BearerTokenBitbucketCloud defines the Bearer token for BitBucket AppToken auth.
+type BearerTokenBitbucketCloud struct {
+ // Password (or personal access token) reference.
+ TokenRef *SecretRef `json:"tokenRef" protobuf:"bytes,1,opt,name=tokenRef"`
+}
+
// BasicAuthBitbucketServer defines the username/(password or personal access token) for Basic auth.
type BasicAuthBitbucketServer struct {
// Username for Basic auth
@@ -522,7 +639,34 @@ type BasicAuthBitbucketServer struct {
// If multiple filter types are set on a single struct, they will be AND'd together. All filters must
// pass for a pull request to be included.
type PullRequestGeneratorFilter struct {
- BranchMatch *string `json:"branchMatch,omitempty" protobuf:"bytes,1,opt,name=branchMatch"`
+ BranchMatch *string `json:"branchMatch,omitempty" protobuf:"bytes,1,opt,name=branchMatch"`
+ TargetBranchMatch *string `json:"targetBranchMatch,omitempty" protobuf:"bytes,2,opt,name=targetBranchMatch"`
+}
+
+type PluginConfigMapRef struct {
+ // Name of the ConfigMap
+ Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
+}
+
+type PluginParameters map[string]apiextensionsv1.JSON
+
+type PluginInput struct {
+ // Parameters contains the information to pass to the plugin. It is a map. The keys must be strings, and the
+ // values can be any type.
+ Parameters PluginParameters `json:"parameters,omitempty" protobuf:"bytes,1,name=parameters"`
+}
+
+// PluginGenerator defines connection info specific to Plugin.
+type PluginGenerator struct {
+ ConfigMapRef PluginConfigMapRef `json:"configMapRef" protobuf:"bytes,1,name=configMapRef"`
+ Input PluginInput `json:"input,omitempty" protobuf:"bytes,2,name=input"`
+ // RequeueAfterSeconds determines how long the ApplicationSet controller will wait before reconciling the ApplicationSet again.
+ RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,3,opt,name=requeueAfterSeconds"`
+ Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,4,name=template"`
+
+ // Values contains key/value pairs which are passed directly as parameters to the template. These values will not be
+ // sent as parameters to the plugin.
+ Values map[string]string `json:"values,omitempty" protobuf:"bytes,5,name=values"`
}
// ApplicationSetStatus defines the observed state of ApplicationSet
@@ -675,3 +819,14 @@ func (status *ApplicationSetStatus) SetApplicationStatus(newStatus ApplicationSe
}
status.ApplicationStatus = append(status.ApplicationStatus, newStatus)
}
+
+// QualifiedName returns the full qualified name of the applicationset, including
+// the name of the namespace it is created in delimited by a forward slash,
+// i.e. /
+func (a *ApplicationSet) QualifiedName() string {
+ if a.Namespace == "" {
+ return a.Name
+ } else {
+ return a.Namespace + "/" + a.Name
+ }
+}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.pb.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.pb.go
index 4410d283aa..8a788c206b 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.pb.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.pb.go
@@ -17,6 +17,7 @@ import (
v12 "k8s.io/api/core/v1"
v11 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ runtime "k8s.io/apimachinery/pkg/runtime"
math "math"
math_bits "math/bits"
@@ -318,10 +319,38 @@ func (m *ApplicationMatchExpression) XXX_DiscardUnknown() {
var xxx_messageInfo_ApplicationMatchExpression proto.InternalMessageInfo
+func (m *ApplicationPreservedFields) Reset() { *m = ApplicationPreservedFields{} }
+func (*ApplicationPreservedFields) ProtoMessage() {}
+func (*ApplicationPreservedFields) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{10}
+}
+func (m *ApplicationPreservedFields) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ApplicationPreservedFields) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *ApplicationPreservedFields) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ApplicationPreservedFields.Merge(m, src)
+}
+func (m *ApplicationPreservedFields) XXX_Size() int {
+ return m.Size()
+}
+func (m *ApplicationPreservedFields) XXX_DiscardUnknown() {
+ xxx_messageInfo_ApplicationPreservedFields.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApplicationPreservedFields proto.InternalMessageInfo
+
func (m *ApplicationSet) Reset() { *m = ApplicationSet{} }
func (*ApplicationSet) ProtoMessage() {}
func (*ApplicationSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{10}
+ return fileDescriptor_030104ce3b95bcac, []int{11}
}
func (m *ApplicationSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -349,7 +378,7 @@ var xxx_messageInfo_ApplicationSet proto.InternalMessageInfo
func (m *ApplicationSetApplicationStatus) Reset() { *m = ApplicationSetApplicationStatus{} }
func (*ApplicationSetApplicationStatus) ProtoMessage() {}
func (*ApplicationSetApplicationStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{11}
+ return fileDescriptor_030104ce3b95bcac, []int{12}
}
func (m *ApplicationSetApplicationStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -377,7 +406,7 @@ var xxx_messageInfo_ApplicationSetApplicationStatus proto.InternalMessageInfo
func (m *ApplicationSetCondition) Reset() { *m = ApplicationSetCondition{} }
func (*ApplicationSetCondition) ProtoMessage() {}
func (*ApplicationSetCondition) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{12}
+ return fileDescriptor_030104ce3b95bcac, []int{13}
}
func (m *ApplicationSetCondition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -405,7 +434,7 @@ var xxx_messageInfo_ApplicationSetCondition proto.InternalMessageInfo
func (m *ApplicationSetGenerator) Reset() { *m = ApplicationSetGenerator{} }
func (*ApplicationSetGenerator) ProtoMessage() {}
func (*ApplicationSetGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{13}
+ return fileDescriptor_030104ce3b95bcac, []int{14}
}
func (m *ApplicationSetGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -433,7 +462,7 @@ var xxx_messageInfo_ApplicationSetGenerator proto.InternalMessageInfo
func (m *ApplicationSetList) Reset() { *m = ApplicationSetList{} }
func (*ApplicationSetList) ProtoMessage() {}
func (*ApplicationSetList) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{14}
+ return fileDescriptor_030104ce3b95bcac, []int{15}
}
func (m *ApplicationSetList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -461,7 +490,7 @@ var xxx_messageInfo_ApplicationSetList proto.InternalMessageInfo
func (m *ApplicationSetNestedGenerator) Reset() { *m = ApplicationSetNestedGenerator{} }
func (*ApplicationSetNestedGenerator) ProtoMessage() {}
func (*ApplicationSetNestedGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{15}
+ return fileDescriptor_030104ce3b95bcac, []int{16}
}
func (m *ApplicationSetNestedGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -489,7 +518,7 @@ var xxx_messageInfo_ApplicationSetNestedGenerator proto.InternalMessageInfo
func (m *ApplicationSetRolloutStep) Reset() { *m = ApplicationSetRolloutStep{} }
func (*ApplicationSetRolloutStep) ProtoMessage() {}
func (*ApplicationSetRolloutStep) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{16}
+ return fileDescriptor_030104ce3b95bcac, []int{17}
}
func (m *ApplicationSetRolloutStep) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -517,7 +546,7 @@ var xxx_messageInfo_ApplicationSetRolloutStep proto.InternalMessageInfo
func (m *ApplicationSetRolloutStrategy) Reset() { *m = ApplicationSetRolloutStrategy{} }
func (*ApplicationSetRolloutStrategy) ProtoMessage() {}
func (*ApplicationSetRolloutStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{17}
+ return fileDescriptor_030104ce3b95bcac, []int{18}
}
func (m *ApplicationSetRolloutStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -545,7 +574,7 @@ var xxx_messageInfo_ApplicationSetRolloutStrategy proto.InternalMessageInfo
func (m *ApplicationSetSpec) Reset() { *m = ApplicationSetSpec{} }
func (*ApplicationSetSpec) ProtoMessage() {}
func (*ApplicationSetSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{18}
+ return fileDescriptor_030104ce3b95bcac, []int{19}
}
func (m *ApplicationSetSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -573,7 +602,7 @@ var xxx_messageInfo_ApplicationSetSpec proto.InternalMessageInfo
func (m *ApplicationSetStatus) Reset() { *m = ApplicationSetStatus{} }
func (*ApplicationSetStatus) ProtoMessage() {}
func (*ApplicationSetStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{19}
+ return fileDescriptor_030104ce3b95bcac, []int{20}
}
func (m *ApplicationSetStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -601,7 +630,7 @@ var xxx_messageInfo_ApplicationSetStatus proto.InternalMessageInfo
func (m *ApplicationSetStrategy) Reset() { *m = ApplicationSetStrategy{} }
func (*ApplicationSetStrategy) ProtoMessage() {}
func (*ApplicationSetStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{20}
+ return fileDescriptor_030104ce3b95bcac, []int{21}
}
func (m *ApplicationSetStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -629,7 +658,7 @@ var xxx_messageInfo_ApplicationSetStrategy proto.InternalMessageInfo
func (m *ApplicationSetSyncPolicy) Reset() { *m = ApplicationSetSyncPolicy{} }
func (*ApplicationSetSyncPolicy) ProtoMessage() {}
func (*ApplicationSetSyncPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{21}
+ return fileDescriptor_030104ce3b95bcac, []int{22}
}
func (m *ApplicationSetSyncPolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -657,7 +686,7 @@ var xxx_messageInfo_ApplicationSetSyncPolicy proto.InternalMessageInfo
func (m *ApplicationSetTemplate) Reset() { *m = ApplicationSetTemplate{} }
func (*ApplicationSetTemplate) ProtoMessage() {}
func (*ApplicationSetTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{22}
+ return fileDescriptor_030104ce3b95bcac, []int{23}
}
func (m *ApplicationSetTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -685,7 +714,7 @@ var xxx_messageInfo_ApplicationSetTemplate proto.InternalMessageInfo
func (m *ApplicationSetTemplateMeta) Reset() { *m = ApplicationSetTemplateMeta{} }
func (*ApplicationSetTemplateMeta) ProtoMessage() {}
func (*ApplicationSetTemplateMeta) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{23}
+ return fileDescriptor_030104ce3b95bcac, []int{24}
}
func (m *ApplicationSetTemplateMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -713,7 +742,7 @@ var xxx_messageInfo_ApplicationSetTemplateMeta proto.InternalMessageInfo
func (m *ApplicationSetTerminalGenerator) Reset() { *m = ApplicationSetTerminalGenerator{} }
func (*ApplicationSetTerminalGenerator) ProtoMessage() {}
func (*ApplicationSetTerminalGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{24}
+ return fileDescriptor_030104ce3b95bcac, []int{25}
}
func (m *ApplicationSetTerminalGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -741,7 +770,7 @@ var xxx_messageInfo_ApplicationSetTerminalGenerator proto.InternalMessageInfo
func (m *ApplicationSource) Reset() { *m = ApplicationSource{} }
func (*ApplicationSource) ProtoMessage() {}
func (*ApplicationSource) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{25}
+ return fileDescriptor_030104ce3b95bcac, []int{26}
}
func (m *ApplicationSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -769,7 +798,7 @@ var xxx_messageInfo_ApplicationSource proto.InternalMessageInfo
func (m *ApplicationSourceDirectory) Reset() { *m = ApplicationSourceDirectory{} }
func (*ApplicationSourceDirectory) ProtoMessage() {}
func (*ApplicationSourceDirectory) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{26}
+ return fileDescriptor_030104ce3b95bcac, []int{27}
}
func (m *ApplicationSourceDirectory) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -797,7 +826,7 @@ var xxx_messageInfo_ApplicationSourceDirectory proto.InternalMessageInfo
func (m *ApplicationSourceHelm) Reset() { *m = ApplicationSourceHelm{} }
func (*ApplicationSourceHelm) ProtoMessage() {}
func (*ApplicationSourceHelm) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{27}
+ return fileDescriptor_030104ce3b95bcac, []int{28}
}
func (m *ApplicationSourceHelm) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -825,7 +854,7 @@ var xxx_messageInfo_ApplicationSourceHelm proto.InternalMessageInfo
func (m *ApplicationSourceJsonnet) Reset() { *m = ApplicationSourceJsonnet{} }
func (*ApplicationSourceJsonnet) ProtoMessage() {}
func (*ApplicationSourceJsonnet) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{28}
+ return fileDescriptor_030104ce3b95bcac, []int{29}
}
func (m *ApplicationSourceJsonnet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -853,7 +882,7 @@ var xxx_messageInfo_ApplicationSourceJsonnet proto.InternalMessageInfo
func (m *ApplicationSourceKustomize) Reset() { *m = ApplicationSourceKustomize{} }
func (*ApplicationSourceKustomize) ProtoMessage() {}
func (*ApplicationSourceKustomize) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{29}
+ return fileDescriptor_030104ce3b95bcac, []int{30}
}
func (m *ApplicationSourceKustomize) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -881,7 +910,7 @@ var xxx_messageInfo_ApplicationSourceKustomize proto.InternalMessageInfo
func (m *ApplicationSourcePlugin) Reset() { *m = ApplicationSourcePlugin{} }
func (*ApplicationSourcePlugin) ProtoMessage() {}
func (*ApplicationSourcePlugin) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{30}
+ return fileDescriptor_030104ce3b95bcac, []int{31}
}
func (m *ApplicationSourcePlugin) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -909,7 +938,7 @@ var xxx_messageInfo_ApplicationSourcePlugin proto.InternalMessageInfo
func (m *ApplicationSourcePluginParameter) Reset() { *m = ApplicationSourcePluginParameter{} }
func (*ApplicationSourcePluginParameter) ProtoMessage() {}
func (*ApplicationSourcePluginParameter) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{31}
+ return fileDescriptor_030104ce3b95bcac, []int{32}
}
func (m *ApplicationSourcePluginParameter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -937,7 +966,7 @@ var xxx_messageInfo_ApplicationSourcePluginParameter proto.InternalMessageInfo
func (m *ApplicationSpec) Reset() { *m = ApplicationSpec{} }
func (*ApplicationSpec) ProtoMessage() {}
func (*ApplicationSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{32}
+ return fileDescriptor_030104ce3b95bcac, []int{33}
}
func (m *ApplicationSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -965,7 +994,7 @@ var xxx_messageInfo_ApplicationSpec proto.InternalMessageInfo
func (m *ApplicationStatus) Reset() { *m = ApplicationStatus{} }
func (*ApplicationStatus) ProtoMessage() {}
func (*ApplicationStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{33}
+ return fileDescriptor_030104ce3b95bcac, []int{34}
}
func (m *ApplicationStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -993,7 +1022,7 @@ var xxx_messageInfo_ApplicationStatus proto.InternalMessageInfo
func (m *ApplicationSummary) Reset() { *m = ApplicationSummary{} }
func (*ApplicationSummary) ProtoMessage() {}
func (*ApplicationSummary) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{34}
+ return fileDescriptor_030104ce3b95bcac, []int{35}
}
func (m *ApplicationSummary) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1021,7 +1050,7 @@ var xxx_messageInfo_ApplicationSummary proto.InternalMessageInfo
func (m *ApplicationTree) Reset() { *m = ApplicationTree{} }
func (*ApplicationTree) ProtoMessage() {}
func (*ApplicationTree) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{35}
+ return fileDescriptor_030104ce3b95bcac, []int{36}
}
func (m *ApplicationTree) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1049,7 +1078,7 @@ var xxx_messageInfo_ApplicationTree proto.InternalMessageInfo
func (m *ApplicationWatchEvent) Reset() { *m = ApplicationWatchEvent{} }
func (*ApplicationWatchEvent) ProtoMessage() {}
func (*ApplicationWatchEvent) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{36}
+ return fileDescriptor_030104ce3b95bcac, []int{37}
}
func (m *ApplicationWatchEvent) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1077,7 +1106,7 @@ var xxx_messageInfo_ApplicationWatchEvent proto.InternalMessageInfo
func (m *Backoff) Reset() { *m = Backoff{} }
func (*Backoff) ProtoMessage() {}
func (*Backoff) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{37}
+ return fileDescriptor_030104ce3b95bcac, []int{38}
}
func (m *Backoff) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1105,7 +1134,7 @@ var xxx_messageInfo_Backoff proto.InternalMessageInfo
func (m *BasicAuthBitbucketServer) Reset() { *m = BasicAuthBitbucketServer{} }
func (*BasicAuthBitbucketServer) ProtoMessage() {}
func (*BasicAuthBitbucketServer) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{38}
+ return fileDescriptor_030104ce3b95bcac, []int{39}
}
func (m *BasicAuthBitbucketServer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1130,10 +1159,66 @@ func (m *BasicAuthBitbucketServer) XXX_DiscardUnknown() {
var xxx_messageInfo_BasicAuthBitbucketServer proto.InternalMessageInfo
+func (m *BearerTokenBitbucketCloud) Reset() { *m = BearerTokenBitbucketCloud{} }
+func (*BearerTokenBitbucketCloud) ProtoMessage() {}
+func (*BearerTokenBitbucketCloud) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{40}
+}
+func (m *BearerTokenBitbucketCloud) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *BearerTokenBitbucketCloud) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *BearerTokenBitbucketCloud) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BearerTokenBitbucketCloud.Merge(m, src)
+}
+func (m *BearerTokenBitbucketCloud) XXX_Size() int {
+ return m.Size()
+}
+func (m *BearerTokenBitbucketCloud) XXX_DiscardUnknown() {
+ xxx_messageInfo_BearerTokenBitbucketCloud.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BearerTokenBitbucketCloud proto.InternalMessageInfo
+
+func (m *ChartDetails) Reset() { *m = ChartDetails{} }
+func (*ChartDetails) ProtoMessage() {}
+func (*ChartDetails) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{41}
+}
+func (m *ChartDetails) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChartDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *ChartDetails) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChartDetails.Merge(m, src)
+}
+func (m *ChartDetails) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChartDetails) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChartDetails.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChartDetails proto.InternalMessageInfo
+
func (m *Cluster) Reset() { *m = Cluster{} }
func (*Cluster) ProtoMessage() {}
func (*Cluster) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{39}
+ return fileDescriptor_030104ce3b95bcac, []int{42}
}
func (m *Cluster) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1161,7 +1246,7 @@ var xxx_messageInfo_Cluster proto.InternalMessageInfo
func (m *ClusterCacheInfo) Reset() { *m = ClusterCacheInfo{} }
func (*ClusterCacheInfo) ProtoMessage() {}
func (*ClusterCacheInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{40}
+ return fileDescriptor_030104ce3b95bcac, []int{43}
}
func (m *ClusterCacheInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1189,7 +1274,7 @@ var xxx_messageInfo_ClusterCacheInfo proto.InternalMessageInfo
func (m *ClusterConfig) Reset() { *m = ClusterConfig{} }
func (*ClusterConfig) ProtoMessage() {}
func (*ClusterConfig) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{41}
+ return fileDescriptor_030104ce3b95bcac, []int{44}
}
func (m *ClusterConfig) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1217,7 +1302,7 @@ var xxx_messageInfo_ClusterConfig proto.InternalMessageInfo
func (m *ClusterGenerator) Reset() { *m = ClusterGenerator{} }
func (*ClusterGenerator) ProtoMessage() {}
func (*ClusterGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{42}
+ return fileDescriptor_030104ce3b95bcac, []int{45}
}
func (m *ClusterGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1245,7 +1330,7 @@ var xxx_messageInfo_ClusterGenerator proto.InternalMessageInfo
func (m *ClusterInfo) Reset() { *m = ClusterInfo{} }
func (*ClusterInfo) ProtoMessage() {}
func (*ClusterInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{43}
+ return fileDescriptor_030104ce3b95bcac, []int{46}
}
func (m *ClusterInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1273,7 +1358,7 @@ var xxx_messageInfo_ClusterInfo proto.InternalMessageInfo
func (m *ClusterList) Reset() { *m = ClusterList{} }
func (*ClusterList) ProtoMessage() {}
func (*ClusterList) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{44}
+ return fileDescriptor_030104ce3b95bcac, []int{47}
}
func (m *ClusterList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1301,7 +1386,7 @@ var xxx_messageInfo_ClusterList proto.InternalMessageInfo
func (m *Command) Reset() { *m = Command{} }
func (*Command) ProtoMessage() {}
func (*Command) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{45}
+ return fileDescriptor_030104ce3b95bcac, []int{48}
}
func (m *Command) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1329,7 +1414,7 @@ var xxx_messageInfo_Command proto.InternalMessageInfo
func (m *ComparedTo) Reset() { *m = ComparedTo{} }
func (*ComparedTo) ProtoMessage() {}
func (*ComparedTo) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{46}
+ return fileDescriptor_030104ce3b95bcac, []int{49}
}
func (m *ComparedTo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1357,7 +1442,7 @@ var xxx_messageInfo_ComparedTo proto.InternalMessageInfo
func (m *ComponentParameter) Reset() { *m = ComponentParameter{} }
func (*ComponentParameter) ProtoMessage() {}
func (*ComponentParameter) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{47}
+ return fileDescriptor_030104ce3b95bcac, []int{50}
}
func (m *ComponentParameter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1385,7 +1470,7 @@ var xxx_messageInfo_ComponentParameter proto.InternalMessageInfo
func (m *ConfigManagementPlugin) Reset() { *m = ConfigManagementPlugin{} }
func (*ConfigManagementPlugin) ProtoMessage() {}
func (*ConfigManagementPlugin) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{48}
+ return fileDescriptor_030104ce3b95bcac, []int{51}
}
func (m *ConfigManagementPlugin) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1413,7 +1498,7 @@ var xxx_messageInfo_ConfigManagementPlugin proto.InternalMessageInfo
func (m *ConnectionState) Reset() { *m = ConnectionState{} }
func (*ConnectionState) ProtoMessage() {}
func (*ConnectionState) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{49}
+ return fileDescriptor_030104ce3b95bcac, []int{52}
}
func (m *ConnectionState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1441,7 +1526,7 @@ var xxx_messageInfo_ConnectionState proto.InternalMessageInfo
func (m *DuckTypeGenerator) Reset() { *m = DuckTypeGenerator{} }
func (*DuckTypeGenerator) ProtoMessage() {}
func (*DuckTypeGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{50}
+ return fileDescriptor_030104ce3b95bcac, []int{53}
}
func (m *DuckTypeGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1469,7 +1554,7 @@ var xxx_messageInfo_DuckTypeGenerator proto.InternalMessageInfo
func (m *EnvEntry) Reset() { *m = EnvEntry{} }
func (*EnvEntry) ProtoMessage() {}
func (*EnvEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{51}
+ return fileDescriptor_030104ce3b95bcac, []int{54}
}
func (m *EnvEntry) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1497,7 +1582,7 @@ var xxx_messageInfo_EnvEntry proto.InternalMessageInfo
func (m *ExecProviderConfig) Reset() { *m = ExecProviderConfig{} }
func (*ExecProviderConfig) ProtoMessage() {}
func (*ExecProviderConfig) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{52}
+ return fileDescriptor_030104ce3b95bcac, []int{55}
}
func (m *ExecProviderConfig) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1525,7 +1610,7 @@ var xxx_messageInfo_ExecProviderConfig proto.InternalMessageInfo
func (m *GitDirectoryGeneratorItem) Reset() { *m = GitDirectoryGeneratorItem{} }
func (*GitDirectoryGeneratorItem) ProtoMessage() {}
func (*GitDirectoryGeneratorItem) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{53}
+ return fileDescriptor_030104ce3b95bcac, []int{56}
}
func (m *GitDirectoryGeneratorItem) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1553,7 +1638,7 @@ var xxx_messageInfo_GitDirectoryGeneratorItem proto.InternalMessageInfo
func (m *GitFileGeneratorItem) Reset() { *m = GitFileGeneratorItem{} }
func (*GitFileGeneratorItem) ProtoMessage() {}
func (*GitFileGeneratorItem) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{54}
+ return fileDescriptor_030104ce3b95bcac, []int{57}
}
func (m *GitFileGeneratorItem) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1581,7 +1666,7 @@ var xxx_messageInfo_GitFileGeneratorItem proto.InternalMessageInfo
func (m *GitGenerator) Reset() { *m = GitGenerator{} }
func (*GitGenerator) ProtoMessage() {}
func (*GitGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{55}
+ return fileDescriptor_030104ce3b95bcac, []int{58}
}
func (m *GitGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1609,7 +1694,7 @@ var xxx_messageInfo_GitGenerator proto.InternalMessageInfo
func (m *GnuPGPublicKey) Reset() { *m = GnuPGPublicKey{} }
func (*GnuPGPublicKey) ProtoMessage() {}
func (*GnuPGPublicKey) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{56}
+ return fileDescriptor_030104ce3b95bcac, []int{59}
}
func (m *GnuPGPublicKey) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1637,7 +1722,7 @@ var xxx_messageInfo_GnuPGPublicKey proto.InternalMessageInfo
func (m *GnuPGPublicKeyList) Reset() { *m = GnuPGPublicKeyList{} }
func (*GnuPGPublicKeyList) ProtoMessage() {}
func (*GnuPGPublicKeyList) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{57}
+ return fileDescriptor_030104ce3b95bcac, []int{60}
}
func (m *GnuPGPublicKeyList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1665,7 +1750,7 @@ var xxx_messageInfo_GnuPGPublicKeyList proto.InternalMessageInfo
func (m *HealthStatus) Reset() { *m = HealthStatus{} }
func (*HealthStatus) ProtoMessage() {}
func (*HealthStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{58}
+ return fileDescriptor_030104ce3b95bcac, []int{61}
}
func (m *HealthStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1693,7 +1778,7 @@ var xxx_messageInfo_HealthStatus proto.InternalMessageInfo
func (m *HelmFileParameter) Reset() { *m = HelmFileParameter{} }
func (*HelmFileParameter) ProtoMessage() {}
func (*HelmFileParameter) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{59}
+ return fileDescriptor_030104ce3b95bcac, []int{62}
}
func (m *HelmFileParameter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1721,7 +1806,7 @@ var xxx_messageInfo_HelmFileParameter proto.InternalMessageInfo
func (m *HelmOptions) Reset() { *m = HelmOptions{} }
func (*HelmOptions) ProtoMessage() {}
func (*HelmOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{60}
+ return fileDescriptor_030104ce3b95bcac, []int{63}
}
func (m *HelmOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1749,7 +1834,7 @@ var xxx_messageInfo_HelmOptions proto.InternalMessageInfo
func (m *HelmParameter) Reset() { *m = HelmParameter{} }
func (*HelmParameter) ProtoMessage() {}
func (*HelmParameter) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{61}
+ return fileDescriptor_030104ce3b95bcac, []int{64}
}
func (m *HelmParameter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1777,7 +1862,7 @@ var xxx_messageInfo_HelmParameter proto.InternalMessageInfo
func (m *HostInfo) Reset() { *m = HostInfo{} }
func (*HostInfo) ProtoMessage() {}
func (*HostInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{62}
+ return fileDescriptor_030104ce3b95bcac, []int{65}
}
func (m *HostInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1805,7 +1890,7 @@ var xxx_messageInfo_HostInfo proto.InternalMessageInfo
func (m *HostResourceInfo) Reset() { *m = HostResourceInfo{} }
func (*HostResourceInfo) ProtoMessage() {}
func (*HostResourceInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{63}
+ return fileDescriptor_030104ce3b95bcac, []int{66}
}
func (m *HostResourceInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1833,7 +1918,7 @@ var xxx_messageInfo_HostResourceInfo proto.InternalMessageInfo
func (m *Info) Reset() { *m = Info{} }
func (*Info) ProtoMessage() {}
func (*Info) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{64}
+ return fileDescriptor_030104ce3b95bcac, []int{67}
}
func (m *Info) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1861,7 +1946,7 @@ var xxx_messageInfo_Info proto.InternalMessageInfo
func (m *InfoItem) Reset() { *m = InfoItem{} }
func (*InfoItem) ProtoMessage() {}
func (*InfoItem) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{65}
+ return fileDescriptor_030104ce3b95bcac, []int{68}
}
func (m *InfoItem) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1889,7 +1974,7 @@ var xxx_messageInfo_InfoItem proto.InternalMessageInfo
func (m *JWTToken) Reset() { *m = JWTToken{} }
func (*JWTToken) ProtoMessage() {}
func (*JWTToken) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{66}
+ return fileDescriptor_030104ce3b95bcac, []int{69}
}
func (m *JWTToken) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1917,7 +2002,7 @@ var xxx_messageInfo_JWTToken proto.InternalMessageInfo
func (m *JWTTokens) Reset() { *m = JWTTokens{} }
func (*JWTTokens) ProtoMessage() {}
func (*JWTTokens) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{67}
+ return fileDescriptor_030104ce3b95bcac, []int{70}
}
func (m *JWTTokens) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1945,7 +2030,7 @@ var xxx_messageInfo_JWTTokens proto.InternalMessageInfo
func (m *JsonnetVar) Reset() { *m = JsonnetVar{} }
func (*JsonnetVar) ProtoMessage() {}
func (*JsonnetVar) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{68}
+ return fileDescriptor_030104ce3b95bcac, []int{71}
}
func (m *JsonnetVar) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1973,7 +2058,7 @@ var xxx_messageInfo_JsonnetVar proto.InternalMessageInfo
func (m *KnownTypeField) Reset() { *m = KnownTypeField{} }
func (*KnownTypeField) ProtoMessage() {}
func (*KnownTypeField) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{69}
+ return fileDescriptor_030104ce3b95bcac, []int{72}
}
func (m *KnownTypeField) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2001,7 +2086,7 @@ var xxx_messageInfo_KnownTypeField proto.InternalMessageInfo
func (m *KustomizeOptions) Reset() { *m = KustomizeOptions{} }
func (*KustomizeOptions) ProtoMessage() {}
func (*KustomizeOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{70}
+ return fileDescriptor_030104ce3b95bcac, []int{73}
}
func (m *KustomizeOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2026,10 +2111,38 @@ func (m *KustomizeOptions) XXX_DiscardUnknown() {
var xxx_messageInfo_KustomizeOptions proto.InternalMessageInfo
+func (m *KustomizeReplica) Reset() { *m = KustomizeReplica{} }
+func (*KustomizeReplica) ProtoMessage() {}
+func (*KustomizeReplica) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{74}
+}
+func (m *KustomizeReplica) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *KustomizeReplica) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *KustomizeReplica) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KustomizeReplica.Merge(m, src)
+}
+func (m *KustomizeReplica) XXX_Size() int {
+ return m.Size()
+}
+func (m *KustomizeReplica) XXX_DiscardUnknown() {
+ xxx_messageInfo_KustomizeReplica.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KustomizeReplica proto.InternalMessageInfo
+
func (m *ListGenerator) Reset() { *m = ListGenerator{} }
func (*ListGenerator) ProtoMessage() {}
func (*ListGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{71}
+ return fileDescriptor_030104ce3b95bcac, []int{75}
}
func (m *ListGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2057,7 +2170,7 @@ var xxx_messageInfo_ListGenerator proto.InternalMessageInfo
func (m *ManagedNamespaceMetadata) Reset() { *m = ManagedNamespaceMetadata{} }
func (*ManagedNamespaceMetadata) ProtoMessage() {}
func (*ManagedNamespaceMetadata) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{72}
+ return fileDescriptor_030104ce3b95bcac, []int{76}
}
func (m *ManagedNamespaceMetadata) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2085,7 +2198,7 @@ var xxx_messageInfo_ManagedNamespaceMetadata proto.InternalMessageInfo
func (m *MatrixGenerator) Reset() { *m = MatrixGenerator{} }
func (*MatrixGenerator) ProtoMessage() {}
func (*MatrixGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{73}
+ return fileDescriptor_030104ce3b95bcac, []int{77}
}
func (m *MatrixGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2113,7 +2226,7 @@ var xxx_messageInfo_MatrixGenerator proto.InternalMessageInfo
func (m *MergeGenerator) Reset() { *m = MergeGenerator{} }
func (*MergeGenerator) ProtoMessage() {}
func (*MergeGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{74}
+ return fileDescriptor_030104ce3b95bcac, []int{78}
}
func (m *MergeGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2141,7 +2254,7 @@ var xxx_messageInfo_MergeGenerator proto.InternalMessageInfo
func (m *NestedMatrixGenerator) Reset() { *m = NestedMatrixGenerator{} }
func (*NestedMatrixGenerator) ProtoMessage() {}
func (*NestedMatrixGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{75}
+ return fileDescriptor_030104ce3b95bcac, []int{79}
}
func (m *NestedMatrixGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2169,7 +2282,7 @@ var xxx_messageInfo_NestedMatrixGenerator proto.InternalMessageInfo
func (m *NestedMergeGenerator) Reset() { *m = NestedMergeGenerator{} }
func (*NestedMergeGenerator) ProtoMessage() {}
func (*NestedMergeGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{76}
+ return fileDescriptor_030104ce3b95bcac, []int{80}
}
func (m *NestedMergeGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2197,7 +2310,7 @@ var xxx_messageInfo_NestedMergeGenerator proto.InternalMessageInfo
func (m *Operation) Reset() { *m = Operation{} }
func (*Operation) ProtoMessage() {}
func (*Operation) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{77}
+ return fileDescriptor_030104ce3b95bcac, []int{81}
}
func (m *Operation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2225,7 +2338,7 @@ var xxx_messageInfo_Operation proto.InternalMessageInfo
func (m *OperationInitiator) Reset() { *m = OperationInitiator{} }
func (*OperationInitiator) ProtoMessage() {}
func (*OperationInitiator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{78}
+ return fileDescriptor_030104ce3b95bcac, []int{82}
}
func (m *OperationInitiator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2253,7 +2366,7 @@ var xxx_messageInfo_OperationInitiator proto.InternalMessageInfo
func (m *OperationState) Reset() { *m = OperationState{} }
func (*OperationState) ProtoMessage() {}
func (*OperationState) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{79}
+ return fileDescriptor_030104ce3b95bcac, []int{83}
}
func (m *OperationState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2278,10 +2391,66 @@ func (m *OperationState) XXX_DiscardUnknown() {
var xxx_messageInfo_OperationState proto.InternalMessageInfo
+func (m *OptionalArray) Reset() { *m = OptionalArray{} }
+func (*OptionalArray) ProtoMessage() {}
+func (*OptionalArray) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{84}
+}
+func (m *OptionalArray) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *OptionalArray) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *OptionalArray) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OptionalArray.Merge(m, src)
+}
+func (m *OptionalArray) XXX_Size() int {
+ return m.Size()
+}
+func (m *OptionalArray) XXX_DiscardUnknown() {
+ xxx_messageInfo_OptionalArray.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OptionalArray proto.InternalMessageInfo
+
+func (m *OptionalMap) Reset() { *m = OptionalMap{} }
+func (*OptionalMap) ProtoMessage() {}
+func (*OptionalMap) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{85}
+}
+func (m *OptionalMap) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *OptionalMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *OptionalMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OptionalMap.Merge(m, src)
+}
+func (m *OptionalMap) XXX_Size() int {
+ return m.Size()
+}
+func (m *OptionalMap) XXX_DiscardUnknown() {
+ xxx_messageInfo_OptionalMap.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OptionalMap proto.InternalMessageInfo
+
func (m *OrphanedResourceKey) Reset() { *m = OrphanedResourceKey{} }
func (*OrphanedResourceKey) ProtoMessage() {}
func (*OrphanedResourceKey) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{80}
+ return fileDescriptor_030104ce3b95bcac, []int{86}
}
func (m *OrphanedResourceKey) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2309,7 +2478,7 @@ var xxx_messageInfo_OrphanedResourceKey proto.InternalMessageInfo
func (m *OrphanedResourcesMonitorSettings) Reset() { *m = OrphanedResourcesMonitorSettings{} }
func (*OrphanedResourcesMonitorSettings) ProtoMessage() {}
func (*OrphanedResourcesMonitorSettings) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{81}
+ return fileDescriptor_030104ce3b95bcac, []int{87}
}
func (m *OrphanedResourcesMonitorSettings) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2337,7 +2506,7 @@ var xxx_messageInfo_OrphanedResourcesMonitorSettings proto.InternalMessageInfo
func (m *OverrideIgnoreDiff) Reset() { *m = OverrideIgnoreDiff{} }
func (*OverrideIgnoreDiff) ProtoMessage() {}
func (*OverrideIgnoreDiff) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{82}
+ return fileDescriptor_030104ce3b95bcac, []int{88}
}
func (m *OverrideIgnoreDiff) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2362,10 +2531,94 @@ func (m *OverrideIgnoreDiff) XXX_DiscardUnknown() {
var xxx_messageInfo_OverrideIgnoreDiff proto.InternalMessageInfo
+func (m *PluginConfigMapRef) Reset() { *m = PluginConfigMapRef{} }
+func (*PluginConfigMapRef) ProtoMessage() {}
+func (*PluginConfigMapRef) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{89}
+}
+func (m *PluginConfigMapRef) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PluginConfigMapRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *PluginConfigMapRef) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PluginConfigMapRef.Merge(m, src)
+}
+func (m *PluginConfigMapRef) XXX_Size() int {
+ return m.Size()
+}
+func (m *PluginConfigMapRef) XXX_DiscardUnknown() {
+ xxx_messageInfo_PluginConfigMapRef.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PluginConfigMapRef proto.InternalMessageInfo
+
+func (m *PluginGenerator) Reset() { *m = PluginGenerator{} }
+func (*PluginGenerator) ProtoMessage() {}
+func (*PluginGenerator) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{90}
+}
+func (m *PluginGenerator) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PluginGenerator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *PluginGenerator) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PluginGenerator.Merge(m, src)
+}
+func (m *PluginGenerator) XXX_Size() int {
+ return m.Size()
+}
+func (m *PluginGenerator) XXX_DiscardUnknown() {
+ xxx_messageInfo_PluginGenerator.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PluginGenerator proto.InternalMessageInfo
+
+func (m *PluginInput) Reset() { *m = PluginInput{} }
+func (*PluginInput) ProtoMessage() {}
+func (*PluginInput) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{91}
+}
+func (m *PluginInput) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PluginInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *PluginInput) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PluginInput.Merge(m, src)
+}
+func (m *PluginInput) XXX_Size() int {
+ return m.Size()
+}
+func (m *PluginInput) XXX_DiscardUnknown() {
+ xxx_messageInfo_PluginInput.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PluginInput proto.InternalMessageInfo
+
func (m *ProjectRole) Reset() { *m = ProjectRole{} }
func (*ProjectRole) ProtoMessage() {}
func (*ProjectRole) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{83}
+ return fileDescriptor_030104ce3b95bcac, []int{92}
}
func (m *ProjectRole) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2393,7 +2646,7 @@ var xxx_messageInfo_ProjectRole proto.InternalMessageInfo
func (m *PullRequestGenerator) Reset() { *m = PullRequestGenerator{} }
func (*PullRequestGenerator) ProtoMessage() {}
func (*PullRequestGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{84}
+ return fileDescriptor_030104ce3b95bcac, []int{93}
}
func (m *PullRequestGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2418,10 +2671,66 @@ func (m *PullRequestGenerator) XXX_DiscardUnknown() {
var xxx_messageInfo_PullRequestGenerator proto.InternalMessageInfo
+func (m *PullRequestGeneratorAzureDevOps) Reset() { *m = PullRequestGeneratorAzureDevOps{} }
+func (*PullRequestGeneratorAzureDevOps) ProtoMessage() {}
+func (*PullRequestGeneratorAzureDevOps) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{94}
+}
+func (m *PullRequestGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PullRequestGeneratorAzureDevOps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *PullRequestGeneratorAzureDevOps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PullRequestGeneratorAzureDevOps.Merge(m, src)
+}
+func (m *PullRequestGeneratorAzureDevOps) XXX_Size() int {
+ return m.Size()
+}
+func (m *PullRequestGeneratorAzureDevOps) XXX_DiscardUnknown() {
+ xxx_messageInfo_PullRequestGeneratorAzureDevOps.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PullRequestGeneratorAzureDevOps proto.InternalMessageInfo
+
+func (m *PullRequestGeneratorBitbucket) Reset() { *m = PullRequestGeneratorBitbucket{} }
+func (*PullRequestGeneratorBitbucket) ProtoMessage() {}
+func (*PullRequestGeneratorBitbucket) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{95}
+}
+func (m *PullRequestGeneratorBitbucket) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *PullRequestGeneratorBitbucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *PullRequestGeneratorBitbucket) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PullRequestGeneratorBitbucket.Merge(m, src)
+}
+func (m *PullRequestGeneratorBitbucket) XXX_Size() int {
+ return m.Size()
+}
+func (m *PullRequestGeneratorBitbucket) XXX_DiscardUnknown() {
+ xxx_messageInfo_PullRequestGeneratorBitbucket.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PullRequestGeneratorBitbucket proto.InternalMessageInfo
+
func (m *PullRequestGeneratorBitbucketServer) Reset() { *m = PullRequestGeneratorBitbucketServer{} }
func (*PullRequestGeneratorBitbucketServer) ProtoMessage() {}
func (*PullRequestGeneratorBitbucketServer) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{85}
+ return fileDescriptor_030104ce3b95bcac, []int{96}
}
func (m *PullRequestGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2449,7 +2758,7 @@ var xxx_messageInfo_PullRequestGeneratorBitbucketServer proto.InternalMessageInf
func (m *PullRequestGeneratorFilter) Reset() { *m = PullRequestGeneratorFilter{} }
func (*PullRequestGeneratorFilter) ProtoMessage() {}
func (*PullRequestGeneratorFilter) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{86}
+ return fileDescriptor_030104ce3b95bcac, []int{97}
}
func (m *PullRequestGeneratorFilter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2477,7 +2786,7 @@ var xxx_messageInfo_PullRequestGeneratorFilter proto.InternalMessageInfo
func (m *PullRequestGeneratorGitLab) Reset() { *m = PullRequestGeneratorGitLab{} }
func (*PullRequestGeneratorGitLab) ProtoMessage() {}
func (*PullRequestGeneratorGitLab) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{87}
+ return fileDescriptor_030104ce3b95bcac, []int{98}
}
func (m *PullRequestGeneratorGitLab) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2505,7 +2814,7 @@ var xxx_messageInfo_PullRequestGeneratorGitLab proto.InternalMessageInfo
func (m *PullRequestGeneratorGitea) Reset() { *m = PullRequestGeneratorGitea{} }
func (*PullRequestGeneratorGitea) ProtoMessage() {}
func (*PullRequestGeneratorGitea) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{88}
+ return fileDescriptor_030104ce3b95bcac, []int{99}
}
func (m *PullRequestGeneratorGitea) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2533,7 +2842,7 @@ var xxx_messageInfo_PullRequestGeneratorGitea proto.InternalMessageInfo
func (m *PullRequestGeneratorGithub) Reset() { *m = PullRequestGeneratorGithub{} }
func (*PullRequestGeneratorGithub) ProtoMessage() {}
func (*PullRequestGeneratorGithub) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{89}
+ return fileDescriptor_030104ce3b95bcac, []int{100}
}
func (m *PullRequestGeneratorGithub) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2561,7 +2870,7 @@ var xxx_messageInfo_PullRequestGeneratorGithub proto.InternalMessageInfo
func (m *RefTarget) Reset() { *m = RefTarget{} }
func (*RefTarget) ProtoMessage() {}
func (*RefTarget) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{90}
+ return fileDescriptor_030104ce3b95bcac, []int{101}
}
func (m *RefTarget) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2589,7 +2898,7 @@ var xxx_messageInfo_RefTarget proto.InternalMessageInfo
func (m *RepoCreds) Reset() { *m = RepoCreds{} }
func (*RepoCreds) ProtoMessage() {}
func (*RepoCreds) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{91}
+ return fileDescriptor_030104ce3b95bcac, []int{102}
}
func (m *RepoCreds) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2617,7 +2926,7 @@ var xxx_messageInfo_RepoCreds proto.InternalMessageInfo
func (m *RepoCredsList) Reset() { *m = RepoCredsList{} }
func (*RepoCredsList) ProtoMessage() {}
func (*RepoCredsList) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{92}
+ return fileDescriptor_030104ce3b95bcac, []int{103}
}
func (m *RepoCredsList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2645,7 +2954,7 @@ var xxx_messageInfo_RepoCredsList proto.InternalMessageInfo
func (m *Repository) Reset() { *m = Repository{} }
func (*Repository) ProtoMessage() {}
func (*Repository) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{93}
+ return fileDescriptor_030104ce3b95bcac, []int{104}
}
func (m *Repository) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2673,7 +2982,7 @@ var xxx_messageInfo_Repository proto.InternalMessageInfo
func (m *RepositoryCertificate) Reset() { *m = RepositoryCertificate{} }
func (*RepositoryCertificate) ProtoMessage() {}
func (*RepositoryCertificate) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{94}
+ return fileDescriptor_030104ce3b95bcac, []int{105}
}
func (m *RepositoryCertificate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2701,7 +3010,7 @@ var xxx_messageInfo_RepositoryCertificate proto.InternalMessageInfo
func (m *RepositoryCertificateList) Reset() { *m = RepositoryCertificateList{} }
func (*RepositoryCertificateList) ProtoMessage() {}
func (*RepositoryCertificateList) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{95}
+ return fileDescriptor_030104ce3b95bcac, []int{106}
}
func (m *RepositoryCertificateList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2729,7 +3038,7 @@ var xxx_messageInfo_RepositoryCertificateList proto.InternalMessageInfo
func (m *RepositoryList) Reset() { *m = RepositoryList{} }
func (*RepositoryList) ProtoMessage() {}
func (*RepositoryList) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{96}
+ return fileDescriptor_030104ce3b95bcac, []int{107}
}
func (m *RepositoryList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2757,7 +3066,7 @@ var xxx_messageInfo_RepositoryList proto.InternalMessageInfo
func (m *ResourceAction) Reset() { *m = ResourceAction{} }
func (*ResourceAction) ProtoMessage() {}
func (*ResourceAction) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{97}
+ return fileDescriptor_030104ce3b95bcac, []int{108}
}
func (m *ResourceAction) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2785,7 +3094,7 @@ var xxx_messageInfo_ResourceAction proto.InternalMessageInfo
func (m *ResourceActionDefinition) Reset() { *m = ResourceActionDefinition{} }
func (*ResourceActionDefinition) ProtoMessage() {}
func (*ResourceActionDefinition) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{98}
+ return fileDescriptor_030104ce3b95bcac, []int{109}
}
func (m *ResourceActionDefinition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2813,7 +3122,7 @@ var xxx_messageInfo_ResourceActionDefinition proto.InternalMessageInfo
func (m *ResourceActionParam) Reset() { *m = ResourceActionParam{} }
func (*ResourceActionParam) ProtoMessage() {}
func (*ResourceActionParam) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{99}
+ return fileDescriptor_030104ce3b95bcac, []int{110}
}
func (m *ResourceActionParam) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2841,7 +3150,7 @@ var xxx_messageInfo_ResourceActionParam proto.InternalMessageInfo
func (m *ResourceActions) Reset() { *m = ResourceActions{} }
func (*ResourceActions) ProtoMessage() {}
func (*ResourceActions) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{100}
+ return fileDescriptor_030104ce3b95bcac, []int{111}
}
func (m *ResourceActions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2869,7 +3178,7 @@ var xxx_messageInfo_ResourceActions proto.InternalMessageInfo
func (m *ResourceDiff) Reset() { *m = ResourceDiff{} }
func (*ResourceDiff) ProtoMessage() {}
func (*ResourceDiff) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{101}
+ return fileDescriptor_030104ce3b95bcac, []int{112}
}
func (m *ResourceDiff) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2897,7 +3206,7 @@ var xxx_messageInfo_ResourceDiff proto.InternalMessageInfo
func (m *ResourceIgnoreDifferences) Reset() { *m = ResourceIgnoreDifferences{} }
func (*ResourceIgnoreDifferences) ProtoMessage() {}
func (*ResourceIgnoreDifferences) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{102}
+ return fileDescriptor_030104ce3b95bcac, []int{113}
}
func (m *ResourceIgnoreDifferences) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2925,7 +3234,7 @@ var xxx_messageInfo_ResourceIgnoreDifferences proto.InternalMessageInfo
func (m *ResourceNetworkingInfo) Reset() { *m = ResourceNetworkingInfo{} }
func (*ResourceNetworkingInfo) ProtoMessage() {}
func (*ResourceNetworkingInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{103}
+ return fileDescriptor_030104ce3b95bcac, []int{114}
}
func (m *ResourceNetworkingInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2953,7 +3262,7 @@ var xxx_messageInfo_ResourceNetworkingInfo proto.InternalMessageInfo
func (m *ResourceNode) Reset() { *m = ResourceNode{} }
func (*ResourceNode) ProtoMessage() {}
func (*ResourceNode) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{104}
+ return fileDescriptor_030104ce3b95bcac, []int{115}
}
func (m *ResourceNode) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2981,7 +3290,7 @@ var xxx_messageInfo_ResourceNode proto.InternalMessageInfo
func (m *ResourceOverride) Reset() { *m = ResourceOverride{} }
func (*ResourceOverride) ProtoMessage() {}
func (*ResourceOverride) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{105}
+ return fileDescriptor_030104ce3b95bcac, []int{116}
}
func (m *ResourceOverride) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3009,7 +3318,7 @@ var xxx_messageInfo_ResourceOverride proto.InternalMessageInfo
func (m *ResourceRef) Reset() { *m = ResourceRef{} }
func (*ResourceRef) ProtoMessage() {}
func (*ResourceRef) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{106}
+ return fileDescriptor_030104ce3b95bcac, []int{117}
}
func (m *ResourceRef) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3037,7 +3346,7 @@ var xxx_messageInfo_ResourceRef proto.InternalMessageInfo
func (m *ResourceResult) Reset() { *m = ResourceResult{} }
func (*ResourceResult) ProtoMessage() {}
func (*ResourceResult) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{107}
+ return fileDescriptor_030104ce3b95bcac, []int{118}
}
func (m *ResourceResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3065,7 +3374,7 @@ var xxx_messageInfo_ResourceResult proto.InternalMessageInfo
func (m *ResourceStatus) Reset() { *m = ResourceStatus{} }
func (*ResourceStatus) ProtoMessage() {}
func (*ResourceStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{108}
+ return fileDescriptor_030104ce3b95bcac, []int{119}
}
func (m *ResourceStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3093,7 +3402,7 @@ var xxx_messageInfo_ResourceStatus proto.InternalMessageInfo
func (m *RetryStrategy) Reset() { *m = RetryStrategy{} }
func (*RetryStrategy) ProtoMessage() {}
func (*RetryStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{109}
+ return fileDescriptor_030104ce3b95bcac, []int{120}
}
func (m *RetryStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3121,7 +3430,7 @@ var xxx_messageInfo_RetryStrategy proto.InternalMessageInfo
func (m *RevisionHistory) Reset() { *m = RevisionHistory{} }
func (*RevisionHistory) ProtoMessage() {}
func (*RevisionHistory) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{110}
+ return fileDescriptor_030104ce3b95bcac, []int{121}
}
func (m *RevisionHistory) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3149,7 +3458,7 @@ var xxx_messageInfo_RevisionHistory proto.InternalMessageInfo
func (m *RevisionMetadata) Reset() { *m = RevisionMetadata{} }
func (*RevisionMetadata) ProtoMessage() {}
func (*RevisionMetadata) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{111}
+ return fileDescriptor_030104ce3b95bcac, []int{122}
}
func (m *RevisionMetadata) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3177,7 +3486,7 @@ var xxx_messageInfo_RevisionMetadata proto.InternalMessageInfo
func (m *SCMProviderGenerator) Reset() { *m = SCMProviderGenerator{} }
func (*SCMProviderGenerator) ProtoMessage() {}
func (*SCMProviderGenerator) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{112}
+ return fileDescriptor_030104ce3b95bcac, []int{123}
}
func (m *SCMProviderGenerator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3202,10 +3511,38 @@ func (m *SCMProviderGenerator) XXX_DiscardUnknown() {
var xxx_messageInfo_SCMProviderGenerator proto.InternalMessageInfo
+func (m *SCMProviderGeneratorAWSCodeCommit) Reset() { *m = SCMProviderGeneratorAWSCodeCommit{} }
+func (*SCMProviderGeneratorAWSCodeCommit) ProtoMessage() {}
+func (*SCMProviderGeneratorAWSCodeCommit) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{124}
+}
+func (m *SCMProviderGeneratorAWSCodeCommit) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *SCMProviderGeneratorAWSCodeCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *SCMProviderGeneratorAWSCodeCommit) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SCMProviderGeneratorAWSCodeCommit.Merge(m, src)
+}
+func (m *SCMProviderGeneratorAWSCodeCommit) XXX_Size() int {
+ return m.Size()
+}
+func (m *SCMProviderGeneratorAWSCodeCommit) XXX_DiscardUnknown() {
+ xxx_messageInfo_SCMProviderGeneratorAWSCodeCommit.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SCMProviderGeneratorAWSCodeCommit proto.InternalMessageInfo
+
func (m *SCMProviderGeneratorAzureDevOps) Reset() { *m = SCMProviderGeneratorAzureDevOps{} }
func (*SCMProviderGeneratorAzureDevOps) ProtoMessage() {}
func (*SCMProviderGeneratorAzureDevOps) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{113}
+ return fileDescriptor_030104ce3b95bcac, []int{125}
}
func (m *SCMProviderGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3233,7 +3570,7 @@ var xxx_messageInfo_SCMProviderGeneratorAzureDevOps proto.InternalMessageInfo
func (m *SCMProviderGeneratorBitbucket) Reset() { *m = SCMProviderGeneratorBitbucket{} }
func (*SCMProviderGeneratorBitbucket) ProtoMessage() {}
func (*SCMProviderGeneratorBitbucket) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{114}
+ return fileDescriptor_030104ce3b95bcac, []int{126}
}
func (m *SCMProviderGeneratorBitbucket) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3261,7 +3598,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucket proto.InternalMessageInfo
func (m *SCMProviderGeneratorBitbucketServer) Reset() { *m = SCMProviderGeneratorBitbucketServer{} }
func (*SCMProviderGeneratorBitbucketServer) ProtoMessage() {}
func (*SCMProviderGeneratorBitbucketServer) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{115}
+ return fileDescriptor_030104ce3b95bcac, []int{127}
}
func (m *SCMProviderGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3289,7 +3626,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucketServer proto.InternalMessageInf
func (m *SCMProviderGeneratorFilter) Reset() { *m = SCMProviderGeneratorFilter{} }
func (*SCMProviderGeneratorFilter) ProtoMessage() {}
func (*SCMProviderGeneratorFilter) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{116}
+ return fileDescriptor_030104ce3b95bcac, []int{128}
}
func (m *SCMProviderGeneratorFilter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3317,7 +3654,7 @@ var xxx_messageInfo_SCMProviderGeneratorFilter proto.InternalMessageInfo
func (m *SCMProviderGeneratorGitea) Reset() { *m = SCMProviderGeneratorGitea{} }
func (*SCMProviderGeneratorGitea) ProtoMessage() {}
func (*SCMProviderGeneratorGitea) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{117}
+ return fileDescriptor_030104ce3b95bcac, []int{129}
}
func (m *SCMProviderGeneratorGitea) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3345,7 +3682,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitea proto.InternalMessageInfo
func (m *SCMProviderGeneratorGithub) Reset() { *m = SCMProviderGeneratorGithub{} }
func (*SCMProviderGeneratorGithub) ProtoMessage() {}
func (*SCMProviderGeneratorGithub) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{118}
+ return fileDescriptor_030104ce3b95bcac, []int{130}
}
func (m *SCMProviderGeneratorGithub) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3373,7 +3710,7 @@ var xxx_messageInfo_SCMProviderGeneratorGithub proto.InternalMessageInfo
func (m *SCMProviderGeneratorGitlab) Reset() { *m = SCMProviderGeneratorGitlab{} }
func (*SCMProviderGeneratorGitlab) ProtoMessage() {}
func (*SCMProviderGeneratorGitlab) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{119}
+ return fileDescriptor_030104ce3b95bcac, []int{131}
}
func (m *SCMProviderGeneratorGitlab) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3401,7 +3738,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitlab proto.InternalMessageInfo
func (m *SecretRef) Reset() { *m = SecretRef{} }
func (*SecretRef) ProtoMessage() {}
func (*SecretRef) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{120}
+ return fileDescriptor_030104ce3b95bcac, []int{132}
}
func (m *SecretRef) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3429,7 +3766,7 @@ var xxx_messageInfo_SecretRef proto.InternalMessageInfo
func (m *SignatureKey) Reset() { *m = SignatureKey{} }
func (*SignatureKey) ProtoMessage() {}
func (*SignatureKey) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{121}
+ return fileDescriptor_030104ce3b95bcac, []int{133}
}
func (m *SignatureKey) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3457,7 +3794,7 @@ var xxx_messageInfo_SignatureKey proto.InternalMessageInfo
func (m *SyncOperation) Reset() { *m = SyncOperation{} }
func (*SyncOperation) ProtoMessage() {}
func (*SyncOperation) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{122}
+ return fileDescriptor_030104ce3b95bcac, []int{134}
}
func (m *SyncOperation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3485,7 +3822,7 @@ var xxx_messageInfo_SyncOperation proto.InternalMessageInfo
func (m *SyncOperationResource) Reset() { *m = SyncOperationResource{} }
func (*SyncOperationResource) ProtoMessage() {}
func (*SyncOperationResource) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{123}
+ return fileDescriptor_030104ce3b95bcac, []int{135}
}
func (m *SyncOperationResource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3513,7 +3850,7 @@ var xxx_messageInfo_SyncOperationResource proto.InternalMessageInfo
func (m *SyncOperationResult) Reset() { *m = SyncOperationResult{} }
func (*SyncOperationResult) ProtoMessage() {}
func (*SyncOperationResult) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{124}
+ return fileDescriptor_030104ce3b95bcac, []int{136}
}
func (m *SyncOperationResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3541,7 +3878,7 @@ var xxx_messageInfo_SyncOperationResult proto.InternalMessageInfo
func (m *SyncPolicy) Reset() { *m = SyncPolicy{} }
func (*SyncPolicy) ProtoMessage() {}
func (*SyncPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{125}
+ return fileDescriptor_030104ce3b95bcac, []int{137}
}
func (m *SyncPolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3569,7 +3906,7 @@ var xxx_messageInfo_SyncPolicy proto.InternalMessageInfo
func (m *SyncPolicyAutomated) Reset() { *m = SyncPolicyAutomated{} }
func (*SyncPolicyAutomated) ProtoMessage() {}
func (*SyncPolicyAutomated) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{126}
+ return fileDescriptor_030104ce3b95bcac, []int{138}
}
func (m *SyncPolicyAutomated) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3597,7 +3934,7 @@ var xxx_messageInfo_SyncPolicyAutomated proto.InternalMessageInfo
func (m *SyncStatus) Reset() { *m = SyncStatus{} }
func (*SyncStatus) ProtoMessage() {}
func (*SyncStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{127}
+ return fileDescriptor_030104ce3b95bcac, []int{139}
}
func (m *SyncStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3625,7 +3962,7 @@ var xxx_messageInfo_SyncStatus proto.InternalMessageInfo
func (m *SyncStrategy) Reset() { *m = SyncStrategy{} }
func (*SyncStrategy) ProtoMessage() {}
func (*SyncStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{128}
+ return fileDescriptor_030104ce3b95bcac, []int{140}
}
func (m *SyncStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3653,7 +3990,7 @@ var xxx_messageInfo_SyncStrategy proto.InternalMessageInfo
func (m *SyncStrategyApply) Reset() { *m = SyncStrategyApply{} }
func (*SyncStrategyApply) ProtoMessage() {}
func (*SyncStrategyApply) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{129}
+ return fileDescriptor_030104ce3b95bcac, []int{141}
}
func (m *SyncStrategyApply) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3681,7 +4018,7 @@ var xxx_messageInfo_SyncStrategyApply proto.InternalMessageInfo
func (m *SyncStrategyHook) Reset() { *m = SyncStrategyHook{} }
func (*SyncStrategyHook) ProtoMessage() {}
func (*SyncStrategyHook) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{130}
+ return fileDescriptor_030104ce3b95bcac, []int{142}
}
func (m *SyncStrategyHook) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3709,7 +4046,7 @@ var xxx_messageInfo_SyncStrategyHook proto.InternalMessageInfo
func (m *SyncWindow) Reset() { *m = SyncWindow{} }
func (*SyncWindow) ProtoMessage() {}
func (*SyncWindow) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{131}
+ return fileDescriptor_030104ce3b95bcac, []int{143}
}
func (m *SyncWindow) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3737,7 +4074,7 @@ var xxx_messageInfo_SyncWindow proto.InternalMessageInfo
func (m *TLSClientConfig) Reset() { *m = TLSClientConfig{} }
func (*TLSClientConfig) ProtoMessage() {}
func (*TLSClientConfig) Descriptor() ([]byte, []int) {
- return fileDescriptor_030104ce3b95bcac, []int{132}
+ return fileDescriptor_030104ce3b95bcac, []int{144}
}
func (m *TLSClientConfig) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3762,6 +4099,34 @@ func (m *TLSClientConfig) XXX_DiscardUnknown() {
var xxx_messageInfo_TLSClientConfig proto.InternalMessageInfo
+func (m *TagFilter) Reset() { *m = TagFilter{} }
+func (*TagFilter) ProtoMessage() {}
+func (*TagFilter) Descriptor() ([]byte, []int) {
+ return fileDescriptor_030104ce3b95bcac, []int{145}
+}
+func (m *TagFilter) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *TagFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *TagFilter) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TagFilter.Merge(m, src)
+}
+func (m *TagFilter) XXX_Size() int {
+ return m.Size()
+}
+func (m *TagFilter) XXX_DiscardUnknown() {
+ xxx_messageInfo_TagFilter.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TagFilter proto.InternalMessageInfo
+
func init() {
proto.RegisterType((*AWSAuthConfig)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.AWSAuthConfig")
proto.RegisterType((*AppProject)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.AppProject")
@@ -3774,6 +4139,7 @@ func init() {
proto.RegisterType((*ApplicationDestination)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationDestination")
proto.RegisterType((*ApplicationList)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationList")
proto.RegisterType((*ApplicationMatchExpression)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationMatchExpression")
+ proto.RegisterType((*ApplicationPreservedFields)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationPreservedFields")
proto.RegisterType((*ApplicationSet)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSet")
proto.RegisterType((*ApplicationSetApplicationStatus)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetApplicationStatus")
proto.RegisterType((*ApplicationSetCondition)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetCondition")
@@ -3800,7 +4166,6 @@ func init() {
proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSourceKustomize.CommonLabelsEntry")
proto.RegisterType((*ApplicationSourcePlugin)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSourcePlugin")
proto.RegisterType((*ApplicationSourcePluginParameter)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSourcePluginParameter")
- proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSourcePluginParameter.MapEntry")
proto.RegisterType((*ApplicationSpec)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSpec")
proto.RegisterType((*ApplicationStatus)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationStatus")
proto.RegisterType((*ApplicationSummary)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSummary")
@@ -3808,6 +4173,8 @@ func init() {
proto.RegisterType((*ApplicationWatchEvent)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationWatchEvent")
proto.RegisterType((*Backoff)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Backoff")
proto.RegisterType((*BasicAuthBitbucketServer)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.BasicAuthBitbucketServer")
+ proto.RegisterType((*BearerTokenBitbucketCloud)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.BearerTokenBitbucketCloud")
+ proto.RegisterType((*ChartDetails)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ChartDetails")
proto.RegisterType((*Cluster)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Cluster")
proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Cluster.AnnotationsEntry")
proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Cluster.LabelsEntry")
@@ -3830,6 +4197,7 @@ func init() {
proto.RegisterType((*GitDirectoryGeneratorItem)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.GitDirectoryGeneratorItem")
proto.RegisterType((*GitFileGeneratorItem)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.GitFileGeneratorItem")
proto.RegisterType((*GitGenerator)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.GitGenerator")
+ proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.GitGenerator.ValuesEntry")
proto.RegisterType((*GnuPGPublicKey)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.GnuPGPublicKey")
proto.RegisterType((*GnuPGPublicKeyList)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.GnuPGPublicKeyList")
proto.RegisterType((*HealthStatus)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.HealthStatus")
@@ -3845,6 +4213,7 @@ func init() {
proto.RegisterType((*JsonnetVar)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.JsonnetVar")
proto.RegisterType((*KnownTypeField)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.KnownTypeField")
proto.RegisterType((*KustomizeOptions)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.KustomizeOptions")
+ proto.RegisterType((*KustomizeReplica)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.KustomizeReplica")
proto.RegisterType((*ListGenerator)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ListGenerator")
proto.RegisterType((*ManagedNamespaceMetadata)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ManagedNamespaceMetadata")
proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ManagedNamespaceMetadata.AnnotationsEntry")
@@ -3856,11 +4225,21 @@ func init() {
proto.RegisterType((*Operation)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.Operation")
proto.RegisterType((*OperationInitiator)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OperationInitiator")
proto.RegisterType((*OperationState)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OperationState")
+ proto.RegisterType((*OptionalArray)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OptionalArray")
+ proto.RegisterType((*OptionalMap)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OptionalMap")
+ proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OptionalMap.MapEntry")
proto.RegisterType((*OrphanedResourceKey)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OrphanedResourceKey")
proto.RegisterType((*OrphanedResourcesMonitorSettings)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OrphanedResourcesMonitorSettings")
proto.RegisterType((*OverrideIgnoreDiff)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.OverrideIgnoreDiff")
+ proto.RegisterType((*PluginConfigMapRef)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PluginConfigMapRef")
+ proto.RegisterType((*PluginGenerator)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PluginGenerator")
+ proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PluginGenerator.ValuesEntry")
+ proto.RegisterType((*PluginInput)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PluginInput")
+ proto.RegisterMapType((PluginParameters)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PluginInput.ParametersEntry")
proto.RegisterType((*ProjectRole)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ProjectRole")
proto.RegisterType((*PullRequestGenerator)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PullRequestGenerator")
+ proto.RegisterType((*PullRequestGeneratorAzureDevOps)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PullRequestGeneratorAzureDevOps")
+ proto.RegisterType((*PullRequestGeneratorBitbucket)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PullRequestGeneratorBitbucket")
proto.RegisterType((*PullRequestGeneratorBitbucketServer)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PullRequestGeneratorBitbucketServer")
proto.RegisterType((*PullRequestGeneratorFilter)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PullRequestGeneratorFilter")
proto.RegisterType((*PullRequestGeneratorGitLab)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.PullRequestGeneratorGitLab")
@@ -3891,6 +4270,8 @@ func init() {
proto.RegisterType((*RevisionHistory)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.RevisionHistory")
proto.RegisterType((*RevisionMetadata)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.RevisionMetadata")
proto.RegisterType((*SCMProviderGenerator)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGenerator")
+ proto.RegisterMapType((map[string]string)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGenerator.ValuesEntry")
+ proto.RegisterType((*SCMProviderGeneratorAWSCodeCommit)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGeneratorAWSCodeCommit")
proto.RegisterType((*SCMProviderGeneratorAzureDevOps)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGeneratorAzureDevOps")
proto.RegisterType((*SCMProviderGeneratorBitbucket)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGeneratorBitbucket")
proto.RegisterType((*SCMProviderGeneratorBitbucketServer)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SCMProviderGeneratorBitbucketServer")
@@ -3911,6 +4292,7 @@ func init() {
proto.RegisterType((*SyncStrategyHook)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncStrategyHook")
proto.RegisterType((*SyncWindow)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.SyncWindow")
proto.RegisterType((*TLSClientConfig)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.TLSClientConfig")
+ proto.RegisterType((*TagFilter)(nil), "gh.seave.top.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.TagFilter")
}
func init() {
@@ -3918,611 +4300,671 @@ func init() {
}
var fileDescriptor_030104ce3b95bcac = []byte{
- // 9659 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x24, 0xc7,
- 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0xdc, 0xa1, 0xef, 0x8e, 0x04, 0x4f, 0xe4, 0xe1,
- 0x6a, 0x58, 0xa6, 0xa9, 0x88, 0x04, 0xc2, 0x13, 0xa5, 0x30, 0xa6, 0x4d, 0x19, 0x0b, 0xdc, 0xe1,
- 0x70, 0x07, 0x1c, 0xc0, 0x06, 0xee, 0x4e, 0x22, 0x4d, 0x49, 0x83, 0xd9, 0xde, 0xc5, 0x1c, 0x76,
- 0x67, 0x86, 0x33, 0xb3, 0x38, 0x2c, 0x2d, 0xcb, 0x92, 0x2c, 0xd9, 0x4a, 0xf4, 0x41, 0x85, 0xfe,
- 0x11, 0xb9, 0x92, 0x38, 0x8a, 0xed, 0x72, 0xc5, 0x95, 0xb0, 0xe2, 0x54, 0x7e, 0xe4, 0xab, 0x52,
- 0x15, 0xdb, 0xf9, 0xc1, 0x94, 0x52, 0x15, 0x55, 0xc5, 0x65, 0x39, 0xb1, 0x03, 0x53, 0x97, 0x4a,
- 0x25, 0x95, 0xaa, 0x38, 0x95, 0x8f, 0x3f, 0xb9, 0xca, 0x8f, 0x54, 0x7f, 0xf7, 0xcc, 0xee, 0x1e,
- 0x76, 0x0f, 0x83, 0xbb, 0x93, 0x8a, 0xff, 0x76, 0xfb, 0xbd, 0x7e, 0xaf, 0xbb, 0xa7, 0xfb, 0xf5,
- 0x7b, 0xdd, 0xef, 0xbd, 0x86, 0xd5, 0x86, 0x97, 0xec, 0xb4, 0xb7, 0xe7, 0xdc, 0xa0, 0x35, 0xef,
- 0x44, 0x8d, 0x20, 0x8c, 0x82, 0x5b, 0xec, 0xc7, 0xf3, 0x6e, 0x6d, 0x7e, 0xef, 0xc2, 0x7c, 0xb8,
- 0xdb, 0x98, 0x77, 0x42, 0x2f, 0x9e, 0x77, 0xc2, 0xb0, 0xe9, 0xb9, 0x4e, 0xe2, 0x05, 0xfe, 0xfc,
- 0xde, 0x0b, 0x4e, 0x33, 0xdc, 0x71, 0x5e, 0x98, 0x6f, 0x10, 0x9f, 0x44, 0x4e, 0x42, 0x6a, 0x73,
- 0x61, 0x14, 0x24, 0x01, 0xfa, 0x69, 0x4d, 0x6d, 0x4e, 0x52, 0x63, 0x3f, 0x3e, 0xeb, 0xd6, 0xe6,
- 0xf6, 0x2e, 0xcc, 0x85, 0xbb, 0x8d, 0x39, 0x4a, 0x6d, 0xce, 0xa0, 0x36, 0x27, 0xa9, 0x9d, 0x7d,
- 0xde, 0x68, 0x4b, 0x23, 0x68, 0x04, 0xf3, 0x8c, 0xe8, 0x76, 0xbb, 0xce, 0xfe, 0xb1, 0x3f, 0xec,
- 0x17, 0x67, 0x76, 0xd6, 0xde, 0x7d, 0x29, 0x9e, 0xf3, 0x02, 0xda, 0xbc, 0x79, 0x37, 0x88, 0xc8,
- 0xfc, 0x5e, 0x57, 0x83, 0xce, 0x5e, 0xd6, 0x38, 0x64, 0x3f, 0x21, 0x7e, 0xec, 0x05, 0x7e, 0xfc,
- 0x3c, 0x6d, 0x02, 0x89, 0xf6, 0x48, 0x64, 0x76, 0xcf, 0x40, 0xe8, 0x45, 0xe9, 0x45, 0x4d, 0xa9,
- 0xe5, 0xb8, 0x3b, 0x9e, 0x4f, 0xa2, 0x8e, 0xae, 0xde, 0x22, 0x89, 0xd3, 0xab, 0xd6, 0x7c, 0xbf,
- 0x5a, 0x51, 0xdb, 0x4f, 0xbc, 0x16, 0xe9, 0xaa, 0xf0, 0x89, 0xc3, 0x2a, 0xc4, 0xee, 0x0e, 0x69,
- 0x39, 0x5d, 0xf5, 0x3e, 0xd6, 0xaf, 0x5e, 0x3b, 0xf1, 0x9a, 0xf3, 0x9e, 0x9f, 0xc4, 0x49, 0x94,
- 0xad, 0x64, 0xbf, 0x09, 0x93, 0x0b, 0x37, 0x37, 0x17, 0xda, 0xc9, 0xce, 0x62, 0xe0, 0xd7, 0xbd,
- 0x06, 0xfa, 0x38, 0x8c, 0xbb, 0xcd, 0x76, 0x9c, 0x90, 0xe8, 0x9a, 0xd3, 0x22, 0x33, 0xd6, 0x79,
- 0xeb, 0xd9, 0x4a, 0xf5, 0xd4, 0x7b, 0x07, 0xb3, 0x1f, 0xba, 0x73, 0x30, 0x3b, 0xbe, 0xa8, 0x41,
- 0xd8, 0xc4, 0x43, 0x1f, 0x81, 0xb1, 0x28, 0x68, 0x92, 0x05, 0x7c, 0x6d, 0xa6, 0xc0, 0xaa, 0x9c,
- 0x10, 0x55, 0xc6, 0x30, 0x2f, 0xc6, 0x12, 0x6e, 0xff, 0x51, 0x01, 0x60, 0x21, 0x0c, 0x37, 0xa2,
- 0xe0, 0x16, 0x71, 0x13, 0xf4, 0x39, 0x28, 0xd3, 0xa1, 0xab, 0x39, 0x89, 0xc3, 0xb8, 0x8d, 0x5f,
- 0xf8, 0x8b, 0x73, 0xbc, 0x27, 0x73, 0x66, 0x4f, 0xf4, 0xc4, 0xa1, 0xd8, 0x73, 0x7b, 0x2f, 0xcc,
- 0xad, 0x6f, 0xd3, 0xfa, 0x6b, 0x24, 0x71, 0xaa, 0x48, 0x30, 0x03, 0x5d, 0x86, 0x15, 0x55, 0xe4,
- 0xc3, 0x48, 0x1c, 0x12, 0x97, 0x35, 0x6c, 0xfc, 0xc2, 0xea, 0xdc, 0x51, 0x66, 0xe8, 0x9c, 0x6e,
- 0xf9, 0x66, 0x48, 0xdc, 0xea, 0x84, 0xe0, 0x3c, 0x42, 0xff, 0x61, 0xc6, 0x07, 0xed, 0xc1, 0x68,
- 0x9c, 0x38, 0x49, 0x3b, 0x9e, 0x29, 0x32, 0x8e, 0xd7, 0x72, 0xe3, 0xc8, 0xa8, 0x56, 0xa7, 0x04,
- 0xcf, 0x51, 0xfe, 0x1f, 0x0b, 0x6e, 0xf6, 0x7f, 0xb4, 0x60, 0x4a, 0x23, 0xaf, 0x7a, 0x71, 0x82,
- 0x7e, 0xae, 0x6b, 0x70, 0xe7, 0x06, 0x1b, 0x5c, 0x5a, 0x9b, 0x0d, 0xed, 0x49, 0xc1, 0xac, 0x2c,
- 0x4b, 0x8c, 0x81, 0x6d, 0x41, 0xc9, 0x4b, 0x48, 0x2b, 0x9e, 0x29, 0x9c, 0x2f, 0x3e, 0x3b, 0x7e,
- 0xe1, 0x72, 0x5e, 0xfd, 0xac, 0x4e, 0x0a, 0xa6, 0xa5, 0x15, 0x4a, 0x1e, 0x73, 0x2e, 0xf6, 0xef,
- 0x4c, 0x98, 0xfd, 0xa3, 0x03, 0x8e, 0x5e, 0x80, 0xf1, 0x38, 0x68, 0x47, 0x2e, 0xc1, 0x24, 0x0c,
- 0xe2, 0x19, 0xeb, 0x7c, 0x91, 0x4e, 0x3d, 0x3a, 0x53, 0x37, 0x75, 0x31, 0x36, 0x71, 0xd0, 0xb7,
- 0x2c, 0x98, 0xa8, 0x91, 0x38, 0xf1, 0x7c, 0xc6, 0x5f, 0x36, 0x7e, 0xeb, 0xc8, 0x8d, 0x97, 0x85,
- 0x4b, 0x9a, 0x78, 0xf5, 0xb4, 0xe8, 0xc8, 0x84, 0x51, 0x18, 0xe3, 0x14, 0x7f, 0xba, 0xe2, 0x6a,
- 0x24, 0x76, 0x23, 0x2f, 0xa4, 0xff, 0xd9, 0x9c, 0x31, 0x56, 0xdc, 0x92, 0x06, 0x61, 0x13, 0x0f,
- 0xf9, 0x50, 0xa2, 0x2b, 0x2a, 0x9e, 0x19, 0x61, 0xed, 0x5f, 0x39, 0x5a, 0xfb, 0xc5, 0xa0, 0xd2,
- 0xc5, 0xaa, 0x47, 0x9f, 0xfe, 0x8b, 0x31, 0x67, 0x83, 0xbe, 0x69, 0xc1, 0x8c, 0x58, 0xf1, 0x98,
- 0xf0, 0x01, 0xbd, 0xb9, 0xe3, 0x25, 0xa4, 0xe9, 0xc5, 0xc9, 0x4c, 0x89, 0xb5, 0x61, 0x7e, 0xb0,
- 0xb9, 0xb5, 0x1c, 0x05, 0xed, 0xf0, 0xaa, 0xe7, 0xd7, 0xaa, 0xe7, 0x05, 0xa7, 0x99, 0xc5, 0x3e,
- 0x84, 0x71, 0x5f, 0x96, 0xe8, 0x57, 0x2d, 0x38, 0xeb, 0x3b, 0x2d, 0x12, 0x87, 0x0e, 0xfd, 0xb4,
- 0x1c, 0x5c, 0x6d, 0x3a, 0xee, 0x2e, 0x6b, 0xd1, 0xe8, 0xfd, 0xb5, 0xc8, 0x16, 0x2d, 0x3a, 0x7b,
- 0xad, 0x2f, 0x69, 0x7c, 0x0f, 0xb6, 0xe8, 0x37, 0x2d, 0x98, 0x0e, 0xa2, 0x70, 0xc7, 0xf1, 0x49,
- 0x4d, 0x42, 0xe3, 0x99, 0x31, 0xb6, 0xf4, 0x3e, 0x73, 0xb4, 0x4f, 0xb4, 0x9e, 0x25, 0xbb, 0x16,
- 0xf8, 0x5e, 0x12, 0x44, 0x9b, 0x24, 0x49, 0x3c, 0xbf, 0x11, 0x57, 0xcf, 0xdc, 0x39, 0x98, 0x9d,
- 0xee, 0xc2, 0xc2, 0xdd, 0xed, 0x41, 0x3f, 0x0f, 0xe3, 0x71, 0xc7, 0x77, 0x6f, 0x7a, 0x7e, 0x2d,
- 0xb8, 0x1d, 0xcf, 0x94, 0xf3, 0x58, 0xbe, 0x9b, 0x8a, 0xa0, 0x58, 0x80, 0x9a, 0x01, 0x36, 0xb9,
- 0xf5, 0xfe, 0x70, 0x7a, 0x2a, 0x55, 0xf2, 0xfe, 0x70, 0x7a, 0x32, 0xdd, 0x83, 0x2d, 0xfa, 0x15,
- 0x0b, 0x26, 0x63, 0xaf, 0xe1, 0x3b, 0x49, 0x3b, 0x22, 0x57, 0x49, 0x27, 0x9e, 0x01, 0xd6, 0x90,
- 0x2b, 0x47, 0x1c, 0x15, 0x83, 0x64, 0xf5, 0x8c, 0x68, 0xe3, 0xa4, 0x59, 0x1a, 0xe3, 0x34, 0xdf,
- 0x5e, 0x0b, 0x4d, 0x4f, 0xeb, 0xf1, 0x7c, 0x17, 0x9a, 0x9e, 0xd4, 0x7d, 0x59, 0xa2, 0x9f, 0x85,
- 0x93, 0xbc, 0x48, 0x8d, 0x6c, 0x3c, 0x33, 0xc1, 0x04, 0xed, 0xe9, 0x3b, 0x07, 0xb3, 0x27, 0x37,
- 0x33, 0x30, 0xdc, 0x85, 0x8d, 0xde, 0x84, 0xd9, 0x90, 0x44, 0x2d, 0x2f, 0x59, 0xf7, 0x9b, 0x1d,
- 0x29, 0xbe, 0xdd, 0x20, 0x24, 0x35, 0xd1, 0x9c, 0x78, 0x66, 0xf2, 0xbc, 0xf5, 0x6c, 0xb9, 0xfa,
- 0x93, 0xa2, 0x99, 0xb3, 0x1b, 0xf7, 0x46, 0xc7, 0x87, 0xd1, 0xb3, 0xff, 0x75, 0x01, 0x4e, 0x66,
- 0x37, 0x4e, 0xf4, 0xdb, 0x16, 0x9c, 0xb8, 0x75, 0x3b, 0xd9, 0x0a, 0x76, 0x89, 0x1f, 0x57, 0x3b,
- 0x54, 0xbc, 0xb1, 0x2d, 0x63, 0xfc, 0x82, 0x9b, 0xef, 0x16, 0x3d, 0x77, 0x25, 0xcd, 0xe5, 0xa2,
- 0x9f, 0x44, 0x9d, 0xea, 0xe3, 0xa2, 0x77, 0x27, 0xae, 0xdc, 0xdc, 0x32, 0xa1, 0x38, 0xdb, 0xa8,
- 0xb3, 0x5f, 0xb7, 0xe0, 0x74, 0x2f, 0x12, 0xe8, 0x24, 0x14, 0x77, 0x49, 0x87, 0x6b, 0x65, 0x98,
- 0xfe, 0x44, 0x6f, 0x40, 0x69, 0xcf, 0x69, 0xb6, 0x89, 0xd0, 0x6e, 0x96, 0x8f, 0xd6, 0x11, 0xd5,
- 0x32, 0xcc, 0xa9, 0xfe, 0x54, 0xe1, 0x25, 0xcb, 0xfe, 0xb7, 0x45, 0x18, 0x37, 0xf6, 0xb7, 0x07,
- 0xa0, 0xb1, 0x05, 0x29, 0x8d, 0x6d, 0x2d, 0xb7, 0xad, 0xb9, 0xaf, 0xca, 0x76, 0x3b, 0xa3, 0xb2,
- 0xad, 0xe7, 0xc7, 0xf2, 0x9e, 0x3a, 0x1b, 0x4a, 0xa0, 0x12, 0x84, 0x54, 0x23, 0xa7, 0x5b, 0xff,
- 0x48, 0x1e, 0x9f, 0x70, 0x5d, 0x92, 0xab, 0x4e, 0xde, 0x39, 0x98, 0xad, 0xa8, 0xbf, 0x58, 0x33,
- 0xb2, 0x7f, 0x60, 0xc1, 0x69, 0xa3, 0x8d, 0x8b, 0x81, 0x5f, 0xf3, 0xd8, 0xa7, 0x3d, 0x0f, 0x23,
- 0x49, 0x27, 0x94, 0x6a, 0xbf, 0x1a, 0xa9, 0xad, 0x4e, 0x48, 0x30, 0x83, 0x50, 0x45, 0xbf, 0x45,
- 0xe2, 0xd8, 0x69, 0x90, 0xac, 0xa2, 0xbf, 0xc6, 0x8b, 0xb1, 0x84, 0xa3, 0x08, 0x50, 0xd3, 0x89,
- 0x93, 0xad, 0xc8, 0xf1, 0x63, 0x46, 0x7e, 0xcb, 0x6b, 0x11, 0x31, 0xc0, 0x7f, 0x61, 0xb0, 0x19,
- 0x43, 0x6b, 0x54, 0x1f, 0xbb, 0x73, 0x30, 0x8b, 0x56, 0xbb, 0x28, 0xe1, 0x1e, 0xd4, 0xed, 0x5f,
- 0xb5, 0xe0, 0xb1, 0xde, 0xba, 0x18, 0x7a, 0x06, 0x46, 0xb9, 0xc9, 0x27, 0x7a, 0xa7, 0x3f, 0x09,
- 0x2b, 0xc5, 0x02, 0x8a, 0xe6, 0xa1, 0xa2, 0xf6, 0x09, 0xd1, 0xc7, 0x69, 0x81, 0x5a, 0xd1, 0x9b,
- 0x8b, 0xc6, 0xa1, 0x83, 0x46, 0xff, 0x08, 0xcd, 0x4d, 0x0d, 0x1a, 0x33, 0x92, 0x18, 0xc4, 0xfe,
- 0x33, 0x0b, 0x4e, 0x18, 0xad, 0x7a, 0x00, 0xaa, 0xb9, 0x9f, 0x56, 0xcd, 0x57, 0x72, 0x9b, 0xcf,
- 0x7d, 0x74, 0xf3, 0x6f, 0x5a, 0x70, 0xd6, 0xc0, 0x5a, 0x73, 0x12, 0x77, 0xe7, 0xe2, 0x7e, 0x18,
- 0x91, 0x98, 0x9a, 0xd3, 0xe8, 0x29, 0x43, 0x6e, 0x55, 0xc7, 0x05, 0x85, 0xe2, 0x55, 0xd2, 0xe1,
- 0x42, 0xec, 0x39, 0x28, 0xf3, 0xc9, 0x19, 0x44, 0x62, 0xc4, 0x55, 0xdf, 0xd6, 0x45, 0x39, 0x56,
- 0x18, 0xc8, 0x86, 0x51, 0x26, 0x9c, 0xe8, 0x62, 0xa5, 0xdb, 0x10, 0xd0, 0x8f, 0x78, 0x83, 0x95,
- 0x60, 0x01, 0xb1, 0xef, 0x14, 0x98, 0xad, 0xa0, 0x56, 0x21, 0x79, 0x10, 0x86, 0x66, 0x94, 0x12,
- 0x5b, 0x1b, 0xf9, 0xc9, 0x10, 0xd2, 0xdf, 0xd8, 0x7c, 0x2b, 0x23, 0xb9, 0x70, 0xae, 0x5c, 0xef,
- 0x6d, 0x70, 0xfe, 0x5e, 0x01, 0x66, 0xd3, 0x15, 0xba, 0x04, 0x1f, 0xb5, 0x6e, 0x0c, 0x46, 0xd9,
- 0xf3, 0x04, 0x03, 0x1f, 0x9b, 0x78, 0x7d, 0x64, 0x47, 0xe1, 0x38, 0x65, 0x87, 0x29, 0xda, 0x8a,
- 0x87, 0x88, 0xb6, 0x67, 0xd4, 0xa8, 0x8f, 0x64, 0x64, 0x49, 0x5a, 0xbc, 0x9f, 0x87, 0x91, 0x38,
- 0x21, 0xe1, 0x4c, 0x29, 0x2d, 0x1a, 0x36, 0x13, 0x12, 0x62, 0x06, 0xb1, 0xff, 0x5b, 0x01, 0x1e,
- 0x4f, 0x8f, 0xa1, 0x96, 0xc6, 0x9f, 0x4c, 0x49, 0xe3, 0x8f, 0x9a, 0xd2, 0xf8, 0xee, 0xc1, 0xec,
- 0x87, 0xfb, 0x54, 0xfb, 0x91, 0x11, 0xd6, 0x68, 0x39, 0x33, 0x8a, 0xf3, 0xe9, 0x51, 0xbc, 0x7b,
- 0x30, 0xfb, 0x54, 0x9f, 0x3e, 0x66, 0x86, 0xf9, 0x19, 0x18, 0x8d, 0x88, 0x13, 0x07, 0xbe, 0x18,
- 0x68, 0xf5, 0x39, 0x30, 0x2b, 0xc5, 0x02, 0x6a, 0xff, 0x59, 0x39, 0x3b, 0xd8, 0xcb, 0xfc, 0x3c,
- 0x2c, 0x88, 0x90, 0x07, 0x23, 0x4c, 0xc3, 0xe6, 0xa2, 0xe1, 0xea, 0xd1, 0x96, 0x11, 0x95, 0xc8,
- 0x8a, 0x74, 0xb5, 0x4c, 0xbf, 0x1a, 0x2d, 0xc2, 0x8c, 0x05, 0xda, 0x87, 0xb2, 0x2b, 0x15, 0xdf,
- 0x42, 0x1e, 0x47, 0x44, 0x42, 0xed, 0xd5, 0x1c, 0x27, 0xa8, 0xe8, 0x54, 0xda, 0xb2, 0xe2, 0x86,
- 0x08, 0x14, 0x1b, 0x5e, 0x22, 0x3e, 0xeb, 0x11, 0x4d, 0x9b, 0x65, 0xcf, 0xe8, 0xe2, 0x18, 0x95,
- 0xe7, 0xcb, 0x5e, 0x82, 0x29, 0x7d, 0xf4, 0x55, 0x0b, 0xc6, 0x63, 0xb7, 0xb5, 0x11, 0x05, 0x7b,
- 0x5e, 0x8d, 0x44, 0x42, 0xb1, 0x39, 0xa2, 0x68, 0xda, 0x5c, 0x5c, 0x93, 0x04, 0x35, 0x5f, 0x6e,
- 0x6a, 0x6a, 0x08, 0x36, 0xf9, 0x52, 0x85, 0xff, 0x71, 0xd1, 0xf7, 0x25, 0xe2, 0x7a, 0x74, 0x2b,
- 0x92, 0xf6, 0x0d, 0x9b, 0x29, 0x47, 0x56, 0xf4, 0x96, 0xda, 0xee, 0x2e, 0x5d, 0x6f, 0xba, 0x41,
- 0x1f, 0xbe, 0x73, 0x30, 0xfb, 0xf8, 0x62, 0x6f, 0x9e, 0xb8, 0x5f, 0x63, 0xd8, 0x80, 0x85, 0xed,
- 0x66, 0x13, 0x93, 0x37, 0xdb, 0x84, 0x9d, 0x5e, 0xe4, 0x30, 0x60, 0x1b, 0x9a, 0x60, 0x66, 0xc0,
- 0x0c, 0x08, 0x36, 0xf9, 0xa2, 0x37, 0x61, 0xb4, 0xe5, 0x24, 0x91, 0xb7, 0x2f, 0x8e, 0x2c, 0x8e,
- 0xa8, 0x7a, 0xaf, 0x31, 0x5a, 0x9a, 0x39, 0xdb, 0xa9, 0x79, 0x21, 0x16, 0x8c, 0x50, 0x0b, 0x4a,
- 0x2d, 0x12, 0x35, 0xc8, 0x4c, 0x39, 0x8f, 0xe3, 0xd9, 0x35, 0x4a, 0x4a, 0x33, 0xac, 0x50, 0x45,
- 0x85, 0x95, 0x61, 0xce, 0x05, 0xbd, 0x01, 0xe5, 0x98, 0x34, 0x89, 0x4b, 0x55, 0x8d, 0x0a, 0xe3,
- 0xf8, 0xb1, 0x01, 0xd5, 0x2e, 0x67, 0x9b, 0x34, 0x37, 0x45, 0x55, 0xbe, 0xc0, 0xe4, 0x3f, 0xac,
- 0x48, 0xda, 0xff, 0xd9, 0x02, 0x94, 0x96, 0x30, 0x0f, 0x40, 0xd9, 0x7b, 0x33, 0xad, 0xec, 0xad,
- 0xe6, 0xa9, 0x02, 0xf4, 0xd1, 0xf7, 0xde, 0x2b, 0x43, 0x46, 0x36, 0x5f, 0x23, 0x71, 0x42, 0x6a,
- 0x1f, 0xc8, 0xd3, 0x0f, 0xe4, 0xe9, 0x07, 0xf2, 0x54, 0xc9, 0xd3, 0xed, 0x8c, 0x3c, 0x7d, 0xc5,
- 0x58, 0xf5, 0xfa, 0xb2, 0xf1, 0xb3, 0xea, 0x36, 0xd2, 0x6c, 0x81, 0x81, 0x40, 0x25, 0xc1, 0x95,
- 0xcd, 0xf5, 0x6b, 0x3d, 0x05, 0xe8, 0x67, 0xd3, 0x02, 0xf4, 0xa8, 0x2c, 0x1e, 0xb8, 0xc8, 0xfc,
- 0x1b, 0x05, 0x78, 0x22, 0x2d, 0x4a, 0x70, 0xd0, 0x6c, 0x06, 0xed, 0x84, 0x6a, 0xc9, 0xe8, 0xd7,
- 0x2d, 0x38, 0xd9, 0x4a, 0x5b, 0x93, 0xb1, 0x38, 0xb4, 0xfb, 0x54, 0x6e, 0x72, 0x2e, 0x63, 0xae,
- 0x56, 0x67, 0x84, 0xcc, 0x3b, 0x99, 0x01, 0xc4, 0xb8, 0xab, 0x2d, 0xe8, 0x0d, 0xa8, 0xb4, 0x9c,
- 0xfd, 0xeb, 0x61, 0xcd, 0x49, 0xa4, 0x81, 0xd2, 0xdf, 0xae, 0x6c, 0x27, 0x5e, 0x73, 0x8e, 0x5f,
- 0xc5, 0xce, 0xad, 0xf8, 0xc9, 0x7a, 0xb4, 0x99, 0x44, 0x9e, 0xdf, 0xe0, 0x47, 0x35, 0x6b, 0x92,
- 0x0c, 0xd6, 0x14, 0xed, 0xbf, 0x65, 0x65, 0x05, 0xad, 0x1a, 0x9d, 0xc8, 0x49, 0x48, 0xa3, 0x83,
- 0x3e, 0x0f, 0x25, 0x6a, 0x49, 0xc8, 0x51, 0xb9, 0x99, 0xa7, 0xf4, 0x37, 0xbe, 0x84, 0xde, 0x08,
- 0xe8, 0xbf, 0x18, 0x73, 0xa6, 0xf6, 0x9d, 0x91, 0xec, 0x86, 0xc7, 0x2e, 0xe6, 0x2e, 0x00, 0x34,
- 0x82, 0x2d, 0xd2, 0x0a, 0x9b, 0x74, 0x58, 0x2c, 0x76, 0xba, 0xab, 0x8c, 0xe7, 0x65, 0x05, 0xc1,
- 0x06, 0x16, 0xfa, 0x2b, 0x16, 0x40, 0x43, 0x2e, 0x2c, 0xb9, 0x99, 0x5d, 0xcf, 0xb3, 0x3b, 0x7a,
- 0xd9, 0xea, 0xb6, 0x28, 0x86, 0xd8, 0x60, 0x8e, 0xbe, 0x6c, 0x41, 0x39, 0x91, 0xcd, 0xe7, 0xe2,
- 0x7d, 0x2b, 0xcf, 0x96, 0xc8, 0x4e, 0xeb, 0x7d, 0x5d, 0x0d, 0x89, 0xe2, 0x8b, 0x7e, 0xd9, 0x02,
- 0x88, 0x3b, 0xbe, 0xbb, 0x11, 0x34, 0x3d, 0xb7, 0x23, 0xa4, 0xfe, 0x8d, 0x5c, 0x0d, 0x7c, 0x45,
- 0xbd, 0x3a, 0x45, 0x47, 0x43, 0xff, 0xc7, 0x06, 0x67, 0xf4, 0x05, 0x28, 0xc7, 0x62, 0xba, 0x09,
- 0x39, 0xbf, 0x95, 0xef, 0x31, 0x03, 0xa7, 0x2d, 0x44, 0x84, 0xf8, 0x87, 0x15, 0x4f, 0xfb, 0x7b,
- 0x85, 0xd4, 0x79, 0xa5, 0x3a, 0x99, 0x60, 0x53, 0xc6, 0x95, 0x46, 0xa1, 0x5c, 0x01, 0xb9, 0x4e,
- 0x19, 0x65, 0x72, 0xea, 0x29, 0xa3, 0x8a, 0x62, 0x6c, 0x30, 0xa7, 0x9b, 0xe3, 0xb4, 0x93, 0x3d,
- 0xff, 0x10, 0xb3, 0xf8, 0x8d, 0x3c, 0x9b, 0xd4, 0x7d, 0xba, 0xfc, 0x84, 0x68, 0xda, 0x74, 0x17,
- 0x08, 0x77, 0x37, 0xc9, 0xfe, 0x5e, 0xfa, 0x8c, 0xd4, 0xf8, 0x00, 0x03, 0x9c, 0xff, 0x7e, 0xcb,
- 0x82, 0xf1, 0x28, 0x68, 0x36, 0x3d, 0xbf, 0x41, 0x27, 0x8b, 0x90, 0x78, 0xaf, 0x1f, 0x8b, 0xd0,
- 0x11, 0xb3, 0x82, 0x6d, 0xb1, 0x58, 0xf3, 0xc4, 0x66, 0x03, 0xec, 0x2f, 0x59, 0x30, 0xd3, 0x6f,
- 0x52, 0x23, 0x02, 0x1f, 0xa6, 0x92, 0x9a, 0x6e, 0x7c, 0xea, 0xf6, 0x73, 0xdd, 0x5f, 0x22, 0x4d,
- 0xa2, 0x4e, 0xa3, 0xca, 0xd5, 0xa7, 0x45, 0x37, 0x3f, 0xbc, 0xd1, 0x1f, 0x15, 0xdf, 0x8b, 0x8e,
- 0xfd, 0x5b, 0x85, 0xec, 0x88, 0x2a, 0xa1, 0xf6, 0x1d, 0xab, 0x4b, 0xf5, 0xff, 0xd4, 0x71, 0x08,
- 0x12, 0x66, 0x24, 0xa8, 0x4b, 0xd0, 0xfe, 0x38, 0x0f, 0xf1, 0x96, 0xc5, 0xfe, 0x37, 0x23, 0x70,
- 0x8f, 0x96, 0xa9, 0x73, 0x74, 0xab, 0xdf, 0x39, 0xfa, 0xf0, 0x47, 0xf3, 0xdf, 0xb0, 0x60, 0xb4,
- 0x49, 0xb5, 0x10, 0x7e, 0x56, 0x3c, 0x7e, 0xa1, 0x76, 0x5c, 0x63, 0xcf, 0x95, 0x9d, 0x98, 0xdf,
- 0xf4, 0xa9, 0xf3, 0x27, 0x5e, 0x88, 0x45, 0x1b, 0xd0, 0x77, 0x2d, 0x18, 0x77, 0x7c, 0x3f, 0x48,
- 0x84, 0xeb, 0x09, 0x77, 0xdd, 0xf0, 0x8e, 0xad, 0x4d, 0x0b, 0x9a, 0x17, 0x6f, 0x98, 0x3e, 0x78,
- 0xd5, 0x10, 0x6c, 0x36, 0x09, 0xcd, 0x01, 0xd4, 0x3d, 0xdf, 0x69, 0x7a, 0x6f, 0x51, 0x6b, 0xaa,
- 0xc4, 0x0e, 0xd8, 0xd9, 0xd6, 0x70, 0x49, 0x95, 0x62, 0x03, 0xe3, 0xec, 0x5f, 0x86, 0x71, 0xa3,
- 0xe7, 0x3d, 0x2e, 0x28, 0x4f, 0x9b, 0x17, 0x94, 0x15, 0xe3, 0x5e, 0xf1, 0xec, 0x2b, 0x70, 0x32,
- 0xdb, 0xc0, 0x61, 0xea, 0xdb, 0xbf, 0x3d, 0x9a, 0x3d, 0x7e, 0xde, 0x22, 0x51, 0x8b, 0x36, 0xed,
- 0x03, 0x2b, 0xf4, 0x03, 0x2b, 0xf4, 0x03, 0x2b, 0x54, 0xfe, 0xb1, 0xef, 0x94, 0x20, 0xa5, 0x19,
- 0xf0, 0xd6, 0x7d, 0x04, 0xc6, 0x22, 0x12, 0x06, 0xd7, 0xf1, 0xaa, 0x90, 0xb8, 0xda, 0x65, 0x93,
- 0x17, 0x63, 0x09, 0xa7, 0x92, 0x39, 0x74, 0x92, 0x1d, 0x21, 0x72, 0x95, 0x64, 0xde, 0x70, 0x92,
- 0x1d, 0xcc, 0x20, 0xe8, 0x15, 0x98, 0x4a, 0x9c, 0xa8, 0x41, 0x12, 0x4c, 0xf6, 0xd8, 0x20, 0x88,
- 0x23, 0xfd, 0xc7, 0x04, 0xee, 0xd4, 0x56, 0x0a, 0x8a, 0x33, 0xd8, 0xe8, 0x4d, 0x18, 0xd9, 0x21,
- 0xcd, 0x96, 0x30, 0x93, 0x37, 0xf3, 0x93, 0x88, 0xac, 0xaf, 0x97, 0x49, 0xb3, 0xc5, 0xd7, 0x2b,
- 0xfd, 0x85, 0x19, 0x2b, 0xfa, 0x75, 0x2a, 0xbb, 0xed, 0x38, 0x09, 0x5a, 0xde, 0x5b, 0xd2, 0x78,
- 0xfe, 0x54, 0xce, 0x8c, 0xaf, 0x4a, 0xfa, 0xdc, 0xc2, 0x53, 0x7f, 0xb1, 0xe6, 0xcc, 0xda, 0x51,
- 0xf3, 0x22, 0x66, 0x0c, 0x77, 0x66, 0xe0, 0x58, 0xda, 0xb1, 0x24, 0xe9, 0xf3, 0x76, 0xa8, 0xbf,
- 0x58, 0x73, 0x46, 0x1d, 0x18, 0x0d, 0x9b, 0xed, 0x86, 0xe7, 0xcf, 0x8c, 0xb3, 0x36, 0x5c, 0xcf,
- 0xb9, 0x0d, 0x1b, 0x8c, 0x38, 0x3f, 0xc2, 0xe0, 0xbf, 0xb1, 0x60, 0x88, 0x9e, 0x86, 0x92, 0xbb,
- 0xe3, 0x44, 0xc9, 0xcc, 0x04, 0x9b, 0x34, 0xca, 0xd2, 0x5c, 0xa4, 0x85, 0x98, 0xc3, 0xd0, 0x53,
- 0x50, 0x8c, 0x48, 0x9d, 0x79, 0x0a, 0x19, 0x77, 0xc8, 0x98, 0xd4, 0x31, 0x2d, 0xb7, 0xff, 0x4e,
- 0x21, 0xad, 0x5c, 0xa4, 0xfb, 0xcd, 0x67, 0xbb, 0xdb, 0x8e, 0x62, 0x69, 0x8d, 0x1a, 0xb3, 0x9d,
- 0x15, 0x63, 0x09, 0x47, 0x5f, 0xb2, 0x60, 0xec, 0x56, 0x1c, 0xf8, 0x3e, 0x49, 0x84, 0x20, 0xbf,
- 0x91, 0xf3, 0x50, 0x5c, 0xe1, 0xd4, 0x75, 0x1b, 0x44, 0x01, 0x96, 0x7c, 0x69, 0x73, 0xc9, 0xbe,
- 0xdb, 0x6c, 0xd7, 0xba, 0xee, 0x22, 0x2f, 0xf2, 0x62, 0x2c, 0xe1, 0x14, 0xd5, 0xf3, 0x39, 0xea,
- 0x48, 0x1a, 0x75, 0xc5, 0x17, 0xa8, 0x02, 0x6e, 0xff, 0x6e, 0x09, 0xce, 0xf4, 0x5c, 0x1c, 0x74,
- 0xdb, 0x67, 0x1b, 0xeb, 0x25, 0xaf, 0x49, 0xa4, 0x1f, 0x2d, 0xdb, 0xf6, 0x6f, 0xa8, 0x52, 0x6c,
- 0x60, 0xa0, 0x5f, 0x04, 0x08, 0x9d, 0xc8, 0x69, 0x11, 0xb1, 0xdd, 0x15, 0x8f, 0xbe, 0xbb, 0xd2,
- 0x76, 0x6c, 0x48, 0x9a, 0xda, 0xda, 0x52, 0x45, 0x31, 0x36, 0x58, 0xa2, 0x8f, 0xc3, 0x78, 0x44,
- 0x9a, 0xc4, 0x89, 0x99, 0xa3, 0x59, 0xd6, 0x6b, 0x16, 0x6b, 0x10, 0x36, 0xf1, 0xd0, 0x33, 0xca,
- 0x77, 0x20, 0x73, 0x71, 0x9b, 0xf6, 0x1f, 0x40, 0x6f, 0x5b, 0x30, 0x55, 0xf7, 0x9a, 0x44, 0x73,
- 0x17, 0x3e, 0xae, 0xeb, 0x47, 0xef, 0xe4, 0x25, 0x93, 0xae, 0x96, 0x90, 0xa9, 0xe2, 0x18, 0x67,
- 0xd8, 0xd3, 0xcf, 0xbc, 0x47, 0x22, 0x26, 0x5a, 0x47, 0xd3, 0x9f, 0xf9, 0x06, 0x2f, 0xc6, 0x12,
- 0x8e, 0x16, 0xe0, 0x44, 0xe8, 0xc4, 0xf1, 0x62, 0x44, 0x6a, 0xc4, 0x4f, 0x3c, 0xa7, 0xc9, 0x3d,
- 0x50, 0xcb, 0xda, 0x03, 0x6d, 0x23, 0x0d, 0xc6, 0x59, 0x7c, 0xf4, 0x69, 0x78, 0xdc, 0x6b, 0xf8,
- 0x41, 0x44, 0xd6, 0xbc, 0x38, 0xf6, 0xfc, 0x86, 0x9e, 0x06, 0x4c, 0x52, 0x96, 0xab, 0xb3, 0x82,
- 0xd4, 0xe3, 0x2b, 0xbd, 0xd1, 0x70, 0xbf, 0xfa, 0xe8, 0x39, 0x28, 0xc7, 0xbb, 0x5e, 0xb8, 0x18,
- 0xd5, 0x62, 0x76, 0x9c, 0x58, 0xd6, 0x67, 0x20, 0x9b, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0xd7, 0x0a,
- 0x69, 0xf3, 0xce, 0x5c, 0x3f, 0x28, 0xa6, 0xab, 0x24, 0xb9, 0xe1, 0x44, 0xd2, 0xf4, 0x3f, 0xa2,
- 0x0f, 0xab, 0xa0, 0x7b, 0xc3, 0x89, 0xcc, 0xf5, 0xc6, 0x18, 0x60, 0xc9, 0x09, 0xdd, 0x82, 0x91,
- 0xa4, 0xe9, 0xe4, 0xe4, 0xf4, 0x6e, 0x70, 0xd4, 0xd6, 0xf6, 0xea, 0x42, 0x8c, 0x19, 0x0f, 0xf4,
- 0x24, 0x55, 0x5f, 0xb7, 0xa5, 0xa3, 0x8b, 0xd0, 0x38, 0xb7, 0x63, 0xcc, 0x4a, 0xed, 0xff, 0x31,
- 0xda, 0x43, 0xe4, 0xa9, 0x3d, 0x06, 0x5d, 0x00, 0xa0, 0x96, 0xd0, 0x46, 0x44, 0xea, 0xde, 0xbe,
- 0xd8, 0xe3, 0xd5, 0xb2, 0xba, 0xa6, 0x20, 0xd8, 0xc0, 0x92, 0x75, 0x36, 0xdb, 0x75, 0x5a, 0xa7,
- 0xd0, 0x5d, 0x87, 0x43, 0xb0, 0x81, 0x85, 0x5e, 0x84, 0x51, 0xaf, 0xe5, 0x34, 0x94, 0x3f, 0xce,
- 0x93, 0x74, 0x3d, 0xad, 0xb0, 0x92, 0xbb, 0x07, 0xb3, 0x53, 0xaa, 0x41, 0xac, 0x08, 0x0b, 0x5c,
- 0xf4, 0x5b, 0x16, 0x4c, 0xb8, 0x41, 0xab, 0x15, 0xf8, 0xdc, 0x7e, 0x10, 0xc6, 0xd0, 0xad, 0xe3,
- 0xda, 0x81, 0xe7, 0x16, 0x0d, 0x66, 0xdc, 0x1a, 0x52, 0xde, 0xf9, 0x26, 0x08, 0xa7, 0x5a, 0x65,
- 0x2e, 0xbb, 0xd2, 0x21, 0xcb, 0xee, 0x9f, 0x58, 0x30, 0xcd, 0xeb, 0x1a, 0x66, 0x8d, 0x70, 0x44,
- 0x0f, 0x8e, 0xb9, 0x5b, 0x5d, 0x96, 0x9e, 0x3a, 0x12, 0xea, 0x82, 0xe3, 0xee, 0x46, 0xa2, 0x65,
- 0x98, 0xae, 0x07, 0x91, 0x4b, 0xcc, 0x81, 0x10, 0x32, 0x43, 0x11, 0xba, 0x94, 0x45, 0xc0, 0xdd,
- 0x75, 0xd0, 0x0d, 0x78, 0xcc, 0x28, 0x34, 0xc7, 0x81, 0x8b, 0x8d, 0x73, 0x82, 0xda, 0x63, 0x97,
- 0x7a, 0x62, 0xe1, 0x3e, 0xb5, 0xcf, 0x7e, 0x12, 0xa6, 0xbb, 0xbe, 0xdf, 0x50, 0xc6, 0xe6, 0x12,
- 0x3c, 0xd6, 0x7b, 0xa4, 0x86, 0x32, 0x39, 0xff, 0x51, 0xc6, 0x5b, 0xc7, 0x50, 0x6c, 0x06, 0x38,
- 0xbe, 0x70, 0xa0, 0x48, 0xfc, 0x3d, 0x21, 0x38, 0x2e, 0x1d, 0x6d, 0x46, 0x5c, 0xf4, 0xf7, 0xf8,
- 0x87, 0x66, 0x36, 0xda, 0x45, 0x7f, 0x0f, 0x53, 0xda, 0xe8, 0x1d, 0x2b, 0xb5, 0x31, 0xf3, 0x43,
- 0x8f, 0xcf, 0x1c, 0x8b, 0x26, 0x37, 0xf0, 0x5e, 0x6d, 0x7f, 0xaf, 0x00, 0xe7, 0x0f, 0x23, 0x32,
- 0xc0, 0xf0, 0x3d, 0x0d, 0xa3, 0x31, 0xbb, 0x2e, 0x11, 0x2b, 0x71, 0x9c, 0xae, 0x42, 0x7e, 0x81,
- 0xf2, 0x59, 0x2c, 0x40, 0xe8, 0x97, 0x2d, 0x28, 0xb6, 0x9c, 0x50, 0xf4, 0xbc, 0x71, 0xbc, 0x3d,
- 0x9f, 0x5b, 0x73, 0x42, 0xfe, 0x15, 0x94, 0x3e, 0xba, 0xe6, 0x84, 0x98, 0x36, 0x00, 0xcd, 0x42,
- 0xc9, 0x89, 0x22, 0xa7, 0xc3, 0xe4, 0x5a, 0x85, 0x5f, 0xab, 0x2d, 0xd0, 0x02, 0xcc, 0xcb, 0xcf,
- 0x7e, 0x02, 0xca, 0xb2, 0xfa, 0x50, 0x73, 0xf0, 0x1b, 0x63, 0x29, 0x67, 0x52, 0x76, 0xdd, 0x12,
- 0xc3, 0xa8, 0x30, 0x80, 0xad, 0xbc, 0xfd, 0x97, 0x79, 0x34, 0x00, 0xd3, 0xda, 0x45, 0x4c, 0x95,
- 0x60, 0x85, 0xbe, 0x6e, 0xb1, 0xc8, 0x25, 0xe9, 0x60, 0x2b, 0x74, 0xe5, 0xe3, 0x09, 0xa4, 0x32,
- 0xe3, 0xa1, 0x64, 0x21, 0x36, 0xb9, 0x53, 0x41, 0x1d, 0x72, 0x1f, 0xfc, 0xac, 0xc6, 0x2c, 0x63,
- 0x9b, 0x24, 0x1c, 0xed, 0xf7, 0xb8, 0x56, 0xc9, 0x21, 0xfa, 0x65, 0x80, 0x8b, 0x94, 0xef, 0x5a,
- 0x30, 0xcd, 0xf5, 0xa2, 0x25, 0xaf, 0x5e, 0x27, 0x11, 0xf1, 0x5d, 0x22, 0x35, 0xcb, 0x23, 0x5e,
- 0xdc, 0xc9, 0x53, 0x87, 0x95, 0x2c, 0x79, 0x2d, 0xc1, 0xbb, 0x40, 0xb8, 0xbb, 0x31, 0xa8, 0x06,
- 0x23, 0x9e, 0x5f, 0x0f, 0xc4, 0xbe, 0x55, 0x3d, 0x5a, 0xa3, 0x56, 0xfc, 0x7a, 0xa0, 0xd7, 0x32,
- 0xfd, 0x87, 0x19, 0x75, 0xb4, 0x0a, 0xa7, 0x23, 0x61, 0xfb, 0x5f, 0xf6, 0x62, 0x6a, 0xa1, 0xad,
- 0x7a, 0x2d, 0x2f, 0x61, 0x7b, 0x4e, 0xb1, 0x3a, 0x73, 0xe7, 0x60, 0xf6, 0x34, 0xee, 0x01, 0xc7,
- 0x3d, 0x6b, 0xa1, 0xb7, 0x60, 0x4c, 0x86, 0x5a, 0x95, 0xf3, 0xd0, 0xd2, 0xbb, 0xe7, 0xbf, 0x9a,
- 0x4c, 0x9b, 0x22, 0xaa, 0x4a, 0x32, 0xb4, 0xff, 0x25, 0x40, 0xf7, 0xb5, 0x0b, 0xfa, 0x05, 0xa8,
- 0x44, 0x2a, 0xfc, 0xcb, 0xca, 0xc3, 0x2d, 0x47, 0x7e, 0x5f, 0x71, 0xe5, 0xa3, 0xce, 0xbd, 0x75,
- 0xa0, 0x97, 0xe6, 0x48, 0x75, 0xd4, 0x58, 0xdf, 0xce, 0xe4, 0x30, 0xb7, 0x05, 0x57, 0x7d, 0xaa,
- 0xdf, 0xf1, 0x5d, 0xcc, 0x78, 0xa0, 0x08, 0x46, 0x77, 0x88, 0xd3, 0x4c, 0x76, 0xf2, 0x39, 0x80,
- 0xbc, 0xcc, 0x68, 0x65, 0x3d, 0x8f, 0x79, 0x29, 0x16, 0x9c, 0xd0, 0x3e, 0x8c, 0xed, 0xf0, 0x09,
- 0x20, 0xd4, 0xc6, 0xb5, 0xa3, 0x0e, 0x6e, 0x6a, 0x56, 0xe9, 0xcf, 0x2d, 0x0a, 0xb0, 0x64, 0xc7,
- 0xee, 0x64, 0x8d, 0x1b, 0x47, 0xbe, 0x74, 0xf3, 0x73, 0xba, 0x1e, 0xfc, 0xba, 0xf1, 0x73, 0x30,
- 0x11, 0x11, 0x37, 0xf0, 0x5d, 0xaf, 0x49, 0x6a, 0x0b, 0xf2, 0x70, 0x71, 0x18, 0x57, 0xdd, 0x93,
- 0x54, 0xf5, 0xc5, 0x06, 0x0d, 0x9c, 0xa2, 0x88, 0xbe, 0x66, 0xc1, 0x94, 0x8a, 0x19, 0xa1, 0x1f,
- 0x84, 0x88, 0xe3, 0xb9, 0xd5, 0x9c, 0x22, 0x54, 0x18, 0xcd, 0x2a, 0xa2, 0xc6, 0x6f, 0xba, 0x0c,
- 0x67, 0xf8, 0xa2, 0xd7, 0x00, 0x82, 0x6d, 0x76, 0xfd, 0x46, 0xbb, 0x5a, 0x1e, 0xba, 0xab, 0x53,
- 0xdc, 0x67, 0x5f, 0x52, 0xc0, 0x06, 0x35, 0x74, 0x15, 0x80, 0x2f, 0x9b, 0xad, 0x4e, 0x48, 0x98,
- 0x45, 0xaa, 0x7d, 0xad, 0x61, 0x53, 0x41, 0xee, 0x1e, 0xcc, 0x76, 0x9f, 0x9d, 0xb0, 0x8b, 0x51,
- 0xa3, 0x3a, 0xfa, 0x79, 0x18, 0x8b, 0xdb, 0xad, 0x96, 0xa3, 0x4e, 0xf2, 0x72, 0x8c, 0x02, 0xe0,
- 0x74, 0x0d, 0x51, 0xc4, 0x0b, 0xb0, 0xe4, 0x88, 0x6e, 0x51, 0xa1, 0x1a, 0x8b, 0x43, 0x1d, 0xb6,
- 0x8a, 0xb8, 0x4e, 0x30, 0xce, 0xfa, 0xf4, 0x09, 0x51, 0xef, 0x34, 0xee, 0x81, 0x73, 0xf7, 0x60,
- 0xf6, 0xb1, 0x74, 0xf9, 0x6a, 0x20, 0xfc, 0xf2, 0x7b, 0xd2, 0x44, 0x57, 0x64, 0xe4, 0x35, 0xed,
- 0xb6, 0x0c, 0x08, 0x7c, 0x56, 0x47, 0x5e, 0xb3, 0xe2, 0xfe, 0x63, 0x66, 0x56, 0xb6, 0xfd, 0xb4,
- 0x0b, 0x89, 0xe8, 0xcd, 0x8b, 0x30, 0x41, 0xf6, 0x13, 0x12, 0xf9, 0x4e, 0xf3, 0x3a, 0x5e, 0x95,
- 0x87, 0x52, 0x6c, 0xd2, 0x5e, 0x34, 0xca, 0x71, 0x0a, 0x0b, 0xd9, 0xca, 0x18, 0x2d, 0xe8, 0xe0,
- 0x10, 0x6e, 0x8c, 0x4a, 0xd3, 0xd3, 0xfe, 0xbf, 0x85, 0x94, 0x06, 0xb5, 0x15, 0x11, 0x82, 0x02,
- 0x28, 0xf9, 0x41, 0x4d, 0x09, 0xeb, 0x2b, 0xf9, 0x08, 0xeb, 0x6b, 0x41, 0xcd, 0x88, 0xa7, 0xa6,
- 0xff, 0x62, 0xcc, 0xf9, 0xb0, 0x80, 0x53, 0x19, 0x99, 0xcb, 0x00, 0xc2, 0x2e, 0xc8, 0x93, 0xb3,
- 0x0a, 0x38, 0x5d, 0x37, 0x19, 0xe1, 0x34, 0x5f, 0xb4, 0x0b, 0xa5, 0x9d, 0x20, 0x4e, 0xa4, 0xb5,
- 0x70, 0x44, 0xc3, 0xe4, 0x72, 0x10, 0x27, 0x6c, 0xdb, 0x57, 0xdd, 0xa6, 0x25, 0x31, 0xe6, 0x3c,
- 0xec, 0xff, 0x62, 0xa5, 0x8e, 0x20, 0x6f, 0x32, 0x77, 0xaa, 0x3d, 0xe2, 0xd3, 0x75, 0x68, 0xfa,
- 0x1e, 0xfc, 0xa5, 0x4c, 0xb4, 0xc3, 0x4f, 0xf6, 0xcb, 0x6e, 0x71, 0x9b, 0x52, 0x98, 0x63, 0x24,
- 0x0c, 0x37, 0x85, 0x2f, 0x5a, 0xe9, 0xb8, 0x13, 0xbe, 0x11, 0xe6, 0x18, 0x06, 0x75, 0x68, 0x08,
- 0x8b, 0xfd, 0x8e, 0x05, 0x63, 0x55, 0xc7, 0xdd, 0x0d, 0xea, 0x75, 0xf4, 0x1c, 0x94, 0x6b, 0xed,
- 0xc8, 0x0c, 0x81, 0x51, 0x67, 0x5e, 0x4b, 0xa2, 0x1c, 0x2b, 0x0c, 0x3a, 0x87, 0xeb, 0x8e, 0x2b,
- 0x83, 0xa1, 0x8a, 0x7c, 0x0e, 0x5f, 0x62, 0x25, 0x58, 0x40, 0xd0, 0xc7, 0x61, 0xbc, 0xe5, 0xec,
- 0xcb, 0xca, 0xd9, 0xf3, 0xcf, 0x35, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0xaf, 0x2c, 0x98, 0xa9, 0x3a,
- 0xb1, 0xe7, 0x2e, 0xb4, 0x93, 0x9d, 0xaa, 0x97, 0x6c, 0xb7, 0xdd, 0x5d, 0x92, 0xf0, 0x08, 0x38,
- 0xda, 0xca, 0x76, 0x4c, 0x97, 0x92, 0x32, 0xc3, 0x54, 0x2b, 0xaf, 0x8b, 0x72, 0xac, 0x30, 0xd0,
- 0x5b, 0x30, 0x1e, 0x3a, 0x71, 0x7c, 0x3b, 0x88, 0x6a, 0x98, 0xd4, 0xf3, 0x89, 0x3f, 0xdd, 0x24,
- 0x6e, 0x44, 0x12, 0x4c, 0xea, 0xe2, 0x46, 0x4b, 0xd3, 0xc7, 0x26, 0x33, 0xfb, 0xf7, 0x2a, 0x30,
- 0x26, 0xae, 0xe3, 0x06, 0x8e, 0xeb, 0x93, 0x06, 0x66, 0xa1, 0xaf, 0x81, 0x19, 0xc3, 0xa8, 0xcb,
- 0xb2, 0xa0, 0x08, 0x4d, 0xe6, 0x6a, 0x2e, 0xf7, 0xb7, 0x3c, 0xb1, 0x8a, 0x6e, 0x16, 0xff, 0x8f,
- 0x05, 0x2b, 0xf4, 0x6d, 0x0b, 0x4e, 0xb8, 0x81, 0xef, 0x13, 0x57, 0x6f, 0xb3, 0x23, 0x79, 0x78,
- 0x64, 0x2c, 0xa6, 0x89, 0xea, 0xc3, 0xdf, 0x0c, 0x00, 0x67, 0xd9, 0xa3, 0x97, 0x61, 0x92, 0x8f,
- 0xd9, 0x8d, 0xd4, 0xc9, 0x97, 0x0e, 0x5f, 0x37, 0x81, 0x38, 0x8d, 0x8b, 0xe6, 0xf8, 0x09, 0xa2,
- 0x08, 0x14, 0x1f, 0xd5, 0x37, 0x09, 0x46, 0x88, 0xb8, 0x81, 0x81, 0x22, 0x40, 0x11, 0xa9, 0x47,
- 0x24, 0xde, 0x11, 0xd7, 0x95, 0x6c, 0x8b, 0x1f, 0xbb, 0xbf, 0xc0, 0x23, 0xdc, 0x45, 0x09, 0xf7,
- 0xa0, 0x8e, 0x76, 0x85, 0x8d, 0x53, 0xce, 0x43, 0x2a, 0x88, 0xcf, 0xdc, 0xd7, 0xd4, 0x99, 0x85,
- 0x52, 0xbc, 0xe3, 0x44, 0x35, 0xa6, 0x5a, 0x14, 0xf9, 0x41, 0xc0, 0x26, 0x2d, 0xc0, 0xbc, 0x1c,
- 0x2d, 0xc1, 0xc9, 0x4c, 0xf0, 0x7d, 0xcc, 0x94, 0x87, 0xb2, 0xf6, 0x43, 0xcd, 0x84, 0xed, 0xc7,
- 0xb8, 0xab, 0x86, 0x69, 0xff, 0x8e, 0x1f, 0x62, 0xff, 0x76, 0x94, 0x53, 0xcc, 0x04, 0x93, 0xf8,
- 0xaf, 0xe6, 0x32, 0x00, 0x03, 0x79, 0xc0, 0x7c, 0x33, 0xe3, 0x01, 0x33, 0xc9, 0x1a, 0x70, 0x23,
- 0x9f, 0x06, 0x0c, 0xef, 0xee, 0xf2, 0x30, 0xdd, 0x57, 0xfe, 0x8f, 0x05, 0xf2, 0xbb, 0x2e, 0x3a,
- 0xee, 0x0e, 0xa1, 0x53, 0x06, 0xbd, 0x02, 0x53, 0xca, 0x8a, 0x5b, 0x0c, 0xda, 0x3e, 0xf7, 0x5c,
- 0x29, 0xea, 0x5b, 0x22, 0x9c, 0x82, 0xe2, 0x0c, 0x36, 0x9a, 0x87, 0x0a, 0x1d, 0x27, 0x5e, 0x95,
- 0xef, 0x1e, 0xca, 0x52, 0x5c, 0xd8, 0x58, 0x11, 0xb5, 0x34, 0x0e, 0x0a, 0x60, 0xba, 0xe9, 0xc4,
- 0x09, 0x6b, 0x01, 0x35, 0xea, 0xee, 0x33, 0xec, 0x8f, 0xe5, 0x1e, 0x59, 0xcd, 0x12, 0xc2, 0xdd,
- 0xb4, 0xed, 0x1f, 0x8c, 0xc0, 0x64, 0x4a, 0x32, 0x0e, 0xb9, 0xed, 0x3c, 0x07, 0x65, 0xb9, 0x13,
- 0x64, 0x63, 0x85, 0xd5, 0x76, 0xa1, 0x30, 0xe8, 0x36, 0xb9, 0x4d, 0x9c, 0x88, 0x44, 0x2c, 0xad,
- 0x41, 0x76, 0x9b, 0xac, 0x6a, 0x10, 0x36, 0xf1, 0x98, 0x50, 0x4e, 0x9a, 0xf1, 0x62, 0xd3, 0x23,
- 0x7e, 0xc2, 0x9b, 0x99, 0x8f, 0x50, 0xde, 0x5a, 0xdd, 0x34, 0x89, 0x6a, 0xa1, 0x9c, 0x01, 0xe0,
- 0x2c, 0x7b, 0xf4, 0x15, 0x0b, 0x26, 0x9d, 0xdb, 0xb1, 0x4e, 0xd5, 0x25, 0x7c, 0x5d, 0x8e, 0xb8,
- 0x49, 0xa5, 0xb2, 0x7f, 0x55, 0xa7, 0xa9, 0x78, 0x4f, 0x15, 0xe1, 0x34, 0x53, 0xf4, 0x1d, 0x0b,
- 0x10, 0xd9, 0x27, 0xae, 0xf4, 0xc6, 0x11, 0x6d, 0x19, 0xcd, 0xc3, 0xd8, 0xb9, 0xd8, 0x45, 0x97,
- 0x4b, 0xf5, 0xee, 0x72, 0xdc, 0xa3, 0x0d, 0xf6, 0x3f, 0x2b, 0xaa, 0x05, 0xa5, 0x1d, 0xc0, 0x1c,
- 0x23, 0x78, 0xc1, 0xba, 0xff, 0xe0, 0x05, 0x7d, 0x45, 0xd9, 0x15, 0xc0, 0x90, 0xf6, 0x15, 0x2f,
- 0x3c, 0x24, 0x5f, 0xf1, 0x2f, 0x5b, 0xa9, 0xa8, 0xf8, 0xf1, 0x0b, 0xaf, 0xe5, 0xeb, 0x7c, 0x36,
- 0xc7, 0x2f, 0xc8, 0x33, 0xd2, 0x3d, 0x7d, 0x6b, 0x4e, 0xa5, 0xa9, 0x81, 0x36, 0x94, 0x34, 0xfc,
- 0x0f, 0x45, 0x18, 0x37, 0x76, 0xd2, 0x9e, 0x6a, 0x91, 0xf5, 0x88, 0xa9, 0x45, 0x85, 0x21, 0xd4,
- 0xa2, 0x5f, 0x84, 0x8a, 0x2b, 0xa5, 0x7c, 0x3e, 0x79, 0xe1, 0xb2, 0x7b, 0x87, 0x16, 0xf4, 0xaa,
- 0x08, 0x6b, 0x9e, 0x68, 0x39, 0xe5, 0x9d, 0x2e, 0x76, 0x88, 0x11, 0xb6, 0x43, 0xf4, 0x72, 0x1f,
- 0x17, 0x3b, 0x45, 0x77, 0x1d, 0xf4, 0x02, 0xb5, 0xac, 0x3c, 0xd1, 0x2f, 0xe9, 0x22, 0xca, 0xd4,
- 0xf5, 0x85, 0x8d, 0x15, 0x59, 0x8c, 0x4d, 0x1c, 0xfb, 0x07, 0x96, 0xfa, 0xb8, 0x0f, 0x20, 0x1c,
- 0xf2, 0x56, 0x3a, 0x1c, 0xf2, 0x62, 0x2e, 0xc3, 0xdc, 0x27, 0x0e, 0xf2, 0x1a, 0x8c, 0x2d, 0x06,
- 0xad, 0x96, 0xe3, 0xd7, 0xd0, 0x4f, 0xc0, 0x98, 0xcb, 0x7f, 0x8a, 0xa3, 0x0a, 0x76, 0x3f, 0x25,
- 0xa0, 0x58, 0xc2, 0xd0, 0x93, 0x30, 0xe2, 0x44, 0x0d, 0x79, 0x3c, 0xc1, 0xae, 0xf4, 0x17, 0xa2,
- 0x46, 0x8c, 0x59, 0xa9, 0xfd, 0x76, 0x11, 0x60, 0x31, 0x68, 0x85, 0x4e, 0x44, 0x6a, 0x5b, 0x01,
- 0xcb, 0x4b, 0x73, 0xac, 0xf7, 0x3a, 0xda, 0x58, 0x7a, 0x94, 0xef, 0x76, 0x8c, 0xf3, 0xfd, 0xe2,
- 0x83, 0x3e, 0xdf, 0xff, 0x86, 0x05, 0x88, 0x7e, 0x91, 0xc0, 0x27, 0x7e, 0xa2, 0xaf, 0x2b, 0xe7,
- 0xa1, 0xe2, 0xca, 0x52, 0xa1, 0xb5, 0xe8, 0xf5, 0x27, 0x01, 0x58, 0xe3, 0x0c, 0x60, 0x7e, 0x3e,
- 0x2d, 0x85, 0x63, 0x31, 0xed, 0x05, 0xc7, 0x44, 0xaa, 0x90, 0x95, 0xf6, 0xef, 0x17, 0xe0, 0x31,
- 0xbe, 0xdf, 0xad, 0x39, 0xbe, 0xd3, 0x20, 0x2d, 0xda, 0xaa, 0x41, 0x2f, 0xa0, 0x5d, 0x6a, 0xf7,
- 0x78, 0xd2, 0xab, 0xed, 0xa8, 0x0b, 0x83, 0x4f, 0x68, 0x3e, 0x85, 0x57, 0x7c, 0x2f, 0xc1, 0x8c,
- 0x38, 0x8a, 0xa1, 0x2c, 0xb3, 0x8c, 0x0a, 0x41, 0x97, 0x13, 0x23, 0xb5, 0xe6, 0xc5, 0xa6, 0x44,
- 0xb0, 0x62, 0x44, 0xb5, 0xc2, 0x66, 0xe0, 0xee, 0x62, 0x12, 0x06, 0x4c, 0xa8, 0x19, 0x4e, 0x45,
- 0xab, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0xf7, 0x2d, 0xc8, 0x8a, 0x7b, 0x23, 0xa5, 0x87, 0x75, 0xcf,
- 0x94, 0x1e, 0x43, 0xe4, 0xd4, 0xf8, 0x39, 0x18, 0x77, 0x12, 0xba, 0x43, 0x73, 0x9b, 0xb6, 0x78,
- 0x7f, 0xc7, 0xd6, 0x6b, 0x41, 0xcd, 0xab, 0x7b, 0xcc, 0x96, 0x35, 0xc9, 0xd9, 0xff, 0x6b, 0x04,
- 0xa6, 0xbb, 0x3c, 0x95, 0xd1, 0x4b, 0x30, 0xe1, 0x8a, 0xe9, 0x11, 0x62, 0x52, 0x17, 0x9d, 0x31,
- 0x3c, 0x5d, 0x34, 0x0c, 0xa7, 0x30, 0x07, 0x98, 0xa0, 0x2b, 0x70, 0x2a, 0xa2, 0x56, 0x74, 0x9b,
- 0x2c, 0xd4, 0x13, 0x12, 0x6d, 0x12, 0x37, 0xf0, 0x6b, 0x3c, 0xf1, 0x4c, 0xb1, 0xfa, 0xf8, 0x9d,
- 0x83, 0xd9, 0x53, 0xb8, 0x1b, 0x8c, 0x7b, 0xd5, 0x41, 0x21, 0x4c, 0x36, 0x4d, 0x05, 0x4b, 0x68,
- 0xd7, 0xf7, 0xa5, 0x9b, 0xa9, 0x0d, 0x38, 0x55, 0x8c, 0xd3, 0x0c, 0xd2, 0x5a, 0x5a, 0xe9, 0x21,
- 0x69, 0x69, 0xbf, 0xa4, 0xb5, 0x34, 0x7e, 0xbf, 0xfa, 0x7a, 0xce, 0x9e, 0xea, 0xc7, 0xad, 0xa6,
- 0xbd, 0x0a, 0x65, 0xe9, 0x79, 0x32, 0x90, 0xc7, 0x86, 0x49, 0xa7, 0x8f, 0x44, 0xbb, 0x5b, 0x80,
- 0x1e, 0x1a, 0x3e, 0x5d, 0x67, 0x7a, 0x3b, 0x4d, 0xad, 0xb3, 0xe1, 0xb6, 0x54, 0xb4, 0xcf, 0xbd,
- 0x6e, 0xf8, 0xc6, 0xf1, 0xe9, 0xbc, 0x2d, 0x14, 0xed, 0x88, 0xa3, 0x5c, 0x40, 0x94, 0x33, 0xce,
- 0x05, 0x00, 0xad, 0x05, 0x09, 0x87, 0x53, 0x75, 0xad, 0xa7, 0x95, 0x25, 0x6c, 0x60, 0x51, 0x83,
- 0xd5, 0xf3, 0xe3, 0xc4, 0x69, 0x36, 0x2f, 0x7b, 0x7e, 0x22, 0x4e, 0xde, 0xd4, 0x0e, 0xb9, 0xa2,
- 0x41, 0xd8, 0xc4, 0x3b, 0xfb, 0x09, 0xe3, 0xbb, 0x0c, 0xf3, 0x3d, 0x77, 0xe0, 0x89, 0x65, 0x2f,
- 0x51, 0x6e, 0xd2, 0x6a, 0x1e, 0x51, 0x25, 0x47, 0xb9, 0xfd, 0x5b, 0x7d, 0xdd, 0xfe, 0x0d, 0x37,
- 0xe5, 0x42, 0xda, 0xab, 0x3a, 0xeb, 0xa6, 0x6c, 0xbf, 0x04, 0xa7, 0x97, 0xbd, 0xe4, 0x92, 0xd7,
- 0x24, 0x43, 0x32, 0xb1, 0xbf, 0x52, 0x82, 0x09, 0x33, 0x2c, 0x65, 0x98, 0xc8, 0x85, 0x6f, 0x51,
- 0x3d, 0x46, 0xf4, 0xce, 0x53, 0x77, 0x2c, 0x37, 0x8f, 0x1c, 0x23, 0xd3, 0x7b, 0xc4, 0x0c, 0x55,
- 0x46, 0xf3, 0xc4, 0x66, 0x03, 0xd0, 0x6d, 0x28, 0xd5, 0x99, 0x1b, 0x6d, 0x31, 0x8f, 0x9b, 0xe3,
- 0x5e, 0x23, 0xaa, 0x97, 0x19, 0x77, 0xc4, 0xe5, 0xfc, 0xe8, 0x0e, 0x19, 0xa5, 0x63, 0x33, 0x94,
- 0xa0, 0x52, 0x51, 0x19, 0x0a, 0xa3, 0x9f, 0xa8, 0x2f, 0xdd, 0x87, 0xa8, 0x4f, 0x09, 0xde, 0xd1,
- 0x87, 0x24, 0x78, 0x99, 0x4b, 0x74, 0xb2, 0xc3, 0xf4, 0x37, 0xe1, 0x10, 0x3b, 0xc6, 0x06, 0xc1,
- 0x70, 0x89, 0x4e, 0x81, 0x71, 0x16, 0xdf, 0xfe, 0x46, 0x01, 0xa6, 0x96, 0xfd, 0xf6, 0xc6, 0xf2,
- 0x46, 0x7b, 0xbb, 0xe9, 0xb9, 0x57, 0x49, 0x87, 0xca, 0xb7, 0x5d, 0xd2, 0x59, 0x59, 0x12, 0xd3,
- 0x50, 0x0d, 0xfc, 0x55, 0x5a, 0x88, 0x39, 0x8c, 0xae, 0xe8, 0xba, 0xe7, 0x37, 0x48, 0x14, 0x46,
- 0x9e, 0x38, 0x94, 0x33, 0x56, 0xf4, 0x25, 0x0d, 0xc2, 0x26, 0x1e, 0xa5, 0x1d, 0xdc, 0xf6, 0x49,
- 0x94, 0xd5, 0x06, 0xd7, 0x69, 0x21, 0xe6, 0x30, 0x8a, 0x94, 0x44, 0xed, 0x38, 0x11, 0x5f, 0x54,
- 0x21, 0x6d, 0xd1, 0x42, 0xcc, 0x61, 0x74, 0xb9, 0xc4, 0xed, 0x6d, 0x76, 0xbb, 0x9d, 0x71, 0x61,
- 0xdd, 0xe4, 0xc5, 0x58, 0xc2, 0x29, 0xea, 0x2e, 0xe9, 0x2c, 0x51, 0xbb, 0x2c, 0xe3, 0x64, 0x7e,
- 0x95, 0x17, 0x63, 0x09, 0x67, 0x99, 0x6e, 0xd2, 0xc3, 0xf1, 0x23, 0x97, 0xe9, 0x26, 0xdd, 0xfc,
- 0x3e, 0x16, 0xde, 0x6f, 0x58, 0x30, 0x61, 0xfa, 0xa4, 0xa0, 0x46, 0x46, 0x51, 0x5c, 0xef, 0xca,
- 0x5a, 0xf6, 0x33, 0xbd, 0x5e, 0x54, 0x68, 0x78, 0x49, 0x10, 0xc6, 0xcf, 0x13, 0xbf, 0xe1, 0xf9,
- 0x84, 0xdd, 0x5c, 0x72, 0x5f, 0x96, 0x94, 0xc3, 0xcb, 0x62, 0x50, 0x23, 0xf7, 0xa1, 0x69, 0xda,
- 0x37, 0x61, 0xba, 0x2b, 0xb2, 0x60, 0x80, 0xfd, 0xf9, 0xd0, 0xb8, 0x2e, 0x1b, 0xc3, 0x38, 0x25,
- 0xbc, 0x1e, 0x72, 0xa7, 0x93, 0x45, 0x98, 0xe6, 0x3a, 0x04, 0xe5, 0xb4, 0xe9, 0xee, 0x90, 0x96,
- 0x8a, 0x16, 0x61, 0x27, 0xc0, 0x37, 0xb2, 0x40, 0xdc, 0x8d, 0x6f, 0x7f, 0xd3, 0x82, 0xc9, 0x54,
- 0xb0, 0x47, 0x4e, 0x9a, 0x04, 0x5b, 0x69, 0x01, 0x73, 0x91, 0x62, 0x5e, 0xa2, 0x45, 0xb6, 0x23,
- 0xe9, 0x95, 0xa6, 0x41, 0xd8, 0xc4, 0xb3, 0xdf, 0x29, 0x40, 0x59, 0xde, 0x5a, 0x0f, 0xd0, 0x94,
- 0xaf, 0x5b, 0x30, 0xa9, 0x4e, 0xdd, 0xd9, 0x71, 0x0e, 0x9f, 0x8c, 0xd7, 0x8e, 0x7e, 0x6f, 0xae,
- 0x7c, 0xf8, 0xfc, 0x7a, 0xa0, 0xd5, 0x5a, 0x6c, 0x32, 0xc3, 0x69, 0xde, 0xe8, 0x06, 0x40, 0xdc,
- 0x89, 0x13, 0xd2, 0x32, 0x0e, 0x96, 0x6c, 0x63, 0xc5, 0xcd, 0xb9, 0x41, 0x44, 0xe8, 0xfa, 0xba,
- 0x16, 0xd4, 0xc8, 0xa6, 0xc2, 0xd4, 0x7a, 0x88, 0x2e, 0xc3, 0x06, 0x25, 0xfb, 0x1f, 0x14, 0xe0,
- 0x64, 0xb6, 0x49, 0xe8, 0x75, 0x98, 0x90, 0xdc, 0x8d, 0xd7, 0x21, 0xe4, 0x55, 0xfd, 0x04, 0x36,
- 0x60, 0x77, 0x0f, 0x66, 0x67, 0xbb, 0x5f, 0xe7, 0x98, 0x33, 0x51, 0x70, 0x8a, 0x18, 0xbf, 0xfa,
- 0x10, 0x77, 0x74, 0xd5, 0xce, 0x42, 0x18, 0x8a, 0xfb, 0x0b, 0xe3, 0xea, 0xc3, 0x84, 0xe2, 0x0c,
- 0x36, 0xda, 0x80, 0xd3, 0x46, 0xc9, 0x35, 0xe2, 0x35, 0x76, 0xb6, 0x83, 0x48, 0x9a, 0x27, 0x4f,
- 0x6a, 0xef, 0x97, 0x6e, 0x1c, 0xdc, 0xb3, 0x26, 0xdd, 0x32, 0x5d, 0x27, 0x74, 0x5c, 0x2f, 0xe9,
- 0x88, 0x93, 0x32, 0x25, 0x9b, 0x16, 0x45, 0x39, 0x56, 0x18, 0xf6, 0x1a, 0x8c, 0x0c, 0x38, 0x83,
- 0x06, 0x52, 0x8b, 0x5f, 0x85, 0x32, 0x25, 0x27, 0x75, 0xa4, 0x3c, 0x48, 0x06, 0x50, 0x96, 0x09,
- 0x9e, 0x91, 0x0d, 0x45, 0xcf, 0x91, 0xb7, 0x4b, 0xaa, 0x5b, 0x2b, 0x71, 0xdc, 0x66, 0x96, 0x26,
- 0x05, 0xa2, 0xa7, 0xa1, 0x48, 0xf6, 0xc3, 0xec, 0x35, 0xd2, 0xc5, 0xfd, 0xd0, 0x8b, 0x48, 0x4c,
- 0x91, 0xc8, 0x7e, 0x88, 0xce, 0x42, 0xc1, 0xab, 0x89, 0x4d, 0x0a, 0x04, 0x4e, 0x61, 0x65, 0x09,
- 0x17, 0xbc, 0x9a, 0xbd, 0x0f, 0x15, 0x95, 0x51, 0x1a, 0xed, 0x4a, 0xd9, 0x6d, 0xe5, 0xe1, 0x66,
- 0x22, 0xe9, 0xf6, 0x91, 0xda, 0x6d, 0x00, 0x1d, 0x5a, 0x93, 0x97, 0x7c, 0x39, 0x0f, 0x23, 0x6e,
- 0x20, 0x22, 0xf2, 0xca, 0x9a, 0x0c, 0x13, 0xda, 0x0c, 0x62, 0xdf, 0x84, 0xa9, 0xab, 0x7e, 0x70,
- 0x9b, 0xe5, 0xe0, 0xbc, 0xe4, 0x91, 0x66, 0x8d, 0x12, 0xae, 0xd3, 0x1f, 0x59, 0x15, 0x81, 0x41,
- 0x31, 0x87, 0xa9, 0xb4, 0x1b, 0x85, 0x7e, 0x69, 0x37, 0xec, 0x2f, 0x5a, 0x70, 0x52, 0xc5, 0x7c,
- 0x48, 0x69, 0xfc, 0x12, 0x4c, 0x6c, 0xb7, 0xbd, 0x66, 0x4d, 0xfc, 0xcf, 0xda, 0xfa, 0x55, 0x03,
- 0x86, 0x53, 0x98, 0xd4, 0x32, 0xd9, 0xf6, 0x7c, 0x27, 0xea, 0x6c, 0x68, 0xf1, 0xaf, 0x24, 0x42,
- 0x55, 0x41, 0xb0, 0x81, 0x65, 0x7f, 0xb9, 0x00, 0x93, 0xa9, 0x08, 0x78, 0xd4, 0x84, 0x32, 0x69,
- 0xb2, 0x13, 0x28, 0xf9, 0x51, 0x8f, 0x9a, 0x7c, 0x4a, 0x4d, 0xc4, 0x8b, 0x82, 0x2e, 0x56, 0x1c,
- 0x1e, 0x89, 0x6b, 0x16, 0xfb, 0x0f, 0x8a, 0x30, 0xc3, 0x0f, 0xde, 0x6a, 0xca, 0x9f, 0x61, 0x4d,
- 0x6a, 0x27, 0x7f, 0x55, 0x67, 0x9b, 0xe0, 0xc3, 0xb1, 0x7d, 0xd4, 0xf4, 0x89, 0xbd, 0x19, 0x0d,
- 0x74, 0xd3, 0xfe, 0xeb, 0x99, 0x9b, 0xf6, 0x42, 0x1e, 0x01, 0x11, 0x7d, 0x5b, 0xf4, 0xa3, 0x75,
- 0xf5, 0xfe, 0x77, 0x0b, 0x70, 0x22, 0x93, 0x9b, 0x12, 0xbd, 0x9d, 0xce, 0x3e, 0x65, 0xe5, 0x71,
- 0x3c, 0x73, 0xcf, 0x0c, 0x89, 0xc3, 0xe5, 0xa0, 0x7a, 0x58, 0x13, 0xfe, 0x0f, 0x0b, 0x30, 0x95,
- 0x4e, 0xaa, 0xf9, 0x08, 0x8e, 0xd4, 0x47, 0xa1, 0xc2, 0x52, 0xd5, 0xb1, 0x77, 0x3b, 0xf8, 0x29,
- 0x10, 0xcf, 0xa8, 0x26, 0x0b, 0xb1, 0x86, 0x3f, 0x12, 0xa9, 0xbd, 0xec, 0xbf, 0x67, 0xc1, 0x19,
- 0xde, 0xcb, 0xec, 0x3c, 0xfc, 0x6b, 0xbd, 0x46, 0xf7, 0x8d, 0x7c, 0x1b, 0x98, 0xc9, 0x92, 0x72,
- 0xd8, 0xf8, 0xb2, 0xf7, 0x02, 0x44, 0x6b, 0xd3, 0x53, 0xe1, 0x11, 0x6c, 0xec, 0x50, 0x93, 0xc1,
- 0xfe, 0xc3, 0x22, 0xe8, 0x27, 0x12, 0x90, 0x27, 0xc2, 0x26, 0x72, 0xc9, 0x16, 0xb3, 0xd9, 0xf1,
- 0x5d, 0xfd, 0x18, 0x43, 0x39, 0x13, 0x35, 0xf1, 0x2b, 0x16, 0x8c, 0x7b, 0xbe, 0x97, 0x78, 0x0e,
- 0x53, 0x3a, 0xf3, 0xc9, 0x19, 0xaf, 0xd8, 0xad, 0x70, 0xca, 0x41, 0x64, 0x1e, 0x1d, 0x2a, 0x66,
- 0xd8, 0xe4, 0x8c, 0x3e, 0x27, 0x9c, 0xe1, 0x8a, 0xb9, 0x05, 0xfc, 0x94, 0x33, 0x1e, 0x70, 0x21,
- 0x94, 0x22, 0x92, 0x44, 0x32, 0xd4, 0xea, 0xea, 0x51, 0x3d, 0x9c, 0x93, 0xa8, 0xa3, 0x92, 0x83,
- 0xe9, 0xc7, 0xaa, 0x68, 0x31, 0xe6, 0x8c, 0xec, 0x18, 0x50, 0xf7, 0x58, 0x0c, 0xe9, 0x68, 0x34,
- 0x0f, 0x15, 0xa7, 0x9d, 0x04, 0x2d, 0x3a, 0x4c, 0xe2, 0x74, 0x53, 0xbb, 0x52, 0x49, 0x00, 0xd6,
- 0x38, 0xf6, 0xdb, 0x25, 0xc8, 0xc4, 0x31, 0xa0, 0x7d, 0xf3, 0x79, 0x0f, 0x2b, 0xdf, 0xe7, 0x3d,
- 0x54, 0x63, 0x7a, 0x3d, 0xf1, 0x81, 0x1a, 0x50, 0x0a, 0x77, 0x9c, 0x58, 0xea, 0x94, 0xaf, 0xca,
- 0x61, 0xda, 0xa0, 0x85, 0x77, 0x0f, 0x66, 0x7f, 0x76, 0xb0, 0x33, 0x0a, 0x3a, 0x57, 0xe7, 0x79,
- 0xbc, 0xb0, 0x66, 0xcd, 0x68, 0x60, 0x4e, 0x7f, 0x98, 0xac, 0xf9, 0x5f, 0x12, 0xf9, 0x0c, 0x31,
- 0x89, 0xdb, 0xcd, 0x44, 0xcc, 0x86, 0x57, 0x73, 0x5c, 0x65, 0x9c, 0xb0, 0x8e, 0xc0, 0xe3, 0xff,
- 0xb1, 0xc1, 0x14, 0xbd, 0x0e, 0x95, 0x38, 0x71, 0xa2, 0xe4, 0x3e, 0x63, 0x66, 0xd4, 0xa0, 0x6f,
- 0x4a, 0x22, 0x58, 0xd3, 0x43, 0xaf, 0xb1, 0xe4, 0x59, 0x5e, 0xbc, 0x73, 0x9f, 0x3e, 0xac, 0x32,
- 0xd1, 0x96, 0xa0, 0x80, 0x0d, 0x6a, 0x54, 0x65, 0x67, 0x73, 0x9b, 0x3b, 0x6e, 0x94, 0x99, 0x4d,
- 0xa6, 0x44, 0x21, 0x56, 0x10, 0x6c, 0x60, 0xd9, 0x5f, 0x80, 0x53, 0xd9, 0xf7, 0xc0, 0xc4, 0xb1,
- 0x65, 0x23, 0x0a, 0xda, 0x61, 0xd6, 0x26, 0x61, 0xef, 0x45, 0x61, 0x0e, 0xa3, 0x36, 0xc9, 0xae,
- 0xe7, 0xd7, 0xb2, 0x36, 0xc9, 0x55, 0xcf, 0xaf, 0x61, 0x06, 0x19, 0xe0, 0xdd, 0x93, 0x7f, 0x6e,
- 0xc1, 0xf9, 0xc3, 0x9e, 0x2d, 0x43, 0x4f, 0xc2, 0xc8, 0x6d, 0x27, 0x92, 0xc9, 0xf8, 0x98, 0xec,
- 0xb8, 0xe9, 0x44, 0x3e, 0x66, 0xa5, 0xa8, 0x03, 0xa3, 0x3c, 0x46, 0x51, 0x28, 0xb0, 0xaf, 0xe6,
- 0xfb, 0x88, 0xda, 0x55, 0x62, 0x68, 0xd0, 0x3c, 0x3e, 0x12, 0x0b, 0x86, 0xf6, 0xfb, 0x16, 0xa0,
- 0xf5, 0x3d, 0x12, 0x45, 0x5e, 0xcd, 0x88, 0xaa, 0x44, 0x2f, 0xc2, 0xc4, 0xad, 0xcd, 0xf5, 0x6b,
- 0x1b, 0x81, 0xe7, 0xb3, 0x18, 0x6b, 0x23, 0x2e, 0xe5, 0x8a, 0x51, 0x8e, 0x53, 0x58, 0x68, 0x11,
- 0xa6, 0x6f, 0xbd, 0x49, 0xed, 0x28, 0x33, 0x8f, 0x6d, 0x41, 0x9f, 0x9c, 0x5d, 0x79, 0x35, 0x03,
- 0xc4, 0xdd, 0xf8, 0x68, 0x1d, 0xce, 0xb4, 0xb8, 0x06, 0xce, 0xcc, 0xc7, 0x98, 0xab, 0xe3, 0x91,
- 0x4c, 0xbc, 0xf0, 0xc4, 0x9d, 0x83, 0xd9, 0x33, 0x6b, 0xbd, 0x10, 0x70, 0xef, 0x7a, 0xf6, 0xbb,
- 0x05, 0x18, 0x37, 0x9e, 0xfe, 0x1b, 0xc0, 0x50, 0xce, 0xbc, 0x56, 0x58, 0x18, 0xf0, 0xb5, 0xc2,
- 0x67, 0xa1, 0x1c, 0x06, 0x4d, 0xcf, 0xf5, 0x54, 0x96, 0x08, 0x96, 0xcc, 0x6c, 0x43, 0x94, 0x61,
- 0x05, 0x45, 0xb7, 0xa1, 0xa2, 0x9e, 0xc3, 0x12, 0xc1, 0x7d, 0x79, 0x1d, 0x15, 0xa8, 0xc5, 0xab,
- 0x9f, 0xb9, 0xd2, 0xbc, 0x90, 0x0d, 0xa3, 0x6c, 0xe6, 0x4b, 0x97, 0x26, 0x16, 0x75, 0xc1, 0x96,
- 0x44, 0x8c, 0x05, 0xc4, 0xfe, 0xea, 0x18, 0x9c, 0xee, 0x95, 0x80, 0x0b, 0x7d, 0x1e, 0x46, 0x79,
- 0x1b, 0xf3, 0xc9, 0xf1, 0xd8, 0x8b, 0xc7, 0x32, 0x23, 0x28, 0x9a, 0xc5, 0x7e, 0x63, 0xc1, 0x53,
- 0x70, 0x6f, 0x3a, 0xdb, 0x42, 0x8d, 0x38, 0x1e, 0xee, 0xab, 0x8e, 0xe6, 0xbe, 0xea, 0x70, 0xee,
- 0x4d, 0x67, 0x1b, 0xed, 0x43, 0xa9, 0xe1, 0x25, 0xc4, 0x11, 0xca, 0xf4, 0xcd, 0x63, 0x61, 0x4e,
- 0x1c, 0xee, 0x39, 0xcf, 0x7e, 0x62, 0xce, 0x10, 0x7d, 0xd7, 0x82, 0x13, 0xdb, 0xe9, 0x20, 0x16,
- 0xb1, 0xab, 0x38, 0xc7, 0x90, 0x64, 0x2d, 0xcd, 0xa8, 0x7a, 0xea, 0xce, 0xc1, 0xec, 0x89, 0x4c,
- 0x21, 0xce, 0x36, 0x07, 0xfd, 0x92, 0x05, 0x63, 0x75, 0xaf, 0x69, 0x64, 0x10, 0x3a, 0x86, 0x8f,
- 0x73, 0x89, 0x31, 0xd0, 0x3b, 0x2f, 0xff, 0x1f, 0x63, 0xc9, 0xb9, 0xdf, 0x75, 0xde, 0xe8, 0x51,
- 0xaf, 0xf3, 0xc6, 0x1e, 0x92, 0xf9, 0xf4, 0xd7, 0x0b, 0xf0, 0xf4, 0x00, 0xdf, 0xc8, 0x0c, 0x8a,
- 0xb0, 0x0e, 0x09, 0x8a, 0x38, 0x0f, 0x23, 0x11, 0x09, 0x83, 0xec, 0x7e, 0xc7, 0x3c, 0x87, 0x18,
- 0x04, 0x3d, 0x05, 0x45, 0x27, 0xf4, 0xc4, 0x76, 0xa7, 0x6e, 0xfb, 0x17, 0x36, 0x56, 0x30, 0x2d,
- 0xa7, 0x5f, 0xba, 0xb2, 0x2d, 0x43, 0xab, 0xf2, 0x49, 0xd6, 0xdc, 0x2f, 0x52, 0x8b, 0x1b, 0x34,
- 0x0a, 0x8a, 0x35, 0x5f, 0x7b, 0x1d, 0xce, 0xf6, 0x9f, 0x21, 0xe8, 0x05, 0x18, 0xdf, 0x8e, 0x1c,
- 0xdf, 0xdd, 0x61, 0x89, 0xcd, 0xe5, 0x98, 0x30, 0x57, 0x78, 0x5d, 0x8c, 0x4d, 0x1c, 0xfb, 0x0f,
- 0x0a, 0xbd, 0x29, 0x72, 0x21, 0x30, 0xcc, 0x08, 0x8b, 0xf1, 0x2b, 0xf4, 0x19, 0xbf, 0x37, 0xa1,
- 0x9c, 0x30, 0x4f, 0x7c, 0x52, 0x17, 0x92, 0x24, 0xb7, 0x60, 0x32, 0xb6, 0xd7, 0x6c, 0x09, 0xe2,
- 0x58, 0xb1, 0xa1, 0x22, 0xbf, 0xa9, 0x93, 0x0f, 0x09, 0x91, 0x9f, 0x39, 0x47, 0x5b, 0x82, 0x93,
- 0x46, 0x2e, 0x45, 0xee, 0x88, 0xcc, 0xaf, 0x51, 0x55, 0x74, 0xce, 0x46, 0x06, 0x8e, 0xbb, 0x6a,
- 0xd8, 0xbf, 0x51, 0x80, 0x27, 0xfa, 0x4a, 0x36, 0x7d, 0xd7, 0x6b, 0xdd, 0xe3, 0xae, 0xf7, 0xc8,
- 0x13, 0xd4, 0x1c, 0xe0, 0x91, 0x07, 0x33, 0xc0, 0xcf, 0x41, 0xd9, 0xf3, 0x63, 0xe2, 0xb6, 0x23,
- 0x3e, 0x68, 0x86, 0x5b, 0xde, 0x8a, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0xa3, 0xfe, 0x53, 0x8d, 0xee,
- 0x72, 0x3f, 0xb6, 0xa3, 0xf4, 0x32, 0x4c, 0x3a, 0x61, 0xc8, 0xf1, 0xd8, 0xbd, 0x5a, 0x26, 0xde,
- 0x6e, 0xc1, 0x04, 0xe2, 0x34, 0xae, 0x31, 0x87, 0x47, 0xfb, 0xcd, 0x61, 0xfb, 0x4f, 0x2d, 0xa8,
- 0x60, 0x52, 0xe7, 0x39, 0x38, 0xd1, 0x2d, 0x31, 0x44, 0x56, 0x1e, 0xc9, 0x21, 0xd8, 0xa3, 0xda,
- 0x1e, 0x4b, 0x9a, 0xd0, 0x6b, 0xb0, 0xbb, 0xf3, 0x82, 0x16, 0x86, 0xca, 0x0b, 0xaa, 0x32, 0x43,
- 0x16, 0xfb, 0x67, 0x86, 0xb4, 0xdf, 0x1d, 0xa3, 0xdd, 0x0b, 0x83, 0xc5, 0x88, 0xd4, 0x62, 0xfa,
- 0x7d, 0xdb, 0x51, 0x33, 0xfb, 0xd6, 0xe0, 0x75, 0xbc, 0x8a, 0x69, 0x79, 0xea, 0x10, 0xa0, 0x30,
- 0x54, 0xb4, 0x51, 0xf1, 0xd0, 0x68, 0xa3, 0x97, 0x61, 0x32, 0x8e, 0x77, 0x36, 0x22, 0x6f, 0xcf,
- 0x49, 0xa8, 0x69, 0x21, 0xdc, 0x32, 0x74, 0x84, 0xc0, 0xe6, 0x65, 0x0d, 0xc4, 0x69, 0x5c, 0xb4,
- 0x0c, 0xd3, 0x3a, 0xe6, 0x87, 0x44, 0x09, 0xf3, 0xc2, 0xe0, 0x33, 0x41, 0x39, 0xe8, 0xeb, 0x28,
- 0x21, 0x81, 0x80, 0xbb, 0xeb, 0x50, 0x89, 0x95, 0x2a, 0xa4, 0x0d, 0x19, 0x4d, 0x4b, 0xac, 0x14,
- 0x1d, 0xda, 0x96, 0xae, 0x1a, 0x68, 0x0d, 0x4e, 0xf1, 0x89, 0xc1, 0x1e, 0xb7, 0x55, 0x3d, 0xe2,
- 0x5e, 0x33, 0x1f, 0x16, 0x84, 0x4e, 0x2d, 0x77, 0xa3, 0xe0, 0x5e, 0xf5, 0xa8, 0xdd, 0xa0, 0x8a,
- 0x57, 0x96, 0x84, 0xfd, 0xaa, 0xec, 0x06, 0x45, 0x66, 0xa5, 0x86, 0x4d, 0x3c, 0xf4, 0x69, 0x78,
- 0x5c, 0xff, 0xe5, 0xfe, 0x6e, 0xfc, 0x50, 0x67, 0x49, 0x84, 0x53, 0xaa, 0x3c, 0x84, 0xcb, 0x3d,
- 0xd1, 0x6a, 0xb8, 0x5f, 0x7d, 0xb4, 0x0d, 0x67, 0x15, 0xe8, 0x22, 0x35, 0xd2, 0xc2, 0xc8, 0x8b,
- 0x49, 0xd5, 0x89, 0xc9, 0xf5, 0xa8, 0xc9, 0x02, 0x30, 0x2b, 0x3a, 0xa1, 0xfa, 0xb2, 0x97, 0x5c,
- 0xee, 0x85, 0x89, 0x57, 0xf1, 0x3d, 0xa8, 0xa0, 0x79, 0xa8, 0x10, 0xdf, 0xd9, 0x6e, 0x92, 0xf5,
- 0xc5, 0x15, 0x16, 0x96, 0x69, 0x9c, 0x21, 0x5d, 0x94, 0x00, 0xac, 0x71, 0xd4, 0x4d, 0xe0, 0x44,
- 0xdf, 0x04, 0xfc, 0x1b, 0x70, 0xba, 0xe1, 0x86, 0x54, 0x0f, 0xf0, 0x5c, 0xb2, 0xe0, 0xba, 0xd4,
- 0xd0, 0xa7, 0x1f, 0x86, 0xe7, 0x45, 0x55, 0xd7, 0xdc, 0xcb, 0x8b, 0x1b, 0x5d, 0x38, 0xb8, 0x67,
- 0x4d, 0xba, 0xc6, 0xc2, 0x28, 0xd8, 0xef, 0xcc, 0x9c, 0x4a, 0xaf, 0xb1, 0x0d, 0x5a, 0x88, 0x39,
- 0x0c, 0x5d, 0x01, 0xc4, 0x7c, 0x26, 0x2e, 0x27, 0x49, 0xa8, 0x14, 0x8f, 0x99, 0xd3, 0xac, 0x4b,
- 0x67, 0x45, 0x0d, 0x74, 0xa9, 0x0b, 0x03, 0xf7, 0xa8, 0x65, 0xff, 0x89, 0x05, 0x93, 0x6a, 0xbd,
- 0x3e, 0x00, 0xaf, 0xa1, 0x66, 0xda, 0x6b, 0x68, 0xf9, 0xe8, 0x12, 0x8f, 0xb5, 0xbc, 0xcf, 0xd5,
- 0xf3, 0x57, 0xc7, 0x01, 0xb4, 0x54, 0x54, 0x1b, 0x92, 0xd5, 0x77, 0x43, 0x7a, 0x64, 0x25, 0x52,
- 0xaf, 0x18, 0xac, 0xd2, 0xc3, 0x8d, 0xc1, 0xda, 0x84, 0x33, 0x52, 0x5d, 0xe0, 0x47, 0x32, 0x97,
- 0x83, 0x58, 0x09, 0xb8, 0x72, 0xf5, 0x29, 0x41, 0xe8, 0xcc, 0x4a, 0x2f, 0x24, 0xdc, 0xbb, 0x6e,
- 0x4a, 0x4b, 0x19, 0x3b, 0x4c, 0x4b, 0xd1, 0x6b, 0x7a, 0xb5, 0x2e, 0xb3, 0x1a, 0x66, 0xd6, 0xf4,
- 0xea, 0xa5, 0x4d, 0xac, 0x71, 0x7a, 0x0b, 0xf6, 0x4a, 0x4e, 0x82, 0x1d, 0x86, 0x16, 0xec, 0x52,
- 0xc4, 0x8c, 0xf7, 0x15, 0x31, 0xf2, 0x14, 0x68, 0xa2, 0xef, 0x29, 0xd0, 0x2b, 0x30, 0xe5, 0xf9,
- 0x3b, 0x24, 0xf2, 0x12, 0x52, 0x63, 0x6b, 0x41, 0x3c, 0xe0, 0xae, 0xb6, 0xf5, 0x95, 0x14, 0x14,
- 0x67, 0xb0, 0xd3, 0x72, 0x71, 0x6a, 0x00, 0xb9, 0xd8, 0x67, 0x37, 0x3a, 0x91, 0xcf, 0x6e, 0x74,
- 0xf2, 0xe8, 0xbb, 0xd1, 0xf4, 0xb1, 0xee, 0x46, 0x28, 0x97, 0xdd, 0x68, 0x20, 0x41, 0x6f, 0x18,
- 0x74, 0xa7, 0x0f, 0x31, 0xe8, 0xfa, 0x6d, 0x45, 0x67, 0xee, 0x7b, 0x2b, 0xea, 0xbd, 0xcb, 0x3c,
- 0x76, 0x5f, 0xbb, 0xcc, 0xd7, 0x0a, 0x70, 0x46, 0xcb, 0x61, 0x3a, 0xfb, 0xbd, 0x3a, 0x95, 0x44,
- 0x2c, 0x31, 0x2e, 0x77, 0x47, 0x31, 0x9c, 0xd8, 0xb4, 0x3f, 0x9c, 0x82, 0x60, 0x03, 0x8b, 0xf9,
- 0x82, 0x91, 0x88, 0xa5, 0x98, 0xc9, 0x0a, 0xe9, 0x45, 0x51, 0x8e, 0x15, 0x06, 0x9d, 0x5f, 0xf4,
- 0xb7, 0xf0, 0xaf, 0xcd, 0x86, 0x9d, 0x2f, 0x6a, 0x10, 0x36, 0xf1, 0xd0, 0xb3, 0x9c, 0x09, 0x13,
- 0x10, 0x54, 0x50, 0x4f, 0x88, 0x27, 0x1f, 0xa4, 0x4c, 0x50, 0x50, 0xd9, 0x1c, 0xe6, 0xf4, 0x57,
- 0xea, 0x6e, 0x0e, 0xbb, 0x7c, 0x53, 0x18, 0xf6, 0xff, 0xb6, 0xe0, 0x89, 0x9e, 0x43, 0xf1, 0x00,
- 0x36, 0xdf, 0xfd, 0xf4, 0xe6, 0xbb, 0x99, 0x97, 0xb9, 0x61, 0xf4, 0xa2, 0xcf, 0x46, 0xfc, 0xef,
- 0x2d, 0x98, 0xd2, 0xf8, 0x0f, 0xa0, 0xab, 0x5e, 0xba, 0xab, 0xf9, 0x59, 0x56, 0x95, 0xae, 0xbe,
- 0xfd, 0x09, 0xeb, 0x1b, 0xbf, 0xc3, 0x58, 0x70, 0xe5, 0xdb, 0xfd, 0x87, 0x9c, 0xdd, 0x77, 0x60,
- 0x94, 0x65, 0x65, 0x8d, 0xf3, 0xb9, 0x4b, 0x49, 0xf3, 0x67, 0xde, 0xbc, 0xfa, 0x2e, 0x85, 0xfd,
- 0x8d, 0xb1, 0x60, 0xc8, 0x12, 0x20, 0x79, 0x31, 0x95, 0xe6, 0x35, 0xe1, 0x3e, 0xa7, 0x13, 0x20,
- 0x89, 0x72, 0xac, 0x30, 0xec, 0x16, 0xcc, 0xa4, 0x89, 0x2f, 0x91, 0x3a, 0xbb, 0xb2, 0x1e, 0xa8,
- 0x9b, 0xf3, 0x50, 0x71, 0x58, 0xad, 0xd5, 0xb6, 0x93, 0x7d, 0x25, 0x68, 0x41, 0x02, 0xb0, 0xc6,
- 0xb1, 0x7f, 0xc7, 0x82, 0x53, 0x3d, 0x3a, 0x93, 0xa3, 0xdb, 0x60, 0xa2, 0xa5, 0x40, 0xaf, 0x0d,
- 0xf7, 0x23, 0x30, 0x56, 0x23, 0x75, 0x47, 0x5e, 0x8a, 0x1a, 0x32, 0x77, 0x89, 0x17, 0x63, 0x09,
- 0xb7, 0xff, 0xbb, 0x05, 0x27, 0xd2, 0x6d, 0x8d, 0xa9, 0xd4, 0xe4, 0x9d, 0x59, 0xf2, 0x62, 0x37,
- 0xd8, 0x23, 0x51, 0x87, 0xf6, 0x9c, 0xb7, 0x5a, 0x49, 0xcd, 0x85, 0x2e, 0x0c, 0xdc, 0xa3, 0x16,
- 0x4b, 0xd0, 0x52, 0x53, 0xa3, 0x2d, 0x67, 0xca, 0x8d, 0x3c, 0x67, 0x8a, 0xfe, 0x98, 0xe6, 0xc5,
- 0x91, 0x62, 0x89, 0x4d, 0xfe, 0xf6, 0xfb, 0x23, 0xa0, 0xfc, 0x8a, 0xd9, 0xf5, 0x5b, 0x4e, 0x97,
- 0x97, 0xa9, 0xa7, 0xa4, 0x8a, 0x03, 0x3c, 0x25, 0x25, 0x27, 0xc3, 0xc8, 0xbd, 0xae, 0xc6, 0xf8,
- 0xe9, 0x85, 0x79, 0x48, 0xa8, 0x7a, 0xb8, 0xa5, 0x41, 0xd8, 0xc4, 0xa3, 0x2d, 0x69, 0x7a, 0x7b,
- 0x84, 0x57, 0x1a, 0x4d, 0xb7, 0x64, 0x55, 0x02, 0xb0, 0xc6, 0xa1, 0x2d, 0xa9, 0x79, 0xf5, 0xba,
- 0x30, 0xc5, 0x55, 0x4b, 0xe8, 0xe8, 0x60, 0x06, 0xa1, 0x18, 0x3b, 0x41, 0xb0, 0x2b, 0xb4, 0x53,
- 0x85, 0x71, 0x39, 0x08, 0x76, 0x31, 0x83, 0x50, 0x7d, 0xca, 0x0f, 0xa2, 0x16, 0x7b, 0xc5, 0xa9,
- 0xa6, 0xb8, 0x08, 0xad, 0x54, 0xe9, 0x53, 0xd7, 0xba, 0x51, 0x70, 0xaf, 0x7a, 0x74, 0x06, 0x86,
- 0x11, 0xa9, 0x79, 0x6e, 0x62, 0x52, 0x83, 0xf4, 0x0c, 0xdc, 0xe8, 0xc2, 0xc0, 0x3d, 0x6a, 0xa1,
- 0x05, 0x38, 0x21, 0xfd, 0xc2, 0x65, 0xe8, 0xdc, 0x78, 0x3a, 0x54, 0x07, 0xa7, 0xc1, 0x38, 0x8b,
- 0x4f, 0xa5, 0x4d, 0x4b, 0x44, 0xcd, 0x32, 0x25, 0xd6, 0x90, 0x36, 0x32, 0x9a, 0x16, 0x2b, 0x0c,
- 0xfb, 0x4b, 0x45, 0xba, 0x3b, 0xf6, 0xc9, 0x9e, 0xfb, 0xc0, 0x2e, 0xcb, 0xd3, 0x33, 0x72, 0x64,
- 0x80, 0x19, 0xf9, 0x22, 0x4c, 0xdc, 0x8a, 0x03, 0x5f, 0x5d, 0x44, 0x97, 0xfa, 0x5e, 0x44, 0x1b,
- 0x58, 0xbd, 0x2f, 0xa2, 0x47, 0xf3, 0xba, 0x88, 0x1e, 0xbb, 0xcf, 0x8b, 0xe8, 0xef, 0x95, 0x40,
- 0xe5, 0x9f, 0xbc, 0x46, 0x92, 0xdb, 0x41, 0xb4, 0xeb, 0xf9, 0x0d, 0xe6, 0x4f, 0xff, 0x5d, 0x0b,
- 0x26, 0xf8, 0x7a, 0x59, 0x35, 0x7d, 0x6b, 0xeb, 0x39, 0xe5, 0x49, 0x4c, 0x31, 0x9b, 0xdb, 0x32,
- 0x18, 0x65, 0x1e, 0x09, 0x30, 0x41, 0x38, 0xd5, 0x22, 0xf4, 0x0b, 0x00, 0xf2, 0xdc, 0xb2, 0x2e,
- 0x45, 0xe6, 0x4a, 0x3e, 0xed, 0xc3, 0xa4, 0xae, 0x75, 0xd3, 0x2d, 0xc5, 0x04, 0x1b, 0x0c, 0xd1,
- 0xd7, 0xb2, 0xaf, 0xdc, 0x7d, 0xee, 0x58, 0xc6, 0x66, 0x10, 0xaf, 0x63, 0x0c, 0x63, 0x9e, 0xdf,
- 0xa0, 0xf3, 0x44, 0xdc, 0xdd, 0xff, 0x64, 0xaf, 0x58, 0x94, 0xd5, 0xc0, 0xa9, 0x55, 0x9d, 0xa6,
- 0xe3, 0xbb, 0x24, 0x5a, 0xe1, 0xe8, 0xe6, 0xab, 0x35, 0xac, 0x00, 0x4b, 0x42, 0x5d, 0x89, 0x40,
- 0x4b, 0x83, 0x24, 0x02, 0x3d, 0xfb, 0x49, 0x98, 0xee, 0xfa, 0x98, 0x43, 0x39, 0x19, 0xdf, 0xbf,
- 0x7f, 0xb2, 0xfd, 0x2f, 0x46, 0xf5, 0xa6, 0x75, 0x2d, 0xa8, 0xf1, 0x74, 0x94, 0x91, 0xfe, 0xa2,
- 0x42, 0xf7, 0xcc, 0x71, 0x8a, 0x18, 0x2f, 0xdf, 0xa8, 0x42, 0x6c, 0xb2, 0xa4, 0x73, 0x34, 0x74,
- 0x22, 0xe2, 0x1f, 0xf7, 0x1c, 0xdd, 0x50, 0x4c, 0xb0, 0xc1, 0x10, 0xed, 0xa4, 0xbc, 0x0c, 0x2f,
- 0x1d, 0xdd, 0xcb, 0x90, 0x85, 0xba, 0xf6, 0xca, 0xb7, 0xf7, 0x6d, 0x0b, 0xa6, 0xfc, 0xd4, 0xcc,
- 0x15, 0xf7, 0x38, 0x5b, 0xc7, 0xb1, 0x2a, 0x78, 0xfa, 0xe2, 0x74, 0x19, 0xce, 0xf0, 0xef, 0xb5,
- 0xa5, 0x95, 0x86, 0xdc, 0xd2, 0x74, 0x5e, 0xdb, 0xd1, 0x7e, 0x79, 0x6d, 0x91, 0xaf, 0x32, 0x71,
- 0x8f, 0xe5, 0x9e, 0x89, 0x1b, 0x7a, 0x64, 0xe1, 0xbe, 0x09, 0x15, 0x37, 0x22, 0x4e, 0x72, 0x9f,
- 0x49, 0x99, 0xd9, 0x25, 0xf6, 0xa2, 0x24, 0x80, 0x35, 0x2d, 0xfb, 0xdf, 0x15, 0xe1, 0xa4, 0x1c,
- 0x11, 0xe9, 0x81, 0x45, 0xf7, 0x47, 0xce, 0x57, 0x2b, 0xb7, 0x6a, 0x7f, 0xbc, 0x2c, 0x01, 0x58,
- 0xe3, 0x50, 0x7d, 0xac, 0x1d, 0x93, 0xf5, 0x90, 0xf8, 0xab, 0xde, 0x76, 0x2c, 0xee, 0x1f, 0xd5,
- 0x42, 0xb9, 0xae, 0x41, 0xd8, 0xc4, 0xa3, 0xca, 0x38, 0xd7, 0x8b, 0xe3, 0xac, 0x43, 0xa3, 0xd0,
- 0xb7, 0xb1, 0x84, 0xa3, 0x5f, 0xeb, 0x99, 0xce, 0x3f, 0x1f, 0x57, 0xde, 0x2e, 0xc7, 0xb3, 0x21,
- 0xf3, 0xf8, 0xbf, 0x6d, 0xc1, 0x89, 0xdd, 0x54, 0x2c, 0x92, 0x14, 0xc9, 0x47, 0x8c, 0x9a, 0x4d,
- 0x07, 0x38, 0xe9, 0x29, 0x9c, 0x2e, 0x8f, 0x71, 0x96, 0xbb, 0xfd, 0x3f, 0x2d, 0x30, 0xc5, 0xd3,
- 0x60, 0x9a, 0x95, 0xf1, 0xfe, 0x4e, 0xe1, 0x90, 0xf7, 0x77, 0xa4, 0x12, 0x56, 0x1c, 0x4c, 0xe9,
- 0x1f, 0x19, 0x42, 0xe9, 0x2f, 0xf5, 0xd5, 0xda, 0x9e, 0x82, 0x62, 0xdb, 0xab, 0x09, 0xbd, 0x5d,
- 0xdf, 0x36, 0xae, 0x2c, 0x61, 0x5a, 0x6e, 0xff, 0xd3, 0x92, 0xb6, 0xd3, 0x85, 0x07, 0xea, 0x8f,
- 0x45, 0xb7, 0xeb, 0x2a, 0x08, 0x9a, 0xf7, 0xfc, 0x5a, 0x57, 0x10, 0xf4, 0x4f, 0x0f, 0xef, 0x60,
- 0xcc, 0x07, 0xa8, 0x5f, 0x0c, 0xf4, 0xd8, 0x21, 0xde, 0xc5, 0xb7, 0xa0, 0x4c, 0x4d, 0x1b, 0x76,
- 0xe0, 0x56, 0x4e, 0x35, 0xaa, 0x7c, 0x59, 0x94, 0xdf, 0x3d, 0x98, 0xfd, 0xa9, 0xe1, 0x9b, 0x25,
- 0x6b, 0x63, 0x45, 0x1f, 0xc5, 0x50, 0xa1, 0xbf, 0x99, 0x23, 0xb4, 0x30, 0x9a, 0xae, 0x2b, 0x59,
- 0x24, 0x01, 0xb9, 0x78, 0x59, 0x6b, 0x3e, 0xc8, 0x87, 0x0a, 0x7b, 0x4a, 0x84, 0x31, 0xe5, 0xb6,
- 0xd5, 0x86, 0x72, 0x47, 0x96, 0x80, 0xbb, 0x07, 0xb3, 0x2f, 0x0f, 0xcf, 0x54, 0x55, 0xc7, 0x9a,
- 0x85, 0xfd, 0xce, 0x88, 0x9e, 0xbb, 0x22, 0xf6, 0xfd, 0xc7, 0x62, 0xee, 0xbe, 0x94, 0x99, 0xbb,
- 0xe7, 0xbb, 0xe6, 0xee, 0x94, 0x7e, 0xf2, 0x22, 0x35, 0x1b, 0x1f, 0xf4, 0x06, 0x7b, 0xb8, 0x1d,
- 0xcf, 0x34, 0x8b, 0x37, 0xdb, 0x5e, 0x44, 0xe2, 0x8d, 0xa8, 0xed, 0x7b, 0x7e, 0x43, 0xbc, 0xa9,
- 0x67, 0x68, 0x16, 0x29, 0x30, 0xce, 0xe2, 0xb3, 0xf7, 0xf8, 0x3a, 0xbe, 0x7b, 0xd3, 0xd9, 0xe3,
- 0xb3, 0xca, 0x08, 0x07, 0xde, 0x14, 0xe5, 0x58, 0x61, 0xd8, 0xef, 0xb2, 0xbb, 0x5b, 0x23, 0x02,
- 0x83, 0xce, 0x89, 0x26, 0x7b, 0xbb, 0x85, 0xc7, 0x12, 0xab, 0x39, 0xc1, 0x1f, 0x6c, 0xe1, 0x30,
- 0x74, 0x1b, 0xc6, 0xb6, 0x79, 0x2e, 0xf4, 0x7c, 0x92, 0x8f, 0x89, 0xc4, 0xea, 0x2c, 0x3f, 0xa8,
- 0xcc, 0xb2, 0x7e, 0x57, 0xff, 0xc4, 0x92, 0x9b, 0xfd, 0xde, 0x08, 0x9c, 0xc8, 0xbc, 0xee, 0x91,
- 0x4a, 0x85, 0x52, 0x38, 0x34, 0x15, 0xca, 0x67, 0x00, 0x6a, 0x24, 0x6c, 0x06, 0x1d, 0xa6, 0xe6,
- 0x8c, 0x0c, 0xad, 0xe6, 0x28, 0xcd, 0x78, 0x49, 0x51, 0xc1, 0x06, 0x45, 0x11, 0x40, 0xcd, 0x33,
- 0xab, 0x64, 0x02, 0xa8, 0x8d, 0xfc, 0x7f, 0xa3, 0x0f, 0x36, 0xff, 0x9f, 0x07, 0x27, 0x78, 0x13,
- 0x55, 0x9c, 0xc3, 0x7d, 0x84, 0x33, 0x30, 0x0f, 0xd9, 0xa5, 0x34, 0x19, 0x9c, 0xa5, 0xfb, 0x30,
- 0x1f, 0xef, 0x41, 0x1f, 0x85, 0x8a, 0xfc, 0xce, 0xf1, 0x4c, 0x45, 0xc7, 0x8a, 0xc9, 0x69, 0xc0,
- 0x1e, 0xd5, 0x11, 0x3f, 0xed, 0x6f, 0x15, 0xa8, 0x56, 0xca, 0xff, 0xa9, 0x98, 0xdf, 0x67, 0x60,
- 0xd4, 0x69, 0x27, 0x3b, 0x41, 0x57, 0xf6, 0xf9, 0x05, 0x56, 0x8a, 0x05, 0x14, 0xad, 0xc2, 0x48,
- 0x4d, 0xc7, 0x71, 0x0e, 0x33, 0x8a, 0xfa, 0x80, 0xcf, 0x49, 0x08, 0x66, 0x54, 0xd0, 0x93, 0x30,
- 0x92, 0x38, 0x8d, 0xd4, 0xbb, 0x90, 0x5b, 0x4e, 0x23, 0xc6, 0xac, 0xd4, 0xdc, 0x34, 0x47, 0x0e,
- 0xd9, 0x34, 0x5f, 0x86, 0xc9, 0xd8, 0x6b, 0xf8, 0x4e, 0xd2, 0x8e, 0x88, 0x71, 0x99, 0xa4, 0xfd,
- 0x03, 0x4c, 0x20, 0x4e, 0xe3, 0xda, 0xef, 0x57, 0xe0, 0x74, 0xaf, 0xf7, 0xbb, 0xf3, 0xf6, 0x86,
- 0xef, 0xc5, 0xe3, 0xc1, 0x79, 0xc3, 0xf7, 0xe1, 0xde, 0x34, 0xbc, 0xe1, 0x9b, 0x86, 0x37, 0xfc,
- 0xd7, 0x2c, 0xa8, 0x28, 0x27, 0x70, 0xe1, 0xc8, 0xfa, 0xfa, 0x31, 0xbc, 0x91, 0x2e, 0x59, 0x08,
- 0x5f, 0x60, 0xf9, 0x17, 0x6b, 0xe6, 0xc7, 0xe7, 0x1e, 0x7f, 0xcf, 0x06, 0x0d, 0xe5, 0x1e, 0xaf,
- 0x62, 0x07, 0x4a, 0x79, 0xc4, 0x0e, 0xf4, 0xf9, 0x54, 0x3d, 0x63, 0x07, 0xbe, 0x6d, 0xc1, 0xb8,
- 0xf3, 0x56, 0x3b, 0x22, 0x4b, 0x64, 0x6f, 0x3d, 0x8c, 0x85, 0x80, 0x7d, 0x23, 0xff, 0x06, 0x2c,
- 0x68, 0x26, 0x22, 0x4d, 0xae, 0x2e, 0xc0, 0x66, 0x13, 0x52, 0xb1, 0x02, 0x63, 0x79, 0xc4, 0x0a,
- 0xf4, 0x6a, 0xce, 0xa1, 0xb1, 0x02, 0x2f, 0xc3, 0xa4, 0xdb, 0x0c, 0x7c, 0xb2, 0x11, 0x05, 0x49,
- 0xe0, 0x06, 0x4d, 0xa1, 0x4c, 0x2b, 0x91, 0xb0, 0x68, 0x02, 0x71, 0x1a, 0xb7, 0x5f, 0xa0, 0x41,
- 0xe5, 0xa8, 0x81, 0x06, 0xf0, 0x90, 0x02, 0x0d, 0xfe, 0xbc, 0x00, 0xb3, 0x87, 0x7c, 0x54, 0xf4,
- 0x12, 0x4c, 0x04, 0x51, 0xc3, 0xf1, 0xbd, 0xb7, 0x78, 0x9c, 0x67, 0x29, 0x9d, 0x86, 0x63, 0xdd,
- 0x80, 0xe1, 0x14, 0xa6, 0x74, 0x45, 0x1e, 0xed, 0xe3, 0x8a, 0xfc, 0x71, 0x18, 0x4f, 0x88, 0xd3,
- 0x12, 0x7e, 0x17, 0xc2, 0x00, 0xd2, 0x17, 0x4a, 0x1a, 0x84, 0x4d, 0x3c, 0x3a, 0x8d, 0xa6, 0x1c,
- 0xd7, 0x25, 0x71, 0x2c, 0x7d, 0x8d, 0xc5, 0xe1, 0x4c, 0x6e, 0x8e, 0xcc, 0xec, 0xcc, 0x6b, 0x21,
- 0xc5, 0x02, 0x67, 0x58, 0xd2, 0xc6, 0x3b, 0xcd, 0x26, 0x0f, 0x2b, 0x20, 0xf2, 0xa5, 0x67, 0x9d,
- 0x15, 0x42, 0x83, 0xb0, 0x89, 0x67, 0xff, 0x66, 0x01, 0x9e, 0xba, 0xa7, 0x78, 0x19, 0xd8, 0x0d,
- 0xbc, 0x1d, 0x93, 0x28, 0x7b, 0x21, 0x73, 0x3d, 0x26, 0x11, 0x66, 0x10, 0x3e, 0x4a, 0x61, 0x68,
- 0x3c, 0x31, 0x93, 0x77, 0xd4, 0x01, 0x1f, 0xa5, 0x14, 0x0b, 0x9c, 0x61, 0x99, 0x1d, 0xa5, 0x91,
- 0x01, 0x47, 0xe9, 0xef, 0x17, 0xe0, 0xe9, 0x01, 0x84, 0x70, 0x8e, 0xd1, 0x19, 0xe9, 0xe8, 0x96,
- 0xe2, 0xc3, 0x89, 0x6e, 0xb9, 0xdf, 0xe1, 0x7a, 0xb7, 0x00, 0x67, 0xfb, 0xcb, 0x42, 0xf4, 0x33,
- 0xd4, 0x88, 0x92, 0xce, 0x16, 0x66, 0x64, 0xcc, 0x29, 0x6e, 0x40, 0xa5, 0x40, 0x38, 0x8b, 0x8b,
- 0xe6, 0x00, 0x42, 0x27, 0xd9, 0x89, 0x2f, 0xee, 0x7b, 0x71, 0x22, 0x62, 0x3a, 0xa7, 0xf8, 0x51,
- 0xb8, 0x2c, 0xc5, 0x06, 0x06, 0x65, 0xc7, 0xfe, 0x2d, 0x05, 0xd7, 0x82, 0x84, 0x57, 0xe2, 0x7a,
- 0xdc, 0x29, 0x99, 0x87, 0xd0, 0x00, 0xe1, 0x2c, 0x2e, 0x65, 0xc7, 0x2e, 0x5b, 0x78, 0x43, 0xc5,
- 0x33, 0xf6, 0x94, 0xdd, 0xaa, 0x2a, 0xc5, 0x06, 0x46, 0x36, 0xe6, 0xa7, 0x34, 0x40, 0xcc, 0xcf,
- 0x3f, 0x2e, 0xc0, 0x13, 0x7d, 0xf7, 0xd2, 0xc1, 0x16, 0xe0, 0xa3, 0x17, 0xec, 0x73, 0x7f, 0x73,
- 0x67, 0xc8, 0x10, 0x96, 0x3f, 0xed, 0x33, 0xd3, 0x44, 0x08, 0x4b, 0x76, 0xab, 0xb0, 0x86, 0xdd,
- 0x2a, 0x1e, 0xa1, 0xf1, 0xec, 0x8a, 0x5a, 0x19, 0x19, 0x22, 0x6a, 0x25, 0xf3, 0x31, 0x4a, 0x03,
- 0x2e, 0xe4, 0xef, 0xf7, 0x1f, 0x5e, 0xaa, 0x7b, 0x0f, 0x74, 0x3c, 0xb5, 0x04, 0x27, 0x3d, 0x9f,
- 0xe5, 0xa4, 0xdd, 0x6c, 0x6f, 0x8b, 0x88, 0xdf, 0x42, 0xfa, 0xb9, 0xa5, 0x95, 0x0c, 0x1c, 0x77,
- 0xd5, 0x78, 0x04, 0xa3, 0x88, 0xee, 0x73, 0x48, 0x3f, 0x03, 0x15, 0x45, 0x9b, 0x7b, 0x46, 0xaa,
- 0x0f, 0xda, 0xe5, 0x19, 0xa9, 0xbe, 0xa6, 0x81, 0x45, 0x47, 0x62, 0x97, 0x74, 0xb2, 0x33, 0xf3,
- 0x2a, 0xe9, 0xb0, 0x5b, 0x52, 0xfb, 0x63, 0x30, 0xa1, 0x8c, 0xc8, 0x41, 0x73, 0xa6, 0xda, 0xef,
- 0x8c, 0xc2, 0x64, 0x2a, 0xb3, 0x43, 0xea, 0xcc, 0xc6, 0x3a, 0xf4, 0xcc, 0x86, 0x79, 0xba, 0xb6,
- 0x7d, 0x99, 0x95, 0xd8, 0xf0, 0x74, 0x6d, 0xfb, 0x04, 0x73, 0x18, 0x35, 0xdd, 0x6b, 0x51, 0x07,
- 0xb7, 0x7d, 0xe1, 0x91, 0xa6, 0x4c, 0xf7, 0x25, 0x56, 0x8a, 0x05, 0x14, 0x7d, 0xd1, 0x82, 0x89,
- 0x98, 0x1d, 0x08, 0xf2, 0x13, 0x2f, 0xf1, 0x41, 0xaf, 0xe4, 0xf1, 0xaa, 0xae, 0xc8, 0x62, 0xc2,
- 0x2e, 0xb3, 0xcd, 0x12, 0x9c, 0xe2, 0x88, 0xbe, 0x62, 0x99, 0xef, 0x09, 0x8f, 0xe6, 0xe1, 0x49,
- 0x99, 0x4d, 0x9c, 0xc1, 0x8f, 0x4a, 0xee, 0xfd, 0xac, 0xb0, 0x7e, 0x66, 0x7c, 0xec, 0xc1, 0x3d,
- 0x33, 0xfe, 0x51, 0xa8, 0xb4, 0x1c, 0xdf, 0xab, 0x93, 0x38, 0xe1, 0x27, 0x44, 0x32, 0x9f, 0x8f,
- 0x2c, 0xc4, 0x1a, 0x4e, 0x37, 0xbb, 0x98, 0x75, 0x2c, 0x31, 0x8e, 0x74, 0xd8, 0x66, 0xb7, 0xa9,
- 0x8b, 0xb1, 0x89, 0x63, 0x9e, 0x3f, 0xc1, 0x43, 0x3d, 0x7f, 0x1a, 0x3f, 0xe4, 0xfc, 0xe9, 0x1f,
- 0x5a, 0x70, 0xa6, 0xe7, 0x57, 0x7b, 0x74, 0x7d, 0x94, 0xec, 0xf7, 0x8b, 0x70, 0xaa, 0x47, 0x8a,
- 0x16, 0xd4, 0x39, 0xb6, 0xf7, 0xb1, 0x45, 0x0e, 0x98, 0xc9, 0xbe, 0x93, 0x78, 0xb8, 0xd3, 0x5f,
- 0x7d, 0x02, 0x5b, 0x7c, 0xb0, 0x27, 0xb0, 0xc6, 0xb4, 0x1c, 0x79, 0xa8, 0xd3, 0xb2, 0x74, 0xc8,
- 0xb4, 0x7c, 0xbf, 0x08, 0xc6, 0x73, 0xf7, 0xe8, 0x0b, 0x66, 0xda, 0x24, 0x2b, 0xaf, 0x14, 0x3f,
- 0x9c, 0xb8, 0x4a, 0xbb, 0xc4, 0x9b, 0xd3, 0x2b, 0x0b, 0x53, 0x56, 0x02, 0x14, 0x06, 0x90, 0x00,
- 0x4d, 0x99, 0x9f, 0xaa, 0x98, 0x7f, 0x7e, 0xaa, 0x4a, 0x36, 0x37, 0x15, 0xfa, 0x5d, 0x0b, 0x66,
- 0x5a, 0x7d, 0xf2, 0x28, 0xe6, 0x93, 0x36, 0xa0, 0x5f, 0x96, 0xc6, 0xea, 0x93, 0x77, 0x0e, 0x66,
- 0xfb, 0xa6, 0xaf, 0xc4, 0x7d, 0x5b, 0x65, 0xff, 0x4d, 0x8b, 0xaf, 0xe2, 0xcc, 0x57, 0xd0, 0xdb,
- 0xac, 0x75, 0x8f, 0x6d, 0xf6, 0x39, 0xf6, 0x02, 0x5b, 0xfd, 0x32, 0x71, 0x9a, 0x62, 0x3b, 0x36,
- 0x1f, 0x53, 0x63, 0xe5, 0x58, 0x61, 0xb0, 0x37, 0x13, 0x9a, 0xcd, 0xe0, 0xf6, 0xc5, 0x56, 0x98,
- 0x74, 0xc4, 0xc6, 0xac, 0xdf, 0x4c, 0x50, 0x10, 0x6c, 0x60, 0xd9, 0x7f, 0xbb, 0xc0, 0x67, 0xa0,
- 0xb8, 0xa4, 0x7c, 0x29, 0x93, 0xa0, 0x7b, 0xf0, 0xfb, 0xbd, 0xcf, 0x03, 0xb8, 0xea, 0xf1, 0xa5,
- 0x7c, 0x1e, 0xcf, 0xd7, 0x8f, 0x39, 0x99, 0x2f, 0xba, 0xcb, 0x32, 0x6c, 0xf0, 0x4b, 0x09, 0xa6,
- 0xe2, 0xa1, 0x82, 0x29, 0xb5, 0x46, 0x47, 0x0e, 0x59, 0xa3, 0x7f, 0x6e, 0x41, 0x4a, 0xbd, 0x40,
- 0x21, 0x94, 0x68, 0x73, 0x3b, 0xf9, 0xbc, 0x2b, 0x65, 0x92, 0xa6, 0x72, 0x46, 0x4c, 0x7b, 0xf6,
- 0x13, 0x73, 0x46, 0xa8, 0x29, 0xee, 0x32, 0x0b, 0x79, 0xbc, 0x7d, 0x66, 0x32, 0xbc, 0x1c, 0x04,
- 0xbb, 0xfc, 0x0a, 0x44, 0xdf, 0x8b, 0xda, 0x2f, 0xc1, 0x74, 0x57, 0xa3, 0x58, 0x2e, 0xde, 0x40,
- 0x3e, 0xa6, 0x65, 0x4c, 0x57, 0x16, 0x50, 0x84, 0x39, 0xcc, 0x7e, 0xd7, 0x82, 0x93, 0x59, 0xf2,
- 0xe8, 0x3b, 0x16, 0x4c, 0xc7, 0x59, 0x7a, 0xc7, 0x35, 0x76, 0xca, 0xcf, 0xa7, 0x0b, 0x84, 0xbb,
- 0x1b, 0x61, 0xff, 0x3f, 0x31, 0xf9, 0x6f, 0x7a, 0x7e, 0x2d, 0xb8, 0xad, 0x76, 0x79, 0xab, 0xef,
- 0x2e, 0x4f, 0xd7, 0xa3, 0xbb, 0x43, 0x6a, 0xed, 0x66, 0x57, 0x24, 0xd3, 0xa6, 0x28, 0xc7, 0x0a,
- 0x23, 0xf5, 0x72, 0x75, 0xf1, 0xd0, 0x97, 0xab, 0x5f, 0x84, 0x09, 0xf3, 0xc1, 0x38, 0x31, 0x2f,
- 0x99, 0x76, 0x6b, 0xbe, 0x2d, 0x87, 0x53, 0x58, 0x99, 0x27, 0x83, 0x4b, 0x87, 0x3e, 0x19, 0xfc,
- 0x2c, 0x94, 0xc5, 0xf3, 0xb7, 0xd2, 0x1b, 0x8e, 0x87, 0x49, 0x89, 0x32, 0xac, 0xa0, 0x54, 0x9a,
- 0xb4, 0x1c, 0xbf, 0xed, 0x34, 0xe9, 0x08, 0x89, 0xd8, 0x4e, 0xb5, 0x0c, 0xd7, 0x14, 0x04, 0x1b,
- 0x58, 0xb4, 0xc7, 0x89, 0xd7, 0x22, 0xaf, 0x05, 0xbe, 0xf4, 0x23, 0xd1, 0x07, 0xc4, 0xa2, 0x1c,
- 0x2b, 0x0c, 0xfb, 0xbf, 0x5a, 0x90, 0x7d, 0xbb, 0x33, 0x75, 0x64, 0x60, 0x1d, 0x1a, 0x4f, 0x9a,
- 0x8e, 0x46, 0x2b, 0x0c, 0x14, 0x8d, 0x66, 0x06, 0x8a, 0x15, 0xef, 0x19, 0x28, 0xf6, 0x13, 0xfa,
- 0x45, 0x07, 0x1e, 0x51, 0x36, 0xde, 0xeb, 0x35, 0x07, 0x64, 0xc3, 0xa8, 0xeb, 0xa8, 0x8c, 0x03,
- 0x13, 0x5c, 0x11, 0x5f, 0x5c, 0x60, 0x48, 0x02, 0x52, 0xdd, 0x7e, 0xef, 0x87, 0xe7, 0x3e, 0xf4,
- 0xfd, 0x1f, 0x9e, 0xfb, 0xd0, 0x1f, 0xff, 0xf0, 0xdc, 0x87, 0xbe, 0x78, 0xe7, 0x9c, 0xf5, 0xde,
- 0x9d, 0x73, 0xd6, 0xf7, 0xef, 0x9c, 0xb3, 0xfe, 0xf8, 0xce, 0x39, 0xeb, 0xfd, 0x3b, 0xe7, 0xac,
- 0x6f, 0xff, 0xa7, 0x73, 0x1f, 0x7a, 0xad, 0xa7, 0xdf, 0x0f, 0xfd, 0xf1, 0xbc, 0x5b, 0x9b, 0xdf,
- 0xbb, 0xc0, 0x5c, 0x4f, 0xe8, 0x6a, 0x98, 0x37, 0xa6, 0xc0, 0xbc, 0x5c, 0x0d, 0xff, 0x3f, 0x00,
- 0x00, 0xff, 0xff, 0x1e, 0x5d, 0x63, 0x46, 0x8d, 0xc2, 0x00, 0x00,
+ // 10611 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x25, 0xd9,
+ 0x75, 0x90, 0xfb, 0x7d, 0x48, 0xef, 0x1d, 0x69, 0x3e, 0x74, 0x67, 0x66, 0x57, 0x3b, 0xde, 0x5d,
+ 0x4d, 0x7a, 0x2b, 0xeb, 0x35, 0xde, 0x95, 0xb2, 0xe3, 0x5d, 0xb3, 0x64, 0x13, 0x3b, 0x7a, 0xd2,
+ 0x8c, 0x46, 0x33, 0xd2, 0x48, 0x7b, 0xa5, 0x99, 0xb1, 0xd7, 0x59, 0xaf, 0x5b, 0xfd, 0xae, 0x9e,
+ 0x7a, 0xd4, 0xaf, 0xbb, 0xb7, 0xbb, 0x9f, 0x46, 0xda, 0xd8, 0x8e, 0x1d, 0xe7, 0xc3, 0xe0, 0x4f,
+ 0x6c, 0xa8, 0x38, 0x80, 0x83, 0x13, 0x07, 0x8a, 0x14, 0x6c, 0x11, 0xe0, 0x07, 0x81, 0x40, 0xa5,
+ 0x92, 0xf0, 0xc3, 0x94, 0xa1, 0x48, 0x51, 0xa9, 0x38, 0x40, 0x22, 0x6c, 0x51, 0x14, 0x14, 0x55,
+ 0xa4, 0x2a, 0xc0, 0x0f, 0x18, 0x28, 0xa0, 0xee, 0xf7, 0xed, 0x7e, 0xef, 0x8d, 0x9e, 0xa4, 0xd6,
+ 0xcc, 0xd8, 0xd9, 0x7f, 0xef, 0xdd, 0x73, 0xfa, 0x9c, 0xd3, 0xb7, 0xef, 0x3d, 0xf7, 0xdc, 0x73,
+ 0xcf, 0x39, 0x17, 0x16, 0x5a, 0x5e, 0xba, 0xd1, 0x59, 0x9b, 0x74, 0xc3, 0xf6, 0x94, 0x13, 0xb7,
+ 0xc2, 0x28, 0x0e, 0x6f, 0xb3, 0x1f, 0xcf, 0xb9, 0xcd, 0xa9, 0xad, 0x8b, 0x53, 0xd1, 0x66, 0x6b,
+ 0xca, 0x89, 0xbc, 0x64, 0xca, 0x89, 0x22, 0xdf, 0x73, 0x9d, 0xd4, 0x0b, 0x83, 0xa9, 0xad, 0xe7,
+ 0x1d, 0x3f, 0xda, 0x70, 0x9e, 0x9f, 0x6a, 0x91, 0x80, 0xc4, 0x4e, 0x4a, 0x9a, 0x93, 0x51, 0x1c,
+ 0xa6, 0x21, 0xfa, 0x11, 0x4d, 0x6d, 0x52, 0x52, 0x63, 0x3f, 0x5e, 0x77, 0x9b, 0x93, 0x5b, 0x17,
+ 0x27, 0xa3, 0xcd, 0xd6, 0x24, 0xa5, 0x36, 0x69, 0x50, 0x9b, 0x94, 0xd4, 0xce, 0x3f, 0x67, 0xc8,
+ 0xd2, 0x0a, 0x5b, 0xe1, 0x14, 0x23, 0xba, 0xd6, 0x59, 0x67, 0xff, 0xd8, 0x1f, 0xf6, 0x8b, 0x33,
+ 0x3b, 0x6f, 0x6f, 0xbe, 0x94, 0x4c, 0x7a, 0x21, 0x15, 0x6f, 0xca, 0x0d, 0x63, 0x32, 0xb5, 0xd5,
+ 0x25, 0xd0, 0xf9, 0x2b, 0x1a, 0x87, 0x6c, 0xa7, 0x24, 0x48, 0xbc, 0x30, 0x48, 0x9e, 0xa3, 0x22,
+ 0x90, 0x78, 0x8b, 0xc4, 0xe6, 0xeb, 0x19, 0x08, 0xbd, 0x28, 0xbd, 0xa0, 0x29, 0xb5, 0x1d, 0x77,
+ 0xc3, 0x0b, 0x48, 0xbc, 0xa3, 0x1f, 0x6f, 0x93, 0xd4, 0xe9, 0xf5, 0xd4, 0x54, 0xbf, 0xa7, 0xe2,
+ 0x4e, 0x90, 0x7a, 0x6d, 0xd2, 0xf5, 0xc0, 0xfb, 0xf6, 0x7b, 0x20, 0x71, 0x37, 0x48, 0xdb, 0xe9,
+ 0x7a, 0xee, 0xbd, 0xfd, 0x9e, 0xeb, 0xa4, 0x9e, 0x3f, 0xe5, 0x05, 0x69, 0x92, 0xc6, 0xf9, 0x87,
+ 0xec, 0x37, 0xe0, 0xc4, 0xf4, 0xad, 0x95, 0xe9, 0x4e, 0xba, 0x31, 0x13, 0x06, 0xeb, 0x5e, 0x0b,
+ 0xbd, 0x08, 0x23, 0xae, 0xdf, 0x49, 0x52, 0x12, 0x5f, 0x77, 0xda, 0x64, 0xdc, 0xba, 0x60, 0x3d,
+ 0x53, 0x6f, 0x9c, 0xf9, 0xe6, 0xee, 0xc4, 0x3b, 0xf6, 0x76, 0x27, 0x46, 0x66, 0x34, 0x08, 0x9b,
+ 0x78, 0xe8, 0xdd, 0x30, 0x1c, 0x87, 0x3e, 0x99, 0xc6, 0xd7, 0xc7, 0x4b, 0xec, 0x91, 0x53, 0xe2,
+ 0x91, 0x61, 0xcc, 0x9b, 0xb1, 0x84, 0xdb, 0xbf, 0x5f, 0x02, 0x98, 0x8e, 0xa2, 0xe5, 0x38, 0xbc,
+ 0x4d, 0xdc, 0x14, 0x7d, 0x14, 0x6a, 0xb4, 0xeb, 0x9a, 0x4e, 0xea, 0x30, 0x6e, 0x23, 0x17, 0x7f,
+ 0x68, 0x92, 0xbf, 0xc9, 0xa4, 0xf9, 0x26, 0x7a, 0xe0, 0x50, 0xec, 0xc9, 0xad, 0xe7, 0x27, 0x97,
+ 0xd6, 0xe8, 0xf3, 0x8b, 0x24, 0x75, 0x1a, 0x48, 0x30, 0x03, 0xdd, 0x86, 0x15, 0x55, 0x14, 0x40,
+ 0x25, 0x89, 0x88, 0xcb, 0x04, 0x1b, 0xb9, 0xb8, 0x30, 0x79, 0x94, 0x11, 0x3a, 0xa9, 0x25, 0x5f,
+ 0x89, 0x88, 0xdb, 0x18, 0x15, 0x9c, 0x2b, 0xf4, 0x1f, 0x66, 0x7c, 0xd0, 0x16, 0x0c, 0x25, 0xa9,
+ 0x93, 0x76, 0x92, 0xf1, 0x32, 0xe3, 0x78, 0xbd, 0x30, 0x8e, 0x8c, 0x6a, 0xe3, 0xa4, 0xe0, 0x39,
+ 0xc4, 0xff, 0x63, 0xc1, 0xcd, 0xfe, 0x23, 0x0b, 0x4e, 0x6a, 0xe4, 0x05, 0x2f, 0x49, 0xd1, 0x8f,
+ 0x77, 0x75, 0xee, 0xe4, 0x60, 0x9d, 0x4b, 0x9f, 0x66, 0x5d, 0x7b, 0x5a, 0x30, 0xab, 0xc9, 0x16,
+ 0xa3, 0x63, 0xdb, 0x50, 0xf5, 0x52, 0xd2, 0x4e, 0xc6, 0x4b, 0x17, 0xca, 0xcf, 0x8c, 0x5c, 0xbc,
+ 0x52, 0xd4, 0x7b, 0x36, 0x4e, 0x08, 0xa6, 0xd5, 0x79, 0x4a, 0x1e, 0x73, 0x2e, 0xf6, 0xaf, 0x8e,
+ 0x9a, 0xef, 0x47, 0x3b, 0x1c, 0x3d, 0x0f, 0x23, 0x49, 0xd8, 0x89, 0x5d, 0x82, 0x49, 0x14, 0x26,
+ 0xe3, 0xd6, 0x85, 0x32, 0x1d, 0x7a, 0x74, 0xa4, 0xae, 0xe8, 0x66, 0x6c, 0xe2, 0xa0, 0x2f, 0x58,
+ 0x30, 0xda, 0x24, 0x49, 0xea, 0x05, 0x8c, 0xbf, 0x14, 0x7e, 0xf5, 0xc8, 0xc2, 0xcb, 0xc6, 0x59,
+ 0x4d, 0xbc, 0x71, 0x56, 0xbc, 0xc8, 0xa8, 0xd1, 0x98, 0xe0, 0x0c, 0x7f, 0x3a, 0xe3, 0x9a, 0x24,
+ 0x71, 0x63, 0x2f, 0xa2, 0xff, 0xd9, 0x98, 0x31, 0x66, 0xdc, 0xac, 0x06, 0x61, 0x13, 0x0f, 0x05,
+ 0x50, 0xa5, 0x33, 0x2a, 0x19, 0xaf, 0x30, 0xf9, 0xe7, 0x8f, 0x26, 0xbf, 0xe8, 0x54, 0x3a, 0x59,
+ 0x75, 0xef, 0xd3, 0x7f, 0x09, 0xe6, 0x6c, 0xd0, 0xe7, 0x2d, 0x18, 0x17, 0x33, 0x1e, 0x13, 0xde,
+ 0xa1, 0xb7, 0x36, 0xbc, 0x94, 0xf8, 0x5e, 0x92, 0x8e, 0x57, 0x99, 0x0c, 0x53, 0x83, 0x8d, 0xad,
+ 0xb9, 0x38, 0xec, 0x44, 0xd7, 0xbc, 0xa0, 0xd9, 0xb8, 0x20, 0x38, 0x8d, 0xcf, 0xf4, 0x21, 0x8c,
+ 0xfb, 0xb2, 0x44, 0x5f, 0xb1, 0xe0, 0x7c, 0xe0, 0xb4, 0x49, 0x12, 0x39, 0xf4, 0xd3, 0x72, 0x70,
+ 0xc3, 0x77, 0xdc, 0x4d, 0x26, 0xd1, 0xd0, 0xe1, 0x24, 0xb2, 0x85, 0x44, 0xe7, 0xaf, 0xf7, 0x25,
+ 0x8d, 0xef, 0xc1, 0x16, 0x7d, 0xc3, 0x82, 0xb1, 0x30, 0x8e, 0x36, 0x9c, 0x80, 0x34, 0x25, 0x34,
+ 0x19, 0x1f, 0x66, 0x53, 0xef, 0x23, 0x47, 0xfb, 0x44, 0x4b, 0x79, 0xb2, 0x8b, 0x61, 0xe0, 0xa5,
+ 0x61, 0xbc, 0x42, 0xd2, 0xd4, 0x0b, 0x5a, 0x49, 0xe3, 0xdc, 0xde, 0xee, 0xc4, 0x58, 0x17, 0x16,
+ 0xee, 0x96, 0x07, 0xfd, 0x04, 0x8c, 0x24, 0x3b, 0x81, 0x7b, 0xcb, 0x0b, 0x9a, 0xe1, 0x9d, 0x64,
+ 0xbc, 0x56, 0xc4, 0xf4, 0x5d, 0x51, 0x04, 0xc5, 0x04, 0xd4, 0x0c, 0xb0, 0xc9, 0xad, 0xf7, 0x87,
+ 0xd3, 0x43, 0xa9, 0x5e, 0xf4, 0x87, 0xd3, 0x83, 0xe9, 0x1e, 0x6c, 0xd1, 0xcf, 0x59, 0x70, 0x22,
+ 0xf1, 0x5a, 0x81, 0x93, 0x76, 0x62, 0x72, 0x8d, 0xec, 0x24, 0xe3, 0xc0, 0x04, 0xb9, 0x7a, 0xc4,
+ 0x5e, 0x31, 0x48, 0x36, 0xce, 0x09, 0x19, 0x4f, 0x98, 0xad, 0x09, 0xce, 0xf2, 0xed, 0x35, 0xd1,
+ 0xf4, 0xb0, 0x1e, 0x29, 0x76, 0xa2, 0xe9, 0x41, 0xdd, 0x97, 0x25, 0xfa, 0x31, 0x38, 0xcd, 0x9b,
+ 0x54, 0xcf, 0x26, 0xe3, 0xa3, 0x4c, 0xd1, 0x9e, 0xdd, 0xdb, 0x9d, 0x38, 0xbd, 0x92, 0x83, 0xe1,
+ 0x2e, 0x6c, 0xf4, 0x06, 0x4c, 0x44, 0x24, 0x6e, 0x7b, 0xe9, 0x52, 0xe0, 0xef, 0x48, 0xf5, 0xed,
+ 0x86, 0x11, 0x69, 0x0a, 0x71, 0x92, 0xf1, 0x13, 0x17, 0xac, 0x67, 0x6a, 0x8d, 0x77, 0x09, 0x31,
+ 0x27, 0x96, 0xef, 0x8d, 0x8e, 0xf7, 0xa3, 0x67, 0xff, 0xf3, 0x12, 0x9c, 0xce, 0x2f, 0x9c, 0xe8,
+ 0x6f, 0x5a, 0x70, 0xea, 0xf6, 0x9d, 0x74, 0x35, 0xdc, 0x24, 0x41, 0xd2, 0xd8, 0xa1, 0xea, 0x8d,
+ 0x2d, 0x19, 0x23, 0x17, 0xdd, 0x62, 0x97, 0xe8, 0xc9, 0xab, 0x59, 0x2e, 0x97, 0x82, 0x34, 0xde,
+ 0x69, 0x3c, 0x2a, 0xde, 0xee, 0xd4, 0xd5, 0x5b, 0xab, 0x26, 0x14, 0xe7, 0x85, 0x3a, 0xff, 0x59,
+ 0x0b, 0xce, 0xf6, 0x22, 0x81, 0x4e, 0x43, 0x79, 0x93, 0xec, 0x70, 0xab, 0x0c, 0xd3, 0x9f, 0xe8,
+ 0x35, 0xa8, 0x6e, 0x39, 0x7e, 0x87, 0x08, 0xeb, 0x66, 0xee, 0x68, 0x2f, 0xa2, 0x24, 0xc3, 0x9c,
+ 0xea, 0x0f, 0x97, 0x5e, 0xb2, 0xec, 0x7f, 0x55, 0x86, 0x11, 0x63, 0x7d, 0xbb, 0x0f, 0x16, 0x5b,
+ 0x98, 0xb1, 0xd8, 0x16, 0x0b, 0x5b, 0x9a, 0xfb, 0x9a, 0x6c, 0x77, 0x72, 0x26, 0xdb, 0x52, 0x71,
+ 0x2c, 0xef, 0x69, 0xb3, 0xa1, 0x14, 0xea, 0x61, 0x44, 0x2d, 0x72, 0xba, 0xf4, 0x57, 0x8a, 0xf8,
+ 0x84, 0x4b, 0x92, 0x5c, 0xe3, 0xc4, 0xde, 0xee, 0x44, 0x5d, 0xfd, 0xc5, 0x9a, 0x91, 0xfd, 0x6d,
+ 0x0b, 0xce, 0x1a, 0x32, 0xce, 0x84, 0x41, 0xd3, 0x63, 0x9f, 0xf6, 0x02, 0x54, 0xd2, 0x9d, 0x48,
+ 0x9a, 0xfd, 0xaa, 0xa7, 0x56, 0x77, 0x22, 0x82, 0x19, 0x84, 0x1a, 0xfa, 0x6d, 0x92, 0x24, 0x4e,
+ 0x8b, 0xe4, 0x0d, 0xfd, 0x45, 0xde, 0x8c, 0x25, 0x1c, 0xc5, 0x80, 0x7c, 0x27, 0x49, 0x57, 0x63,
+ 0x27, 0x48, 0x18, 0xf9, 0x55, 0xaf, 0x4d, 0x44, 0x07, 0xff, 0x99, 0xc1, 0x46, 0x0c, 0x7d, 0xa2,
+ 0xf1, 0xc8, 0xde, 0xee, 0x04, 0x5a, 0xe8, 0xa2, 0x84, 0x7b, 0x50, 0xb7, 0xbf, 0x62, 0xc1, 0x23,
+ 0xbd, 0x6d, 0x31, 0xf4, 0x34, 0x0c, 0xf1, 0x2d, 0x9f, 0x78, 0x3b, 0xfd, 0x49, 0x58, 0x2b, 0x16,
+ 0x50, 0x34, 0x05, 0x75, 0xb5, 0x4e, 0x88, 0x77, 0x1c, 0x13, 0xa8, 0x75, 0xbd, 0xb8, 0x68, 0x1c,
+ 0xda, 0x69, 0xf4, 0x8f, 0xb0, 0xdc, 0x54, 0xa7, 0xb1, 0x4d, 0x12, 0x83, 0xd8, 0xff, 0xde, 0x82,
+ 0x53, 0x86, 0x54, 0xf7, 0xc1, 0x34, 0x0f, 0xb2, 0xa6, 0xf9, 0x7c, 0x61, 0xe3, 0xb9, 0x8f, 0x6d,
+ 0xfe, 0x79, 0x0b, 0xce, 0x1b, 0x58, 0x8b, 0x4e, 0xea, 0x6e, 0x5c, 0xda, 0x8e, 0x62, 0x92, 0xd0,
+ 0xed, 0x34, 0x7a, 0xc2, 0xd0, 0x5b, 0x8d, 0x11, 0x41, 0xa1, 0x7c, 0x8d, 0xec, 0x70, 0x25, 0xf6,
+ 0x2c, 0xd4, 0xf8, 0xe0, 0x0c, 0x63, 0xd1, 0xe3, 0xea, 0xdd, 0x96, 0x44, 0x3b, 0x56, 0x18, 0xc8,
+ 0x86, 0x21, 0xa6, 0x9c, 0xe8, 0x64, 0xa5, 0xcb, 0x10, 0xd0, 0x8f, 0x78, 0x93, 0xb5, 0x60, 0x01,
+ 0xb1, 0x97, 0x32, 0xe2, 0x2c, 0xc7, 0x84, 0x7d, 0xdc, 0xe6, 0x65, 0x8f, 0xf8, 0xcd, 0x84, 0x6e,
+ 0x1b, 0x9c, 0x20, 0x08, 0x53, 0xb1, 0x03, 0x30, 0xb6, 0x0d, 0xd3, 0xba, 0x19, 0x9b, 0x38, 0xf6,
+ 0x5e, 0x89, 0x6d, 0x3e, 0xd4, 0xb4, 0x26, 0xf7, 0x63, 0xe7, 0x1a, 0x67, 0xf4, 0xe0, 0x72, 0x71,
+ 0x4a, 0x89, 0xf4, 0xdf, 0xbd, 0xbe, 0x99, 0x53, 0x85, 0xb8, 0x50, 0xae, 0xf7, 0xde, 0xc1, 0xfe,
+ 0x56, 0x09, 0x26, 0xb2, 0x0f, 0x74, 0x69, 0x52, 0xba, 0x5d, 0x32, 0x18, 0xe5, 0x1d, 0x14, 0x06,
+ 0x3e, 0x36, 0xf1, 0xfa, 0x28, 0xa3, 0xd2, 0x71, 0x2a, 0x23, 0x53, 0x57, 0x96, 0xf7, 0xd1, 0x95,
+ 0x4f, 0xab, 0x5e, 0xaf, 0xe4, 0x94, 0x53, 0x76, 0xbd, 0xb8, 0x00, 0x95, 0x24, 0x25, 0xd1, 0x78,
+ 0x35, 0xab, 0x6b, 0x56, 0x52, 0x12, 0x61, 0x06, 0xb1, 0xff, 0x4b, 0x09, 0x1e, 0xcd, 0xf6, 0xa1,
+ 0x56, 0xef, 0x1f, 0xc8, 0xa8, 0xf7, 0xf7, 0x98, 0xea, 0xfd, 0xee, 0xee, 0xc4, 0x3b, 0xfb, 0x3c,
+ 0xf6, 0x3d, 0xa3, 0xfd, 0xd1, 0x5c, 0xae, 0x17, 0xa7, 0xb2, 0xbd, 0x78, 0x77, 0x77, 0xe2, 0x89,
+ 0x3e, 0xef, 0x98, 0xeb, 0xe6, 0xa7, 0x61, 0x28, 0x26, 0x4e, 0x12, 0x06, 0xa2, 0xa3, 0xd5, 0xe7,
+ 0xc0, 0xac, 0x15, 0x0b, 0xa8, 0xfd, 0xaf, 0xeb, 0xf9, 0xce, 0x9e, 0xe3, 0x0e, 0xb6, 0x30, 0x46,
+ 0x1e, 0x54, 0x98, 0xc9, 0xce, 0x55, 0xc3, 0xb5, 0xa3, 0x4d, 0x23, 0xaa, 0xe2, 0x15, 0xe9, 0x46,
+ 0x8d, 0x7e, 0x35, 0xda, 0x84, 0x19, 0x0b, 0xb4, 0x0d, 0x35, 0x57, 0x5a, 0xd2, 0xa5, 0x22, 0x7c,
+ 0x4e, 0xc2, 0x8e, 0xd6, 0x1c, 0x47, 0xa9, 0x2e, 0x56, 0xe6, 0xb7, 0xe2, 0x86, 0x08, 0x94, 0x5b,
+ 0x5e, 0x2a, 0x3e, 0xeb, 0x11, 0xf7, 0x4a, 0x73, 0x9e, 0xf1, 0x8a, 0xc3, 0x74, 0x81, 0x98, 0xf3,
+ 0x52, 0x4c, 0xe9, 0xa3, 0x9f, 0xb1, 0x60, 0x24, 0x71, 0xdb, 0xcb, 0x71, 0xb8, 0xe5, 0x35, 0x49,
+ 0x2c, 0x2c, 0xa5, 0x23, 0xaa, 0xa6, 0x95, 0x99, 0x45, 0x49, 0x50, 0xf3, 0xe5, 0x7b, 0x57, 0x0d,
+ 0xc1, 0x26, 0x5f, 0xba, 0x83, 0x78, 0x54, 0xbc, 0xfb, 0x2c, 0x71, 0x3d, 0xba, 0xb6, 0xc9, 0x0d,
+ 0x13, 0x1b, 0x29, 0x47, 0xb6, 0x1c, 0x67, 0x3b, 0xee, 0x26, 0x9d, 0x6f, 0x5a, 0xa0, 0x77, 0xee,
+ 0xed, 0x4e, 0x3c, 0x3a, 0xd3, 0x9b, 0x27, 0xee, 0x27, 0x0c, 0xeb, 0xb0, 0xa8, 0xe3, 0xfb, 0x98,
+ 0xbc, 0xd1, 0x21, 0xcc, 0x1d, 0x52, 0x40, 0x87, 0x2d, 0x6b, 0x82, 0xb9, 0x0e, 0x33, 0x20, 0xd8,
+ 0xe4, 0x8b, 0xde, 0x80, 0xa1, 0xb6, 0x93, 0xc6, 0xde, 0xb6, 0xf0, 0x81, 0x1c, 0xd1, 0x96, 0x5f,
+ 0x64, 0xb4, 0x34, 0x73, 0xb6, 0xf4, 0xf3, 0x46, 0x2c, 0x18, 0xa1, 0x36, 0x54, 0xdb, 0x24, 0x6e,
+ 0x91, 0xf1, 0x5a, 0x11, 0xfe, 0xde, 0x45, 0x4a, 0x4a, 0x33, 0xac, 0x53, 0xcb, 0x87, 0xb5, 0x61,
+ 0xce, 0x05, 0xbd, 0x06, 0xb5, 0x84, 0xf8, 0xc4, 0xa5, 0xb6, 0x4b, 0x9d, 0x71, 0x7c, 0xef, 0x80,
+ 0x76, 0x9c, 0xb3, 0x46, 0xfc, 0x15, 0xf1, 0x28, 0x9f, 0x60, 0xf2, 0x1f, 0x56, 0x24, 0x69, 0x07,
+ 0x46, 0x7e, 0xa7, 0xe5, 0x05, 0xe3, 0x50, 0x44, 0x07, 0x2e, 0x33, 0x5a, 0xb9, 0x0e, 0xe4, 0x8d,
+ 0x58, 0x30, 0xb2, 0xff, 0xa3, 0x05, 0x28, 0xab, 0xd4, 0xee, 0x83, 0xc1, 0xfa, 0x46, 0xd6, 0x60,
+ 0x5d, 0x28, 0xd2, 0xea, 0xe8, 0x63, 0xb3, 0xfe, 0x46, 0x1d, 0x72, 0xcb, 0xc1, 0x75, 0x92, 0xa4,
+ 0xa4, 0xf9, 0xb6, 0x0a, 0x7f, 0x5b, 0x85, 0xbf, 0xad, 0xc2, 0x95, 0x0a, 0x5f, 0xcb, 0xa9, 0xf0,
+ 0xf7, 0x1b, 0xb3, 0x5e, 0x1f, 0x98, 0xbe, 0xae, 0x4e, 0x54, 0x4d, 0x09, 0x0c, 0x04, 0xaa, 0x09,
+ 0xae, 0xae, 0x2c, 0x5d, 0xef, 0xa9, 0xb3, 0x5f, 0xcf, 0xea, 0xec, 0xa3, 0xb2, 0xf8, 0xd3, 0xa0,
+ 0xa5, 0xff, 0x6a, 0x09, 0x1e, 0xcb, 0x6a, 0x2f, 0x1c, 0xfa, 0x7e, 0xd8, 0x49, 0xe9, 0x5e, 0x00,
+ 0xfd, 0xa2, 0x05, 0xa7, 0xdb, 0xd9, 0x4d, 0x78, 0x22, 0x7c, 0x9d, 0x1f, 0x2c, 0x4c, 0xb5, 0xe6,
+ 0x76, 0xf9, 0x8d, 0x71, 0xa1, 0x66, 0x4f, 0xe7, 0x00, 0x09, 0xee, 0x92, 0x05, 0xbd, 0x06, 0xf5,
+ 0xb6, 0xb3, 0x7d, 0x23, 0x6a, 0x3a, 0xa9, 0xdc, 0x86, 0xf5, 0xdf, 0x3d, 0x77, 0x52, 0xcf, 0x9f,
+ 0xe4, 0x27, 0xd8, 0x93, 0xf3, 0x41, 0xba, 0x14, 0xaf, 0xa4, 0xb1, 0x17, 0xb4, 0xb8, 0x87, 0x6b,
+ 0x51, 0x92, 0xc1, 0x9a, 0xa2, 0xfd, 0x35, 0x2b, 0xaf, 0xdb, 0x55, 0xef, 0xc4, 0x4e, 0x4a, 0x5a,
+ 0x3b, 0xe8, 0x63, 0x50, 0xa5, 0xfb, 0x25, 0xd9, 0x2b, 0xb7, 0x8a, 0x5c, 0x70, 0x8c, 0x2f, 0xa1,
+ 0xd7, 0x1e, 0xfa, 0x2f, 0xc1, 0x9c, 0xa9, 0xfd, 0x95, 0xe1, 0xfc, 0x1a, 0xcb, 0xce, 0x33, 0x2f,
+ 0x02, 0xb4, 0xc2, 0x55, 0xd2, 0x8e, 0x7c, 0xda, 0x2d, 0x16, 0x73, 0x8a, 0x2b, 0x17, 0xc1, 0x9c,
+ 0x82, 0x60, 0x03, 0x0b, 0xfd, 0x79, 0x0b, 0xa0, 0x25, 0x87, 0x8a, 0x5c, 0x3f, 0x6f, 0x14, 0xf9,
+ 0x3a, 0x7a, 0x20, 0x6a, 0x59, 0x14, 0x43, 0x6c, 0x30, 0x47, 0x3f, 0x65, 0x41, 0x2d, 0x95, 0xe2,
+ 0xf3, 0x15, 0x65, 0xb5, 0x48, 0x49, 0xe4, 0x4b, 0x6b, 0x53, 0x42, 0x75, 0x89, 0xe2, 0x8b, 0x7e,
+ 0xd6, 0x02, 0x48, 0x76, 0x02, 0x77, 0x39, 0xf4, 0x3d, 0x77, 0x47, 0x2c, 0x34, 0x37, 0x0b, 0x75,
+ 0x63, 0x28, 0xea, 0x8d, 0x93, 0xb4, 0x37, 0xf4, 0x7f, 0x6c, 0x70, 0x46, 0x9f, 0x80, 0x5a, 0x22,
+ 0x86, 0x9b, 0x58, 0x5a, 0x56, 0x8b, 0x75, 0xa6, 0x70, 0xda, 0x42, 0x2b, 0x89, 0x7f, 0x58, 0xf1,
+ 0x44, 0x3f, 0x6f, 0xc1, 0xa9, 0x28, 0xeb, 0xfa, 0x12, 0xab, 0x48, 0x71, 0x3a, 0x20, 0xe7, 0x5a,
+ 0x6b, 0x9c, 0xd9, 0xdb, 0x9d, 0x38, 0x95, 0x6b, 0xc4, 0x79, 0x29, 0xd0, 0x0c, 0x8c, 0xe9, 0x11,
+ 0xbc, 0x14, 0x71, 0x37, 0xdc, 0x30, 0x73, 0xc3, 0xb1, 0x53, 0xcc, 0xb9, 0x3c, 0x10, 0x77, 0xe3,
+ 0xa3, 0x65, 0x38, 0x4b, 0xa5, 0xdb, 0xe1, 0x56, 0x9b, 0xd4, 0xca, 0x09, 0x5b, 0x43, 0x6a, 0x8d,
+ 0xc7, 0xc5, 0x08, 0x61, 0x8e, 0xee, 0x3c, 0x0e, 0xee, 0xf9, 0xa4, 0xfd, 0xad, 0x52, 0xc6, 0x2f,
+ 0xae, 0x1c, 0x56, 0x6c, 0x8e, 0xb9, 0xd2, 0x57, 0x20, 0x55, 0x46, 0xa1, 0x73, 0x4c, 0x79, 0x22,
+ 0xf4, 0x1c, 0x53, 0x4d, 0x09, 0x36, 0x98, 0x53, 0x03, 0x66, 0xcc, 0xc9, 0xbb, 0xc5, 0xc4, 0xb4,
+ 0x7f, 0xad, 0x48, 0x91, 0xba, 0x4f, 0x31, 0x1e, 0x13, 0xa2, 0x8d, 0x75, 0x81, 0x70, 0xb7, 0x48,
+ 0xf6, 0xb7, 0xb2, 0xbe, 0x78, 0x63, 0xc4, 0x0e, 0x70, 0xce, 0xf0, 0x05, 0x0b, 0x46, 0xe2, 0xd0,
+ 0xf7, 0xbd, 0xa0, 0x45, 0x67, 0x97, 0x58, 0x22, 0x3e, 0x7c, 0x2c, 0x5a, 0x5a, 0x4c, 0x23, 0x66,
+ 0x06, 0x61, 0xcd, 0x13, 0x9b, 0x02, 0xd8, 0x7f, 0x64, 0xc1, 0x78, 0x3f, 0x2d, 0x80, 0x08, 0xbc,
+ 0x53, 0x0e, 0x71, 0x75, 0xca, 0xbe, 0x14, 0xcc, 0x12, 0x9f, 0x28, 0x27, 0x65, 0xad, 0xf1, 0x94,
+ 0x78, 0xcd, 0x77, 0x2e, 0xf7, 0x47, 0xc5, 0xf7, 0xa2, 0x83, 0x5e, 0x85, 0xd3, 0xc6, 0x7b, 0x25,
+ 0xaa, 0x63, 0xea, 0x8d, 0x49, 0xba, 0xec, 0x4e, 0xe7, 0x60, 0x77, 0x77, 0x27, 0x1e, 0xc9, 0xb7,
+ 0x09, 0x35, 0xd5, 0x45, 0xc7, 0xfe, 0x95, 0x52, 0xfe, 0x6b, 0xa9, 0x15, 0xe6, 0xab, 0x56, 0xd7,
+ 0xd6, 0xef, 0x83, 0xc7, 0xa1, 0xd5, 0xd9, 0x26, 0x51, 0x1d, 0xe4, 0xf7, 0xc7, 0x79, 0x80, 0x27,
+ 0x85, 0xf6, 0xbf, 0xa8, 0xc0, 0x3d, 0x24, 0x53, 0x67, 0x41, 0x56, 0xbf, 0xb3, 0xa0, 0x83, 0x1f,
+ 0x2f, 0x7d, 0xce, 0x82, 0x21, 0x9f, 0x5a, 0xa1, 0xfc, 0xbc, 0x63, 0xe4, 0x62, 0xf3, 0xb8, 0xfa,
+ 0x9e, 0x1b, 0xbb, 0x09, 0x3f, 0xad, 0x56, 0x2e, 0x4f, 0xde, 0x88, 0x85, 0x0c, 0xe8, 0xeb, 0x56,
+ 0xf6, 0xf0, 0x84, 0x87, 0x1f, 0x79, 0xc7, 0x26, 0x93, 0x71, 0x22, 0xc3, 0x05, 0xd3, 0xbe, 0xfe,
+ 0x3e, 0x67, 0x35, 0x68, 0x12, 0x60, 0xdd, 0x0b, 0x1c, 0xdf, 0x7b, 0x93, 0xee, 0xa6, 0xab, 0x6c,
+ 0x59, 0x61, 0xeb, 0xf4, 0x65, 0xd5, 0x8a, 0x0d, 0x8c, 0xf3, 0x7f, 0x0e, 0x46, 0x8c, 0x37, 0xef,
+ 0x71, 0xc8, 0x7e, 0xd6, 0x3c, 0x64, 0xaf, 0x1b, 0x67, 0xe3, 0xe7, 0xdf, 0x0f, 0xa7, 0xf3, 0x02,
+ 0x1e, 0xe4, 0x79, 0xfb, 0x7f, 0x0e, 0xe7, 0x4f, 0x3c, 0x56, 0x49, 0xdc, 0xa6, 0xa2, 0xbd, 0xed,
+ 0x85, 0x78, 0xdb, 0x0b, 0xf1, 0xb6, 0x17, 0xc2, 0x74, 0x24, 0x8b, 0x1d, 0xf6, 0xf0, 0x7d, 0xda,
+ 0x61, 0x67, 0x7c, 0x06, 0xb5, 0xc2, 0x7d, 0x06, 0xf6, 0x5e, 0x15, 0x32, 0x76, 0x14, 0xef, 0xef,
+ 0x77, 0xc3, 0x70, 0x4c, 0xa2, 0xf0, 0x06, 0x5e, 0x10, 0x6b, 0x88, 0x0e, 0xa4, 0xe6, 0xcd, 0x58,
+ 0xc2, 0xe9, 0x5a, 0x13, 0x39, 0xe9, 0x86, 0x58, 0x44, 0xd4, 0x5a, 0xb3, 0xec, 0xa4, 0x1b, 0x98,
+ 0x41, 0xd0, 0xfb, 0xe1, 0x64, 0xea, 0xc4, 0x2d, 0x92, 0x62, 0xb2, 0xc5, 0x3e, 0xab, 0x38, 0x17,
+ 0x7b, 0x44, 0xe0, 0x9e, 0x5c, 0xcd, 0x40, 0x71, 0x0e, 0x1b, 0xbd, 0x01, 0x95, 0x0d, 0xe2, 0xb7,
+ 0x45, 0x97, 0xaf, 0x14, 0xa7, 0xe3, 0xd9, 0xbb, 0x5e, 0x21, 0x7e, 0x9b, 0x6b, 0x20, 0xfa, 0x0b,
+ 0x33, 0x56, 0x74, 0xbc, 0xd5, 0x37, 0x3b, 0x49, 0x1a, 0xb6, 0xbd, 0x37, 0xa5, 0x3b, 0xe8, 0x83,
+ 0x05, 0x33, 0xbe, 0x26, 0xe9, 0x73, 0x07, 0x82, 0xfa, 0x8b, 0x35, 0x67, 0x26, 0x47, 0xd3, 0x8b,
+ 0xd9, 0xa7, 0xda, 0x11, 0x5e, 0x9d, 0xa2, 0xe5, 0x98, 0x95, 0xf4, 0xb9, 0x1c, 0xea, 0x2f, 0xd6,
+ 0x9c, 0xd1, 0x8e, 0x1a, 0xf7, 0x23, 0x4c, 0x86, 0x1b, 0x05, 0xcb, 0xc0, 0xc7, 0x7c, 0xcf, 0xf1,
+ 0xff, 0x14, 0x54, 0xdd, 0x0d, 0x27, 0x4e, 0xc7, 0x47, 0xd9, 0xa0, 0x51, 0x8e, 0x8c, 0x19, 0xda,
+ 0x88, 0x39, 0x0c, 0x3d, 0x01, 0xe5, 0x98, 0xac, 0xb3, 0xf8, 0x3d, 0x23, 0xb2, 0x03, 0x93, 0x75,
+ 0x4c, 0xdb, 0xed, 0x5f, 0x2a, 0x65, 0xcd, 0xa5, 0xec, 0x7b, 0xf3, 0xd1, 0xee, 0x76, 0xe2, 0x44,
+ 0x3a, 0x3b, 0x8c, 0xd1, 0xce, 0x9a, 0xb1, 0x84, 0xa3, 0x4f, 0x59, 0x30, 0x7c, 0x3b, 0x09, 0x83,
+ 0x80, 0xa4, 0x62, 0x69, 0xba, 0x59, 0x70, 0x57, 0x5c, 0xe5, 0xd4, 0xb5, 0x0c, 0xa2, 0x01, 0x4b,
+ 0xbe, 0x54, 0x5c, 0xb2, 0xed, 0xfa, 0x9d, 0x66, 0xd7, 0x81, 0xfe, 0x25, 0xde, 0x8c, 0x25, 0x9c,
+ 0xa2, 0x7a, 0x01, 0x47, 0xad, 0x64, 0x51, 0xe7, 0x03, 0x81, 0x2a, 0xe0, 0xf6, 0x5f, 0x1e, 0x82,
+ 0x73, 0x3d, 0x27, 0x07, 0x35, 0x64, 0x98, 0xa9, 0x70, 0xd9, 0xf3, 0x89, 0x0c, 0x53, 0x61, 0x86,
+ 0xcc, 0x4d, 0xd5, 0x8a, 0x0d, 0x0c, 0xf4, 0x93, 0x00, 0x91, 0x13, 0x3b, 0x6d, 0x22, 0x16, 0xf0,
+ 0xf2, 0xd1, 0xed, 0x05, 0x2a, 0xc7, 0xb2, 0xa4, 0xa9, 0xf7, 0xa6, 0xaa, 0x29, 0xc1, 0x06, 0x4b,
+ 0xf4, 0x22, 0x8c, 0xc4, 0xc4, 0x27, 0x4e, 0xc2, 0xc2, 0x3f, 0xf3, 0xb1, 0xec, 0x58, 0x83, 0xb0,
+ 0x89, 0x87, 0x9e, 0x56, 0x11, 0x3d, 0xb9, 0xe8, 0x87, 0x6c, 0x54, 0x0f, 0xfa, 0xa2, 0x05, 0x27,
+ 0xd7, 0x3d, 0x9f, 0x68, 0xee, 0x22, 0xf2, 0x7c, 0xe9, 0xe8, 0x2f, 0x79, 0xd9, 0xa4, 0xab, 0x35,
+ 0x64, 0xa6, 0x39, 0xc1, 0x39, 0xf6, 0xf4, 0x33, 0x6f, 0x91, 0x98, 0xa9, 0xd6, 0xa1, 0xec, 0x67,
+ 0xbe, 0xc9, 0x9b, 0xb1, 0x84, 0xa3, 0x69, 0x38, 0x15, 0x39, 0x49, 0x32, 0x13, 0x93, 0x26, 0x09,
+ 0x52, 0xcf, 0xf1, 0x79, 0x5c, 0x78, 0x4d, 0xc7, 0x85, 0x2e, 0x67, 0xc1, 0x38, 0x8f, 0x8f, 0x3e,
+ 0x04, 0x8f, 0x7a, 0xad, 0x20, 0x8c, 0xc9, 0xa2, 0x97, 0x24, 0x5e, 0xd0, 0xd2, 0xc3, 0x40, 0x38,
+ 0x3d, 0x26, 0x04, 0xa9, 0x47, 0xe7, 0x7b, 0xa3, 0xe1, 0x7e, 0xcf, 0xa3, 0x67, 0xa1, 0x96, 0x6c,
+ 0x7a, 0xd1, 0x4c, 0xdc, 0x4c, 0x98, 0x83, 0xbc, 0xa6, 0x5d, 0x6c, 0x2b, 0xa2, 0x1d, 0x2b, 0x0c,
+ 0xe4, 0xc2, 0x28, 0xff, 0x24, 0x3c, 0x6c, 0x49, 0xe8, 0xc7, 0xe7, 0xfa, 0x2e, 0x8f, 0x22, 0x75,
+ 0x69, 0x12, 0x3b, 0x77, 0x2e, 0x49, 0x77, 0x7d, 0xe3, 0xf4, 0xde, 0xee, 0xc4, 0xe8, 0x4d, 0x83,
+ 0x0c, 0xce, 0x10, 0xb5, 0x7f, 0xa1, 0x94, 0xdd, 0x71, 0x9b, 0x93, 0x14, 0x25, 0x74, 0x2a, 0xa6,
+ 0x37, 0x9d, 0x58, 0x7a, 0x63, 0x8e, 0x18, 0xbe, 0x2e, 0xe8, 0xde, 0x74, 0x62, 0x73, 0x52, 0x33,
+ 0x06, 0x58, 0x72, 0x42, 0xb7, 0xa1, 0x92, 0xfa, 0x4e, 0x41, 0xf9, 0x2e, 0x06, 0x47, 0xed, 0x00,
+ 0x59, 0x98, 0x4e, 0x30, 0xe3, 0x81, 0x1e, 0xa7, 0x56, 0xff, 0x9a, 0x8c, 0x71, 0x13, 0x86, 0xfa,
+ 0x5a, 0x82, 0x59, 0xab, 0xfd, 0xff, 0x6a, 0x3d, 0xf4, 0xaa, 0x5a, 0xc8, 0xd0, 0x45, 0x00, 0xba,
+ 0x81, 0x5c, 0x8e, 0xc9, 0xba, 0xb7, 0x2d, 0x0c, 0x09, 0x35, 0x77, 0xaf, 0x2b, 0x08, 0x36, 0xb0,
+ 0xe4, 0x33, 0x2b, 0x9d, 0x75, 0xfa, 0x4c, 0xa9, 0xfb, 0x19, 0x0e, 0xc1, 0x06, 0x16, 0x7a, 0x01,
+ 0x86, 0xbc, 0xb6, 0xd3, 0x52, 0xa1, 0x78, 0x8f, 0xd3, 0x49, 0x3b, 0xcf, 0x5a, 0xee, 0xee, 0x4e,
+ 0x9c, 0x54, 0x02, 0xb1, 0x26, 0x2c, 0x70, 0xd1, 0xaf, 0x58, 0x30, 0xea, 0x86, 0xed, 0x76, 0x18,
+ 0xf0, 0x6d, 0x97, 0xd8, 0x43, 0xde, 0x3e, 0xae, 0x65, 0x7e, 0x72, 0xc6, 0x60, 0xc6, 0x37, 0x91,
+ 0x2a, 0x31, 0xc7, 0x04, 0xe1, 0x8c, 0x54, 0xe6, 0xdc, 0xae, 0xee, 0x33, 0xb7, 0x7f, 0xdd, 0x82,
+ 0x31, 0xfe, 0xac, 0xb1, 0x1b, 0x14, 0x39, 0x28, 0xe1, 0x31, 0xbf, 0x56, 0xd7, 0x06, 0x59, 0x79,
+ 0xe9, 0xba, 0xe0, 0xb8, 0x5b, 0x48, 0x34, 0x07, 0x63, 0xeb, 0x61, 0xec, 0x12, 0xb3, 0x23, 0x84,
+ 0x62, 0x52, 0x84, 0x2e, 0xe7, 0x11, 0x70, 0xf7, 0x33, 0xe8, 0x26, 0x3c, 0x62, 0x34, 0x9a, 0xfd,
+ 0xc0, 0x75, 0xd3, 0x93, 0x82, 0xda, 0x23, 0x97, 0x7b, 0x62, 0xe1, 0x3e, 0x4f, 0x67, 0x1d, 0x26,
+ 0xf5, 0x01, 0x1c, 0x26, 0xaf, 0xc3, 0x63, 0x6e, 0x77, 0xcf, 0x6c, 0x25, 0x9d, 0xb5, 0x84, 0x6b,
+ 0xaa, 0x5a, 0xe3, 0x07, 0x04, 0x81, 0xc7, 0x66, 0xfa, 0x21, 0xe2, 0xfe, 0x34, 0xd0, 0xc7, 0xa0,
+ 0x16, 0x13, 0xf6, 0x55, 0x12, 0x91, 0x90, 0x71, 0xc4, 0x5d, 0xb2, 0xb6, 0x40, 0x39, 0x59, 0xad,
+ 0x7b, 0x45, 0x43, 0x82, 0x15, 0xc7, 0xf3, 0x1f, 0x80, 0xb1, 0xae, 0xf1, 0x7c, 0x20, 0x9f, 0xc5,
+ 0x2c, 0x3c, 0xd2, 0x7b, 0xe4, 0x1c, 0xc8, 0x73, 0xf1, 0x0f, 0x72, 0x71, 0x86, 0x86, 0x35, 0x39,
+ 0x80, 0x17, 0xcc, 0x81, 0x32, 0x09, 0xb6, 0x84, 0x22, 0xbd, 0x7c, 0xb4, 0xde, 0xbb, 0x14, 0x6c,
+ 0xf1, 0x81, 0xcf, 0xb6, 0xfa, 0x97, 0x82, 0x2d, 0x4c, 0x69, 0xa3, 0x2f, 0x5b, 0x19, 0x6b, 0x88,
+ 0xfb, 0xce, 0x3e, 0x72, 0x2c, 0xe6, 0xf3, 0xc0, 0x06, 0x92, 0xfd, 0x2f, 0x4b, 0x70, 0x61, 0x3f,
+ 0x22, 0x03, 0x74, 0xdf, 0x53, 0x30, 0x94, 0xb0, 0x23, 0x50, 0xa1, 0x99, 0x46, 0xa8, 0x56, 0xe2,
+ 0x87, 0xa2, 0xaf, 0x63, 0x01, 0x42, 0x3e, 0x94, 0xdb, 0x4e, 0x24, 0x5c, 0x2a, 0xf3, 0x47, 0xcd,
+ 0x2a, 0xa0, 0xff, 0x1d, 0x7f, 0xd1, 0x89, 0xf8, 0x46, 0xdd, 0x68, 0xc0, 0x94, 0x0d, 0x4a, 0xa1,
+ 0xea, 0xc4, 0xb1, 0x23, 0xcf, 0xdb, 0xae, 0x15, 0xc3, 0x6f, 0x9a, 0x92, 0x6c, 0x8c, 0xed, 0xed,
+ 0x4e, 0x9c, 0xc8, 0x34, 0x61, 0xce, 0xcc, 0xfe, 0xdc, 0x70, 0x26, 0xb2, 0x9e, 0x1d, 0xa2, 0x26,
+ 0x30, 0x24, 0x3c, 0x29, 0x56, 0xd1, 0xc9, 0x1c, 0x3c, 0x35, 0x8a, 0x6d, 0x96, 0x44, 0x82, 0xa9,
+ 0x60, 0x85, 0x3e, 0x6b, 0xb1, 0x34, 0x4e, 0x99, 0x6d, 0x20, 0xb6, 0x28, 0xc7, 0x93, 0x55, 0x6a,
+ 0x26, 0x87, 0xca, 0x46, 0x6c, 0x72, 0xa7, 0x4b, 0x57, 0xc4, 0x13, 0x92, 0xf2, 0x1b, 0x15, 0x99,
+ 0xe8, 0x29, 0xe1, 0x68, 0xbb, 0xc7, 0x61, 0x69, 0x01, 0xa9, 0x80, 0x03, 0x1c, 0x8f, 0x7e, 0xdd,
+ 0x82, 0x31, 0x6e, 0x8e, 0xce, 0x7a, 0xeb, 0xeb, 0x24, 0x26, 0x81, 0x4b, 0xa4, 0x41, 0x7f, 0xc4,
+ 0xe3, 0x78, 0xe9, 0xbe, 0x9a, 0xcf, 0x93, 0xd7, 0x6b, 0x5a, 0x17, 0x08, 0x77, 0x0b, 0x83, 0x9a,
+ 0x50, 0xf1, 0x82, 0xf5, 0x50, 0xac, 0xe4, 0x8d, 0xa3, 0x09, 0x35, 0x1f, 0xac, 0x87, 0x7a, 0x36,
+ 0xd3, 0x7f, 0x98, 0x51, 0x47, 0x0b, 0x70, 0x36, 0x16, 0x2e, 0x97, 0x2b, 0x5e, 0x42, 0x37, 0xc6,
+ 0x0b, 0x5e, 0xdb, 0x4b, 0xd9, 0x2a, 0x5c, 0x6e, 0x8c, 0xef, 0xed, 0x4e, 0x9c, 0xc5, 0x3d, 0xe0,
+ 0xb8, 0xe7, 0x53, 0xe8, 0x4d, 0x18, 0x96, 0x79, 0xa7, 0xb5, 0x22, 0x36, 0x47, 0xdd, 0xe3, 0x5f,
+ 0x0d, 0xa6, 0x15, 0x91, 0x62, 0x2a, 0x19, 0xda, 0x5f, 0x1c, 0x81, 0xee, 0xb3, 0x41, 0xf4, 0x71,
+ 0xa8, 0xc7, 0x2a, 0x17, 0xd6, 0x2a, 0x22, 0xbe, 0x4f, 0x7e, 0x5f, 0x71, 0x2e, 0xa9, 0xec, 0x01,
+ 0x9d, 0xf5, 0xaa, 0x39, 0x52, 0xab, 0x3d, 0xd1, 0x47, 0x88, 0x05, 0x8c, 0x6d, 0xc1, 0x55, 0x1f,
+ 0x0f, 0xed, 0x04, 0x2e, 0x66, 0x3c, 0x50, 0x0c, 0x43, 0x1b, 0xc4, 0xf1, 0xd3, 0x8d, 0x62, 0x3c,
+ 0xd9, 0x57, 0x18, 0xad, 0x7c, 0xd6, 0x04, 0x6f, 0xc5, 0x82, 0x13, 0xda, 0x86, 0xe1, 0x0d, 0x3e,
+ 0x00, 0x84, 0x21, 0xbd, 0x78, 0xd4, 0xce, 0xcd, 0x8c, 0x2a, 0xfd, 0xb9, 0x45, 0x03, 0x96, 0xec,
+ 0x58, 0xa4, 0x85, 0x71, 0x2c, 0xce, 0xa7, 0x6e, 0x71, 0x09, 0x23, 0x83, 0x9f, 0x89, 0x7f, 0x14,
+ 0x46, 0x63, 0xe2, 0x86, 0x81, 0xeb, 0xf9, 0xa4, 0x39, 0x2d, 0xbd, 0xd4, 0x07, 0x49, 0x33, 0x60,
+ 0x9b, 0x51, 0x6c, 0xd0, 0xc0, 0x19, 0x8a, 0xe8, 0x33, 0x16, 0x9c, 0x54, 0x09, 0x74, 0xf4, 0x83,
+ 0x10, 0xe1, 0x15, 0x5d, 0x28, 0x28, 0x5d, 0x8f, 0xd1, 0x6c, 0xa0, 0xbd, 0xdd, 0x89, 0x93, 0xd9,
+ 0x36, 0x9c, 0xe3, 0x8b, 0x5e, 0x05, 0x08, 0xd7, 0x78, 0x38, 0xc5, 0x74, 0x2a, 0x5c, 0xa4, 0x07,
+ 0x79, 0xd5, 0x93, 0x3c, 0xdf, 0x48, 0x52, 0xc0, 0x06, 0x35, 0x74, 0x0d, 0x80, 0x4f, 0x9b, 0xd5,
+ 0x9d, 0x48, 0x5a, 0xdb, 0x32, 0x4f, 0x04, 0x56, 0x14, 0xe4, 0xee, 0xee, 0x44, 0xb7, 0xcb, 0x8a,
+ 0x9d, 0xde, 0x1b, 0x8f, 0xa3, 0x9f, 0x80, 0xe1, 0xa4, 0xd3, 0x6e, 0x3b, 0xca, 0x81, 0x5a, 0x60,
+ 0x06, 0x13, 0xa7, 0x6b, 0xa8, 0x22, 0xde, 0x80, 0x25, 0x47, 0x74, 0x9b, 0x2a, 0xd5, 0x44, 0xf8,
+ 0xd2, 0xd8, 0x2c, 0xe2, 0x36, 0xc1, 0x08, 0x7b, 0xa7, 0xf7, 0xc9, 0xe8, 0x10, 0xdc, 0x03, 0xe7,
+ 0xee, 0xee, 0xc4, 0x23, 0xd9, 0xf6, 0x85, 0x50, 0xe4, 0x14, 0xf5, 0xa4, 0x89, 0xae, 0xca, 0x32,
+ 0x14, 0xf4, 0xb5, 0x65, 0x76, 0xf4, 0x33, 0xba, 0x0c, 0x05, 0x6b, 0xee, 0xdf, 0x67, 0xe6, 0xc3,
+ 0x68, 0x11, 0xce, 0xb8, 0x61, 0x90, 0xc6, 0xa1, 0xef, 0xf3, 0xda, 0x2a, 0x7c, 0xe3, 0xc3, 0x1d,
+ 0xac, 0xef, 0x14, 0x62, 0x9f, 0x99, 0xe9, 0x46, 0xc1, 0xbd, 0x9e, 0xb3, 0x83, 0x6c, 0x9c, 0x99,
+ 0xe8, 0x9c, 0x17, 0x60, 0x94, 0x6c, 0xa7, 0x24, 0x0e, 0x1c, 0xff, 0x06, 0x5e, 0x90, 0xae, 0x45,
+ 0x36, 0x07, 0x2e, 0x19, 0xed, 0x38, 0x83, 0x85, 0x6c, 0xb5, 0xdb, 0x2f, 0xe9, 0xc4, 0x3b, 0xbe,
+ 0xdb, 0x97, 0x7b, 0x7b, 0xfb, 0x7f, 0x95, 0x32, 0x06, 0xd9, 0x6a, 0x4c, 0x08, 0x0a, 0xa1, 0x1a,
+ 0x84, 0x4d, 0xa5, 0xfb, 0xaf, 0x16, 0xa3, 0xfb, 0xaf, 0x87, 0x4d, 0xa3, 0x56, 0x05, 0xfd, 0x97,
+ 0x60, 0xce, 0x87, 0x25, 0xf3, 0xcb, 0xaa, 0x07, 0x0c, 0x20, 0x36, 0x1a, 0x45, 0x72, 0x56, 0xc9,
+ 0xfc, 0x4b, 0x26, 0x23, 0x9c, 0xe5, 0x8b, 0x36, 0xa1, 0xba, 0x11, 0x26, 0xa9, 0xdc, 0x7e, 0x1c,
+ 0x71, 0xa7, 0x73, 0x25, 0x4c, 0x52, 0x66, 0x45, 0xa8, 0xd7, 0xa6, 0x2d, 0x09, 0xe6, 0x3c, 0xec,
+ 0xff, 0x64, 0x65, 0x1c, 0xc9, 0xb7, 0x58, 0xcc, 0xe5, 0x16, 0x09, 0xe8, 0xb4, 0x36, 0xe3, 0x6d,
+ 0xfe, 0x6c, 0x2e, 0xf1, 0xeb, 0x5d, 0xfd, 0x2a, 0x07, 0xdd, 0xa1, 0x14, 0x26, 0x19, 0x09, 0x23,
+ 0x34, 0xe7, 0x93, 0x56, 0x36, 0x05, 0xaf, 0x54, 0xc4, 0x06, 0xc3, 0x4c, 0x31, 0xdd, 0x37, 0x9b,
+ 0xcf, 0xfe, 0xb2, 0x05, 0xc3, 0x0d, 0xc7, 0xdd, 0x0c, 0xd7, 0xd7, 0xd1, 0xb3, 0x50, 0x6b, 0x76,
+ 0x62, 0x33, 0x1b, 0x50, 0xed, 0x9e, 0x67, 0x45, 0x3b, 0x56, 0x18, 0x74, 0x0c, 0xaf, 0x3b, 0xae,
+ 0x4c, 0x34, 0x2d, 0xf3, 0x31, 0x7c, 0x99, 0xb5, 0x60, 0x01, 0x41, 0x2f, 0xc2, 0x48, 0xdb, 0xd9,
+ 0x96, 0x0f, 0xe7, 0xbd, 0xd8, 0x8b, 0x1a, 0x84, 0x4d, 0x3c, 0xfb, 0x9f, 0x59, 0x30, 0xde, 0x70,
+ 0x12, 0xcf, 0x9d, 0xee, 0xa4, 0x1b, 0x0d, 0x2f, 0x5d, 0xeb, 0xb8, 0x9b, 0x24, 0xe5, 0xd9, 0xc5,
+ 0x54, 0xca, 0x4e, 0x42, 0xa7, 0x92, 0xda, 0xd7, 0x29, 0x29, 0x6f, 0x88, 0x76, 0xac, 0x30, 0xd0,
+ 0x9b, 0x30, 0x12, 0x39, 0x49, 0x72, 0x27, 0x8c, 0x9b, 0x98, 0xac, 0x17, 0x93, 0xdb, 0xbf, 0x42,
+ 0xdc, 0x98, 0xa4, 0x98, 0xac, 0x8b, 0x93, 0x56, 0x4d, 0x1f, 0x9b, 0xcc, 0xec, 0x2f, 0x58, 0xf0,
+ 0x58, 0x83, 0x38, 0x31, 0x89, 0x59, 0x29, 0x00, 0xf5, 0x22, 0x33, 0x7e, 0xd8, 0x69, 0xa2, 0x37,
+ 0xa0, 0x96, 0xd2, 0x66, 0x2a, 0x96, 0x55, 0xac, 0x58, 0xec, 0xa0, 0x74, 0x55, 0x10, 0xc7, 0x8a,
+ 0x8d, 0xfd, 0x57, 0x2c, 0x18, 0x65, 0x67, 0x4e, 0xb3, 0x24, 0x75, 0x3c, 0xbf, 0xab, 0x62, 0x8e,
+ 0x35, 0x60, 0xc5, 0x9c, 0x0b, 0x50, 0xd9, 0x08, 0xdb, 0x24, 0x7f, 0x5e, 0x7a, 0x25, 0xa4, 0xdb,
+ 0x6a, 0x0a, 0x41, 0xcf, 0xd3, 0x0f, 0xef, 0x05, 0xa9, 0x43, 0xa7, 0x80, 0xf4, 0x69, 0x9e, 0xe2,
+ 0x1f, 0x5d, 0x35, 0x63, 0x13, 0xc7, 0xfe, 0xad, 0x3a, 0x0c, 0x8b, 0x43, 0xf5, 0x81, 0x33, 0xcc,
+ 0xe5, 0xfe, 0xbe, 0xd4, 0x77, 0x7f, 0x9f, 0xc0, 0x90, 0xcb, 0xea, 0x71, 0x09, 0x33, 0xf2, 0x5a,
+ 0x21, 0x51, 0x18, 0xbc, 0xc4, 0x97, 0x16, 0x8b, 0xff, 0xc7, 0x82, 0x15, 0xfa, 0x92, 0x05, 0xa7,
+ 0xdc, 0x30, 0x08, 0x88, 0xab, 0x6d, 0x9c, 0x4a, 0x11, 0x87, 0xed, 0x33, 0x59, 0xa2, 0xfa, 0xc0,
+ 0x23, 0x07, 0xc0, 0x79, 0xf6, 0xe8, 0x65, 0x38, 0xc1, 0xfb, 0xec, 0x66, 0xc6, 0x11, 0xab, 0x0b,
+ 0xa9, 0x98, 0x40, 0x9c, 0xc5, 0x45, 0x93, 0xdc, 0xa1, 0x2d, 0x4a, 0x96, 0x0c, 0xe9, 0xd3, 0x33,
+ 0xa3, 0x58, 0x89, 0x81, 0x81, 0x62, 0x40, 0x31, 0x59, 0x8f, 0x49, 0xb2, 0x21, 0x82, 0x0e, 0x98,
+ 0x7d, 0x35, 0x7c, 0xb8, 0x8c, 0x55, 0xdc, 0x45, 0x09, 0xf7, 0xa0, 0x8e, 0x36, 0xc5, 0x06, 0xb3,
+ 0x56, 0x84, 0x0e, 0x15, 0x9f, 0xb9, 0xef, 0x3e, 0x73, 0x02, 0xaa, 0xc9, 0x86, 0x13, 0x37, 0x99,
+ 0x5d, 0x57, 0xe6, 0x59, 0x12, 0x2b, 0xb4, 0x01, 0xf3, 0x76, 0x34, 0x0b, 0xa7, 0x73, 0x65, 0x60,
+ 0x12, 0xe1, 0x30, 0x55, 0xa1, 0xfd, 0xb9, 0x02, 0x32, 0x09, 0xee, 0x7a, 0xc2, 0x74, 0x3e, 0x8c,
+ 0xec, 0xe3, 0x7c, 0xd8, 0x51, 0xa1, 0x6d, 0xa3, 0x6c, 0x7d, 0x7c, 0xa5, 0x90, 0x0e, 0x18, 0x28,
+ 0x8e, 0xed, 0xf3, 0xb9, 0x38, 0xb6, 0x13, 0x4c, 0x80, 0x9b, 0xc5, 0x08, 0x70, 0xf0, 0xa0, 0xb5,
+ 0x07, 0x19, 0x84, 0xf6, 0x3f, 0x2c, 0x90, 0xdf, 0x75, 0xc6, 0x71, 0x37, 0x08, 0x1d, 0x32, 0xe8,
+ 0xfd, 0x70, 0x52, 0x6d, 0xa1, 0x67, 0xc2, 0x4e, 0xc0, 0xe3, 0xcf, 0xca, 0xfa, 0x64, 0x14, 0x67,
+ 0xa0, 0x38, 0x87, 0x8d, 0xa6, 0xa0, 0x4e, 0xfb, 0x89, 0x3f, 0xca, 0xd7, 0x5a, 0xb5, 0x4d, 0x9f,
+ 0x5e, 0x9e, 0x17, 0x4f, 0x69, 0x1c, 0x14, 0xc2, 0x98, 0xef, 0x24, 0x29, 0x93, 0x80, 0xee, 0xa8,
+ 0x0f, 0x99, 0x2f, 0xce, 0xe2, 0xc7, 0x17, 0xf2, 0x84, 0x70, 0x37, 0x6d, 0xfb, 0xdb, 0x15, 0x38,
+ 0x91, 0xd1, 0x8c, 0x07, 0x5c, 0xa4, 0x9f, 0x85, 0x9a, 0x5c, 0x37, 0xf3, 0x55, 0x2b, 0xd4, 0xe2,
+ 0xaa, 0x30, 0xe8, 0xa2, 0xb5, 0xa6, 0x57, 0xd5, 0xbc, 0x51, 0x61, 0x2c, 0xb8, 0xd8, 0xc4, 0x63,
+ 0x4a, 0x39, 0xf5, 0x93, 0x19, 0xdf, 0x23, 0x41, 0xca, 0xc5, 0x2c, 0x46, 0x29, 0xaf, 0x2e, 0xac,
+ 0x98, 0x44, 0xb5, 0x52, 0xce, 0x01, 0x70, 0x9e, 0x3d, 0xfa, 0x69, 0x0b, 0x4e, 0x38, 0x77, 0x12,
+ 0x5d, 0x34, 0x52, 0x44, 0xac, 0x1d, 0x71, 0x91, 0xca, 0xd4, 0xa1, 0xe4, 0x2e, 0xdf, 0x4c, 0x13,
+ 0xce, 0x32, 0x45, 0x5f, 0xb5, 0x00, 0x91, 0x6d, 0xe2, 0xca, 0x98, 0x3a, 0x21, 0xcb, 0x50, 0x11,
+ 0x3b, 0xcd, 0x4b, 0x5d, 0x74, 0xb9, 0x56, 0xef, 0x6e, 0xc7, 0x3d, 0x64, 0xb0, 0xff, 0x71, 0x59,
+ 0x4d, 0x28, 0x1d, 0xc6, 0xe9, 0x18, 0xe1, 0x64, 0xd6, 0xe1, 0xc3, 0xc9, 0xf4, 0xb1, 0x7c, 0x77,
+ 0x1a, 0x5a, 0x26, 0xfd, 0xa6, 0xf4, 0x80, 0xd2, 0x6f, 0x7e, 0xca, 0xca, 0xd4, 0x67, 0x19, 0xb9,
+ 0xf8, 0x6a, 0xb1, 0x21, 0xa4, 0x93, 0x3c, 0x64, 0x20, 0xa7, 0xdd, 0xb3, 0x91, 0x22, 0x54, 0x9b,
+ 0x1a, 0x68, 0x07, 0xd2, 0x86, 0xff, 0xb6, 0x0c, 0x23, 0xc6, 0x4a, 0xda, 0xd3, 0x2c, 0xb2, 0x1e,
+ 0x32, 0xb3, 0xa8, 0x74, 0x00, 0xb3, 0xe8, 0x27, 0xa1, 0xee, 0x4a, 0x2d, 0x5f, 0x4c, 0x85, 0xd2,
+ 0xfc, 0xda, 0xa1, 0x15, 0xbd, 0x6a, 0xc2, 0x9a, 0x27, 0x9a, 0xcb, 0xe4, 0xaf, 0x88, 0x15, 0xa2,
+ 0xc2, 0x56, 0x88, 0x5e, 0x09, 0x26, 0x62, 0xa5, 0xe8, 0x7e, 0x86, 0x95, 0xf1, 0x89, 0x3c, 0xf1,
+ 0x5e, 0x32, 0xd0, 0x9b, 0x97, 0xf1, 0x59, 0x9e, 0x97, 0xcd, 0xd8, 0xc4, 0xb1, 0xbf, 0x6d, 0xa9,
+ 0x8f, 0x7b, 0x1f, 0x92, 0xda, 0x6f, 0x67, 0x93, 0xda, 0x2f, 0x15, 0xd2, 0xcd, 0x7d, 0xb2, 0xd9,
+ 0xaf, 0xc3, 0xf0, 0x4c, 0xd8, 0x6e, 0x3b, 0x41, 0x13, 0xfd, 0x20, 0x0c, 0xbb, 0xfc, 0xa7, 0x70,
+ 0xec, 0xb0, 0xe3, 0x41, 0x01, 0xc5, 0x12, 0x86, 0x1e, 0x87, 0x8a, 0x13, 0xb7, 0xa4, 0x33, 0x87,
+ 0x45, 0x98, 0x4c, 0xc7, 0xad, 0x04, 0xb3, 0x56, 0xfb, 0xef, 0x57, 0x00, 0x66, 0xc2, 0x76, 0xe4,
+ 0xc4, 0xa4, 0xb9, 0x1a, 0xb2, 0x0a, 0x69, 0xc7, 0x7a, 0xa8, 0xa6, 0x37, 0x4b, 0x0f, 0xf3, 0xc1,
+ 0x9a, 0x71, 0xb8, 0x52, 0xbe, 0xcf, 0x87, 0x2b, 0x7d, 0xce, 0xcb, 0x2a, 0x0f, 0xd1, 0x79, 0x99,
+ 0xfd, 0x39, 0x0b, 0x10, 0x1d, 0x34, 0x61, 0x40, 0x82, 0x54, 0x1f, 0x68, 0x4f, 0x41, 0xdd, 0x95,
+ 0xad, 0xc2, 0xb0, 0xd2, 0x2a, 0x42, 0x02, 0xb0, 0xc6, 0x19, 0x60, 0x87, 0xfc, 0x94, 0xd4, 0xdf,
+ 0xe5, 0x6c, 0x70, 0x2a, 0xd3, 0xfa, 0x42, 0x9d, 0xdb, 0xbf, 0x5d, 0x82, 0x47, 0xf8, 0x92, 0xbc,
+ 0xe8, 0x04, 0x4e, 0x8b, 0xb4, 0xa9, 0x54, 0x83, 0x86, 0x28, 0xb8, 0x74, 0x6b, 0xe6, 0xc9, 0x60,
+ 0xd3, 0xa3, 0xce, 0x5d, 0x3e, 0xe7, 0xf8, 0x2c, 0x9b, 0x0f, 0xbc, 0x14, 0x33, 0xe2, 0x28, 0x81,
+ 0x9a, 0x2c, 0xc9, 0x2d, 0x74, 0x71, 0x41, 0x8c, 0x94, 0x5a, 0x12, 0xeb, 0x26, 0xc1, 0x8a, 0x11,
+ 0x35, 0x5c, 0xfd, 0xd0, 0xdd, 0xc4, 0x24, 0x0a, 0x99, 0xde, 0x35, 0x62, 0xfd, 0x16, 0x44, 0x3b,
+ 0x56, 0x18, 0xf6, 0x6f, 0x5b, 0x90, 0x5f, 0x91, 0x8c, 0x72, 0x55, 0xd6, 0x3d, 0xcb, 0x55, 0x1d,
+ 0xa0, 0x5e, 0xd4, 0x8f, 0xc3, 0x88, 0x93, 0x52, 0x23, 0x82, 0x6f, 0xbb, 0xcb, 0x87, 0x3b, 0xd6,
+ 0x58, 0x0c, 0x9b, 0xde, 0xba, 0xc7, 0xb6, 0xdb, 0x26, 0x39, 0xfb, 0xbf, 0x55, 0x60, 0xac, 0x2b,
+ 0x25, 0x02, 0xbd, 0x04, 0xa3, 0xae, 0x18, 0x1e, 0x91, 0x74, 0x68, 0xd5, 0xcd, 0xd8, 0x30, 0x0d,
+ 0xc3, 0x19, 0xcc, 0x01, 0x06, 0xe8, 0x3c, 0x9c, 0x89, 0xe9, 0x46, 0xbf, 0x43, 0xa6, 0xd7, 0x53,
+ 0x12, 0xaf, 0x10, 0x37, 0x0c, 0x9a, 0xbc, 0xa8, 0x5a, 0xb9, 0xf1, 0xe8, 0xde, 0xee, 0xc4, 0x19,
+ 0xdc, 0x0d, 0xc6, 0xbd, 0x9e, 0x41, 0x11, 0x9c, 0xf0, 0x4d, 0x1b, 0x50, 0x6c, 0x00, 0x0e, 0x65,
+ 0x3e, 0x2a, 0x1b, 0x21, 0xd3, 0x8c, 0xb3, 0x0c, 0xb2, 0x86, 0x64, 0xf5, 0x01, 0x19, 0x92, 0x9f,
+ 0xd6, 0x86, 0x24, 0x3f, 0x7f, 0xff, 0x70, 0xc1, 0x29, 0x31, 0xc7, 0x6d, 0x49, 0xbe, 0x02, 0x35,
+ 0x19, 0x9b, 0x34, 0x50, 0x4c, 0x8f, 0x49, 0xa7, 0x8f, 0x46, 0xbb, 0x5b, 0x82, 0x1e, 0x9b, 0x10,
+ 0x3a, 0xcf, 0xf4, 0x8a, 0x9f, 0x99, 0x67, 0x07, 0x5b, 0xf5, 0xd1, 0x36, 0x8f, 0xcb, 0xe2, 0x6b,
+ 0xdb, 0x87, 0x8a, 0xde, 0x44, 0xe9, 0x50, 0x2d, 0x95, 0x29, 0xa0, 0xc2, 0xb5, 0x2e, 0x02, 0x68,
+ 0x43, 0x4d, 0xc4, 0x81, 0xab, 0x63, 0x5f, 0x6d, 0xcf, 0x61, 0x03, 0x8b, 0xee, 0xa9, 0xbd, 0x20,
+ 0x49, 0x1d, 0xdf, 0xbf, 0xe2, 0x05, 0xa9, 0x70, 0x0e, 0xaa, 0x45, 0x7c, 0x5e, 0x83, 0xb0, 0x89,
+ 0x77, 0xfe, 0x7d, 0xc6, 0x77, 0x39, 0xc8, 0xf7, 0xdc, 0x80, 0xc7, 0xe6, 0xbc, 0x54, 0x65, 0x2f,
+ 0xa8, 0x71, 0x44, 0xed, 0x30, 0x95, 0x8d, 0x63, 0xf5, 0xcd, 0xc6, 0x31, 0xb2, 0x07, 0x4a, 0xd9,
+ 0x64, 0x87, 0x7c, 0xf6, 0x80, 0xfd, 0x12, 0x9c, 0x9d, 0xf3, 0xd2, 0xcb, 0x9e, 0x4f, 0x0e, 0xc8,
+ 0xc4, 0xfe, 0xcd, 0x21, 0x18, 0x35, 0xf3, 0xdf, 0x0e, 0x92, 0x50, 0xf4, 0x05, 0x6a, 0x6a, 0x89,
+ 0xb7, 0xf3, 0xd4, 0xa1, 0xd9, 0xad, 0x23, 0x27, 0xe3, 0xf5, 0xee, 0x31, 0xc3, 0xda, 0xd2, 0x3c,
+ 0xb1, 0x29, 0x00, 0xba, 0x03, 0xd5, 0x75, 0x16, 0xdd, 0x5e, 0x2e, 0x22, 0xb2, 0xa0, 0x57, 0x8f,
+ 0xea, 0x69, 0xc6, 0xe3, 0xe3, 0x39, 0x3f, 0xba, 0x42, 0xc6, 0xd9, 0x94, 0x29, 0x23, 0x22, 0x53,
+ 0x24, 0x4b, 0x29, 0x8c, 0x7e, 0xaa, 0xbe, 0x7a, 0x08, 0x55, 0x9f, 0x51, 0xbc, 0x43, 0x0f, 0x48,
+ 0xf1, 0xb2, 0x4c, 0x85, 0x74, 0x83, 0xd9, 0x6f, 0x22, 0x84, 0x7c, 0x98, 0x75, 0x82, 0x91, 0xa9,
+ 0x90, 0x01, 0xe3, 0x3c, 0x3e, 0xfa, 0x84, 0x52, 0xdd, 0xb5, 0x22, 0xfc, 0xaa, 0xe6, 0x88, 0x3e,
+ 0x6e, 0xad, 0xfd, 0xb9, 0x12, 0x9c, 0x9c, 0x0b, 0x3a, 0xcb, 0x73, 0xcb, 0x9d, 0x35, 0xdf, 0x73,
+ 0xaf, 0x91, 0x1d, 0xaa, 0x9a, 0x37, 0xc9, 0xce, 0xfc, 0xac, 0x98, 0x41, 0x6a, 0xcc, 0x5c, 0xa3,
+ 0x8d, 0x98, 0xc3, 0xa8, 0x32, 0x5a, 0xf7, 0x82, 0x16, 0x89, 0xa3, 0xd8, 0x13, 0x2e, 0x4f, 0x43,
+ 0x19, 0x5d, 0xd6, 0x20, 0x6c, 0xe2, 0x51, 0xda, 0xe1, 0x9d, 0x80, 0xc4, 0x79, 0x43, 0x76, 0x89,
+ 0x36, 0x62, 0x0e, 0xa3, 0x48, 0x69, 0xdc, 0x49, 0x52, 0x31, 0x18, 0x15, 0xd2, 0x2a, 0x6d, 0xc4,
+ 0x1c, 0x46, 0x67, 0x7a, 0xd2, 0x59, 0x63, 0x81, 0x1b, 0xb9, 0x78, 0xf5, 0x15, 0xde, 0x8c, 0x25,
+ 0x9c, 0xa2, 0x6e, 0x92, 0x9d, 0x59, 0xba, 0xeb, 0xcd, 0xa5, 0xad, 0x5c, 0xe3, 0xcd, 0x58, 0xc2,
+ 0x59, 0x35, 0xb8, 0x6c, 0x77, 0x7c, 0xcf, 0x55, 0x83, 0xcb, 0x8a, 0xdf, 0x67, 0xff, 0xfc, 0xcb,
+ 0x16, 0x8c, 0x9a, 0xe1, 0x56, 0xa8, 0x95, 0xb3, 0x71, 0x97, 0xba, 0x8a, 0x89, 0xfe, 0x68, 0xaf,
+ 0x9b, 0x93, 0x5a, 0x5e, 0x1a, 0x46, 0xc9, 0x73, 0x24, 0x68, 0x79, 0x01, 0x61, 0xa7, 0xe8, 0x3c,
+ 0x4c, 0x2b, 0x13, 0xcb, 0x35, 0x13, 0x36, 0xc9, 0x21, 0x8c, 0x64, 0xfb, 0x16, 0x8c, 0x75, 0xe5,
+ 0x2a, 0x0d, 0x60, 0x5a, 0xec, 0x9b, 0x29, 0x6a, 0x63, 0x18, 0xa1, 0x84, 0x65, 0x69, 0x95, 0x19,
+ 0x18, 0xe3, 0x13, 0x89, 0x72, 0x5a, 0x71, 0x37, 0x48, 0x5b, 0xe5, 0x9f, 0x31, 0xff, 0xfa, 0xcd,
+ 0x3c, 0x10, 0x77, 0xe3, 0xdb, 0x9f, 0xb7, 0xe0, 0x44, 0x26, 0x7d, 0xac, 0x20, 0x23, 0x88, 0xcd,
+ 0xb4, 0x90, 0x45, 0xff, 0xb1, 0x10, 0xe8, 0x32, 0x5b, 0x4c, 0xf5, 0x4c, 0xd3, 0x20, 0x6c, 0xe2,
+ 0xd9, 0x5f, 0x2e, 0x41, 0x4d, 0x46, 0x50, 0x0c, 0x20, 0xca, 0x67, 0x2d, 0x38, 0xa1, 0xce, 0x34,
+ 0x98, 0xb3, 0xac, 0x54, 0x44, 0xac, 0x3f, 0x95, 0x40, 0x6d, 0xb7, 0x83, 0xf5, 0x50, 0x5b, 0xe4,
+ 0xd8, 0x64, 0x86, 0xb3, 0xbc, 0xd1, 0x4d, 0x80, 0x64, 0x27, 0x49, 0x49, 0xdb, 0x70, 0xdb, 0xd9,
+ 0xc6, 0x8c, 0x9b, 0x74, 0xc3, 0x98, 0xd0, 0xf9, 0x75, 0x3d, 0x6c, 0x92, 0x15, 0x85, 0xa9, 0x4d,
+ 0x28, 0xdd, 0x86, 0x0d, 0x4a, 0xf6, 0xdf, 0x2d, 0xc1, 0xe9, 0xbc, 0x48, 0xe8, 0xc3, 0x30, 0x2a,
+ 0xb9, 0x1b, 0xb7, 0x40, 0xc9, 0xb0, 0x91, 0x51, 0x6c, 0xc0, 0xee, 0xee, 0x4e, 0x4c, 0x74, 0xdf,
+ 0xc2, 0x35, 0x69, 0xa2, 0xe0, 0x0c, 0x31, 0x7e, 0xb0, 0x24, 0x4e, 0x40, 0x1b, 0x3b, 0xd3, 0x51,
+ 0x24, 0x4e, 0x87, 0x8c, 0x83, 0x25, 0x13, 0x8a, 0x73, 0xd8, 0x68, 0x19, 0xce, 0x1a, 0x2d, 0xd7,
+ 0x89, 0xd7, 0xda, 0x58, 0x0b, 0x63, 0xb9, 0xb3, 0x7a, 0x5c, 0x07, 0x76, 0x75, 0xe3, 0xe0, 0x9e,
+ 0x4f, 0xd2, 0xd5, 0xde, 0x75, 0x22, 0xc7, 0xf5, 0xd2, 0x1d, 0xe1, 0x87, 0x54, 0xba, 0x69, 0x46,
+ 0xb4, 0x63, 0x85, 0x61, 0x2f, 0x42, 0x65, 0xc0, 0x11, 0x34, 0x90, 0x45, 0xff, 0x0a, 0xd4, 0x28,
+ 0x39, 0x69, 0xde, 0x15, 0x41, 0x32, 0x84, 0x9a, 0xbc, 0xc8, 0x01, 0xd9, 0x50, 0xf6, 0x1c, 0x79,
+ 0x76, 0xa7, 0x5e, 0x6b, 0x3e, 0x49, 0x3a, 0x6c, 0x93, 0x4c, 0x81, 0xe8, 0x29, 0x28, 0x93, 0xed,
+ 0x28, 0x7f, 0x48, 0x77, 0x69, 0x3b, 0xf2, 0x62, 0x92, 0x50, 0x24, 0xb2, 0x1d, 0xa1, 0xf3, 0x50,
+ 0xf2, 0x9a, 0x62, 0x91, 0x02, 0x81, 0x53, 0x9a, 0x9f, 0xc5, 0x25, 0xaf, 0x69, 0x6f, 0x43, 0x5d,
+ 0xdd, 0x1c, 0x81, 0x36, 0xa5, 0xee, 0xb6, 0x8a, 0x08, 0x79, 0x92, 0x74, 0xfb, 0x68, 0xed, 0x0e,
+ 0x80, 0xce, 0xa3, 0x2b, 0x4a, 0xbf, 0x5c, 0x80, 0x8a, 0x1b, 0x8a, 0x1c, 0xdf, 0x9a, 0x26, 0xc3,
+ 0x94, 0x36, 0x83, 0xd8, 0xb7, 0xe0, 0xe4, 0xb5, 0x20, 0xbc, 0xc3, 0x4a, 0x63, 0xb3, 0x92, 0x56,
+ 0x94, 0xf0, 0x3a, 0xfd, 0x91, 0x37, 0x11, 0x18, 0x14, 0x73, 0x98, 0x2a, 0x7b, 0x54, 0xea, 0x57,
+ 0xf6, 0xc8, 0xfe, 0xa4, 0x05, 0xa7, 0x55, 0x36, 0x90, 0xd4, 0xc6, 0x2f, 0xc1, 0xe8, 0x5a, 0xc7,
+ 0xf3, 0x9b, 0xb2, 0x50, 0x56, 0xce, 0x4d, 0xd1, 0x30, 0x60, 0x38, 0x83, 0x49, 0x37, 0x55, 0x6b,
+ 0x5e, 0xe0, 0xc4, 0x3b, 0xcb, 0x5a, 0xfd, 0x2b, 0x8d, 0xd0, 0x50, 0x10, 0x6c, 0x60, 0xd9, 0x9f,
+ 0x35, 0x45, 0x10, 0xf9, 0x47, 0x03, 0xf4, 0xec, 0x0d, 0xa8, 0xba, 0xea, 0xac, 0xf7, 0x50, 0xc5,
+ 0xfc, 0x54, 0x7e, 0x39, 0xf3, 0xf7, 0x73, 0x6a, 0xf6, 0x3f, 0x29, 0xc1, 0x89, 0x4c, 0xcd, 0x12,
+ 0xe4, 0x43, 0x8d, 0xf8, 0xcc, 0x95, 0x27, 0x87, 0xd8, 0x51, 0xcb, 0x45, 0xaa, 0x69, 0x71, 0x49,
+ 0xd0, 0xc5, 0x8a, 0xc3, 0xc3, 0x71, 0xa4, 0xf6, 0x12, 0x8c, 0x4a, 0x81, 0x3e, 0xe4, 0xb4, 0x7d,
+ 0x31, 0x0b, 0xd5, 0x00, 0xb8, 0x64, 0xc0, 0x70, 0x06, 0xd3, 0xfe, 0x9d, 0x32, 0x8c, 0x73, 0xdf,
+ 0x67, 0x53, 0x45, 0xbd, 0x2c, 0x4a, 0x2b, 0xeb, 0x2f, 0xe8, 0xca, 0x42, 0xbc, 0x23, 0xd7, 0x8e,
+ 0x5a, 0x9d, 0xb9, 0x37, 0xa3, 0x81, 0xe2, 0x31, 0x7e, 0x31, 0x17, 0x8f, 0xc1, 0x17, 0xdb, 0xd6,
+ 0x31, 0x49, 0xf4, 0xbd, 0x15, 0xa0, 0xf1, 0xb7, 0x4a, 0x70, 0x2a, 0x57, 0xfa, 0x1a, 0x7d, 0x31,
+ 0x5b, 0xf6, 0xd1, 0x2a, 0xc2, 0x43, 0x76, 0xcf, 0x6a, 0xc8, 0x07, 0x2b, 0xfe, 0xf8, 0x80, 0xa6,
+ 0x8a, 0xfd, 0x7b, 0x25, 0x38, 0x99, 0xad, 0xd9, 0xfd, 0x10, 0xf6, 0xd4, 0x7b, 0xa0, 0xce, 0xca,
+ 0xd2, 0xb2, 0x7b, 0xc6, 0xb8, 0x23, 0x8e, 0x97, 0x32, 0x95, 0x8d, 0x58, 0xc3, 0x1f, 0x8a, 0x9a,
+ 0x9a, 0xf6, 0xdf, 0xb6, 0xe0, 0x1c, 0x7f, 0xcb, 0xfc, 0x38, 0xfc, 0x8b, 0xbd, 0x7a, 0xf7, 0xb5,
+ 0x62, 0x05, 0xcc, 0x55, 0xc4, 0xda, 0xaf, 0x7f, 0xd9, 0xfd, 0x46, 0x42, 0xda, 0xec, 0x50, 0x78,
+ 0x08, 0x85, 0x3d, 0xd0, 0x60, 0xb0, 0x7f, 0xaf, 0x0c, 0xfa, 0x4a, 0x27, 0xe4, 0x89, 0xcc, 0xa6,
+ 0x42, 0x2a, 0x83, 0xad, 0xec, 0x04, 0xae, 0xbe, 0x3c, 0xaa, 0x96, 0x4b, 0x6c, 0xfa, 0x39, 0x0b,
+ 0x46, 0xbc, 0xc0, 0x4b, 0x3d, 0x87, 0x19, 0xcf, 0xc5, 0x5c, 0x49, 0xa3, 0xd8, 0xcd, 0x73, 0xca,
+ 0x61, 0x6c, 0x7a, 0x6f, 0x15, 0x33, 0x6c, 0x72, 0x46, 0x1f, 0x15, 0x21, 0x93, 0xe5, 0xc2, 0x72,
+ 0xf2, 0x6a, 0xb9, 0x38, 0xc9, 0x08, 0xaa, 0x31, 0x49, 0xe3, 0x82, 0x52, 0x59, 0x31, 0x25, 0xa5,
+ 0x8a, 0x4c, 0xea, 0xcb, 0x35, 0x69, 0x33, 0xe6, 0x8c, 0xec, 0x04, 0x50, 0x77, 0x5f, 0x1c, 0x30,
+ 0x1c, 0x6d, 0x0a, 0xea, 0x4e, 0x27, 0x0d, 0xdb, 0xb4, 0x9b, 0x84, 0x83, 0x59, 0x07, 0xdc, 0x49,
+ 0x00, 0xd6, 0x38, 0xf6, 0x17, 0xab, 0x90, 0x4b, 0x35, 0x42, 0xdb, 0xe6, 0x75, 0x64, 0x56, 0xb1,
+ 0xd7, 0x91, 0x29, 0x61, 0x7a, 0x5d, 0x49, 0x86, 0x5a, 0x50, 0x8d, 0x36, 0x9c, 0x44, 0xda, 0xc6,
+ 0xaf, 0xc8, 0x6e, 0x5a, 0xa6, 0x8d, 0x77, 0x77, 0x27, 0x7e, 0x6c, 0x30, 0x5f, 0x0b, 0x1d, 0xab,
+ 0x53, 0x3c, 0x73, 0x5f, 0xb3, 0x66, 0x34, 0x30, 0xa7, 0x7f, 0x90, 0x4b, 0x79, 0x3e, 0x25, 0x0a,
+ 0x09, 0x63, 0x92, 0x74, 0xfc, 0x54, 0x8c, 0x86, 0x57, 0x0a, 0x9c, 0x65, 0x9c, 0xb0, 0x4e, 0x92,
+ 0xe5, 0xff, 0xb1, 0xc1, 0x14, 0x7d, 0x18, 0xea, 0x49, 0xea, 0xc4, 0xe9, 0x21, 0xd3, 0xda, 0x54,
+ 0xa7, 0xaf, 0x48, 0x22, 0x58, 0xd3, 0x43, 0xaf, 0xb2, 0x42, 0x89, 0x5e, 0xb2, 0x71, 0xc8, 0x48,
+ 0x67, 0x59, 0x54, 0x51, 0x50, 0xc0, 0x06, 0x35, 0xba, 0xf5, 0x60, 0x63, 0x9b, 0x87, 0xf7, 0xd4,
+ 0xd8, 0xde, 0x52, 0xa9, 0x42, 0xac, 0x20, 0xd8, 0xc0, 0xb2, 0x7f, 0x08, 0xb2, 0x59, 0xde, 0x68,
+ 0x42, 0x26, 0x95, 0x73, 0xdf, 0x13, 0x8b, 0x58, 0xce, 0xe4, 0x7f, 0xff, 0xba, 0x05, 0x66, 0x2a,
+ 0x3a, 0x7a, 0x83, 0xe7, 0xbc, 0x5b, 0x45, 0x9c, 0x17, 0x18, 0x74, 0x27, 0x17, 0x9d, 0x28, 0x77,
+ 0x70, 0x25, 0x13, 0xdf, 0xcf, 0xbf, 0x0f, 0x6a, 0x12, 0x7a, 0x20, 0xa3, 0xee, 0x13, 0x70, 0x26,
+ 0x7f, 0x59, 0xab, 0xf0, 0x35, 0xb7, 0xe2, 0xb0, 0x13, 0xe5, 0x37, 0x92, 0xec, 0x32, 0x4f, 0xcc,
+ 0x61, 0x74, 0x3b, 0xb6, 0xe9, 0x05, 0xcd, 0xfc, 0x46, 0xf2, 0x9a, 0x17, 0x34, 0x31, 0x83, 0x0c,
+ 0x70, 0x29, 0xdd, 0x6f, 0x58, 0x70, 0x61, 0xbf, 0x3b, 0x65, 0xd1, 0xe3, 0x50, 0xb9, 0xe3, 0xc4,
+ 0xb2, 0x82, 0x2d, 0x53, 0x94, 0xb7, 0x9c, 0x38, 0xc0, 0xac, 0x15, 0xed, 0xc0, 0x10, 0x8f, 0x01,
+ 0x11, 0xd6, 0xfa, 0x2b, 0xc5, 0xde, 0x70, 0x7b, 0x8d, 0x18, 0xdb, 0x05, 0x1e, 0x7f, 0x82, 0x05,
+ 0x43, 0xfb, 0x3b, 0x16, 0xa0, 0xa5, 0x2d, 0x12, 0xc7, 0x5e, 0xd3, 0x88, 0x5a, 0x41, 0x2f, 0xc0,
+ 0xe8, 0xed, 0x95, 0xa5, 0xeb, 0xcb, 0xa1, 0x17, 0xb0, 0xaa, 0x0f, 0x46, 0x62, 0xdb, 0x55, 0xa3,
+ 0x1d, 0x67, 0xb0, 0xd0, 0x0c, 0x8c, 0xdd, 0x7e, 0x83, 0x6e, 0x7e, 0xcd, 0x6a, 0xf9, 0x25, 0xed,
+ 0xee, 0xbc, 0xfa, 0x4a, 0x0e, 0x88, 0xbb, 0xf1, 0xd1, 0x12, 0x9c, 0x6b, 0xf3, 0xed, 0x06, 0x2f,
+ 0x72, 0xcd, 0xf7, 0x1e, 0x2a, 0x8d, 0xe4, 0xb1, 0xbd, 0xdd, 0x89, 0x73, 0x8b, 0xbd, 0x10, 0x70,
+ 0xef, 0xe7, 0xec, 0xf7, 0x01, 0xe2, 0xc1, 0x2a, 0x33, 0xbd, 0x22, 0x0f, 0xfa, 0xee, 0xc4, 0xed,
+ 0xaf, 0x55, 0xe1, 0x54, 0xae, 0xbe, 0x21, 0xdd, 0xea, 0x75, 0x87, 0x3a, 0x1c, 0x79, 0xfd, 0xee,
+ 0x16, 0x6f, 0xa0, 0xe0, 0x89, 0x00, 0xaa, 0x5e, 0x10, 0x75, 0xd2, 0x62, 0x32, 0xc7, 0xb8, 0x10,
+ 0xf3, 0x94, 0xa0, 0xe1, 0x24, 0xa2, 0x7f, 0x31, 0x67, 0x53, 0x64, 0x28, 0x46, 0xc6, 0x18, 0xaf,
+ 0x3c, 0x20, 0x77, 0xc0, 0xa7, 0x74, 0x60, 0x44, 0xb5, 0x88, 0x83, 0xfa, 0xdc, 0x60, 0x39, 0xee,
+ 0x03, 0xb6, 0x5f, 0x2b, 0xc1, 0x88, 0xf1, 0xd1, 0xd0, 0x2f, 0x65, 0x0b, 0xb5, 0x58, 0xc5, 0xbd,
+ 0x12, 0xa3, 0x3f, 0xa9, 0x4b, 0xb1, 0xf0, 0x57, 0x7a, 0xba, 0xbb, 0x46, 0xcb, 0xdd, 0xdd, 0x89,
+ 0xd3, 0xb9, 0x2a, 0x2c, 0x99, 0xba, 0x2d, 0xe7, 0x3f, 0x0e, 0xa7, 0x72, 0x64, 0x7a, 0xbc, 0xf2,
+ 0x6a, 0xf6, 0x2e, 0xde, 0x23, 0xba, 0xa5, 0xcc, 0x2e, 0x7b, 0x8b, 0x76, 0x99, 0xbe, 0xa2, 0x7d,
+ 0x00, 0x77, 0x5c, 0x2e, 0x47, 0xae, 0x34, 0x60, 0x8e, 0xdc, 0x33, 0x50, 0x8b, 0x42, 0xdf, 0x73,
+ 0x3d, 0x55, 0xd2, 0x8b, 0x65, 0xe5, 0x2d, 0x8b, 0x36, 0xac, 0xa0, 0xe8, 0x0e, 0xd4, 0xd5, 0xb5,
+ 0xc5, 0x22, 0x08, 0xb1, 0x28, 0x57, 0xaf, 0x32, 0x5a, 0xf4, 0x75, 0xc4, 0x9a, 0x17, 0xb2, 0x61,
+ 0x88, 0x2d, 0x82, 0x32, 0xe0, 0x97, 0x65, 0x70, 0xb2, 0xd5, 0x31, 0xc1, 0x02, 0x62, 0x7f, 0xa3,
+ 0x0e, 0x67, 0x7b, 0x15, 0x99, 0x45, 0x1f, 0x83, 0x21, 0x2e, 0x63, 0x31, 0x75, 0xcc, 0x7b, 0xf1,
+ 0x98, 0x63, 0x04, 0x85, 0x58, 0xec, 0x37, 0x16, 0x3c, 0x05, 0x77, 0xdf, 0x59, 0x13, 0x23, 0xe4,
+ 0x78, 0xb8, 0x2f, 0x38, 0x9a, 0xfb, 0x82, 0xc3, 0xb9, 0xfb, 0xce, 0x1a, 0xda, 0x86, 0x6a, 0xcb,
+ 0x4b, 0x89, 0x23, 0x9c, 0x08, 0xb7, 0x8e, 0x85, 0x39, 0x71, 0xb8, 0x95, 0xc6, 0x7e, 0x62, 0xce,
+ 0x10, 0x7d, 0xdd, 0x82, 0x53, 0x6b, 0xd9, 0x84, 0x58, 0xa1, 0x3c, 0x9d, 0x63, 0x28, 0x24, 0x9c,
+ 0x65, 0xc4, 0x6f, 0xa4, 0xc8, 0x35, 0xe2, 0xbc, 0x38, 0xe8, 0xd3, 0x16, 0x0c, 0xaf, 0x7b, 0xbe,
+ 0x51, 0x53, 0xf2, 0x18, 0x3e, 0xce, 0x65, 0xc6, 0x40, 0xef, 0x38, 0xf8, 0xff, 0x04, 0x4b, 0xce,
+ 0xfd, 0x56, 0xaa, 0xa1, 0xa3, 0xae, 0x54, 0xc3, 0x0f, 0x68, 0xa5, 0xfa, 0x8c, 0x05, 0x75, 0xd5,
+ 0xd3, 0x22, 0xc9, 0xf1, 0xc3, 0xc7, 0xf8, 0xc9, 0xb9, 0xe7, 0x44, 0xfd, 0xc5, 0x9a, 0x39, 0xfa,
+ 0x92, 0x05, 0x23, 0xce, 0x9b, 0x9d, 0x98, 0x34, 0xc9, 0x56, 0x18, 0x25, 0xe2, 0x16, 0xa8, 0xd7,
+ 0x8a, 0x17, 0x66, 0x9a, 0x32, 0x99, 0x25, 0x5b, 0x4b, 0x51, 0x22, 0x92, 0x11, 0x74, 0x03, 0x36,
+ 0x45, 0xb0, 0x77, 0x4b, 0x30, 0xb1, 0x0f, 0x05, 0xf4, 0x12, 0x8c, 0x86, 0x71, 0xcb, 0x09, 0xbc,
+ 0x37, 0xcd, 0x0c, 0x77, 0x65, 0x65, 0x2d, 0x19, 0x30, 0x9c, 0xc1, 0x34, 0xd3, 0x30, 0x4b, 0xfb,
+ 0xa4, 0x61, 0x5e, 0x80, 0x4a, 0x4c, 0xa2, 0x30, 0xbf, 0x59, 0x60, 0x81, 0xc0, 0x0c, 0x82, 0x9e,
+ 0x80, 0xb2, 0x13, 0x79, 0x22, 0xfc, 0x44, 0xed, 0x81, 0xa6, 0x97, 0xe7, 0x31, 0x6d, 0xcf, 0x64,
+ 0x85, 0x57, 0xef, 0x4b, 0x56, 0x38, 0x5d, 0x06, 0xc4, 0xd9, 0xc5, 0x90, 0x5e, 0x06, 0xb2, 0x67,
+ 0x0a, 0xf6, 0x57, 0xcb, 0xf0, 0xc4, 0x3d, 0xc7, 0x8b, 0x8e, 0xbe, 0xb1, 0xee, 0x11, 0x7d, 0x23,
+ 0xbb, 0xa7, 0xb4, 0x5f, 0xf7, 0x94, 0xfb, 0x74, 0xcf, 0xa7, 0xe9, 0x34, 0x90, 0x95, 0x01, 0x8a,
+ 0xb9, 0x90, 0xa8, 0x5f, 0xa1, 0x01, 0x31, 0x03, 0x24, 0x14, 0x6b, 0xbe, 0x74, 0x0f, 0x90, 0x49,
+ 0x41, 0xac, 0x16, 0xb1, 0x0c, 0xf4, 0xad, 0x14, 0xc0, 0xc7, 0x7e, 0xbf, 0xbc, 0x46, 0xfb, 0xe7,
+ 0x4b, 0xf0, 0xd4, 0x00, 0xda, 0xdb, 0x1c, 0xc5, 0xd6, 0x80, 0xa3, 0xf8, 0x7b, 0xfb, 0x33, 0xd9,
+ 0x7f, 0xc9, 0x82, 0xf3, 0xfd, 0x17, 0x0f, 0xf4, 0x3c, 0x8c, 0xac, 0xc5, 0x4e, 0xe0, 0x6e, 0xb0,
+ 0x4b, 0xd6, 0x64, 0xa7, 0xb0, 0xbe, 0xd6, 0xcd, 0xd8, 0xc4, 0xa1, 0xdb, 0x5b, 0x5e, 0xd8, 0xdd,
+ 0xc0, 0x90, 0x29, 0x63, 0x74, 0x7b, 0xbb, 0x9a, 0x07, 0xe2, 0x6e, 0x7c, 0xfb, 0x4f, 0x4a, 0xbd,
+ 0xc5, 0xe2, 0x46, 0xc6, 0x41, 0xbe, 0x93, 0xf8, 0x0a, 0xa5, 0x01, 0x74, 0x49, 0xf9, 0x7e, 0xeb,
+ 0x92, 0x4a, 0x3f, 0x5d, 0x82, 0x66, 0xe1, 0xb4, 0x71, 0x1f, 0x01, 0x4f, 0x03, 0xe4, 0x61, 0x76,
+ 0x2a, 0x37, 0x7e, 0x39, 0x07, 0xc7, 0x5d, 0x4f, 0xa0, 0x67, 0xa1, 0xe6, 0x05, 0x09, 0x71, 0x3b,
+ 0x31, 0x0f, 0xef, 0x34, 0x52, 0x2f, 0xe6, 0x45, 0x3b, 0x56, 0x18, 0xf6, 0x2f, 0x97, 0xe0, 0xb1,
+ 0xbe, 0x76, 0xd6, 0x7d, 0xd2, 0x5d, 0xe6, 0xe7, 0xa8, 0xdc, 0x9f, 0xcf, 0x61, 0x76, 0x52, 0x75,
+ 0xdf, 0x4e, 0xfa, 0xfd, 0xfe, 0x03, 0x93, 0xda, 0xdc, 0xdf, 0xb7, 0xbd, 0xf4, 0x32, 0x9c, 0x70,
+ 0xa2, 0x88, 0xe3, 0xb1, 0x28, 0xad, 0x5c, 0x6d, 0x8c, 0x69, 0x13, 0x88, 0xb3, 0xb8, 0x03, 0xad,
+ 0x9e, 0x7f, 0x68, 0x41, 0x1d, 0x93, 0x75, 0xae, 0x1d, 0xd0, 0x6d, 0xd1, 0x45, 0x56, 0x11, 0x55,
+ 0xf4, 0x68, 0xc7, 0x26, 0x1e, 0xab, 0x2e, 0xd7, 0xab, 0xb3, 0xbb, 0xef, 0xad, 0x28, 0x1d, 0xe8,
+ 0xde, 0x0a, 0x75, 0x73, 0x41, 0xb9, 0xff, 0xcd, 0x05, 0xf6, 0x5b, 0xc3, 0xf4, 0xf5, 0xa2, 0x70,
+ 0x26, 0x26, 0xcd, 0x84, 0x7e, 0xdf, 0x4e, 0xec, 0x8b, 0x41, 0xa2, 0xbe, 0xef, 0x0d, 0xbc, 0x80,
+ 0x69, 0x7b, 0xe6, 0x28, 0xa6, 0x74, 0xa0, 0xca, 0x00, 0xe5, 0x7d, 0x2b, 0x03, 0xbc, 0x0c, 0x27,
+ 0x92, 0x64, 0x63, 0x39, 0xf6, 0xb6, 0x9c, 0x94, 0x5c, 0x23, 0x3b, 0xc2, 0xca, 0xd2, 0xd9, 0xbc,
+ 0x2b, 0x57, 0x34, 0x10, 0x67, 0x71, 0xd1, 0x1c, 0x8c, 0xe9, 0xfc, 0x7c, 0x12, 0xa7, 0x2c, 0xa6,
+ 0x97, 0x8f, 0x04, 0x95, 0xba, 0xa7, 0x33, 0xfa, 0x05, 0x02, 0xee, 0x7e, 0x86, 0xea, 0xb7, 0x4c,
+ 0x23, 0x15, 0x64, 0x28, 0xab, 0xdf, 0x32, 0x74, 0xa8, 0x2c, 0x5d, 0x4f, 0xa0, 0x45, 0x38, 0xc3,
+ 0x07, 0xc6, 0x74, 0x14, 0x19, 0x6f, 0x34, 0x9c, 0xad, 0x5e, 0x36, 0xd7, 0x8d, 0x82, 0x7b, 0x3d,
+ 0x87, 0x5e, 0x84, 0x11, 0xd5, 0x3c, 0x3f, 0x2b, 0x4e, 0x11, 0x94, 0x17, 0x43, 0x91, 0x99, 0x6f,
+ 0x62, 0x13, 0x0f, 0x7d, 0x08, 0x1e, 0xd5, 0x7f, 0x79, 0xe2, 0x07, 0x3f, 0x5a, 0x9b, 0x15, 0xa5,
+ 0x4f, 0x54, 0x9d, 0xfc, 0xb9, 0x9e, 0x68, 0x4d, 0xdc, 0xef, 0x79, 0xb4, 0x06, 0xe7, 0x15, 0xe8,
+ 0x52, 0x90, 0xb2, 0x28, 0xee, 0x84, 0x34, 0x9c, 0x84, 0xdc, 0x88, 0x7d, 0x56, 0x2c, 0xa5, 0xae,
+ 0xaf, 0x30, 0x9b, 0xf3, 0xd2, 0x2b, 0xbd, 0x30, 0xf1, 0x02, 0xbe, 0x07, 0x15, 0x34, 0x05, 0x75,
+ 0x12, 0x38, 0x6b, 0x3e, 0x59, 0x9a, 0x99, 0x67, 0x25, 0x54, 0x8c, 0x93, 0xbc, 0x4b, 0x12, 0x80,
+ 0x35, 0x8e, 0x8a, 0x2b, 0x1b, 0xed, 0x7b, 0x9d, 0xde, 0x32, 0x9c, 0x6d, 0xb9, 0x11, 0xb5, 0x3d,
+ 0x3c, 0x97, 0x4c, 0xbb, 0x2c, 0xb6, 0x8a, 0x7e, 0x18, 0x5e, 0x56, 0x4e, 0x05, 0x4d, 0xce, 0xcd,
+ 0x2c, 0x77, 0xe1, 0xe0, 0x9e, 0x4f, 0xd2, 0x39, 0x16, 0xc5, 0xe1, 0xf6, 0xce, 0xf8, 0x99, 0xec,
+ 0x1c, 0x5b, 0xa6, 0x8d, 0x98, 0xc3, 0xd0, 0x55, 0x40, 0x2c, 0x02, 0xf7, 0x4a, 0x9a, 0x46, 0xca,
+ 0xd8, 0x19, 0x3f, 0xcb, 0x5e, 0xe9, 0xbc, 0x78, 0x02, 0x5d, 0xee, 0xc2, 0xc0, 0x3d, 0x9e, 0xb2,
+ 0xff, 0x9d, 0x05, 0x27, 0xd4, 0x7c, 0xbd, 0x0f, 0x31, 0xe8, 0x7e, 0x36, 0x06, 0x7d, 0xee, 0xe8,
+ 0x1a, 0x8f, 0x49, 0xde, 0x27, 0x90, 0xf1, 0x67, 0x46, 0x00, 0xb4, 0x56, 0x54, 0x0b, 0x92, 0xd5,
+ 0x77, 0x41, 0x7a, 0x68, 0x35, 0x52, 0xaf, 0x7a, 0x09, 0xd5, 0x07, 0x5b, 0x2f, 0x61, 0x05, 0xce,
+ 0x49, 0x73, 0x81, 0x9f, 0x15, 0x5d, 0x09, 0x13, 0xa5, 0xe0, 0x6a, 0x8d, 0x27, 0x04, 0xa1, 0x73,
+ 0xf3, 0xbd, 0x90, 0x70, 0xef, 0x67, 0x33, 0x56, 0xca, 0xf0, 0x7e, 0x56, 0x8a, 0x9e, 0xd3, 0x0b,
+ 0xeb, 0xb2, 0x20, 0x7e, 0x6e, 0x4e, 0x2f, 0x5c, 0x5e, 0xc1, 0x1a, 0xa7, 0xb7, 0x62, 0xaf, 0x17,
+ 0xa4, 0xd8, 0xe1, 0xc0, 0x8a, 0x5d, 0xaa, 0x98, 0x91, 0xbe, 0x2a, 0x46, 0xfa, 0xa4, 0x47, 0xfb,
+ 0xfa, 0xa4, 0xdf, 0x0f, 0x27, 0xbd, 0x60, 0x83, 0xc4, 0x5e, 0x4a, 0x9a, 0x6c, 0x2e, 0x30, 0xf5,
+ 0x53, 0xd3, 0xcb, 0xfa, 0x7c, 0x06, 0x8a, 0x73, 0xd8, 0x59, 0xbd, 0x78, 0x72, 0x00, 0xbd, 0xd8,
+ 0x67, 0x35, 0x3a, 0x55, 0xcc, 0x6a, 0x74, 0xfa, 0xe8, 0xab, 0xd1, 0xd8, 0xb1, 0xae, 0x46, 0xa8,
+ 0x90, 0xd5, 0x68, 0x20, 0x45, 0x6f, 0x6c, 0xff, 0xce, 0xee, 0xb3, 0xfd, 0xeb, 0xb7, 0x14, 0x9d,
+ 0x3b, 0xf4, 0x52, 0xd4, 0x7b, 0x95, 0x79, 0xe4, 0x50, 0xab, 0xcc, 0x67, 0x4a, 0x70, 0x4e, 0xeb,
+ 0x61, 0x3a, 0xfa, 0xbd, 0x75, 0xaa, 0x89, 0xd8, 0x9d, 0x2a, 0xfc, 0xdc, 0xc6, 0x48, 0x89, 0xd0,
+ 0xd9, 0x15, 0x0a, 0x82, 0x0d, 0x2c, 0x96, 0x59, 0x40, 0x62, 0x56, 0x3c, 0x33, 0xaf, 0xa4, 0x67,
+ 0x44, 0x3b, 0x56, 0x18, 0x74, 0x7c, 0xd1, 0xdf, 0x22, 0x5b, 0x2b, 0x5f, 0x22, 0x6a, 0x46, 0x83,
+ 0xb0, 0x89, 0x87, 0x9e, 0xe1, 0x4c, 0x98, 0x82, 0xa0, 0x8a, 0x7a, 0x54, 0x5c, 0xb2, 0x28, 0x75,
+ 0x82, 0x82, 0x4a, 0x71, 0x58, 0x0a, 0x49, 0xb5, 0x5b, 0x1c, 0x16, 0x02, 0xa5, 0x30, 0xec, 0xff,
+ 0x6e, 0xc1, 0x63, 0x3d, 0xbb, 0xe2, 0x3e, 0x2c, 0xbe, 0xdb, 0xd9, 0xc5, 0x77, 0xa5, 0xa8, 0xed,
+ 0x86, 0xf1, 0x16, 0x7d, 0x16, 0xe2, 0x7f, 0x63, 0xc1, 0x49, 0x8d, 0x7f, 0x1f, 0x5e, 0xd5, 0xcb,
+ 0xbe, 0x6a, 0x71, 0x3b, 0xab, 0x7a, 0xd7, 0xbb, 0xfd, 0x4e, 0x09, 0x54, 0xd9, 0xb6, 0x69, 0x57,
+ 0x16, 0xc5, 0xdc, 0xe7, 0x24, 0x71, 0x07, 0x86, 0xd8, 0x41, 0x68, 0x52, 0x4c, 0x90, 0x47, 0x96,
+ 0x3f, 0x3b, 0x54, 0xd5, 0x87, 0xcc, 0xec, 0x6f, 0x82, 0x05, 0x43, 0x56, 0xda, 0xd5, 0x4b, 0xa8,
+ 0x36, 0x6f, 0x8a, 0x64, 0x0c, 0x5d, 0xda, 0x55, 0xb4, 0x63, 0x85, 0x41, 0x97, 0x07, 0xcf, 0x0d,
+ 0x83, 0x19, 0xdf, 0x49, 0xe4, 0x45, 0x62, 0x6a, 0x79, 0x98, 0x97, 0x00, 0xac, 0x71, 0xd8, 0x19,
+ 0xa9, 0x97, 0x44, 0xbe, 0xb3, 0x63, 0xec, 0x9f, 0x8d, 0xac, 0x64, 0x05, 0xc2, 0x26, 0x9e, 0xdd,
+ 0x86, 0xf1, 0xec, 0x4b, 0xcc, 0x92, 0x75, 0x16, 0xa0, 0x38, 0x50, 0x77, 0x4e, 0x41, 0xdd, 0x61,
+ 0x4f, 0x2d, 0x74, 0x9c, 0xfc, 0xfd, 0xbf, 0xd3, 0x12, 0x80, 0x35, 0x8e, 0xfd, 0xab, 0x16, 0x9c,
+ 0xe9, 0xd1, 0x69, 0x05, 0x26, 0xbb, 0xa4, 0x5a, 0xdb, 0xf4, 0x5a, 0xd8, 0xdf, 0x0d, 0xc3, 0x4d,
+ 0xb2, 0xee, 0xc8, 0x10, 0x38, 0x43, 0xb7, 0xcf, 0xf2, 0x66, 0x2c, 0xe1, 0xf6, 0x7f, 0xb5, 0xe0,
+ 0x54, 0x56, 0xd6, 0x84, 0x6a, 0x67, 0xfe, 0x32, 0xb3, 0x5e, 0xe2, 0x86, 0x5b, 0x24, 0xde, 0xa1,
+ 0x6f, 0xce, 0xa5, 0x56, 0xda, 0x79, 0xba, 0x0b, 0x03, 0xf7, 0x78, 0x8a, 0x15, 0x6d, 0x6c, 0xaa,
+ 0xde, 0x96, 0x23, 0xf2, 0x66, 0x91, 0x23, 0x52, 0x7f, 0x4c, 0xf3, 0xb8, 0x5c, 0xb1, 0xc4, 0x26,
+ 0x7f, 0xfb, 0x3b, 0x15, 0x50, 0xd9, 0x70, 0x2c, 0xfe, 0xa8, 0xa0, 0xe8, 0xad, 0xcc, 0x9d, 0x47,
+ 0xe5, 0x01, 0xee, 0x3c, 0x92, 0x83, 0xa1, 0x72, 0xaf, 0x80, 0x00, 0xee, 0x25, 0x31, 0x5d, 0x97,
+ 0xea, 0x0d, 0x57, 0x35, 0x08, 0x9b, 0x78, 0x54, 0x12, 0xdf, 0xdb, 0x22, 0xfc, 0xa1, 0xa1, 0xac,
+ 0x24, 0x0b, 0x12, 0x80, 0x35, 0x0e, 0x95, 0xa4, 0xe9, 0xad, 0xaf, 0x8b, 0x2d, 0xbf, 0x92, 0x84,
+ 0xf6, 0x0e, 0x66, 0x10, 0x5e, 0x87, 0x37, 0xdc, 0x14, 0x56, 0xb0, 0x51, 0x87, 0x37, 0xdc, 0xc4,
+ 0x0c, 0x42, 0xed, 0xb6, 0x20, 0x8c, 0xdb, 0xec, 0x7e, 0xe6, 0xa6, 0xe2, 0x22, 0xac, 0x5f, 0x65,
+ 0xb7, 0x5d, 0xef, 0x46, 0xc1, 0xbd, 0x9e, 0xa3, 0x23, 0x30, 0x8a, 0x49, 0xd3, 0x73, 0x53, 0x93,
+ 0x1a, 0x64, 0x47, 0xe0, 0x72, 0x17, 0x06, 0xee, 0xf1, 0x14, 0x9a, 0x86, 0x53, 0x32, 0x9b, 0x51,
+ 0xd6, 0xaa, 0x18, 0xc9, 0xe6, 0xc6, 0xe3, 0x2c, 0x18, 0xe7, 0xf1, 0xa9, 0x56, 0x6b, 0x8b, 0x32,
+ 0x35, 0xcc, 0x58, 0x36, 0xb4, 0x9a, 0x2c, 0x5f, 0x83, 0x15, 0x86, 0xfd, 0xa9, 0x32, 0x5d, 0x85,
+ 0xfb, 0x94, 0x67, 0xba, 0x6f, 0xd1, 0x82, 0xd9, 0x11, 0x59, 0x19, 0x60, 0x44, 0xbe, 0x00, 0xa3,
+ 0xb7, 0x93, 0x30, 0x50, 0x91, 0x78, 0xd5, 0xbe, 0x91, 0x78, 0x06, 0x56, 0xef, 0x48, 0xbc, 0xa1,
+ 0xa2, 0x22, 0xf1, 0x86, 0x0f, 0x19, 0x89, 0xf7, 0xad, 0x2a, 0xa8, 0x0b, 0x01, 0xae, 0x93, 0xf4,
+ 0x4e, 0x18, 0x6f, 0x7a, 0x41, 0x8b, 0x65, 0x81, 0x7e, 0xdd, 0x82, 0x51, 0x3e, 0x5f, 0x16, 0xcc,
+ 0x4c, 0xaa, 0xf5, 0x82, 0x2a, 0xcd, 0x67, 0x98, 0x4d, 0xae, 0x1a, 0x8c, 0x72, 0xf7, 0xd8, 0x99,
+ 0x20, 0x9c, 0x91, 0x08, 0x7d, 0x1c, 0x40, 0xfa, 0x47, 0xd7, 0xa5, 0xca, 0x9c, 0x2f, 0x46, 0x3e,
+ 0x4c, 0xd6, 0xb5, 0x0d, 0xbc, 0xaa, 0x98, 0x60, 0x83, 0x21, 0xfa, 0x4c, 0xfe, 0xfe, 0xfa, 0x8f,
+ 0x1e, 0x4b, 0xdf, 0x0c, 0x92, 0x63, 0x86, 0x61, 0xd8, 0x0b, 0x5a, 0x74, 0x9c, 0x88, 0x88, 0xa5,
+ 0x77, 0xf5, 0xca, 0xa0, 0x5e, 0x08, 0x9d, 0x66, 0xc3, 0xf1, 0x9d, 0xc0, 0x25, 0xf1, 0x3c, 0x47,
+ 0x37, 0x6f, 0x6f, 0x65, 0x0d, 0x58, 0x12, 0xea, 0xba, 0x4a, 0xa1, 0x3a, 0xc8, 0x55, 0x0a, 0xe7,
+ 0x3f, 0x00, 0x63, 0x5d, 0x1f, 0xf3, 0x40, 0x29, 0x65, 0x87, 0xcf, 0x46, 0xb3, 0xff, 0xe9, 0x90,
+ 0x5e, 0xb4, 0xae, 0x87, 0x4d, 0x5e, 0xd0, 0x3f, 0xd6, 0x5f, 0x54, 0xd8, 0xb8, 0x05, 0x0e, 0x11,
+ 0xe3, 0x06, 0x58, 0xd5, 0x88, 0x4d, 0x96, 0x74, 0x8c, 0x46, 0x4e, 0x4c, 0x82, 0xe3, 0x1e, 0xa3,
+ 0xcb, 0x8a, 0x09, 0x36, 0x18, 0xa2, 0x8d, 0x4c, 0x4e, 0xc9, 0xe5, 0xa3, 0xe7, 0x94, 0xb0, 0xda,
+ 0x32, 0xbd, 0x6a, 0x70, 0x7f, 0xc9, 0x82, 0x93, 0x41, 0x66, 0xe4, 0x16, 0x13, 0x46, 0xda, 0x7b,
+ 0x56, 0xf0, 0xfb, 0x64, 0xb2, 0x6d, 0x38, 0xc7, 0xbf, 0xd7, 0x92, 0x56, 0x3d, 0xe0, 0x92, 0xa6,
+ 0x6f, 0x06, 0x19, 0xea, 0x77, 0x33, 0x08, 0x0a, 0xd4, 0xd5, 0x48, 0xc3, 0x85, 0x5f, 0x8d, 0x04,
+ 0x3d, 0xae, 0x45, 0xba, 0x05, 0x75, 0x37, 0x26, 0x4e, 0x7a, 0xc8, 0x5b, 0x72, 0xd8, 0x01, 0xfd,
+ 0x8c, 0x24, 0x80, 0x35, 0x2d, 0xfb, 0x7f, 0x57, 0xe0, 0xb4, 0xec, 0x11, 0x19, 0x82, 0x4e, 0xd7,
+ 0x47, 0xce, 0x57, 0x1b, 0xb7, 0x6a, 0x7d, 0xbc, 0x22, 0x01, 0x58, 0xe3, 0x50, 0x7b, 0xac, 0x93,
+ 0x90, 0xa5, 0x88, 0x04, 0x0b, 0xde, 0x5a, 0x22, 0xce, 0x39, 0xd5, 0x44, 0xb9, 0xa1, 0x41, 0xd8,
+ 0xc4, 0xa3, 0xc6, 0x38, 0xb7, 0x8b, 0x93, 0x7c, 0xfa, 0x8a, 0xb0, 0xb7, 0xb1, 0x84, 0xa3, 0x5f,
+ 0xe8, 0x59, 0x2f, 0xb2, 0x98, 0xc4, 0xad, 0xae, 0xc8, 0xfb, 0x03, 0x5e, 0xac, 0xf6, 0x37, 0x2c,
+ 0x38, 0xc7, 0x5b, 0x65, 0x4f, 0xde, 0x88, 0x9a, 0x4e, 0x4a, 0x92, 0x62, 0xea, 0x37, 0xf7, 0x90,
+ 0x4f, 0x3b, 0x79, 0x7b, 0xb1, 0xc5, 0xbd, 0xa5, 0x41, 0x5f, 0xb4, 0xe0, 0xd4, 0x66, 0x26, 0xd3,
+ 0x5f, 0x2e, 0x1d, 0x47, 0xac, 0x49, 0x93, 0x2d, 0x1f, 0xa0, 0xa7, 0x5a, 0xb6, 0x3d, 0xc1, 0x79,
+ 0xee, 0xf6, 0x9f, 0x58, 0x60, 0xaa, 0xd1, 0xc1, 0x2c, 0x40, 0xe3, 0x2a, 0xdb, 0xd2, 0x3e, 0x57,
+ 0xd9, 0x4a, 0x63, 0xb1, 0x3c, 0xd8, 0xe6, 0xa4, 0x72, 0x80, 0xcd, 0x49, 0xb5, 0xaf, 0x75, 0xf9,
+ 0x04, 0x94, 0x3b, 0x5e, 0x53, 0xec, 0x2f, 0xf4, 0xe9, 0xeb, 0xfc, 0x2c, 0xa6, 0xed, 0xf6, 0x3f,
+ 0xaa, 0x6a, 0xbf, 0x85, 0xc8, 0x8b, 0xfa, 0xbe, 0x78, 0xed, 0x75, 0x55, 0x62, 0x88, 0xbf, 0xf9,
+ 0xf5, 0xae, 0x12, 0x43, 0x3f, 0x72, 0xf0, 0xb4, 0x37, 0xde, 0x41, 0xfd, 0x2a, 0x0c, 0x0d, 0xef,
+ 0x93, 0xf3, 0x76, 0x1b, 0x6a, 0x74, 0x0b, 0xc6, 0x1c, 0x90, 0xb5, 0x8c, 0x50, 0xb5, 0x2b, 0xa2,
+ 0xfd, 0xee, 0xee, 0xc4, 0x0f, 0x1f, 0x5c, 0x2c, 0xf9, 0x34, 0x56, 0xf4, 0x51, 0x02, 0x75, 0xfa,
+ 0x9b, 0xa5, 0xe7, 0x89, 0xcd, 0xdd, 0x0d, 0xa5, 0x33, 0x25, 0xa0, 0x90, 0xdc, 0x3f, 0xcd, 0x07,
+ 0x05, 0x50, 0x67, 0x77, 0x50, 0x32, 0xa6, 0x7c, 0x0f, 0xb8, 0xac, 0x92, 0xe4, 0x24, 0xe0, 0xee,
+ 0xee, 0xc4, 0xcb, 0x07, 0x67, 0xaa, 0x1e, 0xc7, 0x9a, 0x85, 0xfd, 0xe5, 0x8a, 0x1e, 0xbb, 0xa2,
+ 0xb2, 0xd4, 0xf7, 0xc5, 0xd8, 0x7d, 0x29, 0x37, 0x76, 0x2f, 0x74, 0x8d, 0xdd, 0x93, 0xfa, 0xae,
+ 0xc4, 0xcc, 0x68, 0xbc, 0xdf, 0x86, 0xc0, 0xfe, 0xfe, 0x06, 0x66, 0x01, 0xbd, 0xd1, 0xf1, 0x62,
+ 0x92, 0x2c, 0xc7, 0x9d, 0xc0, 0x0b, 0x5a, 0xe2, 0x0e, 0x7c, 0xc3, 0x02, 0xca, 0x80, 0x71, 0x1e,
+ 0x9f, 0xdd, 0x9f, 0xbf, 0x13, 0xb8, 0xb7, 0x9c, 0x2d, 0x3e, 0xaa, 0x8c, 0x62, 0x3b, 0x2b, 0xa2,
+ 0x1d, 0x2b, 0x0c, 0xfb, 0x2d, 0x76, 0x96, 0x6d, 0xe4, 0x05, 0xd3, 0x31, 0xe1, 0xb3, 0x4b, 0x3f,
+ 0x79, 0xa5, 0x1e, 0x35, 0x26, 0xf8, 0x4d, 0x9f, 0x1c, 0x86, 0xee, 0xc0, 0xf0, 0x1a, 0xbf, 0xf5,
+ 0xaa, 0x98, 0xaa, 0xc4, 0xe2, 0x0a, 0x2d, 0x76, 0xb7, 0x81, 0xbc, 0x4f, 0xeb, 0xae, 0xfe, 0x89,
+ 0x25, 0x37, 0xfb, 0x9b, 0x15, 0x38, 0x95, 0xbb, 0x16, 0x32, 0x53, 0x23, 0xb1, 0xb4, 0x6f, 0x8d,
+ 0xc4, 0x8f, 0x00, 0x34, 0x49, 0xe4, 0x87, 0x3b, 0xcc, 0x1c, 0xab, 0x1c, 0xd8, 0x1c, 0x53, 0x16,
+ 0xfc, 0xac, 0xa2, 0x82, 0x0d, 0x8a, 0xa2, 0x3c, 0x11, 0x2f, 0xb9, 0x98, 0x2b, 0x4f, 0x64, 0xd4,
+ 0x2e, 0x1f, 0xba, 0xbf, 0xb5, 0xcb, 0x3d, 0x38, 0xc5, 0x45, 0x54, 0xd9, 0xb7, 0x87, 0x48, 0xb2,
+ 0x65, 0xf9, 0x0b, 0xb3, 0x59, 0x32, 0x38, 0x4f, 0xf7, 0x41, 0xde, 0xfa, 0x8a, 0xde, 0x03, 0x75,
+ 0xf9, 0x9d, 0x93, 0xf1, 0xba, 0xae, 0x60, 0x20, 0x87, 0x01, 0xbb, 0x8d, 0x55, 0xfc, 0xb4, 0xbf,
+ 0x50, 0xa2, 0xd6, 0x33, 0xff, 0xa7, 0x2a, 0xd1, 0x3c, 0x0d, 0x43, 0x4e, 0x27, 0xdd, 0x08, 0xbb,
+ 0x6e, 0xce, 0x9a, 0x66, 0xad, 0x58, 0x40, 0xd1, 0x02, 0x54, 0x9a, 0xba, 0xba, 0xc8, 0x41, 0x7a,
+ 0x51, 0x3b, 0x22, 0x9d, 0x94, 0x60, 0x46, 0x05, 0x3d, 0x0e, 0x95, 0xd4, 0x69, 0xc9, 0x44, 0x27,
+ 0x96, 0xdc, 0xba, 0xea, 0xb4, 0x12, 0xcc, 0x5a, 0xcd, 0x45, 0xb3, 0xb2, 0xcf, 0xa2, 0xf9, 0x32,
+ 0x9c, 0x48, 0xbc, 0x56, 0xe0, 0xa4, 0x9d, 0x98, 0x18, 0x87, 0x6b, 0x3a, 0x5e, 0xc2, 0x04, 0xe2,
+ 0x2c, 0xae, 0xfd, 0x9b, 0xa3, 0x70, 0x76, 0x65, 0x66, 0x51, 0x56, 0xca, 0x3d, 0xb6, 0x5c, 0xa5,
+ 0x5e, 0x3c, 0xee, 0x5f, 0xae, 0x52, 0x1f, 0xee, 0xbe, 0x91, 0xab, 0xe4, 0x1b, 0xb9, 0x4a, 0xd9,
+ 0xc4, 0x91, 0x72, 0x11, 0x89, 0x23, 0xbd, 0x24, 0x18, 0x24, 0x71, 0xe4, 0xd8, 0x92, 0x97, 0xee,
+ 0x29, 0xd0, 0x81, 0x92, 0x97, 0x54, 0x66, 0x57, 0x21, 0x21, 0xfd, 0x7d, 0x3e, 0x55, 0xcf, 0xcc,
+ 0x2e, 0x95, 0x55, 0xc3, 0xd3, 0x55, 0x84, 0x82, 0x7d, 0xad, 0x78, 0x01, 0x06, 0xc8, 0xaa, 0x11,
+ 0x19, 0x33, 0x66, 0x26, 0xd7, 0x70, 0x11, 0x99, 0x5c, 0xbd, 0xc4, 0xd9, 0x37, 0x93, 0xeb, 0x65,
+ 0x38, 0xe1, 0xfa, 0x61, 0x40, 0x96, 0xe3, 0x30, 0x0d, 0xdd, 0xd0, 0x17, 0xc6, 0xb4, 0x52, 0x09,
+ 0x33, 0x26, 0x10, 0x67, 0x71, 0xfb, 0xa5, 0x81, 0xd5, 0x8f, 0x9a, 0x06, 0x06, 0x0f, 0x28, 0x0d,
+ 0xec, 0x67, 0x75, 0xc2, 0xf2, 0x08, 0xfb, 0x22, 0x1f, 0x29, 0xfe, 0x8b, 0x0c, 0x92, 0xb5, 0x8c,
+ 0xbe, 0xca, 0xaf, 0xae, 0xa2, 0xe6, 0xe8, 0x4c, 0xd8, 0xa6, 0xe6, 0xd6, 0x28, 0xeb, 0x92, 0xd7,
+ 0x8f, 0x61, 0xc0, 0xde, 0x5a, 0xd1, 0x6c, 0xd4, 0x75, 0x56, 0xba, 0x09, 0x67, 0x05, 0x39, 0x4a,
+ 0x42, 0xf5, 0xd7, 0x4a, 0xf0, 0x03, 0xfb, 0x8a, 0x80, 0xee, 0x00, 0xa4, 0x4e, 0x4b, 0x0c, 0x54,
+ 0x71, 0x4c, 0x71, 0xc4, 0xa0, 0xc6, 0x55, 0x49, 0x8f, 0x57, 0x02, 0x51, 0x7f, 0xd9, 0x01, 0x80,
+ 0xfc, 0xcd, 0x62, 0x19, 0x43, 0xbf, 0xab, 0xea, 0x21, 0x0e, 0x7d, 0x82, 0x19, 0x84, 0x2e, 0xff,
+ 0x31, 0x69, 0xe9, 0xbb, 0x56, 0xd5, 0xe7, 0xc3, 0xac, 0x15, 0x0b, 0x28, 0x7a, 0x11, 0x46, 0x1c,
+ 0xdf, 0xe7, 0x59, 0x29, 0x24, 0x11, 0x77, 0x57, 0xe8, 0xca, 0x6d, 0x1a, 0x84, 0x4d, 0x3c, 0xfb,
+ 0x8f, 0x4b, 0x30, 0xb1, 0x8f, 0x4e, 0xe9, 0xca, 0xb3, 0xab, 0x0e, 0x9c, 0x67, 0x27, 0x32, 0x03,
+ 0x86, 0xfa, 0x64, 0x06, 0xbc, 0x08, 0x23, 0x29, 0x71, 0xda, 0x22, 0x0c, 0x4a, 0xec, 0xbf, 0xf5,
+ 0xb9, 0xab, 0x06, 0x61, 0x13, 0x8f, 0x6a, 0xb1, 0x93, 0x8e, 0xeb, 0x92, 0x24, 0x91, 0xa1, 0xff,
+ 0xc2, 0x87, 0x59, 0x58, 0x5e, 0x01, 0x73, 0x0d, 0x4f, 0x67, 0x58, 0xe0, 0x1c, 0xcb, 0x7c, 0x87,
+ 0xd7, 0x07, 0xec, 0xf0, 0x6f, 0x94, 0xe0, 0x89, 0x7b, 0xae, 0x6e, 0x03, 0x67, 0x65, 0x74, 0x12,
+ 0x12, 0xe7, 0x07, 0xce, 0x8d, 0x84, 0xc4, 0x98, 0x41, 0x78, 0x2f, 0x45, 0x91, 0x71, 0x97, 0x6d,
+ 0xd1, 0x29, 0x43, 0xbc, 0x97, 0x32, 0x2c, 0x70, 0x8e, 0xe5, 0x61, 0x87, 0xe5, 0xdf, 0x29, 0xc1,
+ 0x53, 0x03, 0xd8, 0x00, 0x05, 0xa6, 0x56, 0x65, 0x13, 0xdc, 0xca, 0x0f, 0x28, 0x0f, 0xf1, 0x90,
+ 0xdd, 0xf5, 0x56, 0x09, 0xce, 0xf7, 0x5f, 0x8a, 0xd1, 0x8f, 0xd2, 0x3d, 0xbc, 0x8c, 0x7d, 0x32,
+ 0x73, 0xe3, 0xce, 0xf0, 0xfd, 0x7b, 0x06, 0x84, 0xf3, 0xb8, 0x68, 0x12, 0x20, 0x72, 0xd2, 0x8d,
+ 0xe4, 0xd2, 0xb6, 0x97, 0xa4, 0xa2, 0xf6, 0xcb, 0x49, 0x7e, 0x62, 0x24, 0x5b, 0xb1, 0x81, 0x41,
+ 0xd9, 0xb1, 0x7f, 0xb3, 0xe1, 0xf5, 0x30, 0xe5, 0x0f, 0xf1, 0x6d, 0xc4, 0x19, 0x59, 0x1f, 0xdf,
+ 0x00, 0xe1, 0x3c, 0x2e, 0x65, 0xc7, 0xce, 0x24, 0xb9, 0xa0, 0x7c, 0x7f, 0xc1, 0xd8, 0x2d, 0xa8,
+ 0x56, 0x6c, 0x60, 0xe4, 0xb3, 0xfe, 0xaa, 0xfb, 0x67, 0xfd, 0xd9, 0xff, 0xb0, 0x04, 0x8f, 0xf5,
+ 0x35, 0xe5, 0x06, 0x9b, 0x80, 0x0f, 0x5f, 0xa6, 0xde, 0xe1, 0xc6, 0xce, 0x01, 0x33, 0xca, 0xfe,
+ 0xb0, 0xcf, 0x48, 0x13, 0x19, 0x65, 0x87, 0x4f, 0xc9, 0x7e, 0xf8, 0xfa, 0xb3, 0x2b, 0x89, 0xac,
+ 0x72, 0x80, 0x24, 0xb2, 0xdc, 0xc7, 0xa8, 0x0e, 0x38, 0x91, 0xff, 0x6f, 0xff, 0xee, 0xa5, 0x5b,
+ 0xbf, 0x81, 0xbc, 0xa3, 0xb3, 0x70, 0xda, 0x0b, 0xd8, 0x5d, 0x29, 0x2b, 0x9d, 0x35, 0x51, 0x0e,
+ 0xa4, 0x94, 0xbd, 0xa9, 0x78, 0x3e, 0x07, 0xc7, 0x5d, 0x4f, 0x3c, 0x84, 0x49, 0x7d, 0x87, 0xeb,
+ 0xd2, 0x03, 0xa6, 0x95, 0x7e, 0x04, 0xea, 0x4a, 0x12, 0x1e, 0xd6, 0xac, 0x3e, 0x7f, 0x57, 0x58,
+ 0xb3, 0xfa, 0xf6, 0x06, 0x16, 0xed, 0x37, 0x6a, 0x9c, 0xe6, 0xc6, 0xf1, 0x35, 0xb2, 0xc3, 0x2c,
+ 0x55, 0xfb, 0xbd, 0x30, 0xaa, 0x3c, 0x1e, 0x83, 0x5e, 0x9f, 0x61, 0x7f, 0x79, 0x08, 0x4e, 0x64,
+ 0x8a, 0xe3, 0x65, 0x1c, 0x8c, 0xd6, 0xbe, 0x0e, 0x46, 0x16, 0xa6, 0xde, 0x09, 0xe4, 0xdd, 0x3a,
+ 0x46, 0x98, 0x7a, 0x27, 0x20, 0x98, 0xc3, 0xa8, 0xa1, 0xd9, 0x8c, 0x77, 0x70, 0x27, 0x10, 0xe1,
+ 0xa4, 0xca, 0xd0, 0x9c, 0x65, 0xad, 0x58, 0x40, 0xd1, 0x27, 0x2d, 0x18, 0x4d, 0x98, 0xf7, 0x9a,
+ 0xbb, 0x67, 0xc5, 0xe7, 0xbf, 0x7a, 0xf4, 0xda, 0x7f, 0xaa, 0x10, 0x24, 0x8b, 0x10, 0x31, 0x5b,
+ 0x70, 0x86, 0x23, 0xfa, 0x69, 0x0b, 0xea, 0xea, 0x0a, 0x00, 0x71, 0x01, 0xd6, 0x4a, 0xb1, 0xb5,
+ 0x07, 0xb9, 0x5f, 0x4f, 0x1d, 0x04, 0xe8, 0x3b, 0xbd, 0x35, 0x63, 0x94, 0x28, 0xdf, 0xe9, 0xf0,
+ 0xf1, 0xf8, 0x4e, 0xa1, 0x87, 0xdf, 0xf4, 0x3d, 0x50, 0x6f, 0x3b, 0x81, 0xb7, 0x4e, 0x92, 0x94,
+ 0xbb, 0x33, 0x65, 0x49, 0x54, 0xd9, 0x88, 0x35, 0x9c, 0x2e, 0x8d, 0x09, 0x7b, 0xb1, 0xd4, 0xf0,
+ 0x3f, 0xb2, 0xa5, 0x71, 0x45, 0x37, 0x63, 0x13, 0xc7, 0x74, 0x96, 0xc2, 0x03, 0x75, 0x96, 0x8e,
+ 0xec, 0xe3, 0x2c, 0xfd, 0x7b, 0x16, 0x9c, 0xeb, 0xf9, 0xd5, 0x1e, 0xde, 0xc0, 0x3f, 0xfb, 0x2b,
+ 0x55, 0x38, 0xd3, 0xa3, 0xca, 0x25, 0xda, 0x31, 0xc7, 0xb3, 0x55, 0xc4, 0x19, 0x7a, 0xf6, 0x48,
+ 0x58, 0x76, 0x63, 0x8f, 0x41, 0x7c, 0xb0, 0xa3, 0x0a, 0x7d, 0x5c, 0x50, 0xbe, 0xbf, 0xc7, 0x05,
+ 0xc6, 0xb0, 0xac, 0x3c, 0xd0, 0x61, 0x59, 0xbd, 0xf7, 0xb0, 0x44, 0xbf, 0x66, 0xc1, 0x78, 0xbb,
+ 0x4f, 0x69, 0x75, 0xe1, 0x02, 0xbc, 0x79, 0x3c, 0x85, 0xdb, 0x1b, 0x8f, 0xef, 0xed, 0x4e, 0xf4,
+ 0xad, 0x68, 0x8f, 0xfb, 0x4a, 0x65, 0x7f, 0xa7, 0x0c, 0xac, 0xc4, 0x2a, 0xab, 0x64, 0xb6, 0x83,
+ 0x3e, 0x61, 0x16, 0xcb, 0xb5, 0x8a, 0x2a, 0xec, 0xca, 0x89, 0xab, 0x62, 0xbb, 0xbc, 0x07, 0x7b,
+ 0xd5, 0xde, 0xcd, 0x2b, 0xad, 0xd2, 0x00, 0x4a, 0xcb, 0x97, 0x55, 0x89, 0xcb, 0xc5, 0x57, 0x25,
+ 0xae, 0xe7, 0x2b, 0x12, 0xdf, 0xfb, 0x13, 0x57, 0x1e, 0xca, 0x4f, 0xfc, 0xd7, 0x2c, 0xae, 0x78,
+ 0x72, 0x5f, 0x41, 0x5b, 0x06, 0xd6, 0x3d, 0x2c, 0x83, 0x67, 0xd9, 0xed, 0xec, 0xeb, 0x57, 0x88,
+ 0xe3, 0x0b, 0x0b, 0xc2, 0xbc, 0x68, 0x9d, 0xb5, 0x63, 0x85, 0xc1, 0x2e, 0x2b, 0xf4, 0xfd, 0xf0,
+ 0xce, 0xa5, 0x76, 0x94, 0xee, 0x08, 0x5b, 0x42, 0x5f, 0x56, 0xa8, 0x20, 0xd8, 0xc0, 0xb2, 0xff,
+ 0x7a, 0x89, 0x8f, 0x40, 0x11, 0x04, 0xf0, 0x52, 0xee, 0x7a, 0xa9, 0xc1, 0xcf, 0xcf, 0x3f, 0x06,
+ 0xe0, 0xaa, 0x8b, 0x99, 0xc5, 0xe9, 0xcc, 0x95, 0x23, 0xdf, 0x1a, 0x2b, 0xe8, 0xe9, 0xd7, 0xd0,
+ 0x6d, 0xd8, 0xe0, 0x97, 0xd1, 0xa5, 0xe5, 0x7d, 0x75, 0x69, 0x46, 0xad, 0x54, 0xf6, 0x59, 0xed,
+ 0xfe, 0xd8, 0x82, 0x8c, 0x45, 0x84, 0x22, 0xa8, 0x52, 0x71, 0x77, 0x8a, 0xb9, 0x73, 0xda, 0x24,
+ 0x4d, 0x55, 0xa3, 0x18, 0xf6, 0xec, 0x27, 0xe6, 0x8c, 0x90, 0x2f, 0x62, 0x05, 0x4a, 0x45, 0xdc,
+ 0x8b, 0x6e, 0x32, 0xbc, 0x12, 0x86, 0x9b, 0xfc, 0x88, 0x51, 0xc7, 0x1d, 0xd8, 0x2f, 0xc1, 0x58,
+ 0x97, 0x50, 0xec, 0x26, 0x99, 0x50, 0x5e, 0xb4, 0x6d, 0x0c, 0x57, 0x96, 0xc0, 0x88, 0x39, 0xcc,
+ 0x7e, 0xcb, 0x82, 0xd3, 0x79, 0xf2, 0xe8, 0xab, 0x16, 0x8c, 0x25, 0x79, 0x7a, 0xc7, 0xd5, 0x77,
+ 0x2a, 0xde, 0xaf, 0x0b, 0x84, 0xbb, 0x85, 0xb0, 0xff, 0x8f, 0x18, 0xfc, 0xb7, 0xbc, 0xa0, 0x19,
+ 0xde, 0x51, 0x86, 0x89, 0xd5, 0xd7, 0x30, 0xa1, 0xf3, 0xd1, 0xdd, 0x20, 0xcd, 0x8e, 0xdf, 0x95,
+ 0x39, 0xb9, 0x22, 0xda, 0xb1, 0xc2, 0x60, 0x89, 0x62, 0x1d, 0x51, 0xb6, 0x3c, 0x37, 0x28, 0x67,
+ 0x45, 0x3b, 0x56, 0x18, 0xe8, 0x05, 0x18, 0x35, 0x2f, 0x93, 0x17, 0xe3, 0x92, 0x19, 0xe4, 0xe6,
+ 0xbd, 0xf3, 0x38, 0x83, 0x85, 0x26, 0x01, 0x94, 0x91, 0x23, 0x97, 0x48, 0xe6, 0xb2, 0x51, 0x9a,
+ 0x28, 0xc1, 0x06, 0x06, 0x4b, 0xcb, 0xe4, 0x37, 0xb6, 0xcb, 0xa8, 0x58, 0x9e, 0x96, 0x29, 0xda,
+ 0xb0, 0x82, 0x52, 0x6d, 0xd2, 0x76, 0x82, 0x8e, 0xe3, 0xd3, 0x1e, 0x12, 0xb9, 0xe4, 0x6a, 0x1a,
+ 0x2e, 0x2a, 0x08, 0x36, 0xb0, 0xe8, 0x1b, 0xa7, 0x5e, 0x9b, 0xbc, 0x1a, 0x06, 0x32, 0x4e, 0x4b,
+ 0x1f, 0xc0, 0x88, 0x76, 0xac, 0x30, 0xec, 0xff, 0x6c, 0xc1, 0x29, 0x9d, 0xe4, 0xcd, 0xef, 0x8c,
+ 0x35, 0xf7, 0x8c, 0xd6, 0xbe, 0xf9, 0xeb, 0xd9, 0xec, 0xd7, 0xd2, 0x40, 0xd9, 0xaf, 0x66, 0x62,
+ 0x6a, 0xf9, 0x9e, 0x89, 0xa9, 0x3f, 0xa8, 0xef, 0x23, 0xe4, 0x19, 0xac, 0x23, 0xbd, 0xee, 0x22,
+ 0x44, 0x36, 0x0c, 0xb9, 0x8e, 0xaa, 0x70, 0x32, 0xca, 0xf7, 0x0e, 0x33, 0xd3, 0x0c, 0x49, 0x40,
+ 0xec, 0x25, 0xa8, 0xab, 0x73, 0x08, 0xb9, 0x51, 0xb5, 0x7a, 0x6f, 0x54, 0x07, 0x4a, 0x90, 0x6b,
+ 0xac, 0x7d, 0xf3, 0xbb, 0x4f, 0xbe, 0xe3, 0x77, 0xbf, 0xfb, 0xe4, 0x3b, 0xfe, 0xe0, 0xbb, 0x4f,
+ 0xbe, 0xe3, 0x93, 0x7b, 0x4f, 0x5a, 0xdf, 0xdc, 0x7b, 0xd2, 0xfa, 0xdd, 0xbd, 0x27, 0xad, 0x3f,
+ 0xd8, 0x7b, 0xd2, 0xfa, 0xce, 0xde, 0x93, 0xd6, 0x97, 0xfe, 0xc3, 0x93, 0xef, 0x78, 0xb5, 0x67,
+ 0xa0, 0x1e, 0xfd, 0xf1, 0x9c, 0xdb, 0x9c, 0xda, 0xba, 0xc8, 0x62, 0xc5, 0xe8, 0xf4, 0x9a, 0x32,
+ 0xc6, 0xd4, 0x94, 0x9c, 0x5e, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xee, 0x24, 0x07, 0x84,
+ 0xd9, 0x00, 0x00,
}
func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) {
@@ -5125,6 +5567,38 @@ func (m *ApplicationMatchExpression) MarshalToSizedBuffer(dAtA []byte) (int, err
return len(dAtA) - i, nil
}
+func (m *ApplicationPreservedFields) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ApplicationPreservedFields) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ApplicationPreservedFields) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Annotations) > 0 {
+ for iNdEx := len(m.Annotations) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Annotations[iNdEx])
+ copy(dAtA[i:], m.Annotations[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Annotations[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *ApplicationSet) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -5308,6 +5782,18 @@ func (m *ApplicationSetGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error)
_ = i
var l int
_ = l
+ if m.Plugin != nil {
+ {
+ size, err := m.Plugin.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x52
+ }
if m.Selector != nil {
{
size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])
@@ -5486,6 +5972,18 @@ func (m *ApplicationSetNestedGenerator) MarshalToSizedBuffer(dAtA []byte) (int,
_ = i
var l int
_ = l
+ if m.Plugin != nil {
+ {
+ size, err := m.Plugin.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x52
+ }
if m.Selector != nil {
{
size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])
@@ -5703,6 +6201,35 @@ func (m *ApplicationSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ i--
+ if m.ApplyNestedSelectors {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x40
+ if len(m.GoTemplateOptions) > 0 {
+ for iNdEx := len(m.GoTemplateOptions) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.GoTemplateOptions[iNdEx])
+ copy(dAtA[i:], m.GoTemplateOptions[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.GoTemplateOptions[iNdEx])))
+ i--
+ dAtA[i] = 0x3a
+ }
+ }
+ if m.PreservedFields != nil {
+ {
+ size, err := m.PreservedFields.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x32
+ }
if m.Strategy != nil {
{
size, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])
@@ -5873,6 +6400,13 @@ func (m *ApplicationSetSyncPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error
_ = i
var l int
_ = l
+ if m.ApplicationsSync != nil {
+ i -= len(*m.ApplicationsSync)
+ copy(dAtA[i:], *m.ApplicationsSync)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ApplicationsSync)))
+ i--
+ dAtA[i] = 0x12
+ }
i--
if m.PreserveResourcesOnDeletion {
dAtA[i] = 1
@@ -6037,6 +6571,30 @@ func (m *ApplicationSetTerminalGenerator) MarshalToSizedBuffer(dAtA []byte) (int
_ = i
var l int
_ = l
+ if m.Selector != nil {
+ {
+ size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x42
+ }
+ if m.Plugin != nil {
+ {
+ size, err := m.Plugin.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x3a
+ }
if m.PullRequest != nil {
{
size, err := m.PullRequest.MarshalToSizedBuffer(dAtA[:i])
@@ -6279,6 +6837,18 @@ func (m *ApplicationSourceHelm) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.ValuesObject != nil {
+ {
+ size, err := m.ValuesObject.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x52
+ }
i--
if m.SkipCrds {
dAtA[i] = 1
@@ -6438,6 +7008,33 @@ func (m *ApplicationSourceKustomize) MarshalToSizedBuffer(dAtA []byte) (int, err
_ = i
var l int
_ = l
+ if len(m.Replicas) > 0 {
+ for iNdEx := len(m.Replicas) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Replicas[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x5a
+ }
+ }
+ i--
+ if m.CommonAnnotationsEnvsubst {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x50
+ i -= len(m.Namespace)
+ copy(dAtA[i:], m.Namespace)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))
+ i--
+ dAtA[i] = 0x4a
i--
if m.ForceCommonAnnotations {
dAtA[i] = 1
@@ -6612,38 +7209,29 @@ func (m *ApplicationSourcePluginParameter) MarshalToSizedBuffer(dAtA []byte) (in
i--
dAtA[i] = 0x2a
}
- if len(m.Array) > 0 {
- for iNdEx := len(m.Array) - 1; iNdEx >= 0; iNdEx-- {
- i -= len(m.Array[iNdEx])
- copy(dAtA[i:], m.Array[iNdEx])
- i = encodeVarintGenerated(dAtA, i, uint64(len(m.Array[iNdEx])))
- i--
- dAtA[i] = 0x22
+ if m.OptionalArray != nil {
+ {
+ size, err := m.OptionalArray.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
}
+ i--
+ dAtA[i] = 0x22
}
- if len(m.Map) > 0 {
- keysForMap := make([]string, 0, len(m.Map))
- for k := range m.Map {
- keysForMap = append(keysForMap, string(k))
- }
- github_com_gogo_protobuf_sortkeys.Strings(keysForMap)
- for iNdEx := len(keysForMap) - 1; iNdEx >= 0; iNdEx-- {
- v := m.Map[string(keysForMap[iNdEx])]
- baseI := i
- i -= len(v)
- copy(dAtA[i:], v)
- i = encodeVarintGenerated(dAtA, i, uint64(len(v)))
- i--
- dAtA[i] = 0x12
- i -= len(keysForMap[iNdEx])
- copy(dAtA[i:], keysForMap[iNdEx])
- i = encodeVarintGenerated(dAtA, i, uint64(len(keysForMap[iNdEx])))
- i--
- dAtA[i] = 0xa
- i = encodeVarintGenerated(dAtA, i, uint64(baseI-i))
- i--
- dAtA[i] = 0x1a
+ if m.OptionalMap != nil {
+ {
+ size, err := m.OptionalMap.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
}
+ i--
+ dAtA[i] = 0x1a
}
i -= len(m.Name)
copy(dAtA[i:], m.Name)
@@ -6782,6 +7370,11 @@ func (m *ApplicationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ i -= len(m.ControllerNamespace)
+ copy(dAtA[i:], m.ControllerNamespace)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.ControllerNamespace)))
+ i--
+ dAtA[i] = 0x6a
if len(m.SourceTypes) > 0 {
for iNdEx := len(m.SourceTypes) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.SourceTypes[iNdEx])
@@ -7134,6 +7727,83 @@ func (m *BasicAuthBitbucketServer) MarshalToSizedBuffer(dAtA []byte) (int, error
return len(dAtA) - i, nil
}
+func (m *BearerTokenBitbucketCloud) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *BearerTokenBitbucketCloud) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *BearerTokenBitbucketCloud) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.TokenRef != nil {
+ {
+ size, err := m.TokenRef.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChartDetails) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChartDetails) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChartDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Maintainers) > 0 {
+ for iNdEx := len(m.Maintainers) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Maintainers[iNdEx])
+ copy(dAtA[i:], m.Maintainers[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Maintainers[iNdEx])))
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
+ i -= len(m.Home)
+ copy(dAtA[i:], m.Home)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Home)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *Cluster) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -7637,6 +8307,20 @@ func (m *ComparedTo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.IgnoreDifferences) > 0 {
+ for iNdEx := len(m.IgnoreDifferences) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.IgnoreDifferences[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x22
+ }
+ }
if len(m.Sources) > 0 {
for iNdEx := len(m.Sources) - 1; iNdEx >= 0; iNdEx-- {
{
@@ -8085,6 +8769,30 @@ func (m *GitGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.Values) > 0 {
+ keysForValues := make([]string, 0, len(m.Values))
+ for k := range m.Values {
+ keysForValues = append(keysForValues, string(k))
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForValues)
+ for iNdEx := len(keysForValues) - 1; iNdEx >= 0; iNdEx-- {
+ v := m.Values[string(keysForValues[iNdEx])]
+ baseI := i
+ i -= len(v)
+ copy(dAtA[i:], v)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(v)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(keysForValues[iNdEx])
+ copy(dAtA[i:], keysForValues[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(keysForValues[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintGenerated(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0x42
+ }
+ }
i -= len(m.PathParamPrefix)
copy(dAtA[i:], m.PathParamPrefix)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.PathParamPrefix)))
@@ -8718,6 +9426,44 @@ func (m *KustomizeOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *KustomizeReplica) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *KustomizeReplica) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *KustomizeReplica) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ {
+ size, err := m.Count.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *ListGenerator) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -8738,6 +9484,11 @@ func (m *ListGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ i -= len(m.ElementsYaml)
+ copy(dAtA[i:], m.ElementsYaml)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.ElementsYaml)))
+ i--
+ dAtA[i] = 0x1a
{
size, err := m.Template.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -9207,6 +9958,85 @@ func (m *OperationState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *OptionalArray) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *OptionalArray) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *OptionalArray) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Array) > 0 {
+ for iNdEx := len(m.Array) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Array[iNdEx])
+ copy(dAtA[i:], m.Array[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Array[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *OptionalMap) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *OptionalMap) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *OptionalMap) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Map) > 0 {
+ keysForMap := make([]string, 0, len(m.Map))
+ for k := range m.Map {
+ keysForMap = append(keysForMap, string(k))
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForMap)
+ for iNdEx := len(keysForMap) - 1; iNdEx >= 0; iNdEx-- {
+ v := m.Map[string(keysForMap[iNdEx])]
+ baseI := i
+ i -= len(v)
+ copy(dAtA[i:], v)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(v)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(keysForMap[iNdEx])
+ copy(dAtA[i:], keysForMap[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(keysForMap[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintGenerated(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *OrphanedResourceKey) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -9342,6 +10172,168 @@ func (m *OverrideIgnoreDiff) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *PluginConfigMapRef) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PluginConfigMapRef) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PluginConfigMapRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
+func (m *PluginGenerator) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PluginGenerator) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PluginGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Values) > 0 {
+ keysForValues := make([]string, 0, len(m.Values))
+ for k := range m.Values {
+ keysForValues = append(keysForValues, string(k))
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForValues)
+ for iNdEx := len(keysForValues) - 1; iNdEx >= 0; iNdEx-- {
+ v := m.Values[string(keysForValues[iNdEx])]
+ baseI := i
+ i -= len(v)
+ copy(dAtA[i:], v)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(v)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(keysForValues[iNdEx])
+ copy(dAtA[i:], keysForValues[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(keysForValues[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintGenerated(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0x2a
+ }
+ }
+ {
+ size, err := m.Template.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x22
+ if m.RequeueAfterSeconds != nil {
+ i = encodeVarintGenerated(dAtA, i, uint64(*m.RequeueAfterSeconds))
+ i--
+ dAtA[i] = 0x18
+ }
+ {
+ size, err := m.Input.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ {
+ size, err := m.ConfigMapRef.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
+func (m *PluginInput) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PluginInput) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PluginInput) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Parameters) > 0 {
+ keysForParameters := make([]string, 0, len(m.Parameters))
+ for k := range m.Parameters {
+ keysForParameters = append(keysForParameters, string(k))
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForParameters)
+ for iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {
+ v := m.Parameters[string(keysForParameters[iNdEx])]
+ baseI := i
+ {
+ size, err := (&v).MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ i -= len(keysForParameters[iNdEx])
+ copy(dAtA[i:], keysForParameters[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintGenerated(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *ProjectRole) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -9427,6 +10419,30 @@ func (m *PullRequestGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.AzureDevOps != nil {
+ {
+ size, err := m.AzureDevOps.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x4a
+ }
+ if m.Bitbucket != nil {
+ {
+ size, err := m.Bitbucket.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x42
+ }
{
size, err := m.Template.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -9507,6 +10523,132 @@ func (m *PullRequestGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *PullRequestGeneratorAzureDevOps) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PullRequestGeneratorAzureDevOps) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PullRequestGeneratorAzureDevOps) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Labels) > 0 {
+ for iNdEx := len(m.Labels) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Labels[iNdEx])
+ copy(dAtA[i:], m.Labels[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Labels[iNdEx])))
+ i--
+ dAtA[i] = 0x32
+ }
+ }
+ if m.TokenRef != nil {
+ {
+ size, err := m.TokenRef.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
+ }
+ i -= len(m.API)
+ copy(dAtA[i:], m.API)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.API)))
+ i--
+ dAtA[i] = 0x22
+ i -= len(m.Repo)
+ copy(dAtA[i:], m.Repo)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Repo)))
+ i--
+ dAtA[i] = 0x1a
+ i -= len(m.Project)
+ copy(dAtA[i:], m.Project)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Project)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.Organization)
+ copy(dAtA[i:], m.Organization)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Organization)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
+func (m *PullRequestGeneratorBitbucket) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *PullRequestGeneratorBitbucket) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *PullRequestGeneratorBitbucket) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.BearerToken != nil {
+ {
+ size, err := m.BearerToken.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.BasicAuth != nil {
+ {
+ size, err := m.BasicAuth.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x22
+ }
+ i -= len(m.API)
+ copy(dAtA[i:], m.API)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.API)))
+ i--
+ dAtA[i] = 0x1a
+ i -= len(m.Repo)
+ copy(dAtA[i:], m.Repo)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Repo)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.Owner)
+ copy(dAtA[i:], m.Owner)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Owner)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *PullRequestGeneratorBitbucketServer) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -9577,6 +10719,13 @@ func (m *PullRequestGeneratorFilter) MarshalToSizedBuffer(dAtA []byte) (int, err
_ = i
var l int
_ = l
+ if m.TargetBranchMatch != nil {
+ i -= len(*m.TargetBranchMatch)
+ copy(dAtA[i:], *m.TargetBranchMatch)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(*m.TargetBranchMatch)))
+ i--
+ dAtA[i] = 0x12
+ }
if m.BranchMatch != nil {
i -= len(*m.BranchMatch)
copy(dAtA[i:], *m.BranchMatch)
@@ -9607,6 +10756,14 @@ func (m *PullRequestGeneratorGitLab) MarshalToSizedBuffer(dAtA []byte) (int, err
_ = i
var l int
_ = l
+ i--
+ if m.Insecure {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
i -= len(m.PullRequestState)
copy(dAtA[i:], m.PullRequestState)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.PullRequestState)))
@@ -10292,6 +11449,16 @@ func (m *ResourceAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ i -= len(m.DisplayName)
+ copy(dAtA[i:], m.DisplayName)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.DisplayName)))
+ i--
+ dAtA[i] = 0x2a
+ i -= len(m.IconClass)
+ copy(dAtA[i:], m.IconClass)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.IconClass)))
+ i--
+ dAtA[i] = 0x22
i--
if m.Disabled {
dAtA[i] = 1
@@ -10838,6 +12005,16 @@ func (m *ResourceOverride) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ {
+ size, err := m.IgnoreResourceUpdates.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x32
i--
if m.UseOpenLibs {
dAtA[i] = 1
@@ -11294,6 +12471,42 @@ func (m *SCMProviderGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.AWSCodeCommit != nil {
+ {
+ size, err := m.AWSCodeCommit.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x62
+ }
+ if len(m.Values) > 0 {
+ keysForValues := make([]string, 0, len(m.Values))
+ for k := range m.Values {
+ keysForValues = append(keysForValues, string(k))
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForValues)
+ for iNdEx := len(keysForValues) - 1; iNdEx >= 0; iNdEx-- {
+ v := m.Values[string(keysForValues[iNdEx])]
+ baseI := i
+ i -= len(v)
+ copy(dAtA[i:], v)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(v)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(keysForValues[iNdEx])
+ copy(dAtA[i:], keysForValues[iNdEx])
+ i = encodeVarintGenerated(dAtA, i, uint64(len(keysForValues[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintGenerated(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0x5a
+ }
+ }
{
size, err := m.Template.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -11403,6 +12616,61 @@ func (m *SCMProviderGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *SCMProviderGeneratorAWSCodeCommit) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *SCMProviderGeneratorAWSCodeCommit) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *SCMProviderGeneratorAWSCodeCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i--
+ if m.AllBranches {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ i -= len(m.Region)
+ copy(dAtA[i:], m.Region)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region)))
+ i--
+ dAtA[i] = 0x1a
+ i -= len(m.Role)
+ copy(dAtA[i:], m.Role)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Role)))
+ i--
+ dAtA[i] = 0x12
+ if len(m.TagFilters) > 0 {
+ for iNdEx := len(m.TagFilters) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.TagFilters[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *SCMProviderGeneratorAzureDevOps) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -11769,6 +13037,14 @@ func (m *SCMProviderGeneratorGitlab) MarshalToSizedBuffer(dAtA []byte) (int, err
var l int
_ = l
i--
+ if m.Insecure {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x30
+ i--
if m.AllBranches {
dAtA[i] = 1
} else {
@@ -12056,6 +13332,18 @@ func (m *SyncOperationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.ManagedNamespaceMetadata != nil {
+ {
+ size, err := m.ManagedNamespaceMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x32
+ }
if len(m.Revisions) > 0 {
for iNdEx := len(m.Revisions) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.Revisions[iNdEx])
@@ -12524,6 +13812,39 @@ func (m *TLSClientConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *TagFilter) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *TagFilter) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *TagFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i -= len(m.Value)
+ copy(dAtA[i:], m.Value)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.Key)
+ copy(dAtA[i:], m.Key)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {
offset -= sovGenerated(v)
base := offset
@@ -12761,6 +14082,21 @@ func (m *ApplicationMatchExpression) Size() (n int) {
return n
}
+func (m *ApplicationPreservedFields) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Annotations) > 0 {
+ for _, s := range m.Annotations {
+ l = len(s)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ return n
+}
+
func (m *ApplicationSet) Size() (n int) {
if m == nil {
return 0
@@ -12860,6 +14196,10 @@ func (m *ApplicationSetGenerator) Size() (n int) {
l = m.Selector.Size()
n += 1 + l + sovGenerated(uint64(l))
}
+ if m.Plugin != nil {
+ l = m.Plugin.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -12922,6 +14262,10 @@ func (m *ApplicationSetNestedGenerator) Size() (n int) {
l = m.Selector.Size()
n += 1 + l + sovGenerated(uint64(l))
}
+ if m.Plugin != nil {
+ l = m.Plugin.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -12982,6 +14326,17 @@ func (m *ApplicationSetSpec) Size() (n int) {
l = m.Strategy.Size()
n += 1 + l + sovGenerated(uint64(l))
}
+ if m.PreservedFields != nil {
+ l = m.PreservedFields.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ if len(m.GoTemplateOptions) > 0 {
+ for _, s := range m.GoTemplateOptions {
+ l = len(s)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ n += 2
return n
}
@@ -13028,6 +14383,10 @@ func (m *ApplicationSetSyncPolicy) Size() (n int) {
var l int
_ = l
n += 2
+ if m.ApplicationsSync != nil {
+ l = len(*m.ApplicationsSync)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -13109,6 +14468,14 @@ func (m *ApplicationSetTerminalGenerator) Size() (n int) {
l = m.PullRequest.Size()
n += 1 + l + sovGenerated(uint64(l))
}
+ if m.Plugin != nil {
+ l = m.Plugin.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ if m.Selector != nil {
+ l = m.Selector.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -13196,6 +14563,10 @@ func (m *ApplicationSourceHelm) Size() (n int) {
n += 2
n += 2
n += 2
+ if m.ValuesObject != nil {
+ l = m.ValuesObject.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -13262,6 +14633,15 @@ func (m *ApplicationSourceKustomize) Size() (n int) {
}
n += 2
n += 2
+ l = len(m.Namespace)
+ n += 1 + l + sovGenerated(uint64(l))
+ n += 2
+ if len(m.Replicas) > 0 {
+ for _, e := range m.Replicas {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -13296,19 +14676,13 @@ func (m *ApplicationSourcePluginParameter) Size() (n int) {
_ = l
l = len(m.Name)
n += 1 + l + sovGenerated(uint64(l))
- if len(m.Map) > 0 {
- for k, v := range m.Map {
- _ = k
- _ = v
- mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))
- n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
- }
+ if m.OptionalMap != nil {
+ l = m.OptionalMap.Size()
+ n += 1 + l + sovGenerated(uint64(l))
}
- if len(m.Array) > 0 {
- for _, s := range m.Array {
- l = len(s)
- n += 1 + l + sovGenerated(uint64(l))
- }
+ if m.OptionalArray != nil {
+ l = m.OptionalArray.Size()
+ n += 1 + l + sovGenerated(uint64(l))
}
if m.String_ != nil {
l = len(*m.String_)
@@ -13411,6 +14785,8 @@ func (m *ApplicationStatus) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
}
+ l = len(m.ControllerNamespace)
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -13506,6 +14882,38 @@ func (m *BasicAuthBitbucketServer) Size() (n int) {
return n
}
+func (m *BearerTokenBitbucketCloud) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.TokenRef != nil {
+ l = m.TokenRef.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ return n
+}
+
+func (m *ChartDetails) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Description)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Home)
+ n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Maintainers) > 0 {
+ for _, s := range m.Maintainers {
+ l = len(s)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ return n
+}
+
func (m *Cluster) Size() (n int) {
if m == nil {
return 0
@@ -13696,6 +15104,12 @@ func (m *ComparedTo) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
}
+ if len(m.IgnoreDifferences) > 0 {
+ for _, e := range m.IgnoreDifferences {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -13871,6 +15285,14 @@ func (m *GitGenerator) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
l = len(m.PathParamPrefix)
n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Values) > 0 {
+ for k, v := range m.Values {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))
+ n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
+ }
+ }
return n
}
@@ -14094,6 +15516,19 @@ func (m *KustomizeOptions) Size() (n int) {
return n
}
+func (m *KustomizeReplica) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Name)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = m.Count.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
func (m *ListGenerator) Size() (n int) {
if m == nil {
return 0
@@ -14108,6 +15543,8 @@ func (m *ListGenerator) Size() (n int) {
}
l = m.Template.Size()
n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.ElementsYaml)
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -14273,6 +15710,38 @@ func (m *OperationState) Size() (n int) {
return n
}
+func (m *OptionalArray) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Array) > 0 {
+ for _, s := range m.Array {
+ l = len(s)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *OptionalMap) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Map) > 0 {
+ for k, v := range m.Map {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))
+ n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
+ }
+ }
+ return n
+}
+
func (m *OrphanedResourceKey) Size() (n int) {
if m == nil {
return 0
@@ -14333,6 +15802,61 @@ func (m *OverrideIgnoreDiff) Size() (n int) {
return n
}
+func (m *PluginConfigMapRef) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Name)
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
+func (m *PluginGenerator) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = m.ConfigMapRef.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ l = m.Input.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ if m.RequeueAfterSeconds != nil {
+ n += 1 + sovGenerated(uint64(*m.RequeueAfterSeconds))
+ }
+ l = m.Template.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Values) > 0 {
+ for k, v := range m.Values {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))
+ n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
+ }
+ }
+ return n
+}
+
+func (m *PluginInput) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Parameters) > 0 {
+ for k, v := range m.Parameters {
+ _ = k
+ _ = v
+ l = v.Size()
+ mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))
+ n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
+ }
+ }
+ return n
+}
+
func (m *ProjectRole) Size() (n int) {
if m == nil {
return 0
@@ -14397,6 +15921,64 @@ func (m *PullRequestGenerator) Size() (n int) {
}
l = m.Template.Size()
n += 1 + l + sovGenerated(uint64(l))
+ if m.Bitbucket != nil {
+ l = m.Bitbucket.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ if m.AzureDevOps != nil {
+ l = m.AzureDevOps.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ return n
+}
+
+func (m *PullRequestGeneratorAzureDevOps) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Organization)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Project)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Repo)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.API)
+ n += 1 + l + sovGenerated(uint64(l))
+ if m.TokenRef != nil {
+ l = m.TokenRef.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ if len(m.Labels) > 0 {
+ for _, s := range m.Labels {
+ l = len(s)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *PullRequestGeneratorBitbucket) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Owner)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Repo)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.API)
+ n += 1 + l + sovGenerated(uint64(l))
+ if m.BasicAuth != nil {
+ l = m.BasicAuth.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ if m.BearerToken != nil {
+ l = m.BearerToken.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -14429,6 +16011,10 @@ func (m *PullRequestGeneratorFilter) Size() (n int) {
l = len(*m.BranchMatch)
n += 1 + l + sovGenerated(uint64(l))
}
+ if m.TargetBranchMatch != nil {
+ l = len(*m.TargetBranchMatch)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -14454,6 +16040,7 @@ func (m *PullRequestGeneratorGitLab) Size() (n int) {
}
l = len(m.PullRequestState)
n += 1 + l + sovGenerated(uint64(l))
+ n += 2
return n
}
@@ -14686,6 +16273,10 @@ func (m *ResourceAction) Size() (n int) {
}
}
n += 2
+ l = len(m.IconClass)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.DisplayName)
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -14907,6 +16498,8 @@ func (m *ResourceOverride) Size() (n int) {
}
}
n += 2
+ l = m.IgnoreResourceUpdates.Size()
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -15100,6 +16693,38 @@ func (m *SCMProviderGenerator) Size() (n int) {
}
l = m.Template.Size()
n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Values) > 0 {
+ for k, v := range m.Values {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))
+ n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))
+ }
+ }
+ if m.AWSCodeCommit != nil {
+ l = m.AWSCodeCommit.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ return n
+}
+
+func (m *SCMProviderGeneratorAWSCodeCommit) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.TagFilters) > 0 {
+ for _, e := range m.TagFilters {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ l = len(m.Role)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Region)
+ n += 1 + l + sovGenerated(uint64(l))
+ n += 2
return n
}
@@ -15247,6 +16872,7 @@ func (m *SCMProviderGeneratorGitlab) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
n += 2
+ n += 2
return n
}
@@ -15370,6 +16996,10 @@ func (m *SyncOperationResult) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
}
+ if m.ManagedNamespaceMetadata != nil {
+ l = m.ManagedNamespaceMetadata.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -15531,6 +17161,19 @@ func (m *TLSClientConfig) Size() (n int) {
return n
}
+func (m *TagFilter) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Key)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Value)
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
func sovGenerated(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -15723,6 +17366,16 @@ func (this *ApplicationMatchExpression) String() string {
}, "")
return s
}
+func (this *ApplicationPreservedFields) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&ApplicationPreservedFields{`,
+ `Annotations:` + fmt.Sprintf("%v", this.Annotations) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *ApplicationSet) String() string {
if this == nil {
return "nil"
@@ -15777,6 +17430,7 @@ func (this *ApplicationSetGenerator) String() string {
`Matrix:` + strings.Replace(this.Matrix.String(), "MatrixGenerator", "MatrixGenerator", 1) + `,`,
`Merge:` + strings.Replace(this.Merge.String(), "MergeGenerator", "MergeGenerator", 1) + `,`,
`Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`,
+ `Plugin:` + strings.Replace(this.Plugin.String(), "PluginGenerator", "PluginGenerator", 1) + `,`,
`}`,
}, "")
return s
@@ -15811,6 +17465,7 @@ func (this *ApplicationSetNestedGenerator) String() string {
`Matrix:` + strings.Replace(fmt.Sprintf("%v", this.Matrix), "JSON", "v11.JSON", 1) + `,`,
`Merge:` + strings.Replace(fmt.Sprintf("%v", this.Merge), "JSON", "v11.JSON", 1) + `,`,
`Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`,
+ `Plugin:` + strings.Replace(this.Plugin.String(), "PluginGenerator", "PluginGenerator", 1) + `,`,
`}`,
}, "")
return s
@@ -15861,6 +17516,9 @@ func (this *ApplicationSetSpec) String() string {
`Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`,
`SyncPolicy:` + strings.Replace(this.SyncPolicy.String(), "ApplicationSetSyncPolicy", "ApplicationSetSyncPolicy", 1) + `,`,
`Strategy:` + strings.Replace(this.Strategy.String(), "ApplicationSetStrategy", "ApplicationSetStrategy", 1) + `,`,
+ `PreservedFields:` + strings.Replace(this.PreservedFields.String(), "ApplicationPreservedFields", "ApplicationPreservedFields", 1) + `,`,
+ `GoTemplateOptions:` + fmt.Sprintf("%v", this.GoTemplateOptions) + `,`,
+ `ApplyNestedSelectors:` + fmt.Sprintf("%v", this.ApplyNestedSelectors) + `,`,
`}`,
}, "")
return s
@@ -15903,6 +17561,7 @@ func (this *ApplicationSetSyncPolicy) String() string {
}
s := strings.Join([]string{`&ApplicationSetSyncPolicy{`,
`PreserveResourcesOnDeletion:` + fmt.Sprintf("%v", this.PreserveResourcesOnDeletion) + `,`,
+ `ApplicationsSync:` + valueToStringGenerated(this.ApplicationsSync) + `,`,
`}`,
}, "")
return s
@@ -15963,6 +17622,8 @@ func (this *ApplicationSetTerminalGenerator) String() string {
`SCMProvider:` + strings.Replace(this.SCMProvider.String(), "SCMProviderGenerator", "SCMProviderGenerator", 1) + `,`,
`ClusterDecisionResource:` + strings.Replace(this.ClusterDecisionResource.String(), "DuckTypeGenerator", "DuckTypeGenerator", 1) + `,`,
`PullRequest:` + strings.Replace(this.PullRequest.String(), "PullRequestGenerator", "PullRequestGenerator", 1) + `,`,
+ `Plugin:` + strings.Replace(this.Plugin.String(), "PluginGenerator", "PluginGenerator", 1) + `,`,
+ `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`,
`}`,
}, "")
return s
@@ -16022,6 +17683,7 @@ func (this *ApplicationSourceHelm) String() string {
`PassCredentials:` + fmt.Sprintf("%v", this.PassCredentials) + `,`,
`IgnoreMissingValueFiles:` + fmt.Sprintf("%v", this.IgnoreMissingValueFiles) + `,`,
`SkipCrds:` + fmt.Sprintf("%v", this.SkipCrds) + `,`,
+ `ValuesObject:` + strings.Replace(fmt.Sprintf("%v", this.ValuesObject), "RawExtension", "runtime.RawExtension", 1) + `,`,
`}`,
}, "")
return s
@@ -16052,6 +17714,11 @@ func (this *ApplicationSourceKustomize) String() string {
if this == nil {
return "nil"
}
+ repeatedStringForReplicas := "[]KustomizeReplica{"
+ for _, f := range this.Replicas {
+ repeatedStringForReplicas += strings.Replace(strings.Replace(f.String(), "KustomizeReplica", "KustomizeReplica", 1), `&`, ``, 1) + ","
+ }
+ repeatedStringForReplicas += "}"
keysForCommonLabels := make([]string, 0, len(this.CommonLabels))
for k := range this.CommonLabels {
keysForCommonLabels = append(keysForCommonLabels, k)
@@ -16081,6 +17748,9 @@ func (this *ApplicationSourceKustomize) String() string {
`CommonAnnotations:` + mapStringForCommonAnnotations + `,`,
`ForceCommonLabels:` + fmt.Sprintf("%v", this.ForceCommonLabels) + `,`,
`ForceCommonAnnotations:` + fmt.Sprintf("%v", this.ForceCommonAnnotations) + `,`,
+ `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`,
+ `CommonAnnotationsEnvsubst:` + fmt.Sprintf("%v", this.CommonAnnotationsEnvsubst) + `,`,
+ `Replicas:` + repeatedStringForReplicas + `,`,
`}`,
}, "")
return s
@@ -16111,20 +17781,10 @@ func (this *ApplicationSourcePluginParameter) String() string {
if this == nil {
return "nil"
}
- keysForMap := make([]string, 0, len(this.Map))
- for k := range this.Map {
- keysForMap = append(keysForMap, k)
- }
- github_com_gogo_protobuf_sortkeys.Strings(keysForMap)
- mapStringForMap := "map[string]string{"
- for _, k := range keysForMap {
- mapStringForMap += fmt.Sprintf("%v: %v,", k, this.Map[k])
- }
- mapStringForMap += "}"
s := strings.Join([]string{`&ApplicationSourcePluginParameter{`,
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
- `Map:` + mapStringForMap + `,`,
- `Array:` + fmt.Sprintf("%v", this.Array) + `,`,
+ `OptionalMap:` + strings.Replace(this.OptionalMap.String(), "OptionalMap", "OptionalMap", 1) + `,`,
+ `OptionalArray:` + strings.Replace(this.OptionalArray.String(), "OptionalArray", "OptionalArray", 1) + `,`,
`String_:` + valueToStringGenerated(this.String_) + `,`,
`}`,
}, "")
@@ -16194,6 +17854,7 @@ func (this *ApplicationStatus) String() string {
`Summary:` + strings.Replace(strings.Replace(this.Summary.String(), "ApplicationSummary", "ApplicationSummary", 1), `&`, ``, 1) + `,`,
`ResourceHealthSource:` + fmt.Sprintf("%v", this.ResourceHealthSource) + `,`,
`SourceTypes:` + fmt.Sprintf("%v", this.SourceTypes) + `,`,
+ `ControllerNamespace:` + fmt.Sprintf("%v", this.ControllerNamespace) + `,`,
`}`,
}, "")
return s
@@ -16270,6 +17931,28 @@ func (this *BasicAuthBitbucketServer) String() string {
}, "")
return s
}
+func (this *BearerTokenBitbucketCloud) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&BearerTokenBitbucketCloud{`,
+ `TokenRef:` + strings.Replace(this.TokenRef.String(), "SecretRef", "SecretRef", 1) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *ChartDetails) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&ChartDetails{`,
+ `Description:` + fmt.Sprintf("%v", this.Description) + `,`,
+ `Home:` + fmt.Sprintf("%v", this.Home) + `,`,
+ `Maintainers:` + fmt.Sprintf("%v", this.Maintainers) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *Cluster) String() string {
if this == nil {
return "nil"
@@ -16411,10 +18094,16 @@ func (this *ComparedTo) String() string {
repeatedStringForSources += strings.Replace(strings.Replace(f.String(), "ApplicationSource", "ApplicationSource", 1), `&`, ``, 1) + ","
}
repeatedStringForSources += "}"
+ repeatedStringForIgnoreDifferences := "[]ResourceIgnoreDifferences{"
+ for _, f := range this.IgnoreDifferences {
+ repeatedStringForIgnoreDifferences += strings.Replace(strings.Replace(f.String(), "ResourceIgnoreDifferences", "ResourceIgnoreDifferences", 1), `&`, ``, 1) + ","
+ }
+ repeatedStringForIgnoreDifferences += "}"
s := strings.Join([]string{`&ComparedTo{`,
`Source:` + strings.Replace(strings.Replace(this.Source.String(), "ApplicationSource", "ApplicationSource", 1), `&`, ``, 1) + `,`,
`Destination:` + strings.Replace(strings.Replace(this.Destination.String(), "ApplicationDestination", "ApplicationDestination", 1), `&`, ``, 1) + `,`,
`Sources:` + repeatedStringForSources + `,`,
+ `IgnoreDifferences:` + repeatedStringForIgnoreDifferences + `,`,
`}`,
}, "")
return s
@@ -16551,6 +18240,16 @@ func (this *GitGenerator) String() string {
repeatedStringForFiles += strings.Replace(strings.Replace(f.String(), "GitFileGeneratorItem", "GitFileGeneratorItem", 1), `&`, ``, 1) + ","
}
repeatedStringForFiles += "}"
+ keysForValues := make([]string, 0, len(this.Values))
+ for k := range this.Values {
+ keysForValues = append(keysForValues, k)
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForValues)
+ mapStringForValues := "map[string]string{"
+ for _, k := range keysForValues {
+ mapStringForValues += fmt.Sprintf("%v: %v,", k, this.Values[k])
+ }
+ mapStringForValues += "}"
s := strings.Join([]string{`&GitGenerator{`,
`RepoURL:` + fmt.Sprintf("%v", this.RepoURL) + `,`,
`Directories:` + repeatedStringForDirectories + `,`,
@@ -16559,6 +18258,7 @@ func (this *GitGenerator) String() string {
`RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`,
`Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`,
`PathParamPrefix:` + fmt.Sprintf("%v", this.PathParamPrefix) + `,`,
+ `Values:` + mapStringForValues + `,`,
`}`,
}, "")
return s
@@ -16751,6 +18451,17 @@ func (this *KustomizeOptions) String() string {
}, "")
return s
}
+func (this *KustomizeReplica) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&KustomizeReplica{`,
+ `Name:` + fmt.Sprintf("%v", this.Name) + `,`,
+ `Count:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Count), "IntOrString", "intstr.IntOrString", 1), `&`, ``, 1) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *ListGenerator) String() string {
if this == nil {
return "nil"
@@ -16763,6 +18474,7 @@ func (this *ListGenerator) String() string {
s := strings.Join([]string{`&ListGenerator{`,
`Elements:` + repeatedStringForElements + `,`,
`Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`,
+ `ElementsYaml:` + fmt.Sprintf("%v", this.ElementsYaml) + `,`,
`}`,
}, "")
return s
@@ -16907,6 +18619,36 @@ func (this *OperationState) String() string {
}, "")
return s
}
+func (this *OptionalArray) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&OptionalArray{`,
+ `Array:` + fmt.Sprintf("%v", this.Array) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *OptionalMap) String() string {
+ if this == nil {
+ return "nil"
+ }
+ keysForMap := make([]string, 0, len(this.Map))
+ for k := range this.Map {
+ keysForMap = append(keysForMap, k)
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForMap)
+ mapStringForMap := "map[string]string{"
+ for _, k := range keysForMap {
+ mapStringForMap += fmt.Sprintf("%v: %v,", k, this.Map[k])
+ }
+ mapStringForMap += "}"
+ s := strings.Join([]string{`&OptionalMap{`,
+ `Map:` + mapStringForMap + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *OrphanedResourceKey) String() string {
if this == nil {
return "nil"
@@ -16947,6 +18689,60 @@ func (this *OverrideIgnoreDiff) String() string {
}, "")
return s
}
+func (this *PluginConfigMapRef) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&PluginConfigMapRef{`,
+ `Name:` + fmt.Sprintf("%v", this.Name) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *PluginGenerator) String() string {
+ if this == nil {
+ return "nil"
+ }
+ keysForValues := make([]string, 0, len(this.Values))
+ for k := range this.Values {
+ keysForValues = append(keysForValues, k)
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForValues)
+ mapStringForValues := "map[string]string{"
+ for _, k := range keysForValues {
+ mapStringForValues += fmt.Sprintf("%v: %v,", k, this.Values[k])
+ }
+ mapStringForValues += "}"
+ s := strings.Join([]string{`&PluginGenerator{`,
+ `ConfigMapRef:` + strings.Replace(strings.Replace(this.ConfigMapRef.String(), "PluginConfigMapRef", "PluginConfigMapRef", 1), `&`, ``, 1) + `,`,
+ `Input:` + strings.Replace(strings.Replace(this.Input.String(), "PluginInput", "PluginInput", 1), `&`, ``, 1) + `,`,
+ `RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`,
+ `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`,
+ `Values:` + mapStringForValues + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *PluginInput) String() string {
+ if this == nil {
+ return "nil"
+ }
+ keysForParameters := make([]string, 0, len(this.Parameters))
+ for k := range this.Parameters {
+ keysForParameters = append(keysForParameters, k)
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForParameters)
+ mapStringForParameters := "PluginParameters{"
+ for _, k := range keysForParameters {
+ mapStringForParameters += fmt.Sprintf("%v: %v,", k, this.Parameters[k])
+ }
+ mapStringForParameters += "}"
+ s := strings.Join([]string{`&PluginInput{`,
+ `Parameters:` + mapStringForParameters + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *ProjectRole) String() string {
if this == nil {
return "nil"
@@ -16983,6 +18779,37 @@ func (this *PullRequestGenerator) String() string {
`Filters:` + repeatedStringForFilters + `,`,
`RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`,
`Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`,
+ `Bitbucket:` + strings.Replace(this.Bitbucket.String(), "PullRequestGeneratorBitbucket", "PullRequestGeneratorBitbucket", 1) + `,`,
+ `AzureDevOps:` + strings.Replace(this.AzureDevOps.String(), "PullRequestGeneratorAzureDevOps", "PullRequestGeneratorAzureDevOps", 1) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *PullRequestGeneratorAzureDevOps) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&PullRequestGeneratorAzureDevOps{`,
+ `Organization:` + fmt.Sprintf("%v", this.Organization) + `,`,
+ `Project:` + fmt.Sprintf("%v", this.Project) + `,`,
+ `Repo:` + fmt.Sprintf("%v", this.Repo) + `,`,
+ `API:` + fmt.Sprintf("%v", this.API) + `,`,
+ `TokenRef:` + strings.Replace(this.TokenRef.String(), "SecretRef", "SecretRef", 1) + `,`,
+ `Labels:` + fmt.Sprintf("%v", this.Labels) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *PullRequestGeneratorBitbucket) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&PullRequestGeneratorBitbucket{`,
+ `Owner:` + fmt.Sprintf("%v", this.Owner) + `,`,
+ `Repo:` + fmt.Sprintf("%v", this.Repo) + `,`,
+ `API:` + fmt.Sprintf("%v", this.API) + `,`,
+ `BasicAuth:` + strings.Replace(this.BasicAuth.String(), "BasicAuthBitbucketServer", "BasicAuthBitbucketServer", 1) + `,`,
+ `BearerToken:` + strings.Replace(this.BearerToken.String(), "BearerTokenBitbucketCloud", "BearerTokenBitbucketCloud", 1) + `,`,
`}`,
}, "")
return s
@@ -17006,6 +18833,7 @@ func (this *PullRequestGeneratorFilter) String() string {
}
s := strings.Join([]string{`&PullRequestGeneratorFilter{`,
`BranchMatch:` + valueToStringGenerated(this.BranchMatch) + `,`,
+ `TargetBranchMatch:` + valueToStringGenerated(this.TargetBranchMatch) + `,`,
`}`,
}, "")
return s
@@ -17020,6 +18848,7 @@ func (this *PullRequestGeneratorGitLab) String() string {
`TokenRef:` + strings.Replace(this.TokenRef.String(), "SecretRef", "SecretRef", 1) + `,`,
`Labels:` + fmt.Sprintf("%v", this.Labels) + `,`,
`PullRequestState:` + fmt.Sprintf("%v", this.PullRequestState) + `,`,
+ `Insecure:` + fmt.Sprintf("%v", this.Insecure) + `,`,
`}`,
}, "")
return s
@@ -17195,6 +19024,8 @@ func (this *ResourceAction) String() string {
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`Params:` + repeatedStringForParams + `,`,
`Disabled:` + fmt.Sprintf("%v", this.Disabled) + `,`,
+ `IconClass:` + fmt.Sprintf("%v", this.IconClass) + `,`,
+ `DisplayName:` + fmt.Sprintf("%v", this.DisplayName) + `,`,
`}`,
}, "")
return s
@@ -17362,6 +19193,7 @@ func (this *ResourceOverride) String() string {
`Actions:` + fmt.Sprintf("%v", this.Actions) + `,`,
`KnownTypeFields:` + repeatedStringForKnownTypeFields + `,`,
`UseOpenLibs:` + fmt.Sprintf("%v", this.UseOpenLibs) + `,`,
+ `IgnoreResourceUpdates:` + strings.Replace(strings.Replace(this.IgnoreResourceUpdates.String(), "OverrideIgnoreDiff", "OverrideIgnoreDiff", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -17474,6 +19306,16 @@ func (this *SCMProviderGenerator) String() string {
repeatedStringForFilters += strings.Replace(strings.Replace(f.String(), "SCMProviderGeneratorFilter", "SCMProviderGeneratorFilter", 1), `&`, ``, 1) + ","
}
repeatedStringForFilters += "}"
+ keysForValues := make([]string, 0, len(this.Values))
+ for k := range this.Values {
+ keysForValues = append(keysForValues, k)
+ }
+ github_com_gogo_protobuf_sortkeys.Strings(keysForValues)
+ mapStringForValues := "map[string]string{"
+ for _, k := range keysForValues {
+ mapStringForValues += fmt.Sprintf("%v: %v,", k, this.Values[k])
+ }
+ mapStringForValues += "}"
s := strings.Join([]string{`&SCMProviderGenerator{`,
`Github:` + strings.Replace(this.Github.String(), "SCMProviderGeneratorGithub", "SCMProviderGeneratorGithub", 1) + `,`,
`Gitlab:` + strings.Replace(this.Gitlab.String(), "SCMProviderGeneratorGitlab", "SCMProviderGeneratorGitlab", 1) + `,`,
@@ -17485,6 +19327,26 @@ func (this *SCMProviderGenerator) String() string {
`CloneProtocol:` + fmt.Sprintf("%v", this.CloneProtocol) + `,`,
`RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`,
`Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`,
+ `Values:` + mapStringForValues + `,`,
+ `AWSCodeCommit:` + strings.Replace(this.AWSCodeCommit.String(), "SCMProviderGeneratorAWSCodeCommit", "SCMProviderGeneratorAWSCodeCommit", 1) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *SCMProviderGeneratorAWSCodeCommit) String() string {
+ if this == nil {
+ return "nil"
+ }
+ repeatedStringForTagFilters := "[]*TagFilter{"
+ for _, f := range this.TagFilters {
+ repeatedStringForTagFilters += strings.Replace(f.String(), "TagFilter", "TagFilter", 1) + ","
+ }
+ repeatedStringForTagFilters += "}"
+ s := strings.Join([]string{`&SCMProviderGeneratorAWSCodeCommit{`,
+ `TagFilters:` + repeatedStringForTagFilters + `,`,
+ `Role:` + fmt.Sprintf("%v", this.Role) + `,`,
+ `Region:` + fmt.Sprintf("%v", this.Region) + `,`,
+ `AllBranches:` + fmt.Sprintf("%v", this.AllBranches) + `,`,
`}`,
}, "")
return s
@@ -17581,6 +19443,7 @@ func (this *SCMProviderGeneratorGitlab) String() string {
`API:` + fmt.Sprintf("%v", this.API) + `,`,
`TokenRef:` + strings.Replace(this.TokenRef.String(), "SecretRef", "SecretRef", 1) + `,`,
`AllBranches:` + fmt.Sprintf("%v", this.AllBranches) + `,`,
+ `Insecure:` + fmt.Sprintf("%v", this.Insecure) + `,`,
`}`,
}, "")
return s
@@ -17668,6 +19531,7 @@ func (this *SyncOperationResult) String() string {
`Source:` + strings.Replace(strings.Replace(this.Source.String(), "ApplicationSource", "ApplicationSource", 1), `&`, ``, 1) + `,`,
`Sources:` + repeatedStringForSources + `,`,
`Revisions:` + fmt.Sprintf("%v", this.Revisions) + `,`,
+ `ManagedNamespaceMetadata:` + strings.Replace(this.ManagedNamespaceMetadata.String(), "ManagedNamespaceMetadata", "ManagedNamespaceMetadata", 1) + `,`,
`}`,
}, "")
return s
@@ -17772,6 +19636,17 @@ func (this *TLSClientConfig) String() string {
}, "")
return s
}
+func (this *TagFilter) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&TagFilter{`,
+ `Key:` + fmt.Sprintf("%v", this.Key) + `,`,
+ `Value:` + fmt.Sprintf("%v", this.Value) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func valueToStringGenerated(v interface{}) string {
rv := reflect.ValueOf(v)
if rv.IsNil() {
@@ -19557,6 +21432,88 @@ func (m *ApplicationMatchExpression) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *ApplicationPreservedFields) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ApplicationPreservedFields: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ApplicationPreservedFields: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Annotations = append(m.Annotations, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ApplicationSet) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -20487,6 +22444,42 @@ func (m *ApplicationSetGenerator) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Plugin", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Plugin == nil {
+ m.Plugin = &PluginGenerator{}
+ }
+ if err := m.Plugin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -20978,6 +22971,42 @@ func (m *ApplicationSetNestedGenerator) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Plugin", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Plugin == nil {
+ m.Plugin = &PluginGenerator{}
+ }
+ if err := m.Plugin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -21391,59 +23420,147 @@ func (m *ApplicationSetSpec) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipGenerated(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthGenerated
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *ApplicationSetStatus) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: ApplicationSetStatus: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: ApplicationSetStatus: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
+ case 6:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field PreservedFields", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.PreservedFields == nil {
+ m.PreservedFields = &ApplicationPreservedFields{}
+ }
+ if err := m.PreservedFields.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field GoTemplateOptions", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.GoTemplateOptions = append(m.GoTemplateOptions, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 8:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ApplyNestedSelectors", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.ApplyNestedSelectors = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ApplicationSetStatus) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ApplicationSetStatus: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ApplicationSetStatus: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -21697,6 +23814,39 @@ func (m *ApplicationSetSyncPolicy) Unmarshal(dAtA []byte) error {
}
}
m.PreserveResourcesOnDeletion = bool(v != 0)
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ApplicationsSync", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := ApplicationsSyncPolicy(dAtA[iNdEx:postIndex])
+ m.ApplicationsSync = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -22479,6 +24629,78 @@ func (m *ApplicationSetTerminalGenerator) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Plugin", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Plugin == nil {
+ m.Plugin = &PluginGenerator{}
+ }
+ if err := m.Plugin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Selector == nil {
+ m.Selector = &v1.LabelSelector{}
+ }
+ if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -23306,6 +25528,42 @@ func (m *ApplicationSourceHelm) Unmarshal(dAtA []byte) error {
}
}
m.SkipCrds = bool(v != 0)
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ValuesObject", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ValuesObject == nil {
+ m.ValuesObject = &runtime.RawExtension{}
+ }
+ if err := m.ValuesObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -23928,6 +26186,92 @@ func (m *ApplicationSourceKustomize) Unmarshal(dAtA []byte) error {
}
}
m.ForceCommonAnnotations = bool(v != 0)
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Namespace = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 10:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CommonAnnotationsEnvsubst", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.CommonAnnotationsEnvsubst = bool(v != 0)
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Replicas = append(m.Replicas, KustomizeReplica{})
+ if err := m.Replicas[len(m.Replicas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -24162,7 +26506,7 @@ func (m *ApplicationSourcePluginParameter) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 3:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Map", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field OptionalMap", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -24189,109 +26533,18 @@ func (m *ApplicationSourcePluginParameter) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.Map == nil {
- m.Map = make(map[string]string)
+ if m.OptionalMap == nil {
+ m.OptionalMap = &OptionalMap{}
}
- var mapkey string
- var mapvalue string
- for iNdEx < postIndex {
- entryPreIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- if fieldNum == 1 {
- var stringLenmapkey uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLenmapkey |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLenmapkey := int(stringLenmapkey)
- if intStringLenmapkey < 0 {
- return ErrInvalidLengthGenerated
- }
- postStringIndexmapkey := iNdEx + intStringLenmapkey
- if postStringIndexmapkey < 0 {
- return ErrInvalidLengthGenerated
- }
- if postStringIndexmapkey > l {
- return io.ErrUnexpectedEOF
- }
- mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
- iNdEx = postStringIndexmapkey
- } else if fieldNum == 2 {
- var stringLenmapvalue uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLenmapvalue |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLenmapvalue := int(stringLenmapvalue)
- if intStringLenmapvalue < 0 {
- return ErrInvalidLengthGenerated
- }
- postStringIndexmapvalue := iNdEx + intStringLenmapvalue
- if postStringIndexmapvalue < 0 {
- return ErrInvalidLengthGenerated
- }
- if postStringIndexmapvalue > l {
- return io.ErrUnexpectedEOF
- }
- mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
- iNdEx = postStringIndexmapvalue
- } else {
- iNdEx = entryPreIndex
- skippy, err := skipGenerated(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthGenerated
- }
- if (iNdEx + skippy) > postIndex {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
+ if err := m.OptionalMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
}
- m.Map[mapkey] = mapvalue
iNdEx = postIndex
case 4:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Array", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field OptionalArray", wireType)
}
- var stringLen uint64
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -24301,23 +26554,27 @@ func (m *ApplicationSourcePluginParameter) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
+ if msglen < 0 {
return ErrInvalidLengthGenerated
}
- postIndex := iNdEx + intStringLen
+ postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Array = append(m.Array, string(dAtA[iNdEx:postIndex]))
+ if m.OptionalArray == nil {
+ m.OptionalArray = &OptionalArray{}
+ }
+ if err := m.OptionalArray.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
iNdEx = postIndex
case 5:
if wireType != 2 {
@@ -25116,91 +27373,9 @@ func (m *ApplicationStatus) Unmarshal(dAtA []byte) error {
}
m.SourceTypes = append(m.SourceTypes, ApplicationSourceType(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipGenerated(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthGenerated
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *ApplicationSummary) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: ApplicationSummary: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: ApplicationSummary: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ExternalURLs", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.ExternalURLs = append(m.ExternalURLs, string(dAtA[iNdEx:postIndex]))
- iNdEx = postIndex
- case 2:
+ case 13:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field ControllerNamespace", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -25228,7 +27403,121 @@ func (m *ApplicationSummary) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Images = append(m.Images, string(dAtA[iNdEx:postIndex]))
+ m.ControllerNamespace = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ApplicationSummary) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ApplicationSummary: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ApplicationSummary: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExternalURLs", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ExternalURLs = append(m.ExternalURLs, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Images = append(m.Images, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
default:
iNdEx = preIndex
@@ -25770,7 +28059,7 @@ func (m *BasicAuthBitbucketServer) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *Cluster) Unmarshal(dAtA []byte) error {
+func (m *BearerTokenBitbucketCloud) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -25793,79 +28082,15 @@ func (m *Cluster) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: Cluster: wiretype end group for non-group")
+ return fmt.Errorf("proto: BearerTokenBitbucketCloud: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: Cluster: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: BearerTokenBitbucketCloud: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Server", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Server = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Name = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 3:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field TokenRef", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -25892,46 +28117,342 @@ func (m *Cluster) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if m.TokenRef == nil {
+ m.TokenRef = &SecretRef{}
+ }
+ if err := m.TokenRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 4:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ConnectionState", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
}
- if msglen < 0 {
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthGenerated
}
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
}
- if postIndex > l {
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChartDetails) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
return io.ErrUnexpectedEOF
}
- if err := m.ConnectionState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
}
- iNdEx = postIndex
- case 5:
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChartDetails: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChartDetails: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Home", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Home = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Maintainers", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Maintainers = append(m.Maintainers, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *Cluster) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Cluster: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Cluster: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Server", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Server = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ConnectionState", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ConnectionState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ServerVersion", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -27586,6 +30107,40 @@ func (m *ComparedTo) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IgnoreDifferences", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.IgnoreDifferences = append(m.IgnoreDifferences, ResourceIgnoreDifferences{})
+ if err := m.IgnoreDifferences[len(m.IgnoreDifferences)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -29250,6 +31805,133 @@ func (m *GitGenerator) Unmarshal(dAtA []byte) error {
}
m.PathParamPrefix = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Values == nil {
+ m.Values = make(map[string]string)
+ }
+ var mapkey string
+ var mapvalue string
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var stringLenmapvalue uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapvalue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapvalue := int(stringLenmapvalue)
+ if intStringLenmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapvalue > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
+ iNdEx = postStringIndexmapvalue
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Values[mapkey] = mapvalue
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -31156,6 +33838,121 @@ func (m *KustomizeOptions) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *KustomizeReplica) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: KustomizeReplica: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: KustomizeReplica: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Count.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ListGenerator) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -31252,6 +34049,38 @@ func (m *ListGenerator) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ElementsYaml", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ElementsYaml = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -32602,7 +35431,7 @@ func (m *OperationState) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *OrphanedResourceKey) Unmarshal(dAtA []byte) error {
+func (m *OptionalArray) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -32625,15 +35454,15 @@ func (m *OrphanedResourceKey) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: OrphanedResourceKey: wiretype end group for non-group")
+ return fmt.Errorf("proto: OptionalArray: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: OrphanedResourceKey: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: OptionalArray: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Array", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -32661,11 +35490,270 @@ func (m *OrphanedResourceKey) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Group = string(dAtA[iNdEx:postIndex])
+ m.Array = append(m.Array, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
- case 2:
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *OptionalMap) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: OptionalMap: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: OptionalMap: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Map", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Map == nil {
+ m.Map = make(map[string]string)
+ }
+ var mapkey string
+ var mapvalue string
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var stringLenmapvalue uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapvalue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapvalue := int(stringLenmapvalue)
+ if intStringLenmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapvalue > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
+ iNdEx = postStringIndexmapvalue
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Map[mapkey] = mapvalue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *OrphanedResourceKey) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: OrphanedResourceKey: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: OrphanedResourceKey: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Group = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -32999,6 +36087,563 @@ func (m *OverrideIgnoreDiff) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *PluginConfigMapRef) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PluginConfigMapRef: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PluginConfigMapRef: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PluginGenerator) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PluginGenerator: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PluginGenerator: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Input", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Input.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType)
+ }
+ var v int64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.RequeueAfterSeconds = &v
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Values == nil {
+ m.Values = make(map[string]string)
+ }
+ var mapkey string
+ var mapvalue string
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var stringLenmapvalue uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapvalue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapvalue := int(stringLenmapvalue)
+ if intStringLenmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapvalue > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
+ iNdEx = postStringIndexmapvalue
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Values[mapkey] = mapvalue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PluginInput) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PluginInput: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PluginInput: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Parameters == nil {
+ m.Parameters = make(PluginParameters)
+ }
+ var mapkey string
+ mapvalue := &v11.JSON{}
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var mapmsglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ mapmsglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if mapmsglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postmsgIndex := iNdEx + mapmsglen
+ if postmsgIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postmsgIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = &v11.JSON{}
+ if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {
+ return err
+ }
+ iNdEx = postmsgIndex
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Parameters[mapkey] = *mapvalue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ProjectRole) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -33377,18 +37022,391 @@ func (m *PullRequestGenerator) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.BitbucketServer == nil {
- m.BitbucketServer = &PullRequestGeneratorBitbucketServer{}
+ if m.BitbucketServer == nil {
+ m.BitbucketServer = &PullRequestGeneratorBitbucketServer{}
+ }
+ if err := m.BitbucketServer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Filters", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Filters = append(m.Filters, PullRequestGeneratorFilter{})
+ if err := m.Filters[len(m.Filters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType)
+ }
+ var v int64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.RequeueAfterSeconds = &v
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Bitbucket", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Bitbucket == nil {
+ m.Bitbucket = &PullRequestGeneratorBitbucket{}
+ }
+ if err := m.Bitbucket.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 9:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AzureDevOps", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.AzureDevOps == nil {
+ m.AzureDevOps = &PullRequestGeneratorAzureDevOps{}
+ }
+ if err := m.AzureDevOps.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PullRequestGeneratorAzureDevOps) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PullRequestGeneratorAzureDevOps: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PullRequestGeneratorAzureDevOps: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Organization", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Organization = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Project", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Project = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Repo", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Repo = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field API", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.API = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TokenRef", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.TokenRef == nil {
+ m.TokenRef = &SecretRef{}
}
- if err := m.BitbucketServer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if err := m.TokenRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 5:
+ case 6:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Filters", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -33398,31 +37416,111 @@ func (m *PullRequestGenerator) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Filters = append(m.Filters, PullRequestGeneratorFilter{})
- if err := m.Filters[len(m.Filters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ m.Labels = append(m.Labels, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
return err
}
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *PullRequestGeneratorBitbucket) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: PullRequestGeneratorBitbucket: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: PullRequestGeneratorBitbucket: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Owner = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 6:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType)
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Repo", wireType)
}
- var v int64
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -33432,15 +37530,59 @@ func (m *PullRequestGenerator) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= int64(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- m.RequeueAfterSeconds = &v
- case 7:
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Repo = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field API", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.API = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BasicAuth", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -33467,7 +37609,46 @@ func (m *PullRequestGenerator) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if m.BasicAuth == nil {
+ m.BasicAuth = &BasicAuthBitbucketServer{}
+ }
+ if err := m.BasicAuth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BearerToken", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.BearerToken == nil {
+ m.BearerToken = &BearerTokenBitbucketCloud{}
+ }
+ if err := m.BearerToken.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -33736,6 +37917,39 @@ func (m *PullRequestGeneratorFilter) Unmarshal(dAtA []byte) error {
s := string(dAtA[iNdEx:postIndex])
m.BranchMatch = &s
iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TargetBranchMatch", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ s := string(dAtA[iNdEx:postIndex])
+ m.TargetBranchMatch = &s
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -33916,13 +38130,45 @@ func (m *PullRequestGeneratorGitLab) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Labels = append(m.Labels, string(dAtA[iNdEx:postIndex]))
+ m.Labels = append(m.Labels, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PullRequestState", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PullRequestState = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 5:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field PullRequestState", wireType)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Insecure", wireType)
}
- var stringLen uint64
+ var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -33932,24 +38178,12 @@ func (m *PullRequestGeneratorGitLab) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.PullRequestState = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
+ m.Insecure = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -36032,7 +40266,241 @@ func (m *RepositoryCertificate) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *RepositoryCertificateList) Unmarshal(dAtA []byte) error {
+func (m *RepositoryCertificateList) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RepositoryCertificateList: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RepositoryCertificateList: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Items = append(m.Items, RepositoryCertificate{})
+ if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RepositoryList) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RepositoryList: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RepositoryList: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Items = append(m.Items, &Repository{})
+ if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ResourceAction) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -36055,17 +40523,17 @@ func (m *RepositoryCertificateList) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: RepositoryCertificateList: wiretype end group for non-group")
+ return fmt.Errorf("proto: ResourceAction: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: RepositoryCertificateList: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: ResourceAction: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -36075,112 +40543,27 @@ func (m *RepositoryCertificateList) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
+ m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Items = append(m.Items, RepositoryCertificate{})
- if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipGenerated(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthGenerated
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RepositoryList) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: RepositoryList: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: RepositoryList: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -36207,15 +40590,16 @@ func (m *RepositoryList) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ m.Params = append(m.Params, ResourceActionParam{})
+ if err := m.Params[len(m.Params)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType)
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Disabled", wireType)
}
- var msglen int
+ var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -36225,79 +40609,15 @@ func (m *RepositoryList) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Items = append(m.Items, &Repository{})
- if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipGenerated(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthGenerated
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *ResourceAction) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: ResourceAction: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: ResourceAction: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
+ m.Disabled = bool(v != 0)
+ case 4:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field IconClass", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -36325,13 +40645,13 @@ func (m *ResourceAction) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Name = string(dAtA[iNdEx:postIndex])
+ m.IconClass = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 2:
+ case 5:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field DisplayName", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -36341,46 +40661,24 @@ func (m *ResourceAction) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Params = append(m.Params, ResourceActionParam{})
- if err := m.Params[len(m.Params)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
+ m.DisplayName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Disabled", wireType)
- }
- var v int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Disabled = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -38401,6 +42699,39 @@ func (m *ResourceOverride) Unmarshal(dAtA []byte) error {
}
}
m.UseOpenLibs = bool(v != 0)
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field IgnoreResourceUpdates", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.IgnoreResourceUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -40194,16 +44525,348 @@ func (m *SCMProviderGenerator) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.AzureDevOps == nil {
- m.AzureDevOps = &SCMProviderGeneratorAzureDevOps{}
+ if m.AzureDevOps == nil {
+ m.AzureDevOps = &SCMProviderGeneratorAzureDevOps{}
+ }
+ if err := m.AzureDevOps.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Filters", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Filters = append(m.Filters, SCMProviderGeneratorFilter{})
+ if err := m.Filters[len(m.Filters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CloneProtocol", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.CloneProtocol = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType)
+ }
+ var v int64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.RequeueAfterSeconds = &v
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Values == nil {
+ m.Values = make(map[string]string)
+ }
+ var mapkey string
+ var mapvalue string
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var stringLenmapvalue uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapvalue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapvalue := int(stringLenmapvalue)
+ if intStringLenmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postStringIndexmapvalue > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
+ iNdEx = postStringIndexmapvalue
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Values[mapkey] = mapvalue
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AWSCodeCommit", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.AWSCodeCommit == nil {
+ m.AWSCodeCommit = &SCMProviderGeneratorAWSCodeCommit{}
}
- if err := m.AzureDevOps.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if err := m.AWSCodeCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 7:
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *SCMProviderGeneratorAWSCodeCommit) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SCMProviderGeneratorAWSCodeCommit: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SCMProviderGeneratorAWSCodeCommit: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Filters", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field TagFilters", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -40230,14 +44893,14 @@ func (m *SCMProviderGenerator) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Filters = append(m.Filters, SCMProviderGeneratorFilter{})
- if err := m.Filters[len(m.Filters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ m.TagFilters = append(m.TagFilters, &TagFilter{})
+ if err := m.TagFilters[len(m.TagFilters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 8:
+ case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field CloneProtocol", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -40265,13 +44928,13 @@ func (m *SCMProviderGenerator) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.CloneProtocol = string(dAtA[iNdEx:postIndex])
+ m.Role = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 9:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field RequeueAfterSeconds", wireType)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType)
}
- var v int64
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -40281,17 +44944,29 @@ func (m *SCMProviderGenerator) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= int64(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- m.RequeueAfterSeconds = &v
- case 10:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType)
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
}
- var msglen int
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Region = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllBranches", wireType)
+ }
+ var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -40301,25 +44976,12 @@ func (m *SCMProviderGenerator) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
+ m.AllBranches = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -41657,6 +46319,26 @@ func (m *SCMProviderGeneratorGitlab) Unmarshal(dAtA []byte) error {
}
}
m.AllBranches = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Insecure", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Insecure = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -42355,13 +47037,161 @@ func (m *SyncOperationResource) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Name = string(dAtA[iNdEx:postIndex])
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Namespace = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *SyncOperationResult) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SyncOperationResult: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SyncOperationResult: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Resources = append(m.Resources, &ResourceResult{})
+ if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Revision = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 4:
+ case 3:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
}
- var stringLen uint64
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
@@ -42371,77 +47201,28 @@ func (m *SyncOperationResource) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
+ if msglen < 0 {
return ErrInvalidLengthGenerated
}
- postIndex := iNdEx + intStringLen
+ postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Namespace = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipGenerated(dAtA[iNdEx:])
- if err != nil {
+ if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthGenerated
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *SyncOperationResult) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: SyncOperationResult: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: SyncOperationResult: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
+ iNdEx = postIndex
+ case 4:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Sources", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -42468,14 +47249,14 @@ func (m *SyncOperationResult) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Resources = append(m.Resources, &ResourceResult{})
- if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ m.Sources = append(m.Sources, ApplicationSource{})
+ if err := m.Sources[len(m.Sources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 2:
+ case 5:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Revisions", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -42503,11 +47284,11 @@ func (m *SyncOperationResult) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Revision = string(dAtA[iNdEx:postIndex])
+ m.Revisions = append(m.Revisions, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
- case 3:
+ case 6:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field ManagedNamespaceMetadata", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -42534,76 +47315,13 @@ func (m *SyncOperationResult) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 4:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Sources", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
+ if m.ManagedNamespaceMetadata == nil {
+ m.ManagedNamespaceMetadata = &ManagedNamespaceMetadata{}
}
- m.Sources = append(m.Sources, ApplicationSource{})
- if err := m.Sources[len(m.Sources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if err := m.ManagedNamespaceMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 5:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Revisions", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowGenerated
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthGenerated
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthGenerated
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Revisions = append(m.Revisions, string(dAtA[iNdEx:postIndex]))
- iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -43877,6 +48595,120 @@ func (m *TLSClientConfig) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *TagFilter) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: TagFilter: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: TagFilter: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Key = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Value = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipGenerated(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.proto b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.proto
index 729f684b2d..ee76a7585f 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.proto
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/generated.proto
@@ -116,7 +116,7 @@ message Application {
optional Operation operation = 4;
}
-// ApplicationCondition contains details about an application condition, which is usally an error or warning
+// ApplicationCondition contains details about an application condition, which is usually an error or warning
message ApplicationCondition {
// Type is an application condition type
optional string type = 1;
@@ -157,6 +157,10 @@ message ApplicationMatchExpression {
repeated string values = 3;
}
+message ApplicationPreservedFields {
+ repeated string annotations = 1;
+}
+
// ApplicationSet is a set of Application resources
// +genclient
// +genclient:noStatus
@@ -227,6 +231,8 @@ message ApplicationSetGenerator {
// Selector allows to post-filter all generator.
optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 9;
+
+ optional PluginGenerator plugin = 10;
}
// ApplicationSetList contains a list of ApplicationSet
@@ -261,6 +267,8 @@ message ApplicationSetNestedGenerator {
// Selector allows to post-filter all generator.
optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 9;
+
+ optional PluginGenerator plugin = 10;
}
message ApplicationSetRolloutStep {
@@ -284,6 +292,13 @@ message ApplicationSetSpec {
optional ApplicationSetSyncPolicy syncPolicy = 4;
optional ApplicationSetStrategy strategy = 5;
+
+ optional ApplicationPreservedFields preservedFields = 6;
+
+ repeated string goTemplateOptions = 7;
+
+ // ApplyNestedSelectors enables selectors defined within the generators of two level-nested matrix or merge generators
+ optional bool applyNestedSelectors = 8;
}
// ApplicationSetStatus defines the observed state of ApplicationSet
@@ -307,6 +322,11 @@ message ApplicationSetStrategy {
message ApplicationSetSyncPolicy {
// PreserveResourcesOnDeletion will preserve resources on deletion. If PreserveResourcesOnDeletion is set to true, these Applications will not be deleted.
optional bool preserveResourcesOnDeletion = 1;
+
+ // ApplicationsSync represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, sync
+ // +kubebuilder:validation:Optional
+ // +kubebuilder:validation:Enum=create-only;create-update;create-delete;sync
+ optional string applicationsSync = 2;
}
// ApplicationSetTemplate represents argocd ApplicationSpec
@@ -346,6 +366,11 @@ message ApplicationSetTerminalGenerator {
optional DuckTypeGenerator clusterDecisionResource = 5;
optional PullRequestGenerator pullRequest = 6;
+
+ optional PluginGenerator plugin = 7;
+
+ // Selector allows to post-filter all generator.
+ optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 8;
}
// ApplicationSource contains all required information about the source of an application
@@ -406,7 +431,8 @@ message ApplicationSourceHelm {
// ReleaseName is the Helm release name to use. If omitted it will use the application name
optional string releaseName = 3;
- // Values specifies Helm values to be passed to helm template, typically defined as a block
+ // Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
+ // +patchStrategy=replace
optional string values = 4;
// FileParameters are file parameters to the helm template
@@ -423,6 +449,10 @@ message ApplicationSourceHelm {
// SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
optional bool skipCrds = 9;
+
+ // ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
+ // +kubebuilder:pruning:PreserveUnknownFields
+ optional k8s.io.apimachinery.pkg.runtime.RawExtension valuesObject = 10;
}
// ApplicationSourceJsonnet holds options specific to applications of type Jsonnet
@@ -462,6 +492,15 @@ message ApplicationSourceKustomize {
// ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
optional bool forceCommonAnnotations = 8;
+
+ // Namespace sets the namespace that Kustomize adds to all resources
+ optional string namespace = 9;
+
+ // CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
+ optional bool commonAnnotationsEnvsubst = 10;
+
+ // Replicas is a list of Kustomize Replicas override specifications
+ repeated KustomizeReplica replicas = 11;
}
// ApplicationSourcePlugin holds options specific to config management plugins
@@ -481,10 +520,10 @@ message ApplicationSourcePluginParameter {
optional string string = 5;
// Map is the value of a map type parameter.
- map map = 3;
+ optional OptionalMap map = 3;
// Array is the value of an array type parameter.
- repeated string array = 4;
+ optional OptionalArray array = 4;
}
// ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.
@@ -557,6 +596,9 @@ message ApplicationStatus {
// SourceTypes specifies the type of the sources included in the application
repeated string sourceTypes = 12;
+
+ // ControllerNamespace indicates the namespace in which the application controller is located
+ optional string controllerNamespace = 13;
}
// ApplicationSummary contains information about URLs and container images used by an application
@@ -614,6 +656,23 @@ message BasicAuthBitbucketServer {
optional SecretRef passwordRef = 2;
}
+// BearerTokenBitbucketCloud defines the Bearer token for BitBucket AppToken auth.
+message BearerTokenBitbucketCloud {
+ // Password (or personal access token) reference.
+ optional SecretRef tokenRef = 1;
+}
+
+// ChartDetails contains helm chart metadata for a specific version
+message ChartDetails {
+ optional string description = 1;
+
+ // The URL of this projects home page, e.g. "http://example.com"
+ optional string home = 2;
+
+ // List of maintainer details, name and email, e.g. ["John Doe "]
+ repeated string maintainers = 3;
+}
+
// Cluster is the definition of a cluster resource
message Cluster {
// Server is the API server URL of the Kubernetes cluster
@@ -748,6 +807,9 @@ message ComparedTo {
// Sources is a reference to the application's multiple sources used for comparison
repeated ApplicationSource sources = 3;
+
+ // IgnoreDifferences is a reference to the application's ignored differences used for comparison
+ repeated ResourceIgnoreDifferences ignoreDifferences = 4;
}
// ComponentParameter contains information about component parameter value
@@ -854,6 +916,9 @@ message GitGenerator {
optional ApplicationSetTemplate template = 6;
optional string pathParamPrefix = 7;
+
+ // Values contains key/value pairs which are passed directly as parameters to the template
+ map values = 8;
}
// GnuPGPublicKey is a representation of a GnuPG public key
@@ -997,11 +1062,21 @@ message KustomizeOptions {
optional string binaryPath = 2;
}
+message KustomizeReplica {
+ // Name of Deployment or StatefulSet
+ optional string name = 1;
+
+ // Number of replicas
+ optional k8s.io.apimachinery.pkg.util.intstr.IntOrString count = 2;
+}
+
// ListGenerator include items info
message ListGenerator {
repeated k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON elements = 1;
optional ApplicationSetTemplate template = 2;
+
+ optional string elementsYaml = 3;
}
message ManagedNamespaceMetadata {
@@ -1108,6 +1183,18 @@ message OperationState {
optional int64 retryCount = 8;
}
+message OptionalArray {
+ // Array is the value of an array type parameter.
+ // +optional
+ repeated string array = 1;
+}
+
+message OptionalMap {
+ // Map is the value of a map type parameter.
+ // +optional
+ map map = 1;
+}
+
// OrphanedResourceKey is a reference to a resource to be ignored from
message OrphanedResourceKey {
optional string group = 1;
@@ -1140,6 +1227,33 @@ message OverrideIgnoreDiff {
repeated string managedFieldsManagers = 3;
}
+message PluginConfigMapRef {
+ // Name of the ConfigMap
+ optional string name = 1;
+}
+
+// PluginGenerator defines connection info specific to Plugin.
+message PluginGenerator {
+ optional PluginConfigMapRef configMapRef = 1;
+
+ optional PluginInput input = 2;
+
+ // RequeueAfterSeconds determines how long the ApplicationSet controller will wait before reconciling the ApplicationSet again.
+ optional int64 requeueAfterSeconds = 3;
+
+ optional ApplicationSetTemplate template = 4;
+
+ // Values contains key/value pairs which are passed directly as parameters to the template. These values will not be
+ // sent as parameters to the plugin.
+ map values = 5;
+}
+
+message PluginInput {
+ // Parameters contains the information to pass to the plugin. It is a map. The keys must be strings, and the
+ // values can be any type.
+ map parameters = 1;
+}
+
// ProjectRole represents a role that has access to a project
message ProjectRole {
// Name is a name for this role
@@ -1176,9 +1290,53 @@ message PullRequestGenerator {
optional int64 requeueAfterSeconds = 6;
optional ApplicationSetTemplate template = 7;
+
+ optional PullRequestGeneratorBitbucket bitbucket = 8;
+
+ // Additional provider to use and config for it.
+ optional PullRequestGeneratorAzureDevOps azuredevops = 9;
}
-// PullRequestGenerator defines connection info specific to BitbucketServer.
+// PullRequestGeneratorAzureDevOps defines connection info specific to AzureDevOps.
+message PullRequestGeneratorAzureDevOps {
+ // Azure DevOps org to scan. Required.
+ optional string organization = 1;
+
+ // Azure DevOps project name to scan. Required.
+ optional string project = 2;
+
+ // Azure DevOps repo name to scan. Required.
+ optional string repo = 3;
+
+ // The Azure DevOps API URL to talk to. If blank, use https://dev.azure.com/.
+ optional string api = 4;
+
+ // Authentication token reference.
+ optional SecretRef tokenRef = 5;
+
+ // Labels is used to filter the PRs that you want to target
+ repeated string labels = 6;
+}
+
+// PullRequestGeneratorBitbucket defines connection info specific to Bitbucket.
+message PullRequestGeneratorBitbucket {
+ // Workspace to scan. Required.
+ optional string owner = 1;
+
+ // Repo name to scan. Required.
+ optional string repo = 2;
+
+ // The Bitbucket REST API URL to talk to. If blank, uses https://api.bitbucket.org/2.0.
+ optional string api = 3;
+
+ // Credentials for Basic auth
+ optional BasicAuthBitbucketServer basicAuth = 4;
+
+ // Credentials for AppToken (Bearer auth)
+ optional BearerTokenBitbucketCloud bearerToken = 5;
+}
+
+// PullRequestGeneratorBitbucketServer defines connection info specific to BitbucketServer.
message PullRequestGeneratorBitbucketServer {
// Project to scan. Required.
optional string project = 1;
@@ -1198,6 +1356,8 @@ message PullRequestGeneratorBitbucketServer {
// pass for a pull request to be included.
message PullRequestGeneratorFilter {
optional string branchMatch = 1;
+
+ optional string targetBranchMatch = 2;
}
// PullRequestGeneratorGitLab defines connection info specific to GitLab.
@@ -1216,9 +1376,12 @@ message PullRequestGeneratorGitLab {
// PullRequestState is an additional MRs filter to get only those with a certain state. Default: "" (all states)
optional string pullRequestState = 5;
+
+ // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false
+ optional bool insecure = 6;
}
-// PullRequestGenerator defines connection info specific to Gitea.
+// PullRequestGeneratorGitea defines connection info specific to Gitea.
message PullRequestGeneratorGitea {
// Gitea org or user to scan. Required.
optional string owner = 1;
@@ -1431,6 +1594,10 @@ message ResourceAction {
repeated ResourceActionParam params = 2;
optional bool disabled = 3;
+
+ optional string iconClass = 4;
+
+ optional string displayName = 5;
}
// TODO: describe this type
@@ -1560,6 +1727,8 @@ message ResourceOverride {
optional OverrideIgnoreDiff ignoreDifferences = 2;
+ optional OverrideIgnoreDiff ignoreResourceUpdates = 6;
+
repeated KnownTypeField knownTypeFields = 4;
}
@@ -1716,6 +1885,28 @@ message SCMProviderGenerator {
optional int64 requeueAfterSeconds = 9;
optional ApplicationSetTemplate template = 10;
+
+ // Values contains key/value pairs which are passed directly as parameters to the template
+ map values = 11;
+
+ optional SCMProviderGeneratorAWSCodeCommit awsCodeCommit = 12;
+}
+
+// SCMProviderGeneratorAWSCodeCommit defines connection info specific to AWS CodeCommit.
+message SCMProviderGeneratorAWSCodeCommit {
+ // TagFilters provides the tag filter(s) for repo discovery
+ repeated TagFilter tagFilters = 1;
+
+ // Role provides the AWS IAM role to assume, for cross-account repo discovery
+ // if not provided, AppSet controller will use its pod/node identity to discover.
+ optional string role = 2;
+
+ // Region provides the AWS region to discover repos.
+ // if not provided, AppSet controller will infer the current region from environment.
+ optional string region = 3;
+
+ // Scan all branches instead of just the default branch.
+ optional bool allBranches = 4;
}
// SCMProviderGeneratorAzureDevOps defines connection info specific to Azure DevOps.
@@ -1838,6 +2029,9 @@ message SCMProviderGeneratorGitlab {
// Scan all branches instead of just the default branch.
optional bool allBranches = 5;
+
+ // Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false
+ optional bool insecure = 6;
}
// Utility struct for a reference to a secret key.
@@ -1917,6 +2111,9 @@ message SyncOperationResult {
// Revisions holds the revision this sync operation was performed for respective indexed source in sources field
repeated string revisions = 5;
+
+ // ManagedNamespaceMetadata contains the current sync state of managed namespace metadata
+ optional ManagedNamespaceMetadata managedNamespaceMetadata = 6;
}
// SyncPolicy controls when a sync will be performed in response to updates in git
@@ -1939,7 +2136,7 @@ message SyncPolicyAutomated {
// Prune specifies whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false)
optional bool prune = 1;
- // SelfHeal specifes whether to revert resources back to their desired state upon modification in the cluster (default: false)
+ // SelfHeal specifies whether to revert resources back to their desired state upon modification in the cluster (default: false)
optional bool selfHeal = 2;
// AllowEmpty allows apps have zero live resources (default: false)
@@ -2036,3 +2233,9 @@ message TLSClientConfig {
optional bytes caData = 5;
}
+message TagFilter {
+ optional string key = 1;
+
+ optional string value = 2;
+}
+
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/openapi_generated.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/openapi_generated.go
index e9c422a9fd..3caf488c4b 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/openapi_generated.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/openapi_generated.go
@@ -24,6 +24,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination": schema_pkg_apis_application_v1alpha1_ApplicationDestination(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationList": schema_pkg_apis_application_v1alpha1_ApplicationList(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationMatchExpression": schema_pkg_apis_application_v1alpha1_ApplicationMatchExpression(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationPreservedFields": schema_pkg_apis_application_v1alpha1_ApplicationPreservedFields(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSet": schema_pkg_apis_application_v1alpha1_ApplicationSet(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetApplicationStatus": schema_pkg_apis_application_v1alpha1_ApplicationSetApplicationStatus(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetCondition": schema_pkg_apis_application_v1alpha1_ApplicationSetCondition(ref),
@@ -53,6 +54,8 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationWatchEvent": schema_pkg_apis_application_v1alpha1_ApplicationWatchEvent(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Backoff": schema_pkg_apis_application_v1alpha1_Backoff(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.BasicAuthBitbucketServer": schema_pkg_apis_application_v1alpha1_BasicAuthBitbucketServer(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.BearerTokenBitbucketCloud": schema_pkg_apis_application_v1alpha1_BearerTokenBitbucketCloud(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ChartDetails": schema_pkg_apis_application_v1alpha1_ChartDetails(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Cluster": schema_pkg_apis_application_v1alpha1_Cluster(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterCacheInfo": schema_pkg_apis_application_v1alpha1_ClusterCacheInfo(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterConfig": schema_pkg_apis_application_v1alpha1_ClusterConfig(ref),
@@ -85,6 +88,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.JsonnetVar": schema_pkg_apis_application_v1alpha1_JsonnetVar(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.KnownTypeField": schema_pkg_apis_application_v1alpha1_KnownTypeField(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.KustomizeOptions": schema_pkg_apis_application_v1alpha1_KustomizeOptions(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.KustomizeReplica": schema_pkg_apis_application_v1alpha1_KustomizeReplica(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator": schema_pkg_apis_application_v1alpha1_ListGenerator(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ManagedNamespaceMetadata": schema_pkg_apis_application_v1alpha1_ManagedNamespaceMetadata(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.MatrixGenerator": schema_pkg_apis_application_v1alpha1_MatrixGenerator(ref),
@@ -94,11 +98,18 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Operation": schema_pkg_apis_application_v1alpha1_Operation(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationInitiator": schema_pkg_apis_application_v1alpha1_OperationInitiator(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState": schema_pkg_apis_application_v1alpha1_OperationState(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OptionalArray": schema_pkg_apis_application_v1alpha1_OptionalArray(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OptionalMap": schema_pkg_apis_application_v1alpha1_OptionalMap(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OrphanedResourceKey": schema_pkg_apis_application_v1alpha1_OrphanedResourceKey(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OrphanedResourcesMonitorSettings": schema_pkg_apis_application_v1alpha1_OrphanedResourcesMonitorSettings(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OverrideIgnoreDiff": schema_pkg_apis_application_v1alpha1_OverrideIgnoreDiff(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginConfigMapRef": schema_pkg_apis_application_v1alpha1_PluginConfigMapRef(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator": schema_pkg_apis_application_v1alpha1_PluginGenerator(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginInput": schema_pkg_apis_application_v1alpha1_PluginInput(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ProjectRole": schema_pkg_apis_application_v1alpha1_ProjectRole(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator": schema_pkg_apis_application_v1alpha1_PullRequestGenerator(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorAzureDevOps": schema_pkg_apis_application_v1alpha1_PullRequestGeneratorAzureDevOps(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucket": schema_pkg_apis_application_v1alpha1_PullRequestGeneratorBitbucket(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucketServer": schema_pkg_apis_application_v1alpha1_PullRequestGeneratorBitbucketServer(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorFilter": schema_pkg_apis_application_v1alpha1_PullRequestGeneratorFilter(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitLab": schema_pkg_apis_application_v1alpha1_PullRequestGeneratorGitLab(ref),
@@ -127,6 +138,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory": schema_pkg_apis_application_v1alpha1_RevisionHistory(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionMetadata": schema_pkg_apis_application_v1alpha1_RevisionMetadata(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator": schema_pkg_apis_application_v1alpha1_SCMProviderGenerator(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAWSCodeCommit": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorAWSCodeCommit(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAzureDevOps": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorAzureDevOps(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucket": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorBitbucket(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucketServer": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorBitbucketServer(ref),
@@ -147,6 +159,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategyHook": schema_pkg_apis_application_v1alpha1_SyncStrategyHook(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncWindow": schema_pkg_apis_application_v1alpha1_SyncWindow(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.TLSClientConfig": schema_pkg_apis_application_v1alpha1_TLSClientConfig(ref),
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.TagFilter": schema_pkg_apis_application_v1alpha1_TagFilter(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.objectMeta": schema_pkg_apis_application_v1alpha1_objectMeta(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.rawResourceOverride": schema_pkg_apis_application_v1alpha1_rawResourceOverride(ref),
}
@@ -539,7 +552,7 @@ func schema_pkg_apis_application_v1alpha1_ApplicationCondition(ref common.Refere
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "ApplicationCondition contains details about an application condition, which is usally an error or warning",
+ Description: "ApplicationCondition contains details about an application condition, which is usually an error or warning",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"type": {
@@ -694,6 +707,32 @@ func schema_pkg_apis_application_v1alpha1_ApplicationMatchExpression(ref common.
}
}
+func schema_pkg_apis_application_v1alpha1_ApplicationPreservedFields(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "annotations": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_pkg_apis_application_v1alpha1_ApplicationSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -903,11 +942,16 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetGenerator(ref common.Ref
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
},
},
+ "plugin": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.MatrixGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.MergeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.MatrixGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.MergeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
}
}
@@ -1015,11 +1059,16 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetNestedGenerator(ref comm
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
},
},
+ "plugin": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
}
}
@@ -1124,12 +1173,38 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetSpec(ref common.Referenc
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStrategy"),
},
},
+ "preservedFields": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationPreservedFields"),
+ },
+ },
+ "goTemplateOptions": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "applyNestedSelectors": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ApplyNestedSelectors enables selectors defined within the generators of two level-nested matrix or merge generators",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
},
Required: []string{"generators", "template"},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStrategy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetSyncPolicy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationPreservedFields", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStrategy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetSyncPolicy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"},
}
}
@@ -1215,6 +1290,13 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetSyncPolicy(ref common.Re
Format: "",
},
},
+ "applicationsSync": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ApplicationsSync represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, sync",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
},
},
@@ -1355,11 +1437,22 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetTerminalGenerator(ref co
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator"),
},
},
+ "plugin": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator"),
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selector allows to post-filter all generator.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ClusterGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ListGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGenerator", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
}
}
@@ -1526,8 +1619,13 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSourceHelm(ref common.Refer
},
},
"values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-strategy": "replace",
+ },
+ },
SchemaProps: spec.SchemaProps{
- Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
+ Description: "Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.",
Type: []string{"string"},
Format: "",
},
@@ -1574,11 +1672,17 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSourceHelm(ref common.Refer
Format: "",
},
},
+ "valuesObject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmFileParameter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmParameter"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmFileParameter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmParameter", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
}
}
@@ -1729,9 +1833,39 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSourceKustomize(ref common.
Format: "",
},
},
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace sets the namespace that Kustomize adds to all resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "commonAnnotationsEnvsubst": {
+ SchemaProps: spec.SchemaProps{
+ Description: "CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is a list of Kustomize Replicas override specifications",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.KustomizeReplica"),
+ },
+ },
+ },
+ },
+ },
},
},
},
+ Dependencies: []string{
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.KustomizeReplica"},
}
}
@@ -1801,37 +1935,6 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSourcePluginParameter(ref c
Format: "",
},
},
- "map": {
- SchemaProps: spec.SchemaProps{
- Description: "Map is the value of a map type parameter.",
- Type: []string{"object"},
- AdditionalProperties: &spec.SchemaOrBool{
- Allows: true,
- Schema: &spec.Schema{
- SchemaProps: spec.SchemaProps{
- Default: "",
- Type: []string{"string"},
- Format: "",
- },
- },
- },
- },
- },
- "array": {
- SchemaProps: spec.SchemaProps{
- Description: "Array is the value of an array type parameter.",
- Type: []string{"array"},
- Items: &spec.SchemaOrArray{
- Schema: &spec.Schema{
- SchemaProps: spec.SchemaProps{
- Default: "",
- Type: []string{"string"},
- Format: "",
- },
- },
- },
- },
- },
},
},
},
@@ -2047,6 +2150,13 @@ func schema_pkg_apis_application_v1alpha1_ApplicationStatus(ref common.Reference
},
},
},
+ "controllerNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ControllerNamespace indicates the namespace in which the application controller is located",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
},
},
@@ -2249,6 +2359,69 @@ func schema_pkg_apis_application_v1alpha1_BasicAuthBitbucketServer(ref common.Re
}
}
+func schema_pkg_apis_application_v1alpha1_BearerTokenBitbucketCloud(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "BearerTokenBitbucketCloud defines the Bearer token for BitBucket AppToken auth.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "tokenRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Password (or personal access token) reference.",
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef"),
+ },
+ },
+ },
+ Required: []string{"tokenRef"},
+ },
+ },
+ Dependencies: []string{
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef"},
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_ChartDetails(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ChartDetails contains helm chart metadata for a specific version",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "home": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The URL of this projects home page, e.g. \"http://example.com\"",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "maintainers": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of maintainer details, name and email, e.g. [\"John Doe \"]",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_pkg_apis_application_v1alpha1_Cluster(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -2688,12 +2861,26 @@ func schema_pkg_apis_application_v1alpha1_ComparedTo(ref common.ReferenceCallbac
},
},
},
+ "ignoreDifferences": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IgnoreDifferences is a reference to the application's ignored differences used for comparison",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences"),
+ },
+ },
+ },
+ },
+ },
},
Required: []string{"destination"},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences"},
}
}
@@ -3078,6 +3265,22 @@ func schema_pkg_apis_application_v1alpha1_GitGenerator(ref common.ReferenceCallb
Format: "",
},
},
+ "values": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Values contains key/value pairs which are passed directly as parameters to the template",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
},
Required: []string{"repoURL", "revision"},
},
@@ -3575,6 +3778,36 @@ func schema_pkg_apis_application_v1alpha1_KustomizeOptions(ref common.ReferenceC
}
}
+func schema_pkg_apis_application_v1alpha1_KustomizeReplica(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of Deployment or StatefulSet",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "count": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of replicas",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ },
+ Required: []string{"name", "count"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
func schema_pkg_apis_application_v1alpha1_ListGenerator(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -3601,6 +3834,12 @@ func schema_pkg_apis_application_v1alpha1_ListGenerator(ref common.ReferenceCall
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"),
},
},
+ "elementsYaml": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
Required: []string{"elements"},
},
@@ -3947,20 +4186,75 @@ func schema_pkg_apis_application_v1alpha1_OperationState(ref common.ReferenceCal
}
}
-func schema_pkg_apis_application_v1alpha1_OrphanedResourceKey(ref common.ReferenceCallback) common.OpenAPIDefinition {
+func schema_pkg_apis_application_v1alpha1_OptionalArray(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "OrphanedResourceKey is a reference to a resource to be ignored from",
- Type: []string{"object"},
+ Type: []string{"object"},
Properties: map[string]spec.Schema{
- "group": {
- SchemaProps: spec.SchemaProps{
- Type: []string{"string"},
- Format: "",
- },
- },
- "kind": {
+ "array": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Array is the value of an array type parameter.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_OptionalMap(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "map": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Map is the value of a map type parameter.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_OrphanedResourceKey(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "OrphanedResourceKey is a reference to a resource to be ignored from",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
@@ -4073,6 +4367,113 @@ func schema_pkg_apis_application_v1alpha1_OverrideIgnoreDiff(ref common.Referenc
}
}
+func schema_pkg_apis_application_v1alpha1_PluginConfigMapRef(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the ConfigMap",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_PluginGenerator(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PluginGenerator defines connection info specific to Plugin.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "configMapRef": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginConfigMapRef"),
+ },
+ },
+ "input": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginInput"),
+ },
+ },
+ "requeueAfterSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RequeueAfterSeconds determines how long the ApplicationSet controller will wait before reconciling the ApplicationSet again.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"),
+ },
+ },
+ "values": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Values contains key/value pairs which are passed directly as parameters to the template. These values will not be sent as parameters to the plugin.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"configMapRef"},
+ },
+ },
+ Dependencies: []string{
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginConfigMapRef", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PluginInput"},
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_PluginInput(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "parameters": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Parameters contains the information to pass to the plugin. It is a map. The keys must be strings, and the values can be any type.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"},
+ }
+}
+
func schema_pkg_apis_application_v1alpha1_ProjectRole(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -4203,11 +4604,141 @@ func schema_pkg_apis_application_v1alpha1_PullRequestGenerator(ref common.Refere
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"),
},
},
+ "bitbucket": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucket"),
+ },
+ },
+ "azuredevops": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Additional provider to use and config for it.",
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorAzureDevOps"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitLab", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGithub"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorAzureDevOps", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucket", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitLab", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGithub"},
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_PullRequestGeneratorAzureDevOps(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PullRequestGeneratorAzureDevOps defines connection info specific to AzureDevOps.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "organization": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Azure DevOps org to scan. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "project": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Azure DevOps project name to scan. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "repo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Azure DevOps repo name to scan. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "api": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Azure DevOps API URL to talk to. If blank, use https://dev.azure.com/.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tokenRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Authentication token reference.",
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef"),
+ },
+ },
+ "labels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Labels is used to filter the PRs that you want to target",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"organization", "project", "repo"},
+ },
+ },
+ Dependencies: []string{
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef"},
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_PullRequestGeneratorBitbucket(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PullRequestGeneratorBitbucket defines connection info specific to Bitbucket.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "owner": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Workspace to scan. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "repo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Repo name to scan. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "api": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Bitbucket REST API URL to talk to. If blank, uses https://api.bitbucket.org/2.0.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "basicAuth": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Credentials for Basic auth",
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.BasicAuthBitbucketServer"),
+ },
+ },
+ "bearerToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Credentials for AppToken (Bearer auth)",
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.BearerTokenBitbucketCloud"),
+ },
+ },
+ },
+ Required: []string{"owner", "repo"},
+ },
+ },
+ Dependencies: []string{
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.BasicAuthBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.BearerTokenBitbucketCloud"},
}
}
@@ -4215,7 +4746,7 @@ func schema_pkg_apis_application_v1alpha1_PullRequestGeneratorBitbucketServer(re
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "PullRequestGenerator defines connection info specific to BitbucketServer.",
+ Description: "PullRequestGeneratorBitbucketServer defines connection info specific to BitbucketServer.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"project": {
@@ -4270,6 +4801,12 @@ func schema_pkg_apis_application_v1alpha1_PullRequestGeneratorFilter(ref common.
Format: "",
},
},
+ "targetBranchMatch": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
},
},
@@ -4326,6 +4863,13 @@ func schema_pkg_apis_application_v1alpha1_PullRequestGeneratorGitLab(ref common.
Format: "",
},
},
+ "insecure": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
},
Required: []string{"project"},
},
@@ -4339,7 +4883,7 @@ func schema_pkg_apis_application_v1alpha1_PullRequestGeneratorGitea(ref common.R
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "PullRequestGenerator defines connection info specific to Gitea.",
+ Description: "PullRequestGeneratorGitea defines connection info specific to Gitea.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"owner": {
@@ -4970,6 +5514,18 @@ func schema_pkg_apis_application_v1alpha1_ResourceAction(ref common.ReferenceCal
Format: "",
},
},
+ "iconClass": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "displayName": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
},
},
@@ -5478,6 +6034,12 @@ func schema_pkg_apis_application_v1alpha1_ResourceOverride(ref common.ReferenceC
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OverrideIgnoreDiff"),
},
},
+ "IgnoreResourceUpdates": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OverrideIgnoreDiff"),
+ },
+ },
"KnownTypeFields": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
@@ -5492,7 +6054,7 @@ func schema_pkg_apis_application_v1alpha1_ResourceOverride(ref common.ReferenceC
},
},
},
- Required: []string{"HealthLua", "UseOpenLibs", "Actions", "IgnoreDifferences", "KnownTypeFields"},
+ Required: []string{"HealthLua", "UseOpenLibs", "Actions", "IgnoreDifferences", "IgnoreResourceUpdates", "KnownTypeFields"},
},
},
Dependencies: []string{
@@ -5951,11 +6513,81 @@ func schema_pkg_apis_application_v1alpha1_SCMProviderGenerator(ref common.Refere
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"),
},
},
+ "values": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Values contains key/value pairs which are passed directly as parameters to the template",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "awsCodeCommit": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAWSCodeCommit"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAzureDevOps", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucket", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGithub", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAWSCodeCommit", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAzureDevOps", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucket", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGithub", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab"},
+ }
+}
+
+func schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorAWSCodeCommit(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SCMProviderGeneratorAWSCodeCommit defines connection info specific to AWS CodeCommit.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "tagFilters": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TagFilters provides the tag filter(s) for repo discovery",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.TagFilter"),
+ },
+ },
+ },
+ },
+ },
+ "role": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Role provides the AWS IAM role to assume, for cross-account repo discovery if not provided, AppSet controller will use its pod/node identity to discover.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "region": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Region provides the AWS region to discover repos. if not provided, AppSet controller will infer the current region from environment.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "allBranches": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Scan all branches instead of just the default branch.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.TagFilter"},
}
}
@@ -6310,6 +6942,13 @@ func schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorGitlab(ref common.
Format: "",
},
},
+ "insecure": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Skips validating the SCM provider's TLS certificate - useful for self-signed certificates.; default: false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
},
Required: []string{"group"},
},
@@ -6594,12 +7233,18 @@ func schema_pkg_apis_application_v1alpha1_SyncOperationResult(ref common.Referen
},
},
},
+ "managedNamespaceMetadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ManagedNamespaceMetadata contains the current sync state of managed namespace metadata",
+ Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ManagedNamespaceMetadata"),
+ },
+ },
},
Required: []string{"revision"},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceResult"},
+ "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ManagedNamespaceMetadata", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceResult"},
}
}
@@ -6667,7 +7312,7 @@ func schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref common.Referen
},
"selfHeal": {
SchemaProps: spec.SchemaProps{
- Description: "SelfHeal specifes whether to revert resources back to their desired state upon modification in the cluster (default: false)",
+ Description: "SelfHeal specifies whether to revert resources back to their desired state upon modification in the cluster (default: false)",
Type: []string{"boolean"},
Format: "",
},
@@ -6948,6 +7593,32 @@ func schema_pkg_apis_application_v1alpha1_TLSClientConfig(ref common.ReferenceCa
}
}
+func schema_pkg_apis_application_v1alpha1_TagFilter(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"key"},
+ },
+ },
+ }
+}
+
func schema_pkg_apis_application_v1alpha1_objectMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -6998,6 +7669,12 @@ func schema_pkg_apis_application_v1alpha1_rawResourceOverride(ref common.Referen
Format: "",
},
},
+ "ignoreResourceUpdates": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
"knownTypeFields": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/types.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/types.go
index 67fb263510..2eb5166c7d 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/types.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/types.go
@@ -18,7 +18,6 @@ import (
"github.com/argoproj/gitops-engine/pkg/health"
synccommon "github.com/argoproj/gitops-engine/pkg/sync/common"
- "github.com/ghodss/yaml"
"github.com/robfig/cron/v3"
log "github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"
@@ -26,13 +25,19 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
+ "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
+ "k8s.io/apimachinery/pkg/util/intstr"
utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/tools/clientcmd/api"
+ "sigs.k8s.io/yaml"
+ "github.com/argoproj/argo-cd/v2/util/env"
+
+ "github.com/argoproj/argo-cd/v2/common"
"github.com/argoproj/argo-cd/v2/util/collections"
"github.com/argoproj/argo-cd/v2/util/helm"
"github.com/argoproj/argo-cd/v2/util/security"
@@ -66,7 +71,7 @@ type ApplicationSpec struct {
// SyncPolicy controls when and how a sync will be performed
SyncPolicy *SyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"`
// IgnoreDifferences is a list of resources and their fields which should be ignored during comparison
- IgnoreDifferences []ResourceIgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,5,name=ignoreDifferences"`
+ IgnoreDifferences IgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,5,name=ignoreDifferences"`
// Info contains a list of information (URLs, email addresses, and plain text) that relates to the application
Info []Info `json:"info,omitempty" protobuf:"bytes,6,name=info"`
// RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions.
@@ -80,6 +85,12 @@ type ApplicationSpec struct {
Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"`
}
+type IgnoreDifferences []ResourceIgnoreDifferences
+
+func (id IgnoreDifferences) Equals(other IgnoreDifferences) bool {
+ return reflect.DeepEqual(id, other)
+}
+
type TrackingMethod string
// ResourceIgnoreDifferences contains resource filter and list of json paths which should be ignored during comparison with live state.
@@ -187,7 +198,7 @@ func (s ApplicationSources) Equals(other ApplicationSources) bool {
return false
}
for i := range s {
- if !s[i].Equals(other[i]) {
+ if !s[i].Equals(&other[i]) {
return false
}
}
@@ -296,8 +307,9 @@ type ApplicationSourceHelm struct {
Parameters []HelmParameter `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"`
// ReleaseName is the Helm release name to use. If omitted it will use the application name
ReleaseName string `json:"releaseName,omitempty" protobuf:"bytes,3,opt,name=releaseName"`
- // Values specifies Helm values to be passed to helm template, typically defined as a block
- Values string `json:"values,omitempty" protobuf:"bytes,4,opt,name=values"`
+ // Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
+ // +patchStrategy=replace
+ Values string `json:"values,omitempty" patchStrategy:"replace" protobuf:"bytes,4,opt,name=values"`
// FileParameters are file parameters to the helm template
FileParameters []HelmFileParameter `json:"fileParameters,omitempty" protobuf:"bytes,5,opt,name=fileParameters"`
// Version is the Helm version to use for templating ("3")
@@ -308,6 +320,9 @@ type ApplicationSourceHelm struct {
IgnoreMissingValueFiles bool `json:"ignoreMissingValueFiles,omitempty" protobuf:"bytes,8,opt,name=ignoreMissingValueFiles"`
// SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
SkipCrds bool `json:"skipCrds,omitempty" protobuf:"bytes,9,opt,name=skipCrds"`
+ // ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
+ // +kubebuilder:pruning:PreserveUnknownFields
+ ValuesObject *runtime.RawExtension `json:"valuesObject,omitempty" protobuf:"bytes,10,opt,name=valuesObject"`
}
// HelmParameter is a parameter that's passed to helm template during manifest generation
@@ -389,7 +404,7 @@ func (in *ApplicationSourceHelm) AddFileParameter(p HelmFileParameter) {
// IsZero Returns true if the Helm options in an application source are considered zero
func (h *ApplicationSourceHelm) IsZero() bool {
- return h == nil || (h.Version == "") && (h.ReleaseName == "") && len(h.ValueFiles) == 0 && len(h.Parameters) == 0 && len(h.FileParameters) == 0 && h.Values == "" && !h.PassCredentials && !h.IgnoreMissingValueFiles && !h.SkipCrds
+ return h == nil || (h.Version == "") && (h.ReleaseName == "") && len(h.ValueFiles) == 0 && len(h.Parameters) == 0 && len(h.FileParameters) == 0 && h.ValuesIsEmpty() && !h.PassCredentials && !h.IgnoreMissingValueFiles && !h.SkipCrds
}
// KustomizeImage represents a Kustomize image definition in the format [old_image_name=]:
@@ -444,6 +459,54 @@ type ApplicationSourceKustomize struct {
ForceCommonLabels bool `json:"forceCommonLabels,omitempty" protobuf:"bytes,7,opt,name=forceCommonLabels"`
// ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
ForceCommonAnnotations bool `json:"forceCommonAnnotations,omitempty" protobuf:"bytes,8,opt,name=forceCommonAnnotations"`
+ // Namespace sets the namespace that Kustomize adds to all resources
+ Namespace string `json:"namespace,omitempty" protobuf:"bytes,9,opt,name=namespace"`
+ // CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
+ CommonAnnotationsEnvsubst bool `json:"commonAnnotationsEnvsubst,omitempty" protobuf:"bytes,10,opt,name=commonAnnotationsEnvsubst"`
+ // Replicas is a list of Kustomize Replicas override specifications
+ Replicas KustomizeReplicas `json:"replicas,omitempty" protobuf:"bytes,11,opt,name=replicas"`
+}
+
+type KustomizeReplica struct {
+ // Name of Deployment or StatefulSet
+ Name string `json:"name" protobuf:"bytes,1,name=name"`
+ // Number of replicas
+ Count intstr.IntOrString `json:"count" protobuf:"bytes,2,name=count"`
+}
+
+type KustomizeReplicas []KustomizeReplica
+
+// GetIntCount returns Count converted to int.
+// If parsing error occurs, returns 0 and error.
+func (kr KustomizeReplica) GetIntCount() (int, error) {
+ if kr.Count.Type == intstr.String {
+ if count, err := strconv.Atoi(kr.Count.StrVal); err != nil {
+ return 0, fmt.Errorf("expected integer value for count. Received: %s", kr.Count.StrVal)
+ } else {
+ return count, nil
+ }
+ } else {
+ return kr.Count.IntValue(), nil
+ }
+}
+
+// NewKustomizeReplica parses a string in format name=count into a KustomizeReplica object and returns it
+func NewKustomizeReplica(text string) (*KustomizeReplica, error) {
+ parts := strings.SplitN(text, "=", 2)
+ if len(parts) != 2 {
+ return nil, fmt.Errorf("expected parameter of the form: name=count. Received: %s", text)
+ }
+
+ kr := &KustomizeReplica{
+ Name: parts[0],
+ Count: intstr.Parse(parts[1]),
+ }
+
+ if _, err := kr.GetIntCount(); err != nil {
+ return nil, err
+ }
+
+ return kr, nil
}
// AllowsConcurrentProcessing returns true if multiple processes can run Kustomize builds on the same source at the same time
@@ -452,6 +515,7 @@ func (k *ApplicationSourceKustomize) AllowsConcurrentProcessing() bool {
len(k.CommonLabels) == 0 &&
len(k.CommonAnnotations) == 0 &&
k.NamePrefix == "" &&
+ k.Namespace == "" &&
k.NameSuffix == ""
}
@@ -461,7 +525,9 @@ func (k *ApplicationSourceKustomize) IsZero() bool {
k.NamePrefix == "" &&
k.NameSuffix == "" &&
k.Version == "" &&
+ k.Namespace == "" &&
len(k.Images) == 0 &&
+ len(k.Replicas) == 0 &&
len(k.CommonLabels) == 0 &&
len(k.CommonAnnotations) == 0
}
@@ -476,6 +542,26 @@ func (k *ApplicationSourceKustomize) MergeImage(image KustomizeImage) {
}
}
+// MergeReplicas merges a new Kustomize replica identifier in to a list of replicas
+func (k *ApplicationSourceKustomize) MergeReplica(replica KustomizeReplica) {
+ i := k.Replicas.FindByName(replica.Name)
+ if i >= 0 {
+ k.Replicas[i] = replica
+ } else {
+ k.Replicas = append(k.Replicas, replica)
+ }
+}
+
+// Find returns a positive integer representing the index in the list of replicas
+func (rs KustomizeReplicas) FindByName(name string) int {
+ for i, r := range rs {
+ if r.Name == name {
+ return i
+ }
+ }
+ return -1
+}
+
// JsonnetVar represents a variable to be passed to jsonnet during manifest generation
type JsonnetVar struct {
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
@@ -525,19 +611,155 @@ func (d *ApplicationSourceDirectory) IsZero() bool {
return d == nil || !d.Recurse && d.Jsonnet.IsZero()
}
+type OptionalMap struct {
+ // Map is the value of a map type parameter.
+ // +optional
+ Map map[string]string `json:"map" protobuf:"bytes,1,rep,name=map"`
+ // We need the explicit +optional so that kube-builder generates the CRD without marking this as required.
+}
+
+// Equals returns true if the two OptionalMap objects are equal. We can't use reflect.DeepEqual because it will return
+// false if one of the maps is nil and the other is an empty map. This is because the JSON unmarshaller will set the
+// map to nil if it is empty, but the protobuf unmarshaller will set it to an empty map.
+func (o *OptionalMap) Equals(other *OptionalMap) bool {
+ if o == nil && other == nil {
+ return true
+ }
+ if o == nil || other == nil {
+ return false
+ }
+ if len(o.Map) != len(other.Map) {
+ return false
+ }
+ if o.Map == nil && other.Map == nil {
+ return true
+ }
+ // The next two blocks are critical. Depending on whether the struct was populated from JSON or protobufs, the map
+ // field will be either nil or an empty map. They mean the same thing: the map is empty.
+ if o.Map == nil && len(other.Map) == 0 {
+ return true
+ }
+ if other.Map == nil && len(o.Map) == 0 {
+ return true
+ }
+ return reflect.DeepEqual(o.Map, other.Map)
+}
+
+type OptionalArray struct {
+ // Array is the value of an array type parameter.
+ // +optional
+ Array []string `json:"array" protobuf:"bytes,1,rep,name=array"`
+ // We need the explicit +optional so that kube-builder generates the CRD without marking this as required.
+}
+
+// Equals returns true if the two OptionalArray objects are equal. We can't use reflect.DeepEqual because it will return
+// false if one of the arrays is nil and the other is an empty array. This is because the JSON unmarshaller will set the
+// array to nil if it is empty, but the protobuf unmarshaller will set it to an empty array.
+func (o *OptionalArray) Equals(other *OptionalArray) bool {
+ if o == nil && other == nil {
+ return true
+ }
+ if o == nil || other == nil {
+ return false
+ }
+ if len(o.Array) != len(other.Array) {
+ return false
+ }
+ if o.Array == nil && other.Array == nil {
+ return true
+ }
+ // The next two blocks are critical. Depending on whether the struct was populated from JSON or protobufs, the array
+ // field will be either nil or an empty array. They mean the same thing: the array is empty.
+ if o.Array == nil && len(other.Array) == 0 {
+ return true
+ }
+ if other.Array == nil && len(o.Array) == 0 {
+ return true
+ }
+ return reflect.DeepEqual(o.Array, other.Array)
+}
+
type ApplicationSourcePluginParameter struct {
+ // We use pointers to structs because go-to-protobuf represents pointers to arrays/maps as repeated fields.
+ // These repeated fields have no way to represent "present but empty." So we would have no way to distinguish
+ // {name: parameters, array: []} from {name: parameter}
+ // By wrapping the array/map in a struct, we can use a pointer to the struct to represent "present but empty."
+
// Name is the name identifying a parameter.
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
// String_ is the value of a string type parameter.
String_ *string `json:"string,omitempty" protobuf:"bytes,5,opt,name=string"`
// Map is the value of a map type parameter.
- Map map[string]string `json:"map,omitempty" protobuf:"bytes,3,rep,name=map"`
+ *OptionalMap `json:",omitempty" protobuf:"bytes,3,rep,name=map"`
// Array is the value of an array type parameter.
- Array []string `json:"array,omitempty" protobuf:"bytes,4,rep,name=array"`
+ *OptionalArray `json:",omitempty" protobuf:"bytes,4,rep,name=array"`
+}
+
+func (p ApplicationSourcePluginParameter) Equals(other ApplicationSourcePluginParameter) bool {
+ if p.Name != other.Name {
+ return false
+ }
+ if !reflect.DeepEqual(p.String_, other.String_) {
+ return false
+ }
+ return p.OptionalMap.Equals(other.OptionalMap) && p.OptionalArray.Equals(other.OptionalArray)
+}
+
+// MarshalJSON is a custom JSON marshaller for ApplicationSourcePluginParameter. We need this custom marshaler because,
+// when ApplicationSourcePluginParameter is unmarshaled, either from JSON or protobufs, the fields inside OptionalMap and
+// OptionalArray are not set. The default JSON marshaler marshals these as "null." But really what we want to represent
+// is an empty map or array.
+//
+// There are efforts to change things upstream, but nothing has been merged yet. See https://github.com/golang/go/issues/37711
+func (p ApplicationSourcePluginParameter) MarshalJSON() ([]byte, error) {
+ out := map[string]interface{}{}
+ out["name"] = p.Name
+ if p.String_ != nil {
+ out["string"] = p.String_
+ }
+ if p.OptionalMap != nil {
+ if p.OptionalMap.Map == nil {
+ // Nil is not the same as a nil map. Nil means the field was not set, while a nil map means the field was set to an empty map.
+ // Either way, we want to marshal it as "{}".
+ out["map"] = map[string]string{}
+ } else {
+ out["map"] = p.OptionalMap.Map
+ }
+ }
+ if p.OptionalArray != nil {
+ if p.OptionalArray.Array == nil {
+ // Nil is not the same as a nil array. Nil means the field was not set, while a nil array means the field was set to an empty array.
+ // Either way, we want to marshal it as "[]".
+ out["array"] = []string{}
+ } else {
+ out["array"] = p.OptionalArray.Array
+ }
+ }
+ bytes, err := json.Marshal(out)
+ if err != nil {
+ return nil, err
+ }
+ return bytes, nil
}
type ApplicationSourcePluginParameters []ApplicationSourcePluginParameter
+func (p ApplicationSourcePluginParameters) Equals(other ApplicationSourcePluginParameters) bool {
+ if len(p) != len(other) {
+ return false
+ }
+ for i := range p {
+ if !p[i].Equals(other[i]) {
+ return false
+ }
+ }
+ return true
+}
+
+func (p ApplicationSourcePluginParameters) IsZero() bool {
+ return len(p) == 0
+}
+
// Environ builds a list of environment variables to represent parameters sent to a plugin from the Application
// manifest. Parameters are represented as one large stringified JSON array (under `ARGOCD_APP_PARAMETERS`). They're
// also represented as individual environment variables, each variable's key being an escaped version of the parameter's
@@ -556,13 +778,13 @@ func (p ApplicationSourcePluginParameters) Environ() ([]string, error) {
if param.String_ != nil {
env = append(env, fmt.Sprintf("%s=%s", envBaseName, *param.String_))
}
- if param.Map != nil {
- for key, value := range param.Map {
+ if param.OptionalMap != nil {
+ for key, value := range param.OptionalMap.Map {
env = append(env, fmt.Sprintf("%s_%s=%s", envBaseName, escaped(key), value))
}
}
- if param.Array != nil {
- for i, value := range param.Array {
+ if param.OptionalArray != nil {
+ for i, value := range param.OptionalArray.Array {
env = append(env, fmt.Sprintf("%s_%d=%s", envBaseName, i, value))
}
}
@@ -584,9 +806,28 @@ type ApplicationSourcePlugin struct {
Parameters ApplicationSourcePluginParameters `json:"parameters,omitempty" protobuf:"bytes,3,opt,name=parameters"`
}
+func (c *ApplicationSourcePlugin) Equals(other *ApplicationSourcePlugin) bool {
+ if c == nil && other == nil {
+ return true
+ }
+ if c == nil || other == nil {
+ return false
+ }
+ if !c.Parameters.Equals(other.Parameters) {
+ return false
+ }
+ // DeepEqual works fine for fields besides Parameters. Since we already know that Parameters are equal, we can
+ // set them to nil and then do a DeepEqual.
+ leftCopy := c.DeepCopy()
+ rightCopy := other.DeepCopy()
+ leftCopy.Parameters = nil
+ rightCopy.Parameters = nil
+ return reflect.DeepEqual(leftCopy, rightCopy)
+}
+
// IsZero returns true if the ApplicationSourcePlugin is considered empty
func (c *ApplicationSourcePlugin) IsZero() bool {
- return c == nil || c.Name == "" && c.Env.IsZero()
+ return c == nil || c.Name == "" && c.Env.IsZero() && c.Parameters.IsZero()
}
// AddEnvEntry merges an EnvEntry into a list of entries. If an entry with the same name already exists,
@@ -665,6 +906,8 @@ type ApplicationStatus struct {
ResourceHealthSource ResourceHealthLocation `json:"resourceHealthSource,omitempty" protobuf:"bytes,11,opt,name=resourceHealthSource"`
// SourceTypes specifies the type of the sources included in the application
SourceTypes []ApplicationSourceType `json:"sourceTypes,omitempty" protobuf:"bytes,12,opt,name=sourceTypes"`
+ // ControllerNamespace indicates the namespace in which the application controller is located
+ ControllerNamespace string `json:"controllerNamespace,omitempty" protobuf:"bytes,13,opt,name=controllerNamespace"`
}
// JWTTokens represents a list of JWT tokens
@@ -706,6 +949,8 @@ type SyncOperationResource struct {
Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"`
Name string `json:"name" protobuf:"bytes,3,opt,name=name"`
Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"`
+ // nolint:govet
+ Exclude bool `json:"-"`
}
// RevisionHistories is a array of history, oldest first and newest last
@@ -733,6 +978,17 @@ func (r SyncOperationResource) HasIdentity(name string, namespace string, gvk sc
return false
}
+// Compare determines whether an app resource matches the resource filter during sync or wait.
+func (r SyncOperationResource) Compare(name string, namespace string, gvk schema.GroupVersionKind) bool {
+ if (r.Group == "*" || gvk.Group == r.Group) &&
+ (r.Kind == "*" || gvk.Kind == r.Kind) &&
+ (r.Name == "*" || name == r.Name) &&
+ (r.Namespace == "*" || r.Namespace == "" || namespace == r.Namespace) {
+ return true
+ }
+ return false
+}
+
// SyncOperation contains details about a sync operation.
type SyncOperation struct {
// Revision is the revision (Git) or chart version (Helm) which to sync the application to
@@ -912,7 +1168,7 @@ type Backoff struct {
type SyncPolicyAutomated struct {
// Prune specifies whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false)
Prune bool `json:"prune,omitempty" protobuf:"bytes,1,opt,name=prune"`
- // SelfHeal specifes whether to revert resources back to their desired state upon modification in the cluster (default: false)
+ // SelfHeal specifies whether to revert resources back to their desired state upon modification in the cluster (default: false)
SelfHeal bool `json:"selfHeal,omitempty" protobuf:"bytes,2,opt,name=selfHeal"`
// AllowEmpty allows apps have zero live resources (default: false)
AllowEmpty bool `json:"allowEmpty,omitempty" protobuf:"bytes,3,opt,name=allowEmpty"`
@@ -972,6 +1228,15 @@ type RevisionMetadata struct {
SignatureInfo string `json:"signatureInfo,omitempty" protobuf:"bytes,5,opt,name=signatureInfo"`
}
+// ChartDetails contains helm chart metadata for a specific version
+type ChartDetails struct {
+ Description string `json:"description,omitempty" protobuf:"bytes,1,opt,name=description"`
+ // The URL of this projects home page, e.g. "http://example.com"
+ Home string `json:"home,omitempty" protobuf:"bytes,2,opt,name=home"`
+ // List of maintainer details, name and email, e.g. ["John Doe "]
+ Maintainers []string `json:"maintainers,omitempty" protobuf:"bytes,3,opt,name=maintainers"`
+}
+
// SyncOperationResult represent result of sync operation
type SyncOperationResult struct {
// Resources contains a list of sync result items for each individual resource in a sync operation
@@ -984,6 +1249,8 @@ type SyncOperationResult struct {
Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,4,opt,name=sources"`
// Revisions holds the revision this sync operation was performed for respective indexed source in sources field
Revisions []string `json:"revisions,omitempty" protobuf:"bytes,5,opt,name=revisions"`
+ // ManagedNamespaceMetadata contains the current sync state of managed namespace metadata
+ ManagedNamespaceMetadata *ManagedNamespaceMetadata `json:"managedNamespaceMetadata,omitempty" protobuf:"bytes,6,opt,name=managedNamespaceMetadata"`
}
// ResourceResult holds the operation result details of a specific resource
@@ -1128,7 +1395,7 @@ const (
ApplicationConditionOrphanedResourceWarning = "OrphanedResourceWarning"
)
-// ApplicationCondition contains details about an application condition, which is usally an error or warning
+// ApplicationCondition contains details about an application condition, which is usually an error or warning
type ApplicationCondition struct {
// Type is an application condition type
Type ApplicationConditionType `json:"type" protobuf:"bytes,1,opt,name=type"`
@@ -1146,6 +1413,8 @@ type ComparedTo struct {
Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,opt,name=destination"`
// Sources is a reference to the application's multiple sources used for comparison
Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,3,opt,name=sources"`
+ // IgnoreDifferences is a reference to the application's ignored differences used for comparison
+ IgnoreDifferences IgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,4,opt,name=ignoreDifferences"`
}
// SyncStatus contains information about the currently observed live and desired states of an application
@@ -1248,7 +1517,7 @@ func (t *ApplicationTree) FindNode(group string, kind string, namespace string,
}
// TODO: Document purpose of this method
-func (t *ApplicationTree) GetSummary() ApplicationSummary {
+func (t *ApplicationTree) GetSummary(app *Application) ApplicationSummary {
urlsSet := make(map[string]bool)
imagesSet := make(map[string]bool)
for _, node := range t.Nodes {
@@ -1261,6 +1530,12 @@ func (t *ApplicationTree) GetSummary() ApplicationSummary {
imagesSet[image] = true
}
}
+ // also add Application's own links
+ for k, v := range app.GetAnnotations() {
+ if strings.HasPrefix(k, common.AnnotationKeyLinkPrefix) {
+ urlsSet[v] = true
+ }
+ }
urls := make([]string, 0)
for url := range urlsSet {
urls = append(urls, url)
@@ -1577,9 +1852,9 @@ type KnownTypeField struct {
// OverrideIgnoreDiff contains configurations about how fields should be ignored during diffs between
// the desired state and live state
type OverrideIgnoreDiff struct {
- //JSONPointers is a JSON path list following the format defined in RFC4627 (https://datatracker.ietf.org/doc/html/rfc6902#section-3)
+ // JSONPointers is a JSON path list following the format defined in RFC4627 (https://datatracker.ietf.org/doc/html/rfc6902#section-3)
JSONPointers []string `json:"jsonPointers" protobuf:"bytes,1,rep,name=jSONPointers"`
- //JQPathExpressions is a JQ path list that will be evaludated during the diff process
+ // JQPathExpressions is a JQ path list that will be evaludated during the diff process
JQPathExpressions []string `json:"jqPathExpressions" protobuf:"bytes,2,opt,name=jqPathExpressions"`
// ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the
// desired state defined in the SCM and won't be displayed in diffs
@@ -1587,21 +1862,23 @@ type OverrideIgnoreDiff struct {
}
type rawResourceOverride struct {
- HealthLua string `json:"health.lua,omitempty"`
- UseOpenLibs bool `json:"health.lua.useOpenLibs,omitempty"`
- Actions string `json:"actions,omitempty"`
- IgnoreDifferences string `json:"ignoreDifferences,omitempty"`
- KnownTypeFields []KnownTypeField `json:"knownTypeFields,omitempty"`
+ HealthLua string `json:"health.lua,omitempty"`
+ UseOpenLibs bool `json:"health.lua.useOpenLibs,omitempty"`
+ Actions string `json:"actions,omitempty"`
+ IgnoreDifferences string `json:"ignoreDifferences,omitempty"`
+ IgnoreResourceUpdates string `json:"ignoreResourceUpdates,omitempty"`
+ KnownTypeFields []KnownTypeField `json:"knownTypeFields,omitempty"`
}
// ResourceOverride holds configuration to customize resource diffing and health assessment
// TODO: describe the members of this type
type ResourceOverride struct {
- HealthLua string `protobuf:"bytes,1,opt,name=healthLua"`
- UseOpenLibs bool `protobuf:"bytes,5,opt,name=useOpenLibs"`
- Actions string `protobuf:"bytes,3,opt,name=actions"`
- IgnoreDifferences OverrideIgnoreDiff `protobuf:"bytes,2,opt,name=ignoreDifferences"`
- KnownTypeFields []KnownTypeField `protobuf:"bytes,4,opt,name=knownTypeFields"`
+ HealthLua string `protobuf:"bytes,1,opt,name=healthLua"`
+ UseOpenLibs bool `protobuf:"bytes,5,opt,name=useOpenLibs"`
+ Actions string `protobuf:"bytes,3,opt,name=actions"`
+ IgnoreDifferences OverrideIgnoreDiff `protobuf:"bytes,2,opt,name=ignoreDifferences"`
+ IgnoreResourceUpdates OverrideIgnoreDiff `protobuf:"bytes,6,opt,name=ignoreResourceUpdates"`
+ KnownTypeFields []KnownTypeField `protobuf:"bytes,4,opt,name=knownTypeFields"`
}
// TODO: describe this method
@@ -1614,7 +1891,15 @@ func (s *ResourceOverride) UnmarshalJSON(data []byte) error {
s.HealthLua = raw.HealthLua
s.UseOpenLibs = raw.UseOpenLibs
s.Actions = raw.Actions
- return yaml.Unmarshal([]byte(raw.IgnoreDifferences), &s.IgnoreDifferences)
+ err := yaml.Unmarshal([]byte(raw.IgnoreDifferences), &s.IgnoreDifferences)
+ if err != nil {
+ return err
+ }
+ err = yaml.Unmarshal([]byte(raw.IgnoreResourceUpdates), &s.IgnoreResourceUpdates)
+ if err != nil {
+ return err
+ }
+ return nil
}
// TODO: describe this method
@@ -1623,7 +1908,11 @@ func (s ResourceOverride) MarshalJSON() ([]byte, error) {
if err != nil {
return nil, err
}
- raw := &rawResourceOverride{s.HealthLua, s.UseOpenLibs, s.Actions, string(ignoreDifferencesData), s.KnownTypeFields}
+ ignoreResourceUpdatesData, err := yaml.Marshal(s.IgnoreResourceUpdates)
+ if err != nil {
+ return nil, err
+ }
+ raw := &rawResourceOverride{s.HealthLua, s.UseOpenLibs, s.Actions, string(ignoreDifferencesData), string(ignoreResourceUpdatesData), s.KnownTypeFields}
return json.Marshal(raw)
}
@@ -1654,9 +1943,11 @@ type ResourceActionDefinition struct {
// TODO: describe this type
// TODO: describe members of this type
type ResourceAction struct {
- Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
- Params []ResourceActionParam `json:"params,omitempty" protobuf:"bytes,2,rep,name=params"`
- Disabled bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"`
+ Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
+ Params []ResourceActionParam `json:"params,omitempty" protobuf:"bytes,2,rep,name=params"`
+ Disabled bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"`
+ IconClass string `json:"iconClass,omitempty" protobuf:"bytes,4,opt,name=iconClass"`
+ DisplayName string `json:"displayName,omitempty" protobuf:"bytes,5,opt,name=displayName"`
}
// TODO: describe this type
@@ -1853,7 +2144,7 @@ type SyncWindow struct {
Clusters []string `json:"clusters,omitempty" protobuf:"bytes,6,opt,name=clusters"`
// ManualSync enables manual syncs when they would otherwise be blocked
ManualSync bool `json:"manualSync,omitempty" protobuf:"bytes,7,opt,name=manualSync"`
- //TimeZone of the sync that will be applied to the schedule
+ // TimeZone of the sync that will be applied to the schedule
TimeZone string `json:"timeZone,omitempty" protobuf:"bytes,8,opt,name=timeZone"`
}
@@ -2049,6 +2340,10 @@ func (w *SyncWindows) CanSync(isManual bool) bool {
}
}
+ if active.hasAllow() {
+ return true
+ }
+
inactiveAllows := w.InactiveAllows()
if inactiveAllows.HasWindows() {
if isManual && inactiveAllows.manualEnabled() {
@@ -2323,6 +2618,13 @@ func (app *Application) GetPropagationPolicy() string {
return ""
}
+// HasChangedManagedNamespaceMetadata checks whether app.Spec.SyncPolicy.ManagedNamespaceMetadata differs from the
+// managed namespace metadata which has been stored app.Status.OperationState.SyncResult. If they differ a refresh should
+// be triggered.
+func (app *Application) HasChangedManagedNamespaceMetadata() bool {
+ return app.Spec.SyncPolicy != nil && app.Spec.SyncPolicy.ManagedNamespaceMetadata != nil && app.Status.OperationState != nil && app.Status.OperationState.SyncResult != nil && !reflect.DeepEqual(app.Spec.SyncPolicy.ManagedNamespaceMetadata, app.Status.OperationState.SyncResult.ManagedNamespaceMetadata)
+}
+
// IsFinalizerPresent checks if the app has a given finalizer
func (app *Application) IsFinalizerPresent(finalizer string) bool {
return getFinalizerIndex(app.ObjectMeta, finalizer) > -1
@@ -2394,8 +2696,23 @@ func (condition *ApplicationCondition) IsError() bool {
}
// Equals compares two instances of ApplicationSource and return true if instances are equal.
-func (source *ApplicationSource) Equals(other ApplicationSource) bool {
- return reflect.DeepEqual(*source, other)
+func (source *ApplicationSource) Equals(other *ApplicationSource) bool {
+ if source == nil && other == nil {
+ return true
+ }
+ if source == nil || other == nil {
+ return false
+ }
+ if !source.Plugin.Equals(other.Plugin) {
+ return false
+ }
+ // reflect.DeepEqual works fine for the other fields. Since the plugin fields are equal, set them to null so they're
+ // not considered in the DeepEqual comparison.
+ sourceCopy := source.DeepCopy()
+ otherCopy := other.DeepCopy()
+ sourceCopy.Plugin = nil
+ otherCopy.Plugin = nil
+ return reflect.DeepEqual(sourceCopy, otherCopy)
}
// ExplicitType returns the type (e.g. Helm, Kustomize, etc) of the application. If either none or multiple types are defined, returns an error.
@@ -2540,7 +2857,7 @@ func SetK8SConfigDefaults(config *rest.Config) error {
func (c *Cluster) RawRestConfig() *rest.Config {
var config *rest.Config
var err error
- if c.Server == KubernetesInternalAPIServerAddr && os.Getenv(EnvVarFakeInClusterConfig) == "true" {
+ if c.Server == KubernetesInternalAPIServerAddr && env.ParseBoolFromEnv(EnvVarFakeInClusterConfig, false) {
conf, exists := os.LookupEnv("KUBECONFIG")
if exists {
config, err = clientcmd.BuildConfigFromFlags("", conf)
@@ -2709,5 +3026,5 @@ func (a *Application) QualifiedName() string {
// RBACName returns the full qualified RBAC resource name for the application
// in a backwards-compatible way.
func (a *Application) RBACName(defaultNS string) string {
- return security.AppRBACName(defaultNS, a.Spec.GetProject(), a.Namespace, a.Name)
+ return security.RBACName(defaultNS, a.Spec.GetProject(), a.Namespace, a.Name)
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/values.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/values.go
new file mode 100644
index 0000000000..942e2a651c
--- /dev/null
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/values.go
@@ -0,0 +1,61 @@
+package v1alpha1
+
+import (
+ "encoding/json"
+ "fmt"
+ reflect "reflect"
+ "strings"
+
+ runtime "k8s.io/apimachinery/pkg/runtime"
+ "sigs.k8s.io/yaml"
+)
+
+// Set the ValuesObject property to the json representation of the yaml contained in value
+// Remove Values property if present
+func (h *ApplicationSourceHelm) SetValuesString(value string) error {
+ if value == "" {
+ h.ValuesObject = nil
+ h.Values = ""
+ } else {
+ data, err := yaml.YAMLToJSON([]byte(value))
+ if err != nil {
+ return fmt.Errorf("failed converting yaml to json: %v", err)
+ }
+ var v interface{}
+ if err := json.Unmarshal(data, &v); err != nil {
+ return fmt.Errorf("failed to unmarshal json: %v", err)
+ }
+ switch v.(type) {
+ case string:
+ case map[string]interface{}:
+ default:
+ return fmt.Errorf("invalid type %q", reflect.TypeOf(v))
+ }
+ h.ValuesObject = &runtime.RawExtension{Raw: data}
+ h.Values = ""
+ }
+ return nil
+}
+
+func (h *ApplicationSourceHelm) ValuesYAML() []byte {
+ if h.ValuesObject == nil || h.ValuesObject.Raw == nil {
+ return []byte(h.Values)
+ }
+ b, err := yaml.JSONToYAML(h.ValuesObject.Raw)
+ if err != nil {
+ // This should be impossible, because rawValue isn't set directly.
+ return []byte{}
+ }
+ return b
+}
+
+func (h *ApplicationSourceHelm) ValuesIsEmpty() bool {
+ return len(h.ValuesYAML()) == 0
+}
+
+func (h *ApplicationSourceHelm) ValuesString() string {
+ if h.ValuesObject == nil || h.ValuesObject.Raw == nil {
+ return h.Values
+ }
+ return strings.TrimSuffix(string(h.ValuesYAML()), "\n")
+}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go
index 15cc07f3c1..8d10b219f0 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go
@@ -315,6 +315,27 @@ func (in *ApplicationMatchExpression) DeepCopy() *ApplicationMatchExpression {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ApplicationPreservedFields) DeepCopyInto(out *ApplicationPreservedFields) {
+ *out = *in
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationPreservedFields.
+func (in *ApplicationPreservedFields) DeepCopy() *ApplicationPreservedFields {
+ if in == nil {
+ return nil
+ }
+ out := new(ApplicationPreservedFields)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplicationSet) DeepCopyInto(out *ApplicationSet) {
*out = *in
@@ -431,6 +452,11 @@ func (in *ApplicationSetGenerator) DeepCopyInto(out *ApplicationSetGenerator) {
*out = new(v1.LabelSelector)
(*in).DeepCopyInto(*out)
}
+ if in.Plugin != nil {
+ in, out := &in.Plugin, &out.Plugin
+ *out = new(PluginGenerator)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -525,6 +551,11 @@ func (in *ApplicationSetNestedGenerator) DeepCopyInto(out *ApplicationSetNestedG
*out = new(v1.LabelSelector)
(*in).DeepCopyInto(*out)
}
+ if in.Plugin != nil {
+ in, out := &in.Plugin, &out.Plugin
+ *out = new(PluginGenerator)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -625,13 +656,23 @@ func (in *ApplicationSetSpec) DeepCopyInto(out *ApplicationSetSpec) {
if in.SyncPolicy != nil {
in, out := &in.SyncPolicy, &out.SyncPolicy
*out = new(ApplicationSetSyncPolicy)
- **out = **in
+ (*in).DeepCopyInto(*out)
}
if in.Strategy != nil {
in, out := &in.Strategy, &out.Strategy
*out = new(ApplicationSetStrategy)
(*in).DeepCopyInto(*out)
}
+ if in.PreservedFields != nil {
+ in, out := &in.PreservedFields, &out.PreservedFields
+ *out = new(ApplicationPreservedFields)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.GoTemplateOptions != nil {
+ in, out := &in.GoTemplateOptions, &out.GoTemplateOptions
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
return
}
@@ -699,6 +740,11 @@ func (in *ApplicationSetStrategy) DeepCopy() *ApplicationSetStrategy {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplicationSetSyncPolicy) DeepCopyInto(out *ApplicationSetSyncPolicy) {
*out = *in
+ if in.ApplicationsSync != nil {
+ in, out := &in.ApplicationsSync, &out.ApplicationsSync
+ *out = new(ApplicationsSyncPolicy)
+ **out = **in
+ }
return
}
@@ -798,6 +844,16 @@ func (in *ApplicationSetTerminalGenerator) DeepCopyInto(out *ApplicationSetTermi
*out = new(PullRequestGenerator)
(*in).DeepCopyInto(*out)
}
+ if in.Plugin != nil {
+ in, out := &in.Plugin, &out.Plugin
+ *out = new(PluginGenerator)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Selector != nil {
+ in, out := &in.Selector, &out.Selector
+ *out = new(v1.LabelSelector)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -904,6 +960,11 @@ func (in *ApplicationSourceHelm) DeepCopyInto(out *ApplicationSourceHelm) {
*out = make([]HelmFileParameter, len(*in))
copy(*out, *in)
}
+ if in.ValuesObject != nil {
+ in, out := &in.ValuesObject, &out.ValuesObject
+ *out = new(runtime.RawExtension)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -970,6 +1031,11 @@ func (in *ApplicationSourceKustomize) DeepCopyInto(out *ApplicationSourceKustomi
(*out)[key] = val
}
}
+ if in.Replicas != nil {
+ in, out := &in.Replicas, &out.Replicas
+ *out = make(KustomizeReplicas, len(*in))
+ copy(*out, *in)
+ }
return
}
@@ -1025,17 +1091,15 @@ func (in *ApplicationSourcePluginParameter) DeepCopyInto(out *ApplicationSourceP
*out = new(string)
**out = **in
}
- if in.Map != nil {
- in, out := &in.Map, &out.Map
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
+ if in.OptionalMap != nil {
+ in, out := &in.OptionalMap, &out.OptionalMap
+ *out = new(OptionalMap)
+ (*in).DeepCopyInto(*out)
}
- if in.Array != nil {
- in, out := &in.Array, &out.Array
- *out = make([]string, len(*in))
- copy(*out, *in)
+ if in.OptionalArray != nil {
+ in, out := &in.OptionalArray, &out.OptionalArray
+ *out = new(OptionalArray)
+ (*in).DeepCopyInto(*out)
}
return
}
@@ -1110,7 +1174,7 @@ func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec) {
}
if in.IgnoreDifferences != nil {
in, out := &in.IgnoreDifferences, &out.IgnoreDifferences
- *out = make([]ResourceIgnoreDifferences, len(*in))
+ *out = make(IgnoreDifferences, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -1325,6 +1389,48 @@ func (in *BasicAuthBitbucketServer) DeepCopy() *BasicAuthBitbucketServer {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BearerTokenBitbucketCloud) DeepCopyInto(out *BearerTokenBitbucketCloud) {
+ *out = *in
+ if in.TokenRef != nil {
+ in, out := &in.TokenRef, &out.TokenRef
+ *out = new(SecretRef)
+ **out = **in
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BearerTokenBitbucketCloud.
+func (in *BearerTokenBitbucketCloud) DeepCopy() *BearerTokenBitbucketCloud {
+ if in == nil {
+ return nil
+ }
+ out := new(BearerTokenBitbucketCloud)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ChartDetails) DeepCopyInto(out *ChartDetails) {
+ *out = *in
+ if in.Maintainers != nil {
+ in, out := &in.Maintainers, &out.Maintainers
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChartDetails.
+func (in *ChartDetails) DeepCopy() *ChartDetails {
+ if in == nil {
+ return nil
+ }
+ out := new(ChartDetails)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Cluster) DeepCopyInto(out *Cluster) {
*out = *in
@@ -1529,6 +1635,13 @@ func (in *ComparedTo) DeepCopyInto(out *ComparedTo) {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
+ if in.IgnoreDifferences != nil {
+ in, out := &in.IgnoreDifferences, &out.IgnoreDifferences
+ *out = make(IgnoreDifferences, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
return
}
@@ -1751,6 +1864,13 @@ func (in *GitGenerator) DeepCopyInto(out *GitGenerator) {
**out = **in
}
in.Template.DeepCopyInto(&out.Template)
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
return
}
@@ -1909,6 +2029,28 @@ func (in *HostResourceInfo) DeepCopy() *HostResourceInfo {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in IgnoreDifferences) DeepCopyInto(out *IgnoreDifferences) {
+ {
+ in := &in
+ *out = make(IgnoreDifferences, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ return
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IgnoreDifferences.
+func (in IgnoreDifferences) DeepCopy() IgnoreDifferences {
+ if in == nil {
+ return nil
+ }
+ out := new(IgnoreDifferences)
+ in.DeepCopyInto(out)
+ return *out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Info) DeepCopyInto(out *Info) {
*out = *in
@@ -2046,6 +2188,43 @@ func (in *KustomizeOptions) DeepCopy() *KustomizeOptions {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KustomizeReplica) DeepCopyInto(out *KustomizeReplica) {
+ *out = *in
+ out.Count = in.Count
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeReplica.
+func (in *KustomizeReplica) DeepCopy() *KustomizeReplica {
+ if in == nil {
+ return nil
+ }
+ out := new(KustomizeReplica)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in KustomizeReplicas) DeepCopyInto(out *KustomizeReplicas) {
+ {
+ in := &in
+ *out = make(KustomizeReplicas, len(*in))
+ copy(*out, *in)
+ return
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizeReplicas.
+func (in KustomizeReplicas) DeepCopy() KustomizeReplicas {
+ if in == nil {
+ return nil
+ }
+ out := new(KustomizeReplicas)
+ in.DeepCopyInto(out)
+ return *out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ListGenerator) DeepCopyInto(out *ListGenerator) {
*out = *in
@@ -2281,6 +2460,50 @@ func (in *OperationState) DeepCopy() *OperationState {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OptionalArray) DeepCopyInto(out *OptionalArray) {
+ *out = *in
+ if in.Array != nil {
+ in, out := &in.Array, &out.Array
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalArray.
+func (in *OptionalArray) DeepCopy() *OptionalArray {
+ if in == nil {
+ return nil
+ }
+ out := new(OptionalArray)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OptionalMap) DeepCopyInto(out *OptionalMap) {
+ *out = *in
+ if in.Map != nil {
+ in, out := &in.Map, &out.Map
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalMap.
+func (in *OptionalMap) DeepCopy() *OptionalMap {
+ if in == nil {
+ return nil
+ }
+ out := new(OptionalMap)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OrphanedResourceKey) DeepCopyInto(out *OrphanedResourceKey) {
*out = *in
@@ -2354,6 +2577,98 @@ func (in *OverrideIgnoreDiff) DeepCopy() *OverrideIgnoreDiff {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PluginConfigMapRef) DeepCopyInto(out *PluginConfigMapRef) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigMapRef.
+func (in *PluginConfigMapRef) DeepCopy() *PluginConfigMapRef {
+ if in == nil {
+ return nil
+ }
+ out := new(PluginConfigMapRef)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PluginGenerator) DeepCopyInto(out *PluginGenerator) {
+ *out = *in
+ out.ConfigMapRef = in.ConfigMapRef
+ in.Input.DeepCopyInto(&out.Input)
+ if in.RequeueAfterSeconds != nil {
+ in, out := &in.RequeueAfterSeconds, &out.RequeueAfterSeconds
+ *out = new(int64)
+ **out = **in
+ }
+ in.Template.DeepCopyInto(&out.Template)
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginGenerator.
+func (in *PluginGenerator) DeepCopy() *PluginGenerator {
+ if in == nil {
+ return nil
+ }
+ out := new(PluginGenerator)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PluginInput) DeepCopyInto(out *PluginInput) {
+ *out = *in
+ if in.Parameters != nil {
+ in, out := &in.Parameters, &out.Parameters
+ *out = make(PluginParameters, len(*in))
+ for key, val := range *in {
+ (*out)[key] = *val.DeepCopy()
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginInput.
+func (in *PluginInput) DeepCopy() *PluginInput {
+ if in == nil {
+ return nil
+ }
+ out := new(PluginInput)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in PluginParameters) DeepCopyInto(out *PluginParameters) {
+ {
+ in := &in
+ *out = make(PluginParameters, len(*in))
+ for key, val := range *in {
+ (*out)[key] = *val.DeepCopy()
+ }
+ return
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginParameters.
+func (in PluginParameters) DeepCopy() PluginParameters {
+ if in == nil {
+ return nil
+ }
+ out := new(PluginParameters)
+ in.DeepCopyInto(out)
+ return *out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ProjectRole) DeepCopyInto(out *ProjectRole) {
*out = *in
@@ -2421,6 +2736,16 @@ func (in *PullRequestGenerator) DeepCopyInto(out *PullRequestGenerator) {
**out = **in
}
in.Template.DeepCopyInto(&out.Template)
+ if in.Bitbucket != nil {
+ in, out := &in.Bitbucket, &out.Bitbucket
+ *out = new(PullRequestGeneratorBitbucket)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.AzureDevOps != nil {
+ in, out := &in.AzureDevOps, &out.AzureDevOps
+ *out = new(PullRequestGeneratorAzureDevOps)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -2434,6 +2759,58 @@ func (in *PullRequestGenerator) DeepCopy() *PullRequestGenerator {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PullRequestGeneratorAzureDevOps) DeepCopyInto(out *PullRequestGeneratorAzureDevOps) {
+ *out = *in
+ if in.TokenRef != nil {
+ in, out := &in.TokenRef, &out.TokenRef
+ *out = new(SecretRef)
+ **out = **in
+ }
+ if in.Labels != nil {
+ in, out := &in.Labels, &out.Labels
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorAzureDevOps.
+func (in *PullRequestGeneratorAzureDevOps) DeepCopy() *PullRequestGeneratorAzureDevOps {
+ if in == nil {
+ return nil
+ }
+ out := new(PullRequestGeneratorAzureDevOps)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PullRequestGeneratorBitbucket) DeepCopyInto(out *PullRequestGeneratorBitbucket) {
+ *out = *in
+ if in.BasicAuth != nil {
+ in, out := &in.BasicAuth, &out.BasicAuth
+ *out = new(BasicAuthBitbucketServer)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.BearerToken != nil {
+ in, out := &in.BearerToken, &out.BearerToken
+ *out = new(BearerTokenBitbucketCloud)
+ (*in).DeepCopyInto(*out)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullRequestGeneratorBitbucket.
+func (in *PullRequestGeneratorBitbucket) DeepCopy() *PullRequestGeneratorBitbucket {
+ if in == nil {
+ return nil
+ }
+ out := new(PullRequestGeneratorBitbucket)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PullRequestGeneratorBitbucketServer) DeepCopyInto(out *PullRequestGeneratorBitbucketServer) {
*out = *in
@@ -2463,6 +2840,11 @@ func (in *PullRequestGeneratorFilter) DeepCopyInto(out *PullRequestGeneratorFilt
*out = new(string)
**out = **in
}
+ if in.TargetBranchMatch != nil {
+ in, out := &in.TargetBranchMatch, &out.TargetBranchMatch
+ *out = new(string)
+ **out = **in
+ }
return
}
@@ -2968,6 +3350,7 @@ func (in *ResourceNode) DeepCopy() *ResourceNode {
func (in *ResourceOverride) DeepCopyInto(out *ResourceOverride) {
*out = *in
in.IgnoreDifferences.DeepCopyInto(&out.IgnoreDifferences)
+ in.IgnoreResourceUpdates.DeepCopyInto(&out.IgnoreResourceUpdates)
if in.KnownTypeFields != nil {
in, out := &in.KnownTypeFields, &out.KnownTypeFields
*out = make([]KnownTypeField, len(*in))
@@ -3210,6 +3593,18 @@ func (in *SCMProviderGenerator) DeepCopyInto(out *SCMProviderGenerator) {
**out = **in
}
in.Template.DeepCopyInto(&out.Template)
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.AWSCodeCommit != nil {
+ in, out := &in.AWSCodeCommit, &out.AWSCodeCommit
+ *out = new(SCMProviderGeneratorAWSCodeCommit)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -3223,6 +3618,33 @@ func (in *SCMProviderGenerator) DeepCopy() *SCMProviderGenerator {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SCMProviderGeneratorAWSCodeCommit) DeepCopyInto(out *SCMProviderGeneratorAWSCodeCommit) {
+ *out = *in
+ if in.TagFilters != nil {
+ in, out := &in.TagFilters, &out.TagFilters
+ *out = make([]*TagFilter, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(TagFilter)
+ **out = **in
+ }
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCMProviderGeneratorAWSCodeCommit.
+func (in *SCMProviderGeneratorAWSCodeCommit) DeepCopy() *SCMProviderGeneratorAWSCodeCommit {
+ if in == nil {
+ return nil
+ }
+ out := new(SCMProviderGeneratorAWSCodeCommit)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SCMProviderGeneratorAzureDevOps) DeepCopyInto(out *SCMProviderGeneratorAzureDevOps) {
*out = *in
@@ -3518,6 +3940,11 @@ func (in *SyncOperationResult) DeepCopyInto(out *SyncOperationResult) {
*out = make([]string, len(*in))
copy(*out, *in)
}
+ if in.ManagedNamespaceMetadata != nil {
+ in, out := &in.ManagedNamespaceMetadata, &out.ManagedNamespaceMetadata
+ *out = new(ManagedNamespaceMetadata)
+ (*in).DeepCopyInto(*out)
+ }
return
}
@@ -3771,3 +4198,19 @@ func (in *TLSClientConfig) DeepCopy() *TLSClientConfig {
in.DeepCopyInto(out)
return out
}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TagFilter) DeepCopyInto(out *TagFilter) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagFilter.
+func (in *TagFilter) DeepCopy() *TagFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(TagFilter)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/clientset.go b/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/clientset.go
index 1ef95466cd..417dc758ef 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/clientset.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/clientset.go
@@ -3,12 +3,12 @@ package apiclient
import (
"crypto/tls"
"crypto/x509"
+ "fmt"
"time"
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
grpc_retry "github.com/grpc-ecosystem/go-grpc-middleware/retry"
log "github.com/sirupsen/logrus"
- "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/credentials/insecure"
@@ -17,6 +17,8 @@ import (
"github.com/argoproj/argo-cd/v2/util/io"
)
+//go:generate go run github.com/vektra/mockery/v2@v2.15.0 --name=RepoServerServiceClient
+
const (
// MaxGRPCMessageSize contains max grpc message size
MaxGRPCMessageSize = 100 * 1024 * 1024
@@ -46,7 +48,7 @@ type clientSet struct {
func (c *clientSet) NewRepoServerClient() (io.Closer, RepoServerServiceClient, error) {
conn, err := NewConnection(c.address, c.timeoutSeconds, &c.tlsConfig)
if err != nil {
- return nil, nil, err
+ return nil, nil, fmt.Errorf("failed to open a new connection to repo server: %w", err)
}
return conn, NewRepoServerServiceClient(conn), nil
}
@@ -64,8 +66,8 @@ func NewConnection(address string, timeoutSeconds int, tlsConfig *TLSConfigurati
grpc.WithStreamInterceptor(grpc_retry.StreamClientInterceptor(retryOpts...)),
grpc.WithUnaryInterceptor(grpc_middleware.ChainUnaryClient(unaryInterceptors...)),
grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(MaxGRPCMessageSize), grpc.MaxCallSendMsgSize(MaxGRPCMessageSize)),
- grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()),
- grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor()),
+ grpc.WithUnaryInterceptor(argogrpc.OTELUnaryClientInterceptor()),
+ grpc.WithStreamInterceptor(argogrpc.OTELStreamClientInterceptor()),
}
tlsC := &tls.Config{}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/repository.pb.go b/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/repository.pb.go
index f198076769..dd5a4559ac 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/repository.pb.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/reposerver/apiclient/repository.pb.go
@@ -36,14 +36,15 @@ type ManifestRequest struct {
NoCache bool `protobuf:"varint,3,opt,name=noCache,proto3" json:"noCache,omitempty"`
AppLabelKey string `protobuf:"bytes,4,opt,name=appLabelKey,proto3" json:"appLabelKey,omitempty"`
// Name of the application for which the request is triggered
- AppName string `protobuf:"bytes,5,opt,name=appName,proto3" json:"appName,omitempty"`
- Namespace string `protobuf:"bytes,8,opt,name=namespace,proto3" json:"namespace,omitempty"`
- ApplicationSource *v1alpha1.ApplicationSource `protobuf:"bytes,10,opt,name=applicationSource,proto3" json:"applicationSource,omitempty"`
- Repos []*v1alpha1.Repository `protobuf:"bytes,11,rep,name=repos,proto3" json:"repos,omitempty"`
- Plugins []*v1alpha1.ConfigManagementPlugin `protobuf:"bytes,12,rep,name=plugins,proto3" json:"plugins,omitempty"`
- KustomizeOptions *v1alpha1.KustomizeOptions `protobuf:"bytes,13,opt,name=kustomizeOptions,proto3" json:"kustomizeOptions,omitempty"`
- KubeVersion string `protobuf:"bytes,14,opt,name=kubeVersion,proto3" json:"kubeVersion,omitempty"`
- ApiVersions []string `protobuf:"bytes,15,rep,name=apiVersions,proto3" json:"apiVersions,omitempty"`
+ AppName string `protobuf:"bytes,5,opt,name=appName,proto3" json:"appName,omitempty"`
+ Namespace string `protobuf:"bytes,8,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ ApplicationSource *v1alpha1.ApplicationSource `protobuf:"bytes,10,opt,name=applicationSource,proto3" json:"applicationSource,omitempty"`
+ Repos []*v1alpha1.Repository `protobuf:"bytes,11,rep,name=repos,proto3" json:"repos,omitempty"`
+ // Deprecated: use sidecar plugins instead.
+ Plugins []*v1alpha1.ConfigManagementPlugin `protobuf:"bytes,12,rep,name=plugins,proto3" json:"plugins,omitempty"`
+ KustomizeOptions *v1alpha1.KustomizeOptions `protobuf:"bytes,13,opt,name=kustomizeOptions,proto3" json:"kustomizeOptions,omitempty"`
+ KubeVersion string `protobuf:"bytes,14,opt,name=kubeVersion,proto3" json:"kubeVersion,omitempty"`
+ ApiVersions []string `protobuf:"bytes,15,rep,name=apiVersions,proto3" json:"apiVersions,omitempty"`
// Request to verify the signature when generating the manifests (only for Git repositories)
VerifySignature bool `protobuf:"varint,16,opt,name=verifySignature,proto3" json:"verifySignature,omitempty"`
HelmRepoCreds []*v1alpha1.RepoCreds `protobuf:"bytes,17,rep,name=helmRepoCreds,proto3" json:"helmRepoCreds,omitempty"`
@@ -1327,6 +1328,72 @@ func (m *RepoServerRevisionMetadataRequest) GetCheckSignature() bool {
return false
}
+type RepoServerRevisionChartDetailsRequest struct {
+ // the repo
+ Repo *v1alpha1.Repository `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
+ // the chart
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ // the revision within the chart
+ Revision string `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *RepoServerRevisionChartDetailsRequest) Reset() { *m = RepoServerRevisionChartDetailsRequest{} }
+func (m *RepoServerRevisionChartDetailsRequest) String() string { return proto.CompactTextString(m) }
+func (*RepoServerRevisionChartDetailsRequest) ProtoMessage() {}
+func (*RepoServerRevisionChartDetailsRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_dd8723cfcc820480, []int{18}
+}
+func (m *RepoServerRevisionChartDetailsRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RepoServerRevisionChartDetailsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RepoServerRevisionChartDetailsRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RepoServerRevisionChartDetailsRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepoServerRevisionChartDetailsRequest.Merge(m, src)
+}
+func (m *RepoServerRevisionChartDetailsRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RepoServerRevisionChartDetailsRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RepoServerRevisionChartDetailsRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RepoServerRevisionChartDetailsRequest proto.InternalMessageInfo
+
+func (m *RepoServerRevisionChartDetailsRequest) GetRepo() *v1alpha1.Repository {
+ if m != nil {
+ return m.Repo
+ }
+ return nil
+}
+
+func (m *RepoServerRevisionChartDetailsRequest) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *RepoServerRevisionChartDetailsRequest) GetRevision() string {
+ if m != nil {
+ return m.Revision
+ }
+ return ""
+}
+
// HelmAppSpec contains helm app name in source repo
type HelmAppSpec struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
@@ -1346,7 +1413,7 @@ func (m *HelmAppSpec) Reset() { *m = HelmAppSpec{} }
func (m *HelmAppSpec) String() string { return proto.CompactTextString(m) }
func (*HelmAppSpec) ProtoMessage() {}
func (*HelmAppSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{18}
+ return fileDescriptor_dd8723cfcc820480, []int{19}
}
func (m *HelmAppSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1423,7 +1490,7 @@ func (m *KustomizeAppSpec) Reset() { *m = KustomizeAppSpec{} }
func (m *KustomizeAppSpec) String() string { return proto.CompactTextString(m) }
func (*KustomizeAppSpec) ProtoMessage() {}
func (*KustomizeAppSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{19}
+ return fileDescriptor_dd8723cfcc820480, []int{20}
}
func (m *KustomizeAppSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1470,7 +1537,7 @@ func (m *DirectoryAppSpec) Reset() { *m = DirectoryAppSpec{} }
func (m *DirectoryAppSpec) String() string { return proto.CompactTextString(m) }
func (*DirectoryAppSpec) ProtoMessage() {}
func (*DirectoryAppSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{20}
+ return fileDescriptor_dd8723cfcc820480, []int{21}
}
func (m *DirectoryAppSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1530,7 +1597,7 @@ func (m *ParameterAnnouncement) Reset() { *m = ParameterAnnouncement{} }
func (m *ParameterAnnouncement) String() string { return proto.CompactTextString(m) }
func (*ParameterAnnouncement) ProtoMessage() {}
func (*ParameterAnnouncement) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{21}
+ return fileDescriptor_dd8723cfcc820480, []int{22}
}
func (m *ParameterAnnouncement) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1634,7 +1701,7 @@ func (m *PluginAppSpec) Reset() { *m = PluginAppSpec{} }
func (m *PluginAppSpec) String() string { return proto.CompactTextString(m) }
func (*PluginAppSpec) ProtoMessage() {}
func (*PluginAppSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{22}
+ return fileDescriptor_dd8723cfcc820480, []int{23}
}
func (m *PluginAppSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1681,7 +1748,7 @@ func (m *HelmChartsRequest) Reset() { *m = HelmChartsRequest{} }
func (m *HelmChartsRequest) String() string { return proto.CompactTextString(m) }
func (*HelmChartsRequest) ProtoMessage() {}
func (*HelmChartsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{23}
+ return fileDescriptor_dd8723cfcc820480, []int{24}
}
func (m *HelmChartsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1729,7 +1796,7 @@ func (m *HelmChart) Reset() { *m = HelmChart{} }
func (m *HelmChart) String() string { return proto.CompactTextString(m) }
func (*HelmChart) ProtoMessage() {}
func (*HelmChart) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{24}
+ return fileDescriptor_dd8723cfcc820480, []int{25}
}
func (m *HelmChart) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1783,7 +1850,7 @@ func (m *HelmChartsResponse) Reset() { *m = HelmChartsResponse{} }
func (m *HelmChartsResponse) String() string { return proto.CompactTextString(m) }
func (*HelmChartsResponse) ProtoMessage() {}
func (*HelmChartsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_dd8723cfcc820480, []int{25}
+ return fileDescriptor_dd8723cfcc820480, []int{26}
}
func (m *HelmChartsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1819,6 +1886,260 @@ func (m *HelmChartsResponse) GetItems() []*HelmChart {
return nil
}
+type GitFilesRequest struct {
+ Repo *v1alpha1.Repository `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
+ SubmoduleEnabled bool `protobuf:"varint,2,opt,name=submoduleEnabled,proto3" json:"submoduleEnabled,omitempty"`
+ Revision string `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
+ Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
+ NewGitFileGlobbingEnabled bool `protobuf:"varint,5,opt,name=NewGitFileGlobbingEnabled,proto3" json:"NewGitFileGlobbingEnabled,omitempty"`
+ NoRevisionCache bool `protobuf:"varint,6,opt,name=noRevisionCache,proto3" json:"noRevisionCache,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GitFilesRequest) Reset() { *m = GitFilesRequest{} }
+func (m *GitFilesRequest) String() string { return proto.CompactTextString(m) }
+func (*GitFilesRequest) ProtoMessage() {}
+func (*GitFilesRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_dd8723cfcc820480, []int{27}
+}
+func (m *GitFilesRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *GitFilesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_GitFilesRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *GitFilesRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GitFilesRequest.Merge(m, src)
+}
+func (m *GitFilesRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *GitFilesRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_GitFilesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GitFilesRequest proto.InternalMessageInfo
+
+func (m *GitFilesRequest) GetRepo() *v1alpha1.Repository {
+ if m != nil {
+ return m.Repo
+ }
+ return nil
+}
+
+func (m *GitFilesRequest) GetSubmoduleEnabled() bool {
+ if m != nil {
+ return m.SubmoduleEnabled
+ }
+ return false
+}
+
+func (m *GitFilesRequest) GetRevision() string {
+ if m != nil {
+ return m.Revision
+ }
+ return ""
+}
+
+func (m *GitFilesRequest) GetPath() string {
+ if m != nil {
+ return m.Path
+ }
+ return ""
+}
+
+func (m *GitFilesRequest) GetNewGitFileGlobbingEnabled() bool {
+ if m != nil {
+ return m.NewGitFileGlobbingEnabled
+ }
+ return false
+}
+
+func (m *GitFilesRequest) GetNoRevisionCache() bool {
+ if m != nil {
+ return m.NoRevisionCache
+ }
+ return false
+}
+
+type GitFilesResponse struct {
+ // Map consisting of path of the path to its contents in bytes
+ Map map[string][]byte `protobuf:"bytes,1,rep,name=map,proto3" json:"map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GitFilesResponse) Reset() { *m = GitFilesResponse{} }
+func (m *GitFilesResponse) String() string { return proto.CompactTextString(m) }
+func (*GitFilesResponse) ProtoMessage() {}
+func (*GitFilesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_dd8723cfcc820480, []int{28}
+}
+func (m *GitFilesResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *GitFilesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_GitFilesResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *GitFilesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GitFilesResponse.Merge(m, src)
+}
+func (m *GitFilesResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *GitFilesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GitFilesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GitFilesResponse proto.InternalMessageInfo
+
+func (m *GitFilesResponse) GetMap() map[string][]byte {
+ if m != nil {
+ return m.Map
+ }
+ return nil
+}
+
+type GitDirectoriesRequest struct {
+ Repo *v1alpha1.Repository `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
+ SubmoduleEnabled bool `protobuf:"varint,2,opt,name=submoduleEnabled,proto3" json:"submoduleEnabled,omitempty"`
+ Revision string `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
+ NoRevisionCache bool `protobuf:"varint,4,opt,name=noRevisionCache,proto3" json:"noRevisionCache,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GitDirectoriesRequest) Reset() { *m = GitDirectoriesRequest{} }
+func (m *GitDirectoriesRequest) String() string { return proto.CompactTextString(m) }
+func (*GitDirectoriesRequest) ProtoMessage() {}
+func (*GitDirectoriesRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_dd8723cfcc820480, []int{29}
+}
+func (m *GitDirectoriesRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *GitDirectoriesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_GitDirectoriesRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *GitDirectoriesRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GitDirectoriesRequest.Merge(m, src)
+}
+func (m *GitDirectoriesRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *GitDirectoriesRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_GitDirectoriesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GitDirectoriesRequest proto.InternalMessageInfo
+
+func (m *GitDirectoriesRequest) GetRepo() *v1alpha1.Repository {
+ if m != nil {
+ return m.Repo
+ }
+ return nil
+}
+
+func (m *GitDirectoriesRequest) GetSubmoduleEnabled() bool {
+ if m != nil {
+ return m.SubmoduleEnabled
+ }
+ return false
+}
+
+func (m *GitDirectoriesRequest) GetRevision() string {
+ if m != nil {
+ return m.Revision
+ }
+ return ""
+}
+
+func (m *GitDirectoriesRequest) GetNoRevisionCache() bool {
+ if m != nil {
+ return m.NoRevisionCache
+ }
+ return false
+}
+
+type GitDirectoriesResponse struct {
+ // A set of directory paths
+ Paths []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GitDirectoriesResponse) Reset() { *m = GitDirectoriesResponse{} }
+func (m *GitDirectoriesResponse) String() string { return proto.CompactTextString(m) }
+func (*GitDirectoriesResponse) ProtoMessage() {}
+func (*GitDirectoriesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_dd8723cfcc820480, []int{30}
+}
+func (m *GitDirectoriesResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *GitDirectoriesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_GitDirectoriesResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *GitDirectoriesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GitDirectoriesResponse.Merge(m, src)
+}
+func (m *GitDirectoriesResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *GitDirectoriesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GitDirectoriesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GitDirectoriesResponse proto.InternalMessageInfo
+
+func (m *GitDirectoriesResponse) GetPaths() []string {
+ if m != nil {
+ return m.Paths
+ }
+ return nil
+}
+
func init() {
proto.RegisterType((*ManifestRequest)(nil), "repository.ManifestRequest")
proto.RegisterMapType((map[string]bool)(nil), "repository.ManifestRequest.EnabledSourceTypesEntry")
@@ -1844,6 +2165,7 @@ func init() {
proto.RegisterMapType((map[string]*v1alpha1.RefTarget)(nil), "repository.RepoServerAppDetailsQuery.RefSourcesEntry")
proto.RegisterType((*RepoAppDetailsResponse)(nil), "repository.RepoAppDetailsResponse")
proto.RegisterType((*RepoServerRevisionMetadataRequest)(nil), "repository.RepoServerRevisionMetadataRequest")
+ proto.RegisterType((*RepoServerRevisionChartDetailsRequest)(nil), "repository.RepoServerRevisionChartDetailsRequest")
proto.RegisterType((*HelmAppSpec)(nil), "repository.HelmAppSpec")
proto.RegisterType((*KustomizeAppSpec)(nil), "repository.KustomizeAppSpec")
proto.RegisterType((*DirectoryAppSpec)(nil), "repository.DirectoryAppSpec")
@@ -1853,6 +2175,11 @@ func init() {
proto.RegisterType((*HelmChartsRequest)(nil), "repository.HelmChartsRequest")
proto.RegisterType((*HelmChart)(nil), "repository.HelmChart")
proto.RegisterType((*HelmChartsResponse)(nil), "repository.HelmChartsResponse")
+ proto.RegisterType((*GitFilesRequest)(nil), "repository.GitFilesRequest")
+ proto.RegisterType((*GitFilesResponse)(nil), "repository.GitFilesResponse")
+ proto.RegisterMapType((map[string][]byte)(nil), "repository.GitFilesResponse.MapEntry")
+ proto.RegisterType((*GitDirectoriesRequest)(nil), "repository.GitDirectoriesRequest")
+ proto.RegisterType((*GitDirectoriesResponse)(nil), "repository.GitDirectoriesResponse")
}
func init() {
@@ -1860,124 +2187,138 @@ func init() {
}
var fileDescriptor_dd8723cfcc820480 = []byte{
- // 1870 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x19, 0xdb, 0x6e, 0x1c, 0x49,
- 0xd5, 0x73, 0xb1, 0x3d, 0x73, 0x9c, 0xf8, 0x52, 0x49, 0x9c, 0xce, 0x6c, 0xd6, 0xf2, 0x36, 0x10,
- 0x99, 0xcd, 0x6e, 0x8f, 0xe2, 0x68, 0x77, 0x51, 0x16, 0x16, 0x79, 0xbd, 0x49, 0x1c, 0x25, 0x4e,
- 0x4c, 0x27, 0x80, 0x16, 0x02, 0xa8, 0xdc, 0x53, 0xd3, 0x53, 0x3b, 0x7d, 0xa9, 0x74, 0x57, 0x0f,
- 0x9a, 0x48, 0x3c, 0x20, 0x21, 0x24, 0x7e, 0x00, 0xf1, 0x27, 0x3c, 0xf2, 0xc4, 0xe5, 0x11, 0xf1,
- 0x03, 0xa0, 0x7c, 0x09, 0xaa, 0x4b, 0x5f, 0xa7, 0xed, 0x64, 0x35, 0x8e, 0xf7, 0x61, 0x5f, 0xec,
- 0xae, 0x53, 0xe7, 0x56, 0xa7, 0xce, 0xb5, 0x06, 0x6e, 0x44, 0x84, 0x85, 0x31, 0x89, 0x26, 0x24,
- 0xea, 0xcb, 0x4f, 0xca, 0xc3, 0x68, 0x5a, 0xf8, 0xb4, 0x58, 0x14, 0xf2, 0x10, 0x41, 0x0e, 0xe9,
- 0x3d, 0x72, 0x29, 0x1f, 0x25, 0xc7, 0x96, 0x13, 0xfa, 0x7d, 0x1c, 0xb9, 0x21, 0x8b, 0xc2, 0xaf,
- 0xe4, 0xc7, 0x87, 0xce, 0xa0, 0x3f, 0xd9, 0xed, 0xb3, 0xb1, 0xdb, 0xc7, 0x8c, 0xc6, 0x7d, 0xcc,
- 0x98, 0x47, 0x1d, 0xcc, 0x69, 0x18, 0xf4, 0x27, 0xb7, 0xb0, 0xc7, 0x46, 0xf8, 0x56, 0xdf, 0x25,
- 0x01, 0x89, 0x30, 0x27, 0x03, 0xc5, 0xb9, 0xf7, 0x8e, 0x1b, 0x86, 0xae, 0x47, 0xfa, 0x72, 0x75,
- 0x9c, 0x0c, 0xfb, 0xc4, 0x67, 0x5c, 0x8b, 0x35, 0xff, 0x72, 0x01, 0xd6, 0x0e, 0x71, 0x40, 0x87,
- 0x24, 0xe6, 0x36, 0x79, 0x91, 0x90, 0x98, 0xa3, 0xe7, 0xd0, 0x16, 0xca, 0x18, 0x8d, 0xed, 0xc6,
- 0xce, 0xca, 0xee, 0x81, 0x95, 0x6b, 0x63, 0xa5, 0xda, 0xc8, 0x8f, 0xdf, 0x38, 0x03, 0x6b, 0xb2,
- 0x6b, 0xb1, 0xb1, 0x6b, 0x09, 0x6d, 0xac, 0x82, 0x36, 0x56, 0xaa, 0x8d, 0x65, 0x67, 0xc7, 0xb2,
- 0x25, 0x57, 0xd4, 0x83, 0x4e, 0x44, 0x26, 0x34, 0xa6, 0x61, 0x60, 0x34, 0xb7, 0x1b, 0x3b, 0x5d,
- 0x3b, 0x5b, 0x23, 0x03, 0x96, 0x83, 0x70, 0x1f, 0x3b, 0x23, 0x62, 0xb4, 0xb6, 0x1b, 0x3b, 0x1d,
- 0x3b, 0x5d, 0xa2, 0x6d, 0x58, 0xc1, 0x8c, 0x3d, 0xc2, 0xc7, 0xc4, 0x7b, 0x48, 0xa6, 0x46, 0x5b,
- 0x12, 0x16, 0x41, 0x82, 0x16, 0x33, 0xf6, 0x18, 0xfb, 0xc4, 0x58, 0x94, 0xbb, 0xe9, 0x12, 0x5d,
- 0x87, 0x6e, 0x80, 0x7d, 0x12, 0x33, 0xec, 0x10, 0xa3, 0x23, 0xf7, 0x72, 0x00, 0xfa, 0x1d, 0x6c,
- 0x14, 0x14, 0x7f, 0x1a, 0x26, 0x91, 0x43, 0x0c, 0x90, 0x47, 0x7f, 0x32, 0xdf, 0xd1, 0xf7, 0xaa,
- 0x6c, 0xed, 0x59, 0x49, 0xe8, 0xd7, 0xb0, 0x28, 0x6f, 0xde, 0x58, 0xd9, 0x6e, 0x9d, 0xa9, 0xb5,
- 0x15, 0x5b, 0x14, 0xc0, 0x32, 0xf3, 0x12, 0x97, 0x06, 0xb1, 0x71, 0x41, 0x4a, 0x78, 0x36, 0x9f,
- 0x84, 0xfd, 0x30, 0x18, 0x52, 0xf7, 0x10, 0x07, 0xd8, 0x25, 0x3e, 0x09, 0xf8, 0x91, 0x64, 0x6e,
- 0xa7, 0x42, 0xd0, 0x4b, 0x58, 0x1f, 0x27, 0x31, 0x0f, 0x7d, 0xfa, 0x92, 0x3c, 0x61, 0x82, 0x36,
- 0x36, 0x2e, 0x4a, 0x6b, 0x3e, 0x9e, 0x4f, 0xf0, 0xc3, 0x0a, 0x57, 0x7b, 0x46, 0x8e, 0x70, 0x92,
- 0x71, 0x72, 0x4c, 0x7e, 0x46, 0x22, 0xe9, 0x5d, 0xab, 0xca, 0x49, 0x0a, 0x20, 0xe5, 0x46, 0x54,
- 0xaf, 0x62, 0x63, 0x6d, 0xbb, 0xa5, 0xdc, 0x28, 0x03, 0xa1, 0x1d, 0x58, 0x9b, 0x90, 0x88, 0x0e,
- 0xa7, 0x4f, 0xa9, 0x1b, 0x60, 0x9e, 0x44, 0xc4, 0x58, 0x97, 0xae, 0x58, 0x05, 0x23, 0x1f, 0x2e,
- 0x8e, 0x88, 0xe7, 0x0b, 0x93, 0xef, 0x47, 0x64, 0x10, 0x1b, 0x1b, 0xd2, 0xbe, 0xf7, 0xe7, 0xbf,
- 0x41, 0xc9, 0xce, 0x2e, 0x73, 0x17, 0x8a, 0x05, 0xa1, 0xad, 0x23, 0x45, 0xc5, 0x08, 0x52, 0x8a,
- 0x55, 0xc0, 0xe8, 0x06, 0xac, 0xf2, 0x08, 0x3b, 0x63, 0x1a, 0xb8, 0x87, 0x84, 0x8f, 0xc2, 0x81,
- 0x71, 0x49, 0x5a, 0xa2, 0x02, 0x45, 0x0e, 0x20, 0x12, 0xe0, 0x63, 0x8f, 0x0c, 0x94, 0x2f, 0x3e,
- 0x9b, 0x32, 0x12, 0x1b, 0x97, 0xe5, 0x29, 0x6e, 0x5b, 0x85, 0x0c, 0x55, 0x49, 0x10, 0xd6, 0xdd,
- 0x19, 0xaa, 0xbb, 0x01, 0x8f, 0xa6, 0x76, 0x0d, 0x3b, 0x34, 0x86, 0x15, 0x71, 0x8e, 0xd4, 0x15,
- 0xae, 0x48, 0x57, 0x78, 0x30, 0x9f, 0x8d, 0x0e, 0x72, 0x86, 0x76, 0x91, 0x3b, 0xb2, 0x00, 0x8d,
- 0x70, 0x7c, 0x98, 0x78, 0x9c, 0x32, 0x8f, 0x28, 0x35, 0x62, 0x63, 0x53, 0x9a, 0xa9, 0x66, 0x07,
- 0x3d, 0x04, 0x88, 0xc8, 0x30, 0xc5, 0xbb, 0x2a, 0x4f, 0x7e, 0xf3, 0xb4, 0x93, 0xdb, 0x19, 0xb6,
- 0x3a, 0x71, 0x81, 0xbc, 0x77, 0x17, 0xae, 0x9e, 0x60, 0x18, 0xb4, 0x0e, 0xad, 0x31, 0x99, 0xca,
- 0x84, 0xda, 0xb5, 0xc5, 0x27, 0xba, 0x0c, 0x8b, 0x13, 0xec, 0x25, 0x44, 0xa6, 0xc0, 0x8e, 0xad,
- 0x16, 0x77, 0x9a, 0x3f, 0x68, 0xf4, 0xfe, 0xd8, 0x80, 0xb5, 0x8a, 0x98, 0x1a, 0xfa, 0x5f, 0x15,
- 0xe9, 0xcf, 0xc0, 0xe9, 0x86, 0xcf, 0x70, 0xe4, 0x12, 0x5e, 0x50, 0xc4, 0xfc, 0x4f, 0x03, 0x8c,
- 0xca, 0xf9, 0x7f, 0x4e, 0xf9, 0xe8, 0x1e, 0xf5, 0x48, 0x8c, 0x3e, 0x81, 0xe5, 0x48, 0xc1, 0x74,
- 0x99, 0x78, 0xe7, 0x14, 0xb3, 0x1d, 0x2c, 0xd8, 0x29, 0x36, 0xfa, 0x0c, 0x3a, 0x3e, 0xe1, 0x78,
- 0x80, 0x39, 0xd6, 0xba, 0x6f, 0xd7, 0x51, 0x0a, 0x29, 0x87, 0x1a, 0xef, 0x60, 0xc1, 0xce, 0x68,
- 0xd0, 0x47, 0xb0, 0xe8, 0x8c, 0x92, 0x60, 0x2c, 0x0b, 0xc4, 0xca, 0xee, 0xbb, 0x27, 0x11, 0xef,
- 0x0b, 0xa4, 0x83, 0x05, 0x5b, 0x61, 0x7f, 0xbe, 0x04, 0x6d, 0x86, 0x23, 0x6e, 0xde, 0x83, 0xcb,
- 0x75, 0x22, 0x44, 0x55, 0x72, 0x46, 0xc4, 0x19, 0xc7, 0x89, 0xaf, 0xcd, 0x9c, 0xad, 0x11, 0x82,
- 0x76, 0x4c, 0x5f, 0x2a, 0x53, 0xb7, 0x6c, 0xf9, 0x6d, 0x7e, 0x1f, 0x36, 0x66, 0xa4, 0x89, 0x4b,
- 0x55, 0xba, 0x09, 0x0e, 0x17, 0xb4, 0x68, 0x33, 0x81, 0x2b, 0xcf, 0xa4, 0x2d, 0xb2, 0xd4, 0x7c,
- 0x1e, 0x75, 0xd6, 0x3c, 0x80, 0xcd, 0xaa, 0xd8, 0x98, 0x85, 0x41, 0x4c, 0x44, 0x94, 0xc8, 0x5c,
- 0x46, 0xc9, 0x20, 0xdf, 0x95, 0x5a, 0x74, 0xec, 0x9a, 0x1d, 0xf3, 0xf7, 0x4d, 0xd8, 0xb4, 0x49,
- 0x1c, 0x7a, 0x13, 0x92, 0x26, 0x9a, 0xf3, 0x69, 0x15, 0x7e, 0x09, 0x2d, 0xcc, 0x98, 0x76, 0x93,
- 0x07, 0x67, 0x56, 0x8c, 0x6d, 0xc1, 0x15, 0x7d, 0x00, 0x1b, 0xd8, 0x3f, 0xa6, 0x6e, 0x12, 0x26,
- 0x71, 0x7a, 0x2c, 0xe9, 0x54, 0x5d, 0x7b, 0x76, 0xc3, 0x74, 0xe0, 0xea, 0x8c, 0x09, 0xb4, 0x39,
- 0x8b, 0x0d, 0x4d, 0xa3, 0xd2, 0xd0, 0xd4, 0x0a, 0x69, 0x9e, 0x24, 0xe4, 0x1f, 0x0d, 0x58, 0xcf,
- 0x43, 0x47, 0xb3, 0xbf, 0x0e, 0x5d, 0x5f, 0xc3, 0x62, 0xa3, 0x21, 0x0b, 0x56, 0x0e, 0x28, 0xf7,
- 0x36, 0xcd, 0x6a, 0x6f, 0xb3, 0x09, 0x4b, 0xaa, 0xf5, 0xd4, 0x07, 0xd3, 0xab, 0x92, 0xca, 0xed,
- 0x8a, 0xca, 0x5b, 0x00, 0x71, 0x96, 0xbf, 0x8c, 0x25, 0xb9, 0x5b, 0x80, 0x20, 0x13, 0x2e, 0xa8,
- 0x4a, 0x68, 0x93, 0x38, 0xf1, 0xb8, 0xb1, 0x2c, 0x31, 0x4a, 0x30, 0x33, 0x84, 0xb5, 0x47, 0x54,
- 0x9c, 0x61, 0x18, 0x9f, 0x8f, 0xb3, 0x7f, 0x0c, 0x6d, 0x21, 0x4c, 0x1c, 0xec, 0x38, 0xc2, 0x81,
- 0x33, 0x22, 0xa9, 0xad, 0xb2, 0xb5, 0x08, 0x63, 0x8e, 0xdd, 0xd8, 0x68, 0x4a, 0xb8, 0xfc, 0x36,
- 0xff, 0xda, 0x54, 0x9a, 0xee, 0x31, 0x16, 0x7f, 0xf3, 0xed, 0x6f, 0x7d, 0x41, 0x6e, 0xcd, 0x16,
- 0xe4, 0x8a, 0xca, 0x5f, 0xa7, 0x20, 0x9f, 0x51, 0x99, 0x32, 0x13, 0x58, 0xde, 0x63, 0x4c, 0x28,
- 0x82, 0x6e, 0x41, 0x1b, 0x33, 0xa6, 0x0c, 0x5e, 0xc9, 0xc8, 0x1a, 0x45, 0xfc, 0xd7, 0x2a, 0x49,
- 0xd4, 0xde, 0x27, 0xd0, 0xcd, 0x40, 0xaf, 0x13, 0xdb, 0x2d, 0x8a, 0xdd, 0x06, 0x50, 0x1d, 0xe7,
- 0x83, 0x60, 0x18, 0x8a, 0x2b, 0x15, 0xce, 0xae, 0x49, 0xe5, 0xb7, 0x79, 0x27, 0xc5, 0x90, 0xba,
- 0x7d, 0x00, 0x8b, 0x94, 0x13, 0x3f, 0x55, 0x6e, 0xb3, 0xa8, 0x5c, 0xce, 0xc8, 0x56, 0x48, 0xe6,
- 0x3f, 0x3b, 0x70, 0x4d, 0xdc, 0xd8, 0x53, 0x19, 0x26, 0x7b, 0x8c, 0x7d, 0x41, 0x38, 0xa6, 0x5e,
- 0xfc, 0x93, 0x84, 0x44, 0xd3, 0xb7, 0xec, 0x18, 0x2e, 0x2c, 0xa9, 0x28, 0xd3, 0xf9, 0xee, 0xcc,
- 0x87, 0x0f, 0xcd, 0x3e, 0x9f, 0x38, 0x5a, 0x6f, 0x67, 0xe2, 0xa8, 0x9b, 0x00, 0xda, 0xe7, 0x34,
- 0x01, 0x9c, 0x3c, 0x04, 0x16, 0x46, 0xcb, 0xa5, 0xf2, 0x68, 0x59, 0xd3, 0x58, 0x2f, 0xbf, 0x69,
- 0x63, 0xdd, 0xa9, 0x6d, 0xac, 0xfd, 0xda, 0x38, 0xee, 0x4a, 0x73, 0xff, 0xa8, 0xe8, 0x81, 0x27,
- 0xfa, 0xda, 0x3c, 0x2d, 0x36, 0xbc, 0xd5, 0x16, 0xfb, 0xa7, 0xa5, 0x96, 0x59, 0x0d, 0xad, 0x1f,
- 0xbd, 0xd9, 0x99, 0xbe, 0x4d, 0xcd, 0xf3, 0x1f, 0x64, 0xcf, 0xc4, 0xc2, 0xdc, 0x06, 0x59, 0x41,
- 0x17, 0x75, 0x48, 0x94, 0x56, 0x9d, 0xb4, 0xc4, 0x37, 0xba, 0x09, 0x6d, 0x61, 0x64, 0xdd, 0xd4,
- 0x5e, 0x2d, 0xda, 0x53, 0xdc, 0xc4, 0x1e, 0x63, 0x4f, 0x19, 0x71, 0x6c, 0x89, 0x84, 0xee, 0x40,
- 0x37, 0x73, 0x7c, 0x1d, 0x59, 0xd7, 0x8b, 0x14, 0x59, 0x9c, 0xa4, 0x64, 0x39, 0xba, 0xa0, 0x1d,
- 0xd0, 0x88, 0x38, 0xb2, 0xe5, 0x5b, 0x9c, 0xa5, 0xfd, 0x22, 0xdd, 0xcc, 0x68, 0x33, 0x74, 0x74,
- 0x0b, 0x96, 0xd4, 0x94, 0x2f, 0x23, 0x68, 0x65, 0xf7, 0xda, 0x6c, 0x32, 0x4d, 0xa9, 0x34, 0xa2,
- 0xf9, 0xf7, 0x06, 0xbc, 0x97, 0x3b, 0x44, 0x1a, 0x4d, 0x69, 0xd7, 0xfd, 0xcd, 0x57, 0xdc, 0x1b,
- 0xb0, 0x2a, 0xdb, 0xfc, 0x7c, 0xd8, 0x57, 0xef, 0x4e, 0x15, 0xa8, 0xf9, 0xb7, 0x26, 0xac, 0x14,
- 0x2e, 0xa2, 0xae, 0xf0, 0x88, 0xc6, 0x49, 0xde, 0xbf, 0x1c, 0x90, 0x64, 0x72, 0xed, 0xda, 0x05,
- 0x08, 0x1a, 0x03, 0x30, 0x1c, 0x61, 0x9f, 0x70, 0x12, 0x89, 0x8c, 0x28, 0x22, 0xe7, 0xe1, 0xfc,
- 0x51, 0x7a, 0x94, 0xf2, 0xb4, 0x0b, 0xec, 0x45, 0xe7, 0x27, 0x45, 0xc7, 0x3a, 0x0f, 0xea, 0x15,
- 0xfa, 0x2d, 0xac, 0x0e, 0xa9, 0x47, 0x8e, 0x72, 0x45, 0x96, 0xa4, 0x22, 0x4f, 0xe6, 0x57, 0xe4,
- 0x5e, 0x91, 0xaf, 0x5d, 0x11, 0x63, 0xbe, 0x0f, 0xeb, 0x55, 0xbf, 0x14, 0x4a, 0x52, 0x1f, 0xbb,
- 0x99, 0xb5, 0xf4, 0xca, 0x44, 0xb0, 0x5e, 0xf5, 0x43, 0xf3, 0xbf, 0x4d, 0xb8, 0x92, 0xb1, 0xdb,
- 0x0b, 0x82, 0x30, 0x09, 0x1c, 0xf9, 0x00, 0x55, 0x7b, 0x17, 0x97, 0x61, 0x91, 0x53, 0xee, 0x65,
- 0x0d, 0x84, 0x5c, 0x88, 0x1a, 0xc0, 0xc3, 0xd0, 0xe3, 0x94, 0xe9, 0x7e, 0x38, 0x5d, 0x2a, 0x1f,
- 0x79, 0x91, 0xd0, 0x88, 0x0c, 0x64, 0x44, 0x75, 0xec, 0x6c, 0x2d, 0xf6, 0x44, 0x77, 0x20, 0xdb,
- 0x61, 0x65, 0xcc, 0x6c, 0x2d, 0xfd, 0x27, 0xf4, 0x3c, 0xe2, 0x08, 0x73, 0x14, 0x1a, 0xe6, 0x0a,
- 0x54, 0x36, 0xe2, 0x3c, 0xa2, 0x81, 0xab, 0xdb, 0x65, 0xbd, 0x12, 0x7a, 0xe2, 0x28, 0xc2, 0x53,
- 0xa3, 0x23, 0x0d, 0xa0, 0x16, 0xe8, 0x87, 0xd0, 0xf2, 0x31, 0xd3, 0x05, 0xe3, 0xfd, 0x52, 0x94,
- 0xd5, 0x59, 0xc0, 0x3a, 0xc4, 0x4c, 0x65, 0x54, 0x41, 0xd6, 0xfb, 0x18, 0x3a, 0x29, 0xe0, 0x6b,
- 0xb5, 0x56, 0x5f, 0xc1, 0xc5, 0x52, 0x10, 0xa3, 0x2f, 0x61, 0x33, 0xf7, 0xa8, 0xa2, 0x40, 0xdd,
- 0x4c, 0xbd, 0xf7, 0x5a, 0xcd, 0xec, 0x13, 0x18, 0x98, 0x2f, 0x60, 0x43, 0xb8, 0xcc, 0xfe, 0x08,
- 0x47, 0xfc, 0x9c, 0x46, 0x84, 0x4f, 0xa1, 0x9b, 0x89, 0xac, 0xf5, 0x99, 0x1e, 0x74, 0x26, 0xe9,
- 0xc3, 0xa0, 0x9a, 0x11, 0xb2, 0xb5, 0xb9, 0x07, 0xa8, 0xa8, 0xaf, 0xce, 0xe4, 0x37, 0xcb, 0xcd,
- 0xe5, 0x95, 0x6a, 0xda, 0x96, 0xe8, 0xba, 0xb7, 0xdc, 0xfd, 0xd3, 0x32, 0x6c, 0xe4, 0xa9, 0x50,
- 0xfc, 0xa5, 0x0e, 0x41, 0x4f, 0x60, 0xfd, 0xbe, 0x7e, 0xaf, 0x4f, 0x27, 0x3f, 0x74, 0xda, 0x53,
- 0x4a, 0xef, 0x7a, 0xfd, 0xa6, 0xd2, 0xc8, 0x5c, 0x40, 0x0e, 0x5c, 0xab, 0x32, 0xcc, 0x5f, 0x6d,
- 0xbe, 0x7b, 0x0a, 0xe7, 0x0c, 0xeb, 0x75, 0x22, 0x76, 0x1a, 0xe8, 0x4b, 0x58, 0x2d, 0xbf, 0x2d,
- 0xa0, 0x92, 0x2f, 0xd4, 0x3e, 0x77, 0xf4, 0xcc, 0xd3, 0x50, 0x32, 0xfd, 0x9f, 0x8b, 0x02, 0x5e,
- 0x1a, 0xb4, 0x91, 0x59, 0x6e, 0x2f, 0xea, 0x1e, 0x22, 0x7a, 0xdf, 0x39, 0x15, 0x27, 0xe3, 0xfe,
- 0x29, 0x74, 0xd2, 0xc1, 0xb4, 0x6c, 0xe6, 0xca, 0xb8, 0xda, 0x5b, 0x2f, 0xf3, 0x1b, 0xc6, 0xe6,
- 0x02, 0xfa, 0x4c, 0x11, 0x8b, 0xc1, 0x65, 0x96, 0xb8, 0x30, 0x8e, 0xf5, 0x2e, 0xd5, 0x8c, 0x40,
- 0xe6, 0x02, 0xfa, 0x31, 0xac, 0x88, 0xaf, 0x23, 0xfd, 0x52, 0xbe, 0x69, 0xa9, 0x1f, 0x66, 0xac,
- 0xf4, 0x87, 0x19, 0xeb, 0xae, 0xcf, 0xf8, 0xb4, 0x57, 0x33, 0xa3, 0x68, 0x06, 0xcf, 0xe1, 0xe2,
- 0x7d, 0xc2, 0xf3, 0x96, 0x02, 0x7d, 0xef, 0x8d, 0x1a, 0xaf, 0x9e, 0x59, 0x45, 0x9b, 0xed, 0x4a,
- 0xcc, 0x05, 0xf4, 0xe7, 0x06, 0x5c, 0xba, 0x4f, 0x78, 0xb5, 0x48, 0xa3, 0x0f, 0xeb, 0x85, 0x9c,
- 0x50, 0xcc, 0x7b, 0x8f, 0xe7, 0x8d, 0xdb, 0x32, 0x5b, 0x73, 0x01, 0x1d, 0xc9, 0x63, 0xe7, 0xf1,
- 0x87, 0xde, 0xad, 0x0d, 0xb4, 0xcc, 0xfc, 0x5b, 0x27, 0x6d, 0xa7, 0x47, 0xfd, 0x7c, 0xef, 0x5f,
- 0xaf, 0xb6, 0x1a, 0xff, 0x7e, 0xb5, 0xd5, 0xf8, 0xdf, 0xab, 0xad, 0xc6, 0x2f, 0x6e, 0xbf, 0xe6,
- 0xe7, 0xb6, 0xc2, 0x2f, 0x78, 0x98, 0x51, 0xc7, 0xa3, 0x24, 0xe0, 0xc7, 0x4b, 0xf2, 0xd6, 0x6e,
- 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x46, 0x3e, 0x2d, 0xff, 0xe0, 0x1b, 0x00, 0x00,
+ // 2096 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xdb, 0x6e, 0x1b, 0xc7,
+ 0xf9, 0xe7, 0x92, 0x94, 0x44, 0x7e, 0x92, 0x25, 0x6a, 0xac, 0xc3, 0x9a, 0x71, 0x04, 0x65, 0xff,
+ 0x7f, 0x1b, 0xaa, 0x9d, 0x90, 0x90, 0x8c, 0xc4, 0x85, 0x93, 0xa6, 0x50, 0x14, 0x5b, 0x72, 0x6c,
+ 0xd9, 0xea, 0xda, 0x6d, 0x91, 0xd6, 0x6d, 0x31, 0x5c, 0x0e, 0xc9, 0x09, 0xf7, 0x30, 0xde, 0x9d,
+ 0x55, 0x20, 0x03, 0xbd, 0x28, 0x5a, 0xf4, 0x11, 0x8a, 0xa2, 0xaf, 0x51, 0x14, 0xbd, 0xec, 0x55,
+ 0x0f, 0x97, 0x41, 0x5f, 0xa0, 0x85, 0x6f, 0xfa, 0x1a, 0xc5, 0xcc, 0xce, 0x1e, 0xb9, 0x92, 0x9d,
+ 0x52, 0x56, 0x50, 0xf4, 0xc6, 0xde, 0x99, 0xf9, 0xe6, 0x3b, 0xcd, 0x77, 0xf8, 0xcd, 0x50, 0x70,
+ 0xdd, 0x27, 0xcc, 0x0b, 0x88, 0x7f, 0x4c, 0xfc, 0xae, 0xfc, 0xa4, 0xdc, 0xf3, 0x4f, 0x32, 0x9f,
+ 0x1d, 0xe6, 0x7b, 0xdc, 0x43, 0x90, 0xce, 0xb4, 0x1f, 0x0e, 0x29, 0x1f, 0x85, 0xbd, 0x8e, 0xe5,
+ 0x39, 0x5d, 0xec, 0x0f, 0x3d, 0xe6, 0x7b, 0x5f, 0xc8, 0x8f, 0xf7, 0xac, 0x7e, 0xf7, 0x78, 0xa7,
+ 0xcb, 0xc6, 0xc3, 0x2e, 0x66, 0x34, 0xe8, 0x62, 0xc6, 0x6c, 0x6a, 0x61, 0x4e, 0x3d, 0xb7, 0x7b,
+ 0xbc, 0x8d, 0x6d, 0x36, 0xc2, 0xdb, 0xdd, 0x21, 0x71, 0x89, 0x8f, 0x39, 0xe9, 0x47, 0x9c, 0xdb,
+ 0x6f, 0x0d, 0x3d, 0x6f, 0x68, 0x93, 0xae, 0x1c, 0xf5, 0xc2, 0x41, 0x97, 0x38, 0x8c, 0x2b, 0xb1,
+ 0xc6, 0x6f, 0x17, 0x60, 0xe9, 0x10, 0xbb, 0x74, 0x40, 0x02, 0x6e, 0x92, 0xe7, 0x21, 0x09, 0x38,
+ 0x7a, 0x06, 0x75, 0xa1, 0x8c, 0xae, 0x6d, 0x6a, 0x5b, 0xf3, 0x3b, 0x07, 0x9d, 0x54, 0x9b, 0x4e,
+ 0xac, 0x8d, 0xfc, 0xf8, 0x99, 0xd5, 0xef, 0x1c, 0xef, 0x74, 0xd8, 0x78, 0xd8, 0x11, 0xda, 0x74,
+ 0x32, 0xda, 0x74, 0x62, 0x6d, 0x3a, 0x66, 0x62, 0x96, 0x29, 0xb9, 0xa2, 0x36, 0x34, 0x7c, 0x72,
+ 0x4c, 0x03, 0xea, 0xb9, 0x7a, 0x75, 0x53, 0xdb, 0x6a, 0x9a, 0xc9, 0x18, 0xe9, 0x30, 0xe7, 0x7a,
+ 0x7b, 0xd8, 0x1a, 0x11, 0xbd, 0xb6, 0xa9, 0x6d, 0x35, 0xcc, 0x78, 0x88, 0x36, 0x61, 0x1e, 0x33,
+ 0xf6, 0x10, 0xf7, 0x88, 0xfd, 0x80, 0x9c, 0xe8, 0x75, 0xb9, 0x31, 0x3b, 0x25, 0xf6, 0x62, 0xc6,
+ 0x1e, 0x61, 0x87, 0xe8, 0x33, 0x72, 0x35, 0x1e, 0xa2, 0xab, 0xd0, 0x74, 0xb1, 0x43, 0x02, 0x86,
+ 0x2d, 0xa2, 0x37, 0xe4, 0x5a, 0x3a, 0x81, 0x7e, 0x0e, 0xcb, 0x19, 0xc5, 0x9f, 0x78, 0xa1, 0x6f,
+ 0x11, 0x1d, 0xa4, 0xe9, 0x8f, 0xa7, 0x33, 0x7d, 0xb7, 0xc8, 0xd6, 0x9c, 0x94, 0x84, 0x7e, 0x0a,
+ 0x33, 0xf2, 0xe4, 0xf5, 0xf9, 0xcd, 0xda, 0xb9, 0x7a, 0x3b, 0x62, 0x8b, 0x5c, 0x98, 0x63, 0x76,
+ 0x38, 0xa4, 0x6e, 0xa0, 0x2f, 0x48, 0x09, 0x4f, 0xa7, 0x93, 0xb0, 0xe7, 0xb9, 0x03, 0x3a, 0x3c,
+ 0xc4, 0x2e, 0x1e, 0x12, 0x87, 0xb8, 0xfc, 0x48, 0x32, 0x37, 0x63, 0x21, 0xe8, 0x05, 0xb4, 0xc6,
+ 0x61, 0xc0, 0x3d, 0x87, 0xbe, 0x20, 0x8f, 0x99, 0xd8, 0x1b, 0xe8, 0x97, 0xa4, 0x37, 0x1f, 0x4d,
+ 0x27, 0xf8, 0x41, 0x81, 0xab, 0x39, 0x21, 0x47, 0x04, 0xc9, 0x38, 0xec, 0x91, 0x1f, 0x10, 0x5f,
+ 0x46, 0xd7, 0x62, 0x14, 0x24, 0x99, 0xa9, 0x28, 0x8c, 0xa8, 0x1a, 0x05, 0xfa, 0xd2, 0x66, 0x2d,
+ 0x0a, 0xa3, 0x64, 0x0a, 0x6d, 0xc1, 0xd2, 0x31, 0xf1, 0xe9, 0xe0, 0xe4, 0x09, 0x1d, 0xba, 0x98,
+ 0x87, 0x3e, 0xd1, 0x5b, 0x32, 0x14, 0x8b, 0xd3, 0xc8, 0x81, 0x4b, 0x23, 0x62, 0x3b, 0xc2, 0xe5,
+ 0x7b, 0x3e, 0xe9, 0x07, 0xfa, 0xb2, 0xf4, 0xef, 0xfe, 0xf4, 0x27, 0x28, 0xd9, 0x99, 0x79, 0xee,
+ 0x42, 0x31, 0xd7, 0x33, 0x55, 0xa6, 0x44, 0x39, 0x82, 0x22, 0xc5, 0x0a, 0xd3, 0xe8, 0x3a, 0x2c,
+ 0x72, 0x1f, 0x5b, 0x63, 0xea, 0x0e, 0x0f, 0x09, 0x1f, 0x79, 0x7d, 0xfd, 0xb2, 0xf4, 0x44, 0x61,
+ 0x16, 0x59, 0x80, 0x88, 0x8b, 0x7b, 0x36, 0xe9, 0x47, 0xb1, 0xf8, 0xf4, 0x84, 0x91, 0x40, 0x5f,
+ 0x91, 0x56, 0xdc, 0xea, 0x64, 0x2a, 0x54, 0xa1, 0x40, 0x74, 0xee, 0x4e, 0xec, 0xba, 0xeb, 0x72,
+ 0xff, 0xc4, 0x2c, 0x61, 0x87, 0xc6, 0x30, 0x2f, 0xec, 0x88, 0x43, 0x61, 0x55, 0x86, 0xc2, 0xfd,
+ 0xe9, 0x7c, 0x74, 0x90, 0x32, 0x34, 0xb3, 0xdc, 0x51, 0x07, 0xd0, 0x08, 0x07, 0x87, 0xa1, 0xcd,
+ 0x29, 0xb3, 0x49, 0xa4, 0x46, 0xa0, 0xaf, 0x49, 0x37, 0x95, 0xac, 0xa0, 0x07, 0x00, 0x3e, 0x19,
+ 0xc4, 0x74, 0xeb, 0xd2, 0xf2, 0x9b, 0x67, 0x59, 0x6e, 0x26, 0xd4, 0x91, 0xc5, 0x99, 0xed, 0xed,
+ 0xbb, 0xb0, 0x7e, 0x8a, 0x63, 0x50, 0x0b, 0x6a, 0x63, 0x72, 0x22, 0x0b, 0x6a, 0xd3, 0x14, 0x9f,
+ 0x68, 0x05, 0x66, 0x8e, 0xb1, 0x1d, 0x12, 0x59, 0x02, 0x1b, 0x66, 0x34, 0xb8, 0x53, 0xfd, 0xb6,
+ 0xd6, 0xfe, 0xb5, 0x06, 0x4b, 0x05, 0x31, 0x25, 0xfb, 0x7f, 0x92, 0xdd, 0x7f, 0x0e, 0x41, 0x37,
+ 0x78, 0x8a, 0xfd, 0x21, 0xe1, 0x19, 0x45, 0x8c, 0xbf, 0x6b, 0xa0, 0x17, 0xec, 0xff, 0x21, 0xe5,
+ 0xa3, 0x7b, 0xd4, 0x26, 0x01, 0xba, 0x0d, 0x73, 0x7e, 0x34, 0xa7, 0xda, 0xc4, 0x5b, 0x67, 0xb8,
+ 0xed, 0xa0, 0x62, 0xc6, 0xd4, 0xe8, 0x63, 0x68, 0x38, 0x84, 0xe3, 0x3e, 0xe6, 0x58, 0xe9, 0xbe,
+ 0x59, 0xb6, 0x53, 0x48, 0x39, 0x54, 0x74, 0x07, 0x15, 0x33, 0xd9, 0x83, 0xde, 0x87, 0x19, 0x6b,
+ 0x14, 0xba, 0x63, 0xd9, 0x20, 0xe6, 0x77, 0xde, 0x3e, 0x6d, 0xf3, 0x9e, 0x20, 0x3a, 0xa8, 0x98,
+ 0x11, 0xf5, 0x27, 0xb3, 0x50, 0x67, 0xd8, 0xe7, 0xc6, 0x3d, 0x58, 0x29, 0x13, 0x21, 0xba, 0x92,
+ 0x35, 0x22, 0xd6, 0x38, 0x08, 0x1d, 0xe5, 0xe6, 0x64, 0x8c, 0x10, 0xd4, 0x03, 0xfa, 0x22, 0x72,
+ 0x75, 0xcd, 0x94, 0xdf, 0xc6, 0xb7, 0x60, 0x79, 0x42, 0x9a, 0x38, 0xd4, 0x48, 0x37, 0xc1, 0x61,
+ 0x41, 0x89, 0x36, 0x42, 0x58, 0x7d, 0x2a, 0x7d, 0x91, 0x94, 0xe6, 0x8b, 0xe8, 0xb3, 0xc6, 0x01,
+ 0xac, 0x15, 0xc5, 0x06, 0xcc, 0x73, 0x03, 0x22, 0xb2, 0x44, 0xd6, 0x32, 0x4a, 0xfa, 0xe9, 0xaa,
+ 0xd4, 0xa2, 0x61, 0x96, 0xac, 0x18, 0xbf, 0xa8, 0xc2, 0x9a, 0x49, 0x02, 0xcf, 0x3e, 0x26, 0x71,
+ 0xa1, 0xb9, 0x18, 0xa8, 0xf0, 0x63, 0xa8, 0x61, 0xc6, 0x54, 0x98, 0xdc, 0x3f, 0xb7, 0x66, 0x6c,
+ 0x0a, 0xae, 0xe8, 0x5d, 0x58, 0xc6, 0x4e, 0x8f, 0x0e, 0x43, 0x2f, 0x0c, 0x62, 0xb3, 0x64, 0x50,
+ 0x35, 0xcd, 0xc9, 0x05, 0xc3, 0x82, 0xf5, 0x09, 0x17, 0x28, 0x77, 0x66, 0x01, 0x8d, 0x56, 0x00,
+ 0x34, 0xa5, 0x42, 0xaa, 0xa7, 0x09, 0xf9, 0x8b, 0x06, 0xad, 0x34, 0x75, 0x14, 0xfb, 0xab, 0xd0,
+ 0x74, 0xd4, 0x5c, 0xa0, 0x6b, 0xb2, 0x61, 0xa5, 0x13, 0x79, 0x6c, 0x53, 0x2d, 0x62, 0x9b, 0x35,
+ 0x98, 0x8d, 0xa0, 0xa7, 0x32, 0x4c, 0x8d, 0x72, 0x2a, 0xd7, 0x0b, 0x2a, 0x6f, 0x00, 0x04, 0x49,
+ 0xfd, 0xd2, 0x67, 0xe5, 0x6a, 0x66, 0x06, 0x19, 0xb0, 0x10, 0x75, 0x42, 0x93, 0x04, 0xa1, 0xcd,
+ 0xf5, 0x39, 0x49, 0x91, 0x9b, 0x33, 0x3c, 0x58, 0x7a, 0x48, 0x85, 0x0d, 0x83, 0xe0, 0x62, 0x82,
+ 0xfd, 0x03, 0xa8, 0x0b, 0x61, 0xc2, 0xb0, 0x9e, 0x8f, 0x5d, 0x6b, 0x44, 0x62, 0x5f, 0x25, 0x63,
+ 0x91, 0xc6, 0x1c, 0x0f, 0x03, 0xbd, 0x2a, 0xe7, 0xe5, 0xb7, 0xf1, 0xc7, 0x6a, 0xa4, 0xe9, 0x2e,
+ 0x63, 0xc1, 0x37, 0x0f, 0x7f, 0xcb, 0x1b, 0x72, 0x6d, 0xb2, 0x21, 0x17, 0x54, 0xfe, 0x3a, 0x0d,
+ 0xf9, 0x9c, 0xda, 0x94, 0x11, 0xc2, 0xdc, 0x2e, 0x63, 0x42, 0x11, 0xb4, 0x0d, 0x75, 0xcc, 0x58,
+ 0xe4, 0xf0, 0x42, 0x45, 0x56, 0x24, 0xe2, 0x7f, 0xa5, 0x92, 0x24, 0x6d, 0xdf, 0x86, 0x66, 0x32,
+ 0xf5, 0x2a, 0xb1, 0xcd, 0xac, 0xd8, 0x4d, 0x80, 0x08, 0x71, 0xde, 0x77, 0x07, 0x9e, 0x38, 0x52,
+ 0x11, 0xec, 0x6a, 0xab, 0xfc, 0x36, 0xee, 0xc4, 0x14, 0x52, 0xb7, 0x77, 0x61, 0x86, 0x72, 0xe2,
+ 0xc4, 0xca, 0xad, 0x65, 0x95, 0x4b, 0x19, 0x99, 0x11, 0x91, 0xf1, 0xd7, 0x06, 0x5c, 0x11, 0x27,
+ 0xf6, 0x44, 0xa6, 0xc9, 0x2e, 0x63, 0x9f, 0x12, 0x8e, 0xa9, 0x1d, 0x7c, 0x2f, 0x24, 0xfe, 0xc9,
+ 0x1b, 0x0e, 0x8c, 0x21, 0xcc, 0x46, 0x59, 0xa6, 0xea, 0xdd, 0xb9, 0x5f, 0x3e, 0x14, 0xfb, 0xf4,
+ 0xc6, 0x51, 0x7b, 0x33, 0x37, 0x8e, 0xb2, 0x1b, 0x40, 0xfd, 0x82, 0x6e, 0x00, 0xa7, 0x5f, 0x02,
+ 0x33, 0x57, 0xcb, 0xd9, 0xfc, 0xd5, 0xb2, 0x04, 0x58, 0xcf, 0xbd, 0x2e, 0xb0, 0x6e, 0x94, 0x02,
+ 0x6b, 0xa7, 0x34, 0x8f, 0x9b, 0xd2, 0xdd, 0xdf, 0xc9, 0x46, 0xe0, 0xa9, 0xb1, 0x36, 0x0d, 0xc4,
+ 0x86, 0x37, 0x0a, 0xb1, 0xbf, 0x9f, 0x83, 0xcc, 0xd1, 0xa5, 0xf5, 0xfd, 0xd7, 0xb3, 0xe9, 0x7f,
+ 0x09, 0x3c, 0xff, 0x4a, 0x62, 0x26, 0xe6, 0xa5, 0x3e, 0x48, 0x1a, 0xba, 0xe8, 0x43, 0xa2, 0xb5,
+ 0xaa, 0xa2, 0x25, 0xbe, 0xd1, 0x4d, 0xa8, 0x0b, 0x27, 0x2b, 0x50, 0xbb, 0x9e, 0xf5, 0xa7, 0x38,
+ 0x89, 0x5d, 0xc6, 0x9e, 0x30, 0x62, 0x99, 0x92, 0x08, 0xdd, 0x81, 0x66, 0x12, 0xf8, 0x2a, 0xb3,
+ 0xae, 0x66, 0x77, 0x24, 0x79, 0x12, 0x6f, 0x4b, 0xc9, 0xc5, 0xde, 0x3e, 0xf5, 0x89, 0x25, 0x21,
+ 0xdf, 0xcc, 0xe4, 0xde, 0x4f, 0xe3, 0xc5, 0x64, 0x6f, 0x42, 0x8e, 0xb6, 0x61, 0x36, 0xba, 0xe5,
+ 0xcb, 0x0c, 0x9a, 0xdf, 0xb9, 0x32, 0x59, 0x4c, 0xe3, 0x5d, 0x8a, 0xd0, 0xf8, 0xb3, 0x06, 0xef,
+ 0xa4, 0x01, 0x11, 0x67, 0x53, 0x8c, 0xba, 0xbf, 0xf9, 0x8e, 0x7b, 0x1d, 0x16, 0x25, 0xcc, 0x4f,
+ 0x2f, 0xfb, 0xd1, 0xbb, 0x53, 0x61, 0xd6, 0xf8, 0x83, 0x06, 0xd7, 0x26, 0xed, 0xd8, 0x1b, 0x61,
+ 0x9f, 0x27, 0xc7, 0x7b, 0x11, 0xb6, 0xc4, 0x0d, 0xaf, 0x9a, 0x36, 0xbc, 0x9c, 0x7d, 0xb5, 0xbc,
+ 0x7d, 0xc6, 0x9f, 0xaa, 0x30, 0x9f, 0x09, 0xa0, 0xb2, 0x86, 0x29, 0x00, 0x9f, 0x8c, 0x5b, 0x79,
+ 0xb1, 0x93, 0x4d, 0xa1, 0x69, 0x66, 0x66, 0xd0, 0x18, 0x80, 0x61, 0x1f, 0x3b, 0x84, 0x13, 0x5f,
+ 0x54, 0x72, 0x91, 0xf1, 0x0f, 0xa6, 0xaf, 0x2e, 0x47, 0x31, 0x4f, 0x33, 0xc3, 0x5e, 0x20, 0x56,
+ 0x29, 0x3a, 0x50, 0xf5, 0x5b, 0x8d, 0xd0, 0x97, 0xb0, 0x38, 0xa0, 0x36, 0x39, 0x4a, 0x15, 0x99,
+ 0x95, 0x8a, 0x3c, 0x9e, 0x5e, 0x91, 0x7b, 0x59, 0xbe, 0x66, 0x41, 0x8c, 0x71, 0x03, 0x5a, 0xc5,
+ 0x7c, 0x12, 0x4a, 0x52, 0x07, 0x0f, 0x13, 0x6f, 0xa9, 0x91, 0x81, 0xa0, 0x55, 0xcc, 0x1f, 0xe3,
+ 0x1f, 0x55, 0x58, 0x4d, 0xd8, 0xed, 0xba, 0xae, 0x17, 0xba, 0x96, 0x7c, 0x38, 0x2b, 0x3d, 0x8b,
+ 0x15, 0x98, 0xe1, 0x94, 0xdb, 0x09, 0xf0, 0x91, 0x03, 0xd1, 0xbb, 0xb8, 0xe7, 0xd9, 0x9c, 0x32,
+ 0x75, 0xc0, 0xf1, 0x30, 0x3a, 0xfb, 0xe7, 0x21, 0xf5, 0x49, 0x5f, 0x56, 0x82, 0x86, 0x99, 0x8c,
+ 0xc5, 0x9a, 0x40, 0x35, 0x12, 0xc6, 0x47, 0xce, 0x4c, 0xc6, 0x32, 0xee, 0x3d, 0xdb, 0x26, 0x96,
+ 0x70, 0x47, 0x06, 0xe8, 0x17, 0x66, 0xe5, 0x05, 0x82, 0xfb, 0xd4, 0x1d, 0x2a, 0x98, 0xaf, 0x46,
+ 0x42, 0x4f, 0xec, 0xfb, 0xf8, 0x44, 0x6f, 0x48, 0x07, 0x44, 0x03, 0xf4, 0x11, 0xd4, 0x1c, 0xcc,
+ 0x54, 0xa3, 0xbb, 0x91, 0xab, 0x0e, 0x65, 0x1e, 0xe8, 0x1c, 0x62, 0x16, 0x75, 0x02, 0xb1, 0xad,
+ 0xfd, 0x01, 0x34, 0xe2, 0x89, 0xaf, 0x05, 0x09, 0xbf, 0x80, 0x4b, 0xb9, 0xe2, 0x83, 0x3e, 0x87,
+ 0xb5, 0x34, 0xa2, 0xb2, 0x02, 0x15, 0x08, 0x7c, 0xe7, 0x95, 0x9a, 0x99, 0xa7, 0x30, 0x30, 0x9e,
+ 0xc3, 0xb2, 0x08, 0x19, 0x99, 0xf8, 0x17, 0x74, 0xb5, 0xf9, 0x10, 0x9a, 0x89, 0xc8, 0xd2, 0x98,
+ 0x69, 0x43, 0xe3, 0x38, 0x7e, 0xd0, 0x8c, 0xee, 0x36, 0xc9, 0xd8, 0xd8, 0x05, 0x94, 0xd5, 0x57,
+ 0x75, 0xa0, 0x9b, 0x79, 0x50, 0xbc, 0x5a, 0x6c, 0x37, 0x92, 0x3c, 0xc6, 0xc4, 0xbf, 0xaf, 0xc2,
+ 0xd2, 0x3e, 0x95, 0xaf, 0x1c, 0x17, 0x54, 0xe4, 0x6e, 0x40, 0x2b, 0x08, 0x7b, 0x8e, 0xd7, 0x0f,
+ 0x6d, 0xa2, 0x40, 0x81, 0xea, 0xf4, 0x13, 0xf3, 0x67, 0x15, 0x3f, 0xe1, 0x2c, 0x86, 0xf9, 0x48,
+ 0xdd, 0x70, 0xe5, 0x37, 0xfa, 0x08, 0xae, 0x3c, 0x22, 0x5f, 0x2a, 0x7b, 0xf6, 0x6d, 0xaf, 0xd7,
+ 0xa3, 0xee, 0x30, 0x16, 0x32, 0x23, 0x85, 0x9c, 0x4e, 0x50, 0x06, 0x15, 0x67, 0x4b, 0xa1, 0xa2,
+ 0xf1, 0x4b, 0x0d, 0x5a, 0xa9, 0xd7, 0x94, 0xdf, 0x6f, 0x47, 0xf9, 0x11, 0x79, 0xfd, 0x5a, 0xd6,
+ 0xeb, 0x45, 0xd2, 0xff, 0x3c, 0x35, 0x16, 0xb2, 0xa9, 0xf1, 0x2f, 0x0d, 0x56, 0xf7, 0x29, 0x8f,
+ 0x8b, 0x12, 0xfd, 0x6f, 0x3b, 0xc1, 0x12, 0x7f, 0xd7, 0xcb, 0xfd, 0xdd, 0x81, 0xb5, 0xa2, 0xa1,
+ 0xca, 0xe9, 0x2b, 0x30, 0x23, 0x4e, 0x3e, 0x7e, 0x0f, 0x88, 0x06, 0x3b, 0x5f, 0x35, 0x61, 0x39,
+ 0x6d, 0xe8, 0xe2, 0x5f, 0x6a, 0x11, 0xf4, 0x18, 0x5a, 0xfb, 0xea, 0xd7, 0xb3, 0xf8, 0x1d, 0x06,
+ 0x9d, 0xf5, 0xb0, 0xd9, 0xbe, 0x5a, 0xbe, 0x18, 0x89, 0x36, 0x2a, 0xc8, 0x82, 0x2b, 0x45, 0x86,
+ 0xe9, 0x1b, 0xea, 0xff, 0x9f, 0xc1, 0x39, 0xa1, 0x7a, 0x95, 0x88, 0x2d, 0x0d, 0x7d, 0x0e, 0x8b,
+ 0xf9, 0x97, 0x3e, 0x94, 0xab, 0x70, 0xa5, 0x8f, 0x8f, 0x6d, 0xe3, 0x2c, 0x92, 0x44, 0xff, 0x67,
+ 0x02, 0x4e, 0xe7, 0x9e, 0xbd, 0x90, 0x91, 0x07, 0xfb, 0x65, 0xcf, 0x82, 0xed, 0xff, 0x3b, 0x93,
+ 0x26, 0xe1, 0xfe, 0x21, 0x34, 0xe2, 0x67, 0xa2, 0xbc, 0x9b, 0x0b, 0x8f, 0x47, 0xed, 0x56, 0x9e,
+ 0xdf, 0x20, 0x30, 0x2a, 0xe8, 0xe3, 0x68, 0xf3, 0x2e, 0x63, 0x25, 0x9b, 0x33, 0x8f, 0x23, 0xed,
+ 0xcb, 0x25, 0x0f, 0x12, 0x46, 0x05, 0x7d, 0x17, 0xe6, 0xc5, 0xd7, 0x91, 0xfa, 0xdd, 0x6a, 0xad,
+ 0x13, 0xfd, 0x4c, 0xda, 0x89, 0x7f, 0x26, 0xed, 0xdc, 0x75, 0x18, 0x3f, 0x69, 0x97, 0xbc, 0x18,
+ 0x28, 0x06, 0xcf, 0xe0, 0xd2, 0x3e, 0xe1, 0x29, 0xc0, 0x47, 0xd7, 0x5e, 0xeb, 0x1a, 0xd4, 0x36,
+ 0x8a, 0x64, 0x93, 0x77, 0x04, 0xa3, 0x82, 0x7e, 0xa3, 0xc1, 0xe5, 0x7d, 0xc2, 0x8b, 0x90, 0x19,
+ 0xbd, 0x57, 0x2e, 0xe4, 0x14, 0x68, 0xdd, 0x7e, 0x34, 0x6d, 0x66, 0xe7, 0xd9, 0x1a, 0x15, 0xf4,
+ 0x3b, 0x0d, 0xd6, 0x33, 0x8a, 0x65, 0x31, 0x30, 0xda, 0x3e, 0x5b, 0xb9, 0x12, 0xbc, 0xdc, 0xfe,
+ 0x6c, 0xca, 0x9f, 0x23, 0x33, 0x2c, 0x8d, 0x0a, 0x3a, 0x92, 0x67, 0x92, 0xb6, 0x3c, 0xf4, 0x76,
+ 0x69, 0x6f, 0x4b, 0xa4, 0x6f, 0x9c, 0xb6, 0x9c, 0x9c, 0xc3, 0x67, 0x30, 0xbf, 0x4f, 0x78, 0x5c,
+ 0x9f, 0xf3, 0x91, 0x56, 0x68, 0x8b, 0xf9, 0x54, 0x2d, 0x96, 0x74, 0x19, 0x31, 0xcb, 0x11, 0xaf,
+ 0x4c, 0x9d, 0xca, 0xe7, 0x6a, 0x69, 0xb1, 0xce, 0x47, 0x4c, 0x79, 0x99, 0x33, 0x2a, 0x9f, 0xec,
+ 0xfe, 0xed, 0xe5, 0x86, 0xf6, 0xd5, 0xcb, 0x0d, 0xed, 0x9f, 0x2f, 0x37, 0xb4, 0x1f, 0xdd, 0x7a,
+ 0xc5, 0xdf, 0x10, 0x64, 0xfe, 0x2c, 0x01, 0x33, 0x6a, 0xd9, 0x94, 0xb8, 0xbc, 0x37, 0x2b, 0x83,
+ 0xff, 0xd6, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x9f, 0xd1, 0x75, 0xb5, 0x20, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -2010,8 +2351,14 @@ type RepoServerServiceClient interface {
GetAppDetails(ctx context.Context, in *RepoServerAppDetailsQuery, opts ...grpc.CallOption) (*RepoAppDetailsResponse, error)
// Get the meta-data (author, date, tags, message) for a specific revision of the repo
GetRevisionMetadata(ctx context.Context, in *RepoServerRevisionMetadataRequest, opts ...grpc.CallOption) (*v1alpha1.RevisionMetadata, error)
+ // Get the chart details (author, date, tags, message) for a specific revision of the repo
+ GetRevisionChartDetails(ctx context.Context, in *RepoServerRevisionChartDetailsRequest, opts ...grpc.CallOption) (*v1alpha1.ChartDetails, error)
// GetHelmCharts returns list of helm charts in the specified repository
GetHelmCharts(ctx context.Context, in *HelmChartsRequest, opts ...grpc.CallOption) (*HelmChartsResponse, error)
+ // GetGitFiles returns a set of file paths and their contents for the given repo
+ GetGitFiles(ctx context.Context, in *GitFilesRequest, opts ...grpc.CallOption) (*GitFilesResponse, error)
+ // GetGitDirectories returns a set of directory paths for the given repo
+ GetGitDirectories(ctx context.Context, in *GitDirectoriesRequest, opts ...grpc.CallOption) (*GitDirectoriesResponse, error)
}
type repoServerServiceClient struct {
@@ -2128,6 +2475,15 @@ func (c *repoServerServiceClient) GetRevisionMetadata(ctx context.Context, in *R
return out, nil
}
+func (c *repoServerServiceClient) GetRevisionChartDetails(ctx context.Context, in *RepoServerRevisionChartDetailsRequest, opts ...grpc.CallOption) (*v1alpha1.ChartDetails, error) {
+ out := new(v1alpha1.ChartDetails)
+ err := c.cc.Invoke(ctx, "/repository.RepoServerService/GetRevisionChartDetails", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *repoServerServiceClient) GetHelmCharts(ctx context.Context, in *HelmChartsRequest, opts ...grpc.CallOption) (*HelmChartsResponse, error) {
out := new(HelmChartsResponse)
err := c.cc.Invoke(ctx, "/repository.RepoServerService/GetHelmCharts", in, out, opts...)
@@ -2137,6 +2493,24 @@ func (c *repoServerServiceClient) GetHelmCharts(ctx context.Context, in *HelmCha
return out, nil
}
+func (c *repoServerServiceClient) GetGitFiles(ctx context.Context, in *GitFilesRequest, opts ...grpc.CallOption) (*GitFilesResponse, error) {
+ out := new(GitFilesResponse)
+ err := c.cc.Invoke(ctx, "/repository.RepoServerService/GetGitFiles", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *repoServerServiceClient) GetGitDirectories(ctx context.Context, in *GitDirectoriesRequest, opts ...grpc.CallOption) (*GitDirectoriesResponse, error) {
+ out := new(GitDirectoriesResponse)
+ err := c.cc.Invoke(ctx, "/repository.RepoServerService/GetGitDirectories", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// RepoServerServiceServer is the server API for RepoServerService service.
type RepoServerServiceServer interface {
// GenerateManifest generates manifest for application in specified repo name and revision
@@ -2157,8 +2531,14 @@ type RepoServerServiceServer interface {
GetAppDetails(context.Context, *RepoServerAppDetailsQuery) (*RepoAppDetailsResponse, error)
// Get the meta-data (author, date, tags, message) for a specific revision of the repo
GetRevisionMetadata(context.Context, *RepoServerRevisionMetadataRequest) (*v1alpha1.RevisionMetadata, error)
+ // Get the chart details (author, date, tags, message) for a specific revision of the repo
+ GetRevisionChartDetails(context.Context, *RepoServerRevisionChartDetailsRequest) (*v1alpha1.ChartDetails, error)
// GetHelmCharts returns list of helm charts in the specified repository
GetHelmCharts(context.Context, *HelmChartsRequest) (*HelmChartsResponse, error)
+ // GetGitFiles returns a set of file paths and their contents for the given repo
+ GetGitFiles(context.Context, *GitFilesRequest) (*GitFilesResponse, error)
+ // GetGitDirectories returns a set of directory paths for the given repo
+ GetGitDirectories(context.Context, *GitDirectoriesRequest) (*GitDirectoriesResponse, error)
}
// UnimplementedRepoServerServiceServer can be embedded to have forward compatible implementations.
@@ -2192,9 +2572,18 @@ func (*UnimplementedRepoServerServiceServer) GetAppDetails(ctx context.Context,
func (*UnimplementedRepoServerServiceServer) GetRevisionMetadata(ctx context.Context, req *RepoServerRevisionMetadataRequest) (*v1alpha1.RevisionMetadata, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetRevisionMetadata not implemented")
}
+func (*UnimplementedRepoServerServiceServer) GetRevisionChartDetails(ctx context.Context, req *RepoServerRevisionChartDetailsRequest) (*v1alpha1.ChartDetails, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetRevisionChartDetails not implemented")
+}
func (*UnimplementedRepoServerServiceServer) GetHelmCharts(ctx context.Context, req *HelmChartsRequest) (*HelmChartsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetHelmCharts not implemented")
}
+func (*UnimplementedRepoServerServiceServer) GetGitFiles(ctx context.Context, req *GitFilesRequest) (*GitFilesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetGitFiles not implemented")
+}
+func (*UnimplementedRepoServerServiceServer) GetGitDirectories(ctx context.Context, req *GitDirectoriesRequest) (*GitDirectoriesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetGitDirectories not implemented")
+}
func RegisterRepoServerServiceServer(s *grpc.Server, srv RepoServerServiceServer) {
s.RegisterService(&_RepoServerService_serviceDesc, srv)
@@ -2370,6 +2759,24 @@ func _RepoServerService_GetRevisionMetadata_Handler(srv interface{}, ctx context
return interceptor(ctx, in, info, handler)
}
+func _RepoServerService_GetRevisionChartDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RepoServerRevisionChartDetailsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RepoServerServiceServer).GetRevisionChartDetails(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/repository.RepoServerService/GetRevisionChartDetails",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RepoServerServiceServer).GetRevisionChartDetails(ctx, req.(*RepoServerRevisionChartDetailsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _RepoServerService_GetHelmCharts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(HelmChartsRequest)
if err := dec(in); err != nil {
@@ -2388,7 +2795,43 @@ func _RepoServerService_GetHelmCharts_Handler(srv interface{}, ctx context.Conte
return interceptor(ctx, in, info, handler)
}
-var _RepoServerService_serviceDesc = grpc.ServiceDesc{
+func _RepoServerService_GetGitFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GitFilesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RepoServerServiceServer).GetGitFiles(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/repository.RepoServerService/GetGitFiles",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RepoServerServiceServer).GetGitFiles(ctx, req.(*GitFilesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _RepoServerService_GetGitDirectories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GitDirectoriesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RepoServerServiceServer).GetGitDirectories(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/repository.RepoServerService/GetGitDirectories",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RepoServerServiceServer).GetGitDirectories(ctx, req.(*GitDirectoriesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _RepoServerService_serviceDesc = grpc.ServiceDesc{
ServiceName: "repository.RepoServerService",
HandlerType: (*RepoServerServiceServer)(nil),
Methods: []grpc.MethodDesc{
@@ -2424,10 +2867,22 @@ var _RepoServerService_serviceDesc = grpc.ServiceDesc{
MethodName: "GetRevisionMetadata",
Handler: _RepoServerService_GetRevisionMetadata_Handler,
},
+ {
+ MethodName: "GetRevisionChartDetails",
+ Handler: _RepoServerService_GetRevisionChartDetails_Handler,
+ },
{
MethodName: "GetHelmCharts",
Handler: _RepoServerService_GetHelmCharts_Handler,
},
+ {
+ MethodName: "GetGitFiles",
+ Handler: _RepoServerService_GetGitFiles_Handler,
+ },
+ {
+ MethodName: "GetGitDirectories",
+ Handler: _RepoServerService_GetGitDirectories_Handler,
+ },
},
Streams: []grpc.StreamDesc{
{
@@ -3711,6 +4166,59 @@ func (m *RepoServerRevisionMetadataRequest) MarshalToSizedBuffer(dAtA []byte) (i
return len(dAtA) - i, nil
}
+func (m *RepoServerRevisionChartDetailsRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RepoServerRevisionChartDetailsRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RepoServerRevisionChartDetailsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ if len(m.Revision) > 0 {
+ i -= len(m.Revision)
+ copy(dAtA[i:], m.Revision)
+ i = encodeVarintRepository(dAtA, i, uint64(len(m.Revision)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.Name) > 0 {
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = encodeVarintRepository(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Repo != nil {
+ {
+ size, err := m.Repo.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintRepository(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *HelmAppSpec) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -4123,139 +4631,372 @@ func (m *HelmChartsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
-func encodeVarintRepository(dAtA []byte, offset int, v uint64) int {
- offset -= sovRepository(v)
- base := offset
- for v >= 1<<7 {
- dAtA[offset] = uint8(v&0x7f | 0x80)
- v >>= 7
- offset++
+func (m *GitFilesRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
}
- dAtA[offset] = uint8(v)
- return base
+ return dAtA[:n], nil
}
-func (m *ManifestRequest) Size() (n int) {
- if m == nil {
- return 0
- }
+
+func (m *GitFilesRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GitFilesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
var l int
_ = l
- if m.Repo != nil {
- l = m.Repo.Size()
- n += 1 + l + sovRepository(uint64(l))
- }
- l = len(m.Revision)
- if l > 0 {
- n += 1 + l + sovRepository(uint64(l))
- }
- if m.NoCache {
- n += 2
- }
- l = len(m.AppLabelKey)
- if l > 0 {
- n += 1 + l + sovRepository(uint64(l))
- }
- l = len(m.AppName)
- if l > 0 {
- n += 1 + l + sovRepository(uint64(l))
- }
- l = len(m.Namespace)
- if l > 0 {
- n += 1 + l + sovRepository(uint64(l))
- }
- if m.ApplicationSource != nil {
- l = m.ApplicationSource.Size()
- n += 1 + l + sovRepository(uint64(l))
- }
- if len(m.Repos) > 0 {
- for _, e := range m.Repos {
- l = e.Size()
- n += 1 + l + sovRepository(uint64(l))
- }
- }
- if len(m.Plugins) > 0 {
- for _, e := range m.Plugins {
- l = e.Size()
- n += 1 + l + sovRepository(uint64(l))
- }
- }
- if m.KustomizeOptions != nil {
- l = m.KustomizeOptions.Size()
- n += 1 + l + sovRepository(uint64(l))
- }
- l = len(m.KubeVersion)
- if l > 0 {
- n += 1 + l + sovRepository(uint64(l))
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
}
- if len(m.ApiVersions) > 0 {
- for _, s := range m.ApiVersions {
- l = len(s)
- n += 1 + l + sovRepository(uint64(l))
+ if m.NoRevisionCache {
+ i--
+ if m.NoRevisionCache {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
}
+ i--
+ dAtA[i] = 0x30
}
- if m.VerifySignature {
- n += 3
- }
- if len(m.HelmRepoCreds) > 0 {
- for _, e := range m.HelmRepoCreds {
- l = e.Size()
- n += 2 + l + sovRepository(uint64(l))
+ if m.NewGitFileGlobbingEnabled {
+ i--
+ if m.NewGitFileGlobbingEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
}
+ i--
+ dAtA[i] = 0x28
}
- if m.NoRevisionCache {
- n += 3
+ if len(m.Path) > 0 {
+ i -= len(m.Path)
+ copy(dAtA[i:], m.Path)
+ i = encodeVarintRepository(dAtA, i, uint64(len(m.Path)))
+ i--
+ dAtA[i] = 0x22
}
- l = len(m.TrackingMethod)
- if l > 0 {
- n += 2 + l + sovRepository(uint64(l))
+ if len(m.Revision) > 0 {
+ i -= len(m.Revision)
+ copy(dAtA[i:], m.Revision)
+ i = encodeVarintRepository(dAtA, i, uint64(len(m.Revision)))
+ i--
+ dAtA[i] = 0x1a
}
- if len(m.EnabledSourceTypes) > 0 {
- for k, v := range m.EnabledSourceTypes {
- _ = k
- _ = v
- mapEntrySize := 1 + len(k) + sovRepository(uint64(len(k))) + 1 + 1
- n += mapEntrySize + 2 + sovRepository(uint64(mapEntrySize))
+ if m.SubmoduleEnabled {
+ i--
+ if m.SubmoduleEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
}
+ i--
+ dAtA[i] = 0x10
}
- if m.HelmOptions != nil {
- l = m.HelmOptions.Size()
- n += 2 + l + sovRepository(uint64(l))
- }
- if m.HasMultipleSources {
- n += 3
- }
- if len(m.RefSources) > 0 {
- for k, v := range m.RefSources {
- _ = k
- _ = v
- l = 0
- if v != nil {
- l = v.Size()
- l += 1 + sovRepository(uint64(l))
+ if m.Repo != nil {
+ {
+ size, err := m.Repo.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
}
- mapEntrySize := 1 + len(k) + sovRepository(uint64(len(k))) + l
- n += mapEntrySize + 2 + sovRepository(uint64(mapEntrySize))
+ i -= size
+ i = encodeVarintRepository(dAtA, i, uint64(size))
}
+ i--
+ dAtA[i] = 0xa
}
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
+ return len(dAtA) - i, nil
}
-func (m *ManifestRequestWithFiles) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Part != nil {
- n += m.Part.Size()
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
+func (m *GitFilesResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
}
- return n
+ return dAtA[:n], nil
+}
+
+func (m *GitFilesResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GitFilesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ if len(m.Map) > 0 {
+ for k := range m.Map {
+ v := m.Map[k]
+ baseI := i
+ if len(v) > 0 {
+ i -= len(v)
+ copy(dAtA[i:], v)
+ i = encodeVarintRepository(dAtA, i, uint64(len(v)))
+ i--
+ dAtA[i] = 0x12
+ }
+ i -= len(k)
+ copy(dAtA[i:], k)
+ i = encodeVarintRepository(dAtA, i, uint64(len(k)))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintRepository(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *GitDirectoriesRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GitDirectoriesRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GitDirectoriesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ if m.NoRevisionCache {
+ i--
+ if m.NoRevisionCache {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.Revision) > 0 {
+ i -= len(m.Revision)
+ copy(dAtA[i:], m.Revision)
+ i = encodeVarintRepository(dAtA, i, uint64(len(m.Revision)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if m.SubmoduleEnabled {
+ i--
+ if m.SubmoduleEnabled {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
+ if m.Repo != nil {
+ {
+ size, err := m.Repo.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintRepository(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *GitDirectoriesResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GitDirectoriesResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *GitDirectoriesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ if len(m.Paths) > 0 {
+ for iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Paths[iNdEx])
+ copy(dAtA[i:], m.Paths[iNdEx])
+ i = encodeVarintRepository(dAtA, i, uint64(len(m.Paths[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func encodeVarintRepository(dAtA []byte, offset int, v uint64) int {
+ offset -= sovRepository(v)
+ base := offset
+ for v >= 1<<7 {
+ dAtA[offset] = uint8(v&0x7f | 0x80)
+ v >>= 7
+ offset++
+ }
+ dAtA[offset] = uint8(v)
+ return base
+}
+func (m *ManifestRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Repo != nil {
+ l = m.Repo.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.Revision)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.NoCache {
+ n += 2
+ }
+ l = len(m.AppLabelKey)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.AppName)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.Namespace)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.ApplicationSource != nil {
+ l = m.ApplicationSource.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if len(m.Repos) > 0 {
+ for _, e := range m.Repos {
+ l = e.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ }
+ if len(m.Plugins) > 0 {
+ for _, e := range m.Plugins {
+ l = e.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ }
+ if m.KustomizeOptions != nil {
+ l = m.KustomizeOptions.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.KubeVersion)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if len(m.ApiVersions) > 0 {
+ for _, s := range m.ApiVersions {
+ l = len(s)
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ }
+ if m.VerifySignature {
+ n += 3
+ }
+ if len(m.HelmRepoCreds) > 0 {
+ for _, e := range m.HelmRepoCreds {
+ l = e.Size()
+ n += 2 + l + sovRepository(uint64(l))
+ }
+ }
+ if m.NoRevisionCache {
+ n += 3
+ }
+ l = len(m.TrackingMethod)
+ if l > 0 {
+ n += 2 + l + sovRepository(uint64(l))
+ }
+ if len(m.EnabledSourceTypes) > 0 {
+ for k, v := range m.EnabledSourceTypes {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + sovRepository(uint64(len(k))) + 1 + 1
+ n += mapEntrySize + 2 + sovRepository(uint64(mapEntrySize))
+ }
+ }
+ if m.HelmOptions != nil {
+ l = m.HelmOptions.Size()
+ n += 2 + l + sovRepository(uint64(l))
+ }
+ if m.HasMultipleSources {
+ n += 3
+ }
+ if len(m.RefSources) > 0 {
+ for k, v := range m.RefSources {
+ _ = k
+ _ = v
+ l = 0
+ if v != nil {
+ l = v.Size()
+ l += 1 + sovRepository(uint64(l))
+ }
+ mapEntrySize := 1 + len(k) + sovRepository(uint64(len(k))) + l
+ n += mapEntrySize + 2 + sovRepository(uint64(mapEntrySize))
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *ManifestRequestWithFiles) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Part != nil {
+ n += m.Part.Size()
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
}
func (m *ManifestRequestWithFiles_Request) Size() (n int) {
@@ -4688,6 +5429,30 @@ func (m *RepoServerRevisionMetadataRequest) Size() (n int) {
return n
}
+func (m *RepoServerRevisionChartDetailsRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Repo != nil {
+ l = m.Repo.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.Name)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.Revision)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
func (m *HelmAppSpec) Size() (n int) {
if m == nil {
return 0
@@ -4883,6 +5648,107 @@ func (m *HelmChartsResponse) Size() (n int) {
return n
}
+func (m *GitFilesRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Repo != nil {
+ l = m.Repo.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.SubmoduleEnabled {
+ n += 2
+ }
+ l = len(m.Revision)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ l = len(m.Path)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.NewGitFileGlobbingEnabled {
+ n += 2
+ }
+ if m.NoRevisionCache {
+ n += 2
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *GitFilesResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Map) > 0 {
+ for k, v := range m.Map {
+ _ = k
+ _ = v
+ l = 0
+ if len(v) > 0 {
+ l = 1 + len(v) + sovRepository(uint64(len(v)))
+ }
+ mapEntrySize := 1 + len(k) + sovRepository(uint64(len(k))) + l
+ n += mapEntrySize + 1 + sovRepository(uint64(mapEntrySize))
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *GitDirectoriesRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Repo != nil {
+ l = m.Repo.Size()
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.SubmoduleEnabled {
+ n += 2
+ }
+ l = len(m.Revision)
+ if l > 0 {
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ if m.NoRevisionCache {
+ n += 2
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *GitDirectoriesResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Paths) > 0 {
+ for _, s := range m.Paths {
+ l = len(s)
+ n += 1 + l + sovRepository(uint64(l))
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
func sovRepository(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -8473,7 +9339,7 @@ func (m *RepoServerRevisionMetadataRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
+func (m *RepoServerRevisionChartDetailsRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -8496,79 +9362,15 @@ func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: HelmAppSpec: wiretype end group for non-group")
+ return fmt.Errorf("proto: RepoServerRevisionChartDetailsRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: HelmAppSpec: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: RepoServerRevisionChartDetailsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowRepository
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthRepository
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthRepository
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Name = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 3:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ValueFiles", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowRepository
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthRepository
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthRepository
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.ValueFiles = append(m.ValueFiles, string(dAtA[iNdEx:postIndex]))
- iNdEx = postIndex
- case 4:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Repo", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -8595,14 +9397,16 @@ func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Parameters = append(m.Parameters, &v1alpha1.HelmParameter{})
- if err := m.Parameters[len(m.Parameters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if m.Repo == nil {
+ m.Repo = &v1alpha1.Repository{}
+ }
+ if err := m.Repo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
- case 5:
+ case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -8630,13 +9434,13 @@ func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Values = string(dAtA[iNdEx:postIndex])
+ m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- case 6:
+ case 3:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field FileParameters", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRepository
@@ -8646,25 +9450,23 @@ func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthRepository
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthRepository
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.FileParameters = append(m.FileParameters, &v1alpha1.HelmFileParameter{})
- if err := m.FileParameters[len(m.FileParameters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
+ m.Revision = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
@@ -8688,7 +9490,7 @@ func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *KustomizeAppSpec) Unmarshal(dAtA []byte) error {
+func (m *HelmAppSpec) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -8711,15 +9513,15 @@ func (m *KustomizeAppSpec) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: KustomizeAppSpec: wiretype end group for non-group")
+ return fmt.Errorf("proto: HelmAppSpec: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: KustomizeAppSpec: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: HelmAppSpec: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
- case 3:
+ case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -8747,21 +9549,236 @@ func (m *KustomizeAppSpec) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Images = append(m.Images, string(dAtA[iNdEx:postIndex]))
+ m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipRepository(dAtA[iNdEx:])
- if err != nil {
- return err
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ValueFiles", wireType)
}
- if (skippy < 0) || (iNdEx+skippy) < 0 {
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return ErrInvalidLengthRepository
}
- if (iNdEx + skippy) > l {
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ m.ValueFiles = append(m.ValueFiles, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Parameters = append(m.Parameters, &v1alpha1.HelmParameter{})
+ if err := m.Parameters[len(m.Parameters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Values = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FileParameters", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.FileParameters = append(m.FileParameters, &v1alpha1.HelmFileParameter{})
+ if err := m.FileParameters[len(m.FileParameters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *KustomizeAppSpec) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: KustomizeAppSpec: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: KustomizeAppSpec: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Images = append(m.Images, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@@ -9616,6 +10633,638 @@ func (m *HelmChartsResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *GitFilesRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GitFilesRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GitFilesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Repo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Repo == nil {
+ m.Repo = &v1alpha1.Repository{}
+ }
+ if err := m.Repo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SubmoduleEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SubmoduleEnabled = bool(v != 0)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Revision = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Path = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NewGitFileGlobbingEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.NewGitFileGlobbingEnabled = bool(v != 0)
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NoRevisionCache", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.NoRevisionCache = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GitFilesResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GitFilesResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GitFilesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Map", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Map == nil {
+ m.Map = make(map[string][]byte)
+ }
+ var mapkey string
+ mapvalue := []byte{}
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var mapbyteLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ mapbyteLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intMapbyteLen := int(mapbyteLen)
+ if intMapbyteLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postbytesIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = make([]byte, mapbyteLen)
+ copy(mapvalue, dAtA[iNdEx:postbytesIndex])
+ iNdEx = postbytesIndex
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Map[mapkey] = mapvalue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GitDirectoriesRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GitDirectoriesRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GitDirectoriesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Repo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Repo == nil {
+ m.Repo = &v1alpha1.Repository{}
+ }
+ if err := m.Repo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SubmoduleEnabled", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.SubmoduleEnabled = bool(v != 0)
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Revision = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NoRevisionCache", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.NoRevisionCache = bool(v != 0)
+ default:
+ iNdEx = preIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GitDirectoriesResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GitDirectoriesResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GitDirectoriesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Paths", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowRepository
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthRepository
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Paths = append(m.Paths, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipRepository(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRepository
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipRepository(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/cache/cache.go b/vendor/github.com/argoproj/argo-cd/v2/util/cache/cache.go
index c73d7a7def..fdea46cdea 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/cache/cache.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/cache/cache.go
@@ -10,7 +10,7 @@ import (
"crypto/tls"
"crypto/x509"
- "github.com/go-redis/redis/v8"
+ "github.com/redis/go-redis/v9"
"github.com/spf13/cobra"
"github.com/argoproj/argo-cd/v2/common"
@@ -78,7 +78,7 @@ func AddCacheFlagsToCmd(cmd *cobra.Command, opts ...func(client *redis.Client))
sentinelAddresses := make([]string, 0)
sentinelMaster := ""
redisDB := 0
- redisCACerticate := ""
+ redisCACertificate := ""
redisClientCertificate := ""
redisClientKey := ""
redisUseTLS := false
@@ -95,8 +95,8 @@ func AddCacheFlagsToCmd(cmd *cobra.Command, opts ...func(client *redis.Client))
cmd.Flags().StringVar(&redisClientCertificate, "redis-client-certificate", "", "Path to Redis client certificate (e.g. /etc/certs/redis/client.crt).")
cmd.Flags().StringVar(&redisClientKey, "redis-client-key", "", "Path to Redis client key (e.g. /etc/certs/redis/client.crt).")
cmd.Flags().BoolVar(&insecureRedis, "redis-insecure-skip-tls-verify", false, "Skip Redis server certificate validation.")
- cmd.Flags().StringVar(&redisCACerticate, "redis-ca-certificate", "", "Path to Redis server CA certificate (e.g. /etc/certs/redis/ca.crt). If not specified, system trusted CAs will be used for server certificate validation.")
- cmd.Flags().StringVar(&compressionStr, "redis-compress", env.StringFromEnv("REDIS_COMPRESSION", string(RedisCompressionNone)), "Enable compression for data sent to Redis with the required compression algorithm. (possible values: none, gzip)")
+ cmd.Flags().StringVar(&redisCACertificate, "redis-ca-certificate", "", "Path to Redis server CA certificate (e.g. /etc/certs/redis/ca.crt). If not specified, system trusted CAs will be used for server certificate validation.")
+ cmd.Flags().StringVar(&compressionStr, "redis-compress", env.StringFromEnv("REDIS_COMPRESSION", string(RedisCompressionGZip)), "Enable compression for data sent to Redis with the required compression algorithm. (possible values: gzip, none)")
return func() (*Cache, error) {
var tlsConfig *tls.Config = nil
if redisUseTLS {
@@ -110,8 +110,8 @@ func AddCacheFlagsToCmd(cmd *cobra.Command, opts ...func(client *redis.Client))
}
if insecureRedis {
tlsConfig.InsecureSkipVerify = true
- } else if redisCACerticate != "" {
- redisCA, err := certutil.ParseTLSCertificatesFromPath(redisCACerticate)
+ } else if redisCACertificate != "" {
+ redisCA, err := certutil.ParseTLSCertificatesFromPath(redisCACertificate)
if err != nil {
return nil, err
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis.go b/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis.go
index 658468386e..f483d2cbec 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis.go
@@ -7,12 +7,13 @@ import (
"encoding/json"
"fmt"
"io"
+ "net"
"time"
ioutil "github.com/argoproj/argo-cd/v2/util/io"
- rediscache "github.com/go-redis/cache/v8"
- "github.com/go-redis/redis/v8"
+ rediscache "github.com/go-redis/cache/v9"
+ "github.com/redis/go-redis/v9"
)
type RedisCompressionType string
@@ -155,32 +156,30 @@ type MetricsRegistry interface {
ObserveRedisRequestDuration(duration time.Duration)
}
-var metricStartTimeKey = struct{}{}
-
type redisHook struct {
registry MetricsRegistry
}
-func (rh *redisHook) BeforeProcess(ctx context.Context, cmd redis.Cmder) (context.Context, error) {
- return context.WithValue(ctx, metricStartTimeKey, time.Now()), nil
+func (rh *redisHook) DialHook(next redis.DialHook) redis.DialHook {
+ return func(ctx context.Context, network, addr string) (net.Conn, error) {
+ conn, err := next(ctx, network, addr)
+ return conn, err
+ }
}
-func (rh *redisHook) AfterProcess(ctx context.Context, cmd redis.Cmder) error {
- cmdErr := cmd.Err()
- rh.registry.IncRedisRequest(cmdErr != nil && cmdErr != redis.Nil)
+func (rh *redisHook) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
+ return func(ctx context.Context, cmd redis.Cmder) error {
+ startTime := time.Now()
- startTime := ctx.Value(metricStartTimeKey).(time.Time)
- duration := time.Since(startTime)
- rh.registry.ObserveRedisRequestDuration(duration)
+ err := next(ctx, cmd)
+ rh.registry.IncRedisRequest(err != nil && err != redis.Nil)
+ rh.registry.ObserveRedisRequestDuration(time.Since(startTime))
- return nil
-}
-
-func (redisHook) BeforeProcessPipeline(ctx context.Context, _ []redis.Cmder) (context.Context, error) {
- return ctx, nil
+ return err
+ }
}
-func (redisHook) AfterProcessPipeline(_ context.Context, _ []redis.Cmder) error {
+func (redisHook) ProcessPipelineHook(next redis.ProcessPipelineHook) redis.ProcessPipelineHook {
return nil
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis_hook.go b/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis_hook.go
index c378dd398c..e7cc3f4bcc 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis_hook.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/cache/redis_hook.go
@@ -2,14 +2,13 @@ package cache
import (
"context"
- "strings"
+ "errors"
+ "net"
- "github.com/go-redis/redis/v8"
+ "github.com/redis/go-redis/v9"
log "github.com/sirupsen/logrus"
)
-const NoSuchHostErr = "no such host"
-
type argoRedisHooks struct {
reconnectCallback func()
}
@@ -18,22 +17,25 @@ func NewArgoRedisHook(reconnectCallback func()) *argoRedisHooks {
return &argoRedisHooks{reconnectCallback: reconnectCallback}
}
-func (hook *argoRedisHooks) BeforeProcess(ctx context.Context, cmd redis.Cmder) (context.Context, error) {
- return ctx, nil
-}
-
-func (hook *argoRedisHooks) AfterProcess(ctx context.Context, cmd redis.Cmder) error {
- if cmd.Err() != nil && strings.Contains(cmd.Err().Error(), NoSuchHostErr) {
- log.Warnf("Reconnect to redis because error: \"%v\"", cmd.Err())
- hook.reconnectCallback()
+func (hook *argoRedisHooks) DialHook(next redis.DialHook) redis.DialHook {
+ return func(ctx context.Context, network, addr string) (net.Conn, error) {
+ conn, err := next(ctx, network, addr)
+ return conn, err
}
- return nil
}
-func (hook *argoRedisHooks) BeforeProcessPipeline(ctx context.Context, cmds []redis.Cmder) (context.Context, error) {
- return ctx, nil
+func (hook *argoRedisHooks) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
+ return func(ctx context.Context, cmd redis.Cmder) error {
+ var dnsError *net.DNSError
+ err := next(ctx, cmd)
+ if err != nil && errors.As(err, &dnsError) {
+ log.Warnf("Reconnect to redis because error: \"%v\"", err)
+ hook.reconnectCallback()
+ }
+ return err
+ }
}
-func (hook *argoRedisHooks) AfterProcessPipeline(ctx context.Context, cmds []redis.Cmder) error {
+func (hook *argoRedisHooks) ProcessPipelineHook(next redis.ProcessPipelineHook) redis.ProcessPipelineHook {
return nil
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/config/reader.go b/vendor/github.com/argoproj/argo-cd/v2/util/config/reader.go
index d780df90bc..4f643a2895 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/config/reader.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/config/reader.go
@@ -6,7 +6,7 @@ import (
"net/http"
"os"
- "github.com/ghodss/yaml"
+ "sigs.k8s.io/yaml"
)
// UnmarshalReader is used to read manifests from stdin
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/env/env.go b/vendor/github.com/argoproj/argo-cd/v2/util/env/env.go
index dc1549082d..6808f59d2d 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/env/env.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/env/env.go
@@ -1,6 +1,7 @@
package env
import (
+ "math"
"os"
"strconv"
"strings"
@@ -21,20 +22,24 @@ func ParseNumFromEnv(env string, defaultValue, min, max int) int {
if str == "" {
return defaultValue
}
- num, err := strconv.Atoi(str)
+ num, err := strconv.ParseInt(str, 10, 0)
if err != nil {
log.Warnf("Could not parse '%s' as a number from environment %s", str, env)
return defaultValue
}
- if num < min {
+ if num > math.MaxInt || num < math.MinInt {
+ log.Warnf("Value in %s is %d is outside of the min and max %d allowed values. Using default %d", env, num, min, defaultValue)
+ return defaultValue
+ }
+ if int(num) < min {
log.Warnf("Value in %s is %d, which is less than minimum %d allowed", env, num, min)
return defaultValue
}
- if num > max {
+ if int(num) > max {
log.Warnf("Value in %s is %d, which is greater than maximum %d allowed", env, num, max)
return defaultValue
}
- return num
+ return int(num)
}
// Helper function to parse a int64 from an environment variable. Returns a
@@ -119,8 +124,17 @@ func ParseDurationFromEnv(env string, defaultValue, min, max time.Duration) time
return dur
}
-func StringFromEnv(env string, defaultValue string) string {
- if str := os.Getenv(env); str != "" {
+type StringFromEnvOpts struct {
+ // AllowEmpty allows the value to be empty as long as the environment variable is set.
+ AllowEmpty bool
+}
+
+func StringFromEnv(env string, defaultValue string, opts ...StringFromEnvOpts) string {
+ opt := StringFromEnvOpts{}
+ for _, o := range opts {
+ opt.AllowEmpty = opt.AllowEmpty || o.AllowEmpty
+ }
+ if str, ok := os.LookupEnv(env); opt.AllowEmpty && ok || str != "" {
return str
}
return defaultValue
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/git/client.go b/vendor/github.com/argoproj/argo-cd/v2/util/git/client.go
index c57ec61c9f..6b8587c0b3 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/git/client.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/git/client.go
@@ -17,6 +17,7 @@ import (
"time"
argoexec "github.com/argoproj/pkg/exec"
+ "github.com/bmatcuk/doublestar/v4"
"github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/config"
"github.com/go-git/go-git/v5/plumbing"
@@ -66,7 +67,7 @@ type Client interface {
Checkout(revision string, submoduleEnabled bool) error
LsRefs() (*Refs, error)
LsRemote(revision string) (string, error)
- LsFiles(path string) ([]string, error)
+ LsFiles(path string, enableNewGitFileGlobbing bool) ([]string, error)
LsLargeFiles() ([]string, error)
CommitSHA() (string, error)
RevisionMetadata(revision string) (*RevisionMetadata, error)
@@ -313,7 +314,7 @@ func (m *nativeGitClient) Init() error {
return err
}
log.Infof("Initializing %s to %s", m.repoURL, m.root)
- _, err = executil.Run(exec.Command("rm", "-rf", m.root))
+ err = os.RemoveAll(m.root)
if err != nil {
return fmt.Errorf("unable to clean repo at %s: %v", m.root, err)
}
@@ -340,9 +341,9 @@ func (m *nativeGitClient) IsLFSEnabled() bool {
func (m *nativeGitClient) fetch(revision string) error {
var err error
if revision != "" {
- err = m.runCredentialedCmd("git", "fetch", "origin", revision, "--tags", "--force", "--prune")
+ err = m.runCredentialedCmd("fetch", "origin", revision, "--tags", "--force", "--prune")
} else {
- err = m.runCredentialedCmd("git", "fetch", "origin", "--tags", "--force", "--prune")
+ err = m.runCredentialedCmd("fetch", "origin", "--tags", "--force", "--prune")
}
return err
}
@@ -360,7 +361,7 @@ func (m *nativeGitClient) Fetch(revision string) error {
if err == nil && m.IsLFSEnabled() {
largeFiles, err := m.LsLargeFiles()
if err == nil && len(largeFiles) > 0 {
- err = m.runCredentialedCmd("git", "lfs", "fetch", "--all")
+ err = m.runCredentialedCmd("lfs", "fetch", "--all")
if err != nil {
return err
}
@@ -371,14 +372,44 @@ func (m *nativeGitClient) Fetch(revision string) error {
}
// LsFiles lists the local working tree, including only files that are under source control
-func (m *nativeGitClient) LsFiles(path string) ([]string, error) {
- out, err := m.runCmd("ls-files", "--full-name", "-z", "--", path)
- if err != nil {
- return nil, err
+func (m *nativeGitClient) LsFiles(path string, enableNewGitFileGlobbing bool) ([]string, error) {
+ if enableNewGitFileGlobbing {
+ // This is the new way with safer globbing
+ err := os.Chdir(m.root)
+ if err != nil {
+ return nil, err
+ }
+ all_files, err := doublestar.FilepathGlob(path)
+ if err != nil {
+ return nil, err
+ }
+ var files []string
+ for _, file := range all_files {
+ link, err := filepath.EvalSymlinks(file)
+ if err != nil {
+ return nil, err
+ }
+ absPath, err := filepath.Abs(link)
+ if err != nil {
+ return nil, err
+ }
+ if strings.HasPrefix(absPath, m.root) {
+ files = append(files, file)
+ } else {
+ log.Warnf("Absolute path for %s is outside of repository, removing it", file)
+ }
+ }
+ return files, nil
+ } else {
+ // This is the old and default way
+ out, err := m.runCmd("ls-files", "--full-name", "-z", "--", path)
+ if err != nil {
+ return nil, err
+ }
+ // remove last element, which is blank regardless of whether we're using nullbyte or newline
+ ss := strings.Split(out, "\000")
+ return ss[:len(ss)-1], nil
}
- // remove last element, which is blank regardless of whether we're using nullbyte or newline
- ss := strings.Split(out, "\000")
- return ss[:len(ss)-1], nil
}
// LsLargeFiles lists all files that have references to LFS storage
@@ -393,10 +424,10 @@ func (m *nativeGitClient) LsLargeFiles() ([]string, error) {
// Submodule embed other repositories into this repository
func (m *nativeGitClient) Submodule() error {
- if err := m.runCredentialedCmd("git", "submodule", "sync", "--recursive"); err != nil {
+ if err := m.runCredentialedCmd("submodule", "sync", "--recursive"); err != nil {
return err
}
- if err := m.runCredentialedCmd("git", "submodule", "update", "--init", "--recursive"); err != nil {
+ if err := m.runCredentialedCmd("submodule", "update", "--init", "--recursive"); err != nil {
return err
}
return nil
@@ -430,7 +461,12 @@ func (m *nativeGitClient) Checkout(revision string, submoduleEnabled bool) error
}
}
}
- if _, err := m.runCmd("clean", "-fdx"); err != nil {
+ // NOTE
+ // The double “f” in the arguments is not a typo: the first “f” tells
+ // `git clean` to delete untracked files and directories, and the second “f”
+ // tells it to clean untractked nested Git repositories (for example a
+ // submodule which has since been removed).
+ if _, err := m.runCmd("clean", "-ffdx"); err != nil {
return err
}
return nil
@@ -649,7 +685,7 @@ func (m *nativeGitClient) runCmd(args ...string) (string, error) {
// runCredentialedCmd is a convenience function to run a git command with username/password credentials
// nolint:unparam
-func (m *nativeGitClient) runCredentialedCmd(command string, args ...string) error {
+func (m *nativeGitClient) runCredentialedCmd(args ...string) error {
closer, environ, err := m.creds.Environ()
if err != nil {
return err
@@ -664,7 +700,7 @@ func (m *nativeGitClient) runCredentialedCmd(command string, args ...string) err
}
}
- cmd := exec.Command(command, args...)
+ cmd := exec.Command("git", args...)
cmd.Env = append(cmd.Env, environ...)
_, err = m.runCmdOutput(cmd, runOpts{})
return err
@@ -679,6 +715,8 @@ func (m *nativeGitClient) runCmdOutput(cmd *exec.Cmd, ropts runOpts) (string, er
cmd.Env = append(cmd.Env, "HOME=/dev/null")
// Skip LFS for most Git operations except when explicitly requested
cmd.Env = append(cmd.Env, "GIT_LFS_SKIP_SMUDGE=1")
+ // Disable Git terminal prompts in case we're running with a tty
+ cmd.Env = append(cmd.Env, "GIT_TERMINAL_PROMPT=false")
// For HTTPS repositories, we need to consider insecure repositories as well
// as custom CA bundles from the cert database.
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/grpc/grpc.go b/vendor/github.com/argoproj/argo-cd/v2/util/grpc/grpc.go
index 323d78398a..93b9556d7c 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/grpc/grpc.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/grpc/grpc.go
@@ -10,6 +10,7 @@ import (
"github.com/argoproj/argo-cd/v2/common"
"github.com/sirupsen/logrus"
+ "golang.org/x/net/proxy"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/credentials"
@@ -63,7 +64,7 @@ func BlockingDial(ctx context.Context, network, address string, creds credential
dialer := func(ctx context.Context, address string) (net.Conn, error) {
- conn, err := (&net.Dialer{Cancel: ctx.Done()}).Dial(network, address)
+ conn, err := proxy.Dial(ctx, network, address)
if err != nil {
writeResult(err)
return nil, err
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/grpc/trace.go b/vendor/github.com/argoproj/argo-cd/v2/util/grpc/trace.go
new file mode 100644
index 0000000000..484e2b61dc
--- /dev/null
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/grpc/trace.go
@@ -0,0 +1,33 @@
+package grpc
+
+import (
+ "sync"
+
+ "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
+ "google.golang.org/grpc"
+)
+
+var (
+ otelUnaryInterceptor grpc.UnaryClientInterceptor
+ otelStreamInterceptor grpc.StreamClientInterceptor
+ interceptorsInitialized = sync.Once{}
+)
+
+// otel interceptors must be created once to avoid memory leak
+// see https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4226 for details
+func ensureInitialized() {
+ interceptorsInitialized.Do(func() {
+ otelUnaryInterceptor = otelgrpc.UnaryClientInterceptor()
+ otelStreamInterceptor = otelgrpc.StreamClientInterceptor()
+ })
+}
+
+func OTELUnaryClientInterceptor() grpc.UnaryClientInterceptor {
+ ensureInitialized()
+ return otelUnaryInterceptor
+}
+
+func OTELStreamClientInterceptor() grpc.StreamClientInterceptor {
+ ensureInitialized()
+ return otelStreamInterceptor
+}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/helm/client.go b/vendor/github.com/argoproj/argo-cd/v2/util/helm/client.go
index 5824f6233f..ecfa6c0bb6 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/helm/client.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/helm/client.go
@@ -2,12 +2,12 @@ package helm
import (
"bytes"
+ "context"
"crypto/tls"
"crypto/x509"
"encoding/json"
"errors"
"fmt"
- executil "github.com/argoproj/argo-cd/v2/util/exec"
"io"
"net/http"
"net/url"
@@ -18,21 +18,25 @@ import (
"strings"
"time"
+ executil "github.com/argoproj/argo-cd/v2/util/exec"
+
"github.com/argoproj/pkg/sync"
log "github.com/sirupsen/logrus"
"gopkg.in/yaml.v2"
+ "oras.land/oras-go/v2/registry/remote"
+ "oras.land/oras-go/v2/registry/remote/auth"
- "github.com/argoproj/argo-cd/v2/common"
"github.com/argoproj/argo-cd/v2/util/cache"
argoio "github.com/argoproj/argo-cd/v2/util/io"
"github.com/argoproj/argo-cd/v2/util/io/files"
"github.com/argoproj/argo-cd/v2/util/proxy"
- "github.com/argoproj/argo-cd/v2/util/text"
)
var (
globalLock = sync.NewKeyLock()
indexLock = sync.NewKeyLock()
+
+ OCINotEnabledErr = errors.New("could not perform the action when oci is not enabled")
)
type Creds struct {
@@ -132,7 +136,7 @@ func untarChart(tempDir string, cachedChartPath string, manifestMaxExtractedSize
if err != nil {
return err
}
- return files.Untgz(tempDir, reader, manifestMaxExtractedSize)
+ return files.Untgz(tempDir, reader, manifestMaxExtractedSize, false)
}
func (c *nativeHelmChart) ExtractChart(chart string, version string, passCredentials bool, manifestMaxExtractedSize int64, disableManifestMaxExtractedSize bool) (string, argoio.Closer, error) {
@@ -190,7 +194,7 @@ func (c *nativeHelmChart) ExtractChart(chart string, version string, passCredent
}
// 'helm pull' ensures that chart is downloaded into temp directory
- _, err = helmCmd.PullOCI(c.repoURL, chart, version, tempDest)
+ _, err = helmCmd.PullOCI(c.repoURL, chart, version, tempDest, c.creds)
if err != nil {
return "", nil, err
}
@@ -299,7 +303,7 @@ func (c *nativeHelmChart) loadRepoIndex() ([]byte, error) {
return nil, err
}
- req, err := http.NewRequest("GET", indexURL, nil)
+ req, err := http.NewRequest(http.MethodGet, indexURL, nil)
if err != nil {
return nil, err
}
@@ -314,8 +318,8 @@ func (c *nativeHelmChart) loadRepoIndex() ([]byte, error) {
}
tr := &http.Transport{
- Proxy: proxy.GetCallback(c.proxy),
- TLSClientConfig: tlsConf,
+ Proxy: proxy.GetCallback(c.proxy),
+ TLSClientConfig: tlsConf,
DisableKeepAlives: true,
}
client := http.Client{Transport: tr}
@@ -325,7 +329,7 @@ func (c *nativeHelmChart) loadRepoIndex() ([]byte, error) {
}
defer func() { _ = resp.Body.Close() }()
- if resp.StatusCode != 200 {
+ if resp.StatusCode != http.StatusOK {
return nil, errors.New("failed to get index: " + resp.Status)
}
return io.ReadAll(resp.Body)
@@ -399,131 +403,12 @@ func getIndexURL(rawURL string) (string, error) {
return repoURL.String(), nil
}
-func getTagsListURL(rawURL string, chart string) (string, error) {
- repoURL, err := url.Parse(strings.Trim(rawURL, "/"))
- if err != nil {
- return "", fmt.Errorf("unable to parse repo url: %v", err)
- }
- tagsPathFormat := "%s/v2/%s/tags/list"
- repoURL.Scheme = "https"
- repoURL.Path = fmt.Sprintf(tagsPathFormat, repoURL.Path, chart)
- repoURL.RawPath = fmt.Sprintf(tagsPathFormat, repoURL.RawPath, url.PathEscape(chart))
- return repoURL.String(), nil
-}
-
-func (c *nativeHelmChart) getTags(chart string) ([]byte, error) {
- nextURL, err := getTagsListURL(c.repoURL, chart)
- if err != nil {
- return nil, fmt.Errorf("failed to get tag list url: %v", err)
- }
-
- allTags := &TagsList{}
- var data []byte
- for nextURL != "" {
- log.Debugf("fetching %s tags from %s", chart, sanitizeLog(text.Trunc(nextURL, 100)))
- data, nextURL, err = c.getTagsFromUrl(nextURL)
- if err != nil {
- return nil, fmt.Errorf("failed tags part: %v", err)
- }
-
- tags := &TagsList{}
- err := json.Unmarshal(data, tags)
- if err != nil {
- return nil, fmt.Errorf("unable to decode json: %v", err)
- }
- allTags.Tags = append(allTags.Tags, tags.Tags...)
- }
- data, err = json.Marshal(allTags)
- if err != nil {
- return nil, fmt.Errorf("failed to marshal tag json: %w", err)
- }
- return data, nil
-}
-
-func getNextUrl(resp *http.Response) (string, error) {
- link := resp.Header.Get("Link")
- if link == "" {
- return "", nil
- }
- if link[0] != '<' {
- return "", fmt.Errorf("invalid next link %q: missing '<'", link)
- }
- if i := strings.IndexByte(link, '>'); i == -1 {
- return "", fmt.Errorf("invalid next link %q: missing '>'", link)
- } else {
- link = link[1:i]
- }
- linkURL, err := resp.Request.URL.Parse(link)
- if err != nil {
- return "", err
- }
- return linkURL.String(), nil
-}
-
-func sanitizeLog(input string) string {
- sanitized := strings.ReplaceAll(input, "\r", "")
- sanitized = strings.ReplaceAll(sanitized, "\n", "")
- return sanitized
-}
-
-func (c *nativeHelmChart) getTagsFromUrl(tagsURL string) ([]byte, string, error) {
- req, err := http.NewRequest("GET", tagsURL, nil)
- if err != nil {
- return nil, "", fmt.Errorf("failed create request: %v", err)
- }
- req.Header.Add("Accept", `application/json`)
- if c.creds.Username != "" || c.creds.Password != "" {
- // only basic supported
- req.SetBasicAuth(c.creds.Username, c.creds.Password)
- }
-
- tlsConf, err := newTLSConfig(c.creds)
- if err != nil {
- return nil, "", fmt.Errorf("failed setup tlsConfig: %v", err)
- }
-
- tr := &http.Transport{
- Proxy: proxy.GetCallback(c.proxy),
- TLSClientConfig: tlsConf,
- DisableKeepAlives: true,
- }
- client := http.Client{Transport: tr}
- resp, err := client.Do(req)
- if err != nil {
- return nil, "", fmt.Errorf("request failed: %v", err)
- }
- defer func() {
- if err = resp.Body.Close(); err != nil {
- log.WithFields(log.Fields{
- common.SecurityField: common.SecurityMedium,
- common.SecurityCWEField: 775,
- }).Errorf("error closing response %q: %v", text.Trunc(tagsURL, 100), err)
- }
- }()
-
- if resp.StatusCode != 200 {
- data, err := io.ReadAll(resp.Body)
- var responseExcerpt string
- if err != nil {
- responseExcerpt = fmt.Sprintf("err: %v", err)
- } else {
- responseExcerpt = text.Trunc(string(data), 100)
- }
- return nil, "", fmt.Errorf("invalid response: %s %s", resp.Status, responseExcerpt)
- }
- data, err := io.ReadAll(resp.Body)
- if err != nil {
- return nil, "", fmt.Errorf("failed to read body: %v", err)
- }
- nextUrl, err := getNextUrl(resp)
- return data, nextUrl, err
-}
-
func (c *nativeHelmChart) GetTags(chart string, noCache bool) (*TagsList, error) {
- tagsURL, err := getTagsListURL(c.repoURL, chart)
- if err != nil {
- return nil, fmt.Errorf("invalid tags url: %v", err)
+ if !c.enableOci {
+ return nil, OCINotEnabledErr
}
+
+ tagsURL := strings.Replace(fmt.Sprintf("%s/%s", c.repoURL, chart), "https://", "", 1)
indexLock.Lock(tagsURL)
defer indexLock.Unlock(tagsURL)
@@ -534,10 +419,44 @@ func (c *nativeHelmChart) GetTags(chart string, noCache bool) (*TagsList, error)
}
}
+ tags := &TagsList{}
if len(data) == 0 {
start := time.Now()
- var err error
- data, err = c.getTags(chart)
+ repo, err := remote.NewRepository(tagsURL)
+ if err != nil {
+ return nil, fmt.Errorf("failed to initialize repository: %v", err)
+ }
+ tlsConf, err := newTLSConfig(c.creds)
+ if err != nil {
+ return nil, fmt.Errorf("failed setup tlsConfig: %v", err)
+ }
+ client := &http.Client{Transport: &http.Transport{
+ Proxy: proxy.GetCallback(c.proxy),
+ TLSClientConfig: tlsConf,
+ DisableKeepAlives: true,
+ }}
+
+ repoHost, _, _ := strings.Cut(tagsURL, "/")
+ repo.Client = &auth.Client{
+ Client: client,
+ Cache: nil,
+ Credential: auth.StaticCredential(repoHost, auth.Credential{
+ Username: c.creds.Username,
+ Password: c.creds.Password,
+ }),
+ }
+
+ ctx := context.Background()
+ err = repo.Tags(ctx, "", func(tagsResult []string) error {
+ for _, tag := range tagsResult {
+ // By convention: Change underscore (_) back to plus (+) to get valid SemVer
+ convertedTag := strings.ReplaceAll(tag, "_", "+")
+ tags.Tags = append(tags.Tags, convertedTag)
+ }
+
+ return nil
+ })
+
if err != nil {
return nil, fmt.Errorf("failed to get tags: %v", err)
}
@@ -550,12 +469,11 @@ func (c *nativeHelmChart) GetTags(chart string, noCache bool) (*TagsList, error)
log.Warnf("Failed to store tags list cache for repo: %s: %v", tagsURL, err)
}
}
- }
-
- tags := &TagsList{}
- err = json.Unmarshal(data, tags)
- if err != nil {
- return nil, fmt.Errorf("failed to decode tags: %v", err)
+ } else {
+ err := json.Unmarshal(data, tags)
+ if err != nil {
+ return nil, fmt.Errorf("failed to decode tags: %v", err)
+ }
}
return tags, nil
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/helm/cmd.go b/vendor/github.com/argoproj/argo-cd/v2/util/helm/cmd.go
index 2be56b26d5..e61dfa8e7a 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/helm/cmd.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/helm/cmd.go
@@ -7,6 +7,7 @@ import (
"path"
"path/filepath"
"regexp"
+ "strings"
log "github.com/sirupsen/logrus"
@@ -228,15 +229,18 @@ func (c *Cmd) Fetch(repo, chartName, version, destination string, creds Creds, p
return c.run(args...)
}
-func (c *Cmd) PullOCI(repo string, chart string, version string, destination string) (string, error) {
- return c.run(
- "pull",
- fmt.Sprintf("oci://%s/%s", repo, chart),
- "--version",
+func (c *Cmd) PullOCI(repo string, chart string, version string, destination string, creds Creds) (string, error) {
+ args := []string{"pull", fmt.Sprintf("oci://%s/%s", repo, chart), "--version",
version,
"--destination",
- destination,
- )
+ destination}
+ if creds.CAPath != "" {
+ args = append(args, "--ca-file", creds.CAPath)
+ }
+ if creds.InsecureSkipVerify && c.insecureSkipVerifySupported {
+ args = append(args, "--insecure-skip-tls-verify")
+ }
+ return c.run(args...)
}
func (c *Cmd) dependencyBuild() (string, error) {
@@ -247,6 +251,10 @@ func (c *Cmd) inspectValues(values string) (string, error) {
return c.run(c.showCommand, "values", values)
}
+func (c *Cmd) InspectChart() (string, error) {
+ return c.run(c.showCommand, "chart", ".")
+}
+
type TemplateOpts struct {
Name string
Namespace string
@@ -264,6 +272,10 @@ var (
)
func cleanSetParameters(val string) string {
+ // `{}` equal helm list parameters format, so don't escape `,`.
+ if strings.HasPrefix(val, `{`) && strings.HasSuffix(val, `}`) {
+ return val
+ }
return re.ReplaceAllString(val, `$1\,`)
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/helm/helm.go b/vendor/github.com/argoproj/argo-cd/v2/util/helm/helm.go
index e997d9f611..f586691867 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/helm/helm.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/helm/helm.go
@@ -8,14 +8,19 @@ import (
"path/filepath"
"strings"
- "github.com/ghodss/yaml"
log "github.com/sirupsen/logrus"
+ "sigs.k8s.io/yaml"
"github.com/argoproj/argo-cd/v2/util/config"
executil "github.com/argoproj/argo-cd/v2/util/exec"
pathutil "github.com/argoproj/argo-cd/v2/util/io/path"
)
+const (
+ ResourcePolicyAnnotation = "helm.sh/resource-policy"
+ ResourcePolicyKeep = "keep"
+)
+
type HelmRepository struct {
Creds
Name string
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/helm/tags.go b/vendor/github.com/argoproj/argo-cd/v2/util/helm/tags.go
index 6c0a9e589f..656ff774b2 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/helm/tags.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/helm/tags.go
@@ -1,11 +1,11 @@
package helm
import (
- "fmt"
+ "fmt"
- log "github.com/sirupsen/logrus"
+ log "github.com/sirupsen/logrus"
- "github.com/Masterminds/semver/v3"
+ "github.com/Masterminds/semver/v3"
)
type TagsList struct {
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/io/files/tar.go b/vendor/github.com/argoproj/argo-cd/v2/util/io/files/tar.go
index f665ded3ed..13973f732f 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/io/files/tar.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/io/files/tar.go
@@ -58,7 +58,7 @@ func Tgz(srcPath string, inclusions []string, exclusions []string, writers ...io
// - a full path
// - points to an empty directory or
// - points to a non existing directory
-func Untgz(dstPath string, r io.Reader, maxSize int64) error {
+func Untgz(dstPath string, r io.Reader, maxSize int64, preserveFileMode bool) error {
if !filepath.IsAbs(dstPath) {
return fmt.Errorf("dstPath points to a relative path: %s", dstPath)
}
@@ -92,7 +92,11 @@ func Untgz(dstPath string, r io.Reader, maxSize int64) error {
switch header.Typeflag {
case tar.TypeDir:
- err := os.MkdirAll(target, 0755)
+ var mode os.FileMode = 0755
+ if preserveFileMode {
+ mode = os.FileMode(header.Mode)
+ }
+ err := os.MkdirAll(target, mode)
if err != nil {
return fmt.Errorf("error creating nested folders: %w", err)
}
@@ -113,12 +117,17 @@ func Untgz(dstPath string, r io.Reader, maxSize int64) error {
return fmt.Errorf("error creating symlink: %s", err)
}
case tar.TypeReg:
+ var mode os.FileMode = 0644
+ if preserveFileMode {
+ mode = os.FileMode(header.Mode)
+ }
+
err := os.MkdirAll(filepath.Dir(target), 0755)
if err != nil {
return fmt.Errorf("error creating nested folders: %w", err)
}
- f, err := os.Create(target)
+ f, err := os.OpenFile(target, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode)
if err != nil {
return fmt.Errorf("error creating file %q: %w", target, err)
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/kube/kube.go b/vendor/github.com/argoproj/argo-cd/v2/util/kube/kube.go
index 0df9a36d81..35bab0314b 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/kube/kube.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/kube/kube.go
@@ -1,6 +1,7 @@
package kube
import (
+ "fmt"
"regexp"
"github.com/argoproj/gitops-engine/pkg/utils/kube"
@@ -20,7 +21,10 @@ func IsValidResourceName(name string) bool {
// SetAppInstanceLabel the recommended app.kubernetes.io/instance label against an unstructured object
// Uses the legacy labeling if environment variable is set
func SetAppInstanceLabel(target *unstructured.Unstructured, key, val string) error {
- labels := target.GetLabels()
+ labels, _, err := nestedNullableStringMap(target.Object, "metadata", "labels")
+ if err != nil {
+ return err
+ }
if labels == nil {
labels = make(map[string]string)
}
@@ -96,7 +100,11 @@ func SetAppInstanceLabel(target *unstructured.Unstructured, key, val string) err
// SetAppInstanceAnnotation the recommended app.kubernetes.io/instance annotation against an unstructured object
// Uses the legacy labeling if environment variable is set
func SetAppInstanceAnnotation(target *unstructured.Unstructured, key, val string) error {
- annotations := target.GetAnnotations()
+ annotations, _, err := nestedNullableStringMap(target.Object, "metadata", "annotations")
+ if err != nil {
+ return fmt.Errorf("failed to get annotations from target object %s %s/%s: %w", target.GroupVersionKind().String(), target.GetNamespace(), target.GetName(), err)
+ }
+
if annotations == nil {
annotations = make(map[string]string)
}
@@ -106,26 +114,37 @@ func SetAppInstanceAnnotation(target *unstructured.Unstructured, key, val string
}
// GetAppInstanceAnnotation returns the application instance name from annotation
-func GetAppInstanceAnnotation(un *unstructured.Unstructured, key string) string {
- if annotations := un.GetAnnotations(); annotations != nil {
- return annotations[key]
+func GetAppInstanceAnnotation(un *unstructured.Unstructured, key string) (string, error) {
+ annotations, _, err := nestedNullableStringMap(un.Object, "metadata", "annotations")
+ if err != nil {
+ return "", fmt.Errorf("failed to get annotations from target object %s %s/%s: %w", un.GroupVersionKind().String(), un.GetNamespace(), un.GetName(), err)
}
- return ""
+ if annotations != nil {
+ return annotations[key], nil
+ }
+ return "", nil
}
// GetAppInstanceLabel returns the application instance name from labels
-func GetAppInstanceLabel(un *unstructured.Unstructured, key string) string {
- if labels := un.GetLabels(); labels != nil {
- return labels[key]
+func GetAppInstanceLabel(un *unstructured.Unstructured, key string) (string, error) {
+ labels, _, err := nestedNullableStringMap(un.Object, "metadata", "labels")
+ if err != nil {
+ return "", err
+ }
+ if labels != nil {
+ return labels[key], nil
}
- return ""
+ return "", nil
}
// RemoveLabel removes label with the specified name
-func RemoveLabel(un *unstructured.Unstructured, key string) {
- labels := un.GetLabels()
+func RemoveLabel(un *unstructured.Unstructured, key string) error {
+ labels, _, err := nestedNullableStringMap(un.Object, "metadata", "labels")
+ if err != nil {
+ return err
+ }
if labels == nil {
- return
+ return nil
}
for k := range labels {
@@ -139,4 +158,19 @@ func RemoveLabel(un *unstructured.Unstructured, key string) {
break
}
}
+ return nil
+}
+
+// nestedNullableStringMap returns a copy of map[string]string value of a nested field.
+// Returns false if value is not found and an error if not one of map[string]interface{} or nil, or contains non-string values in the map.
+func nestedNullableStringMap(obj map[string]interface{}, fields ...string) (map[string]string, bool, error) {
+ var m map[string]string
+ val, found, err := unstructured.NestedFieldNoCopy(obj, fields...)
+ if err != nil {
+ return nil, found, err
+ }
+ if found && val != nil {
+ return unstructured.NestedStringMap(obj, fields...)
+ }
+ return m, found, err
}
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/kube/portforwarder.go b/vendor/github.com/argoproj/argo-cd/v2/util/kube/portforwarder.go
index c661cb6f85..1ea6e0fdad 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/kube/portforwarder.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/kube/portforwarder.go
@@ -8,7 +8,6 @@ import (
"net/http"
"os"
- "github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
@@ -68,7 +67,7 @@ func PortForward(targetPort int, namespace string, overrides *clientcmd.ConfigOv
transport, upgrader, err := spdy.RoundTripperFor(config)
if err != nil {
- return -1, errors.Wrap(err, "Could not create round tripper")
+ return -1, fmt.Errorf("could not create round tripper: %w", err)
}
dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport}, "POST", url)
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/security/rbac.go b/vendor/github.com/argoproj/argo-cd/v2/util/security/rbac.go
index ebfdde01c3..d80cbbadb3 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/security/rbac.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/security/rbac.go
@@ -4,8 +4,8 @@ import (
"fmt"
)
-// AppRBACName constructs name of the app for use in RBAC checks.
-func AppRBACName(defaultNS string, project string, namespace string, name string) string {
+// RBACName constructs name of the app for use in RBAC checks.
+func RBACName(defaultNS string, project string, namespace string, name string) string {
if defaultNS != "" && namespace != defaultNS && namespace != "" {
return fmt.Sprintf("%s/%s/%s", project, namespace, name)
} else {
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/settings/settings.go b/vendor/github.com/argoproj/argo-cd/v2/util/settings/settings.go
index 5f03e516f8..e01e950ca2 100644
--- a/vendor/github.com/argoproj/argo-cd/v2/util/settings/settings.go
+++ b/vendor/github.com/argoproj/argo-cd/v2/util/settings/settings.go
@@ -18,7 +18,6 @@ import (
"time"
timeutil "github.com/argoproj/pkg/time"
- "github.com/ghodss/yaml"
log "github.com/sirupsen/logrus"
apiv1 "k8s.io/api/core/v1"
apierr "k8s.io/apimachinery/pkg/api/errors"
@@ -30,6 +29,7 @@ import (
"k8s.io/client-go/kubernetes"
v1listers "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/cache"
+ "sigs.k8s.io/yaml"
"github.com/argoproj/argo-cd/v2/common"
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
@@ -421,10 +421,10 @@ const (
resourceExclusionsKey = "resource.exclusions"
// resourceInclusions is the key to the list of explicitly watched resources
resourceInclusionsKey = "resource.inclusions"
+ // resourceIgnoreResourceUpdatesEnabledKey is the key to a boolean determining whether the resourceIgnoreUpdates feature is enabled
+ resourceIgnoreResourceUpdatesEnabledKey = "resource.ignoreResourceUpdatesEnabled"
// resourceCustomLabelKey is the key to a custom label to show in node info, if present
resourceCustomLabelsKey = "resource.customLabels"
- // configManagementPluginsKey is the key to the list of config management plugins
- configManagementPluginsKey = "configManagementPlugins"
// kustomizeBuildOptionsKey is a string of kustomize build parameters
kustomizeBuildOptionsKey = "kustomize.buildOptions"
// kustomizeVersionKeyPrefix is a kustomize version key prefix
@@ -530,6 +530,9 @@ type ArgoCDDiffOptions struct {
// If set to true then differences caused by status are ignored.
IgnoreResourceStatusField IgnoreStatus `json:"ignoreResourceStatusField,omitempty"`
+
+ // If set to true then ignoreDifferences are applied to ignore application refresh on resource updates.
+ IgnoreDifferencesOnResourceUpdates bool `json:"ignoreDifferencesOnResourceUpdates,omitempty"`
}
func (e *incompleteSettingsError) Error() string {
@@ -745,21 +748,6 @@ func (mgr *SettingsManager) GetServerRBACLogEnforceEnable() (bool, error) {
return strconv.ParseBool(argoCDCM.Data[settingsServerRBACLogEnforceEnableKey])
}
-func (mgr *SettingsManager) GetConfigManagementPlugins() ([]v1alpha1.ConfigManagementPlugin, error) {
- argoCDCM, err := mgr.getConfigMap()
- if err != nil {
- return nil, err
- }
- plugins := make([]v1alpha1.ConfigManagementPlugin, 0)
- if value, ok := argoCDCM.Data[configManagementPluginsKey]; ok {
- err := yaml.Unmarshal([]byte(value), &plugins)
- if err != nil {
- return nil, err
- }
- }
- return plugins, nil
-}
-
func (mgr *SettingsManager) GetDeepLinks(deeplinkType string) ([]DeepLink, error) {
argoCDCM, err := mgr.getConfigMap()
if err != nil {
@@ -778,7 +766,7 @@ func (mgr *SettingsManager) GetDeepLinks(deeplinkType string) ([]DeepLink, error
func (mgr *SettingsManager) GetEnabledSourceTypes() (map[string]bool, error) {
argoCDCM, err := mgr.getConfigMap()
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to get argo-cd config map: %w", err)
}
res := map[string]bool{}
for sourceType := range sourceTypeToEnableGenerationKey {
@@ -794,6 +782,54 @@ func (mgr *SettingsManager) GetEnabledSourceTypes() (map[string]bool, error) {
return res, nil
}
+func (mgr *SettingsManager) GetIgnoreResourceUpdatesOverrides() (map[string]v1alpha1.ResourceOverride, error) {
+ compareOptions, err := mgr.GetResourceCompareOptions()
+ if err != nil {
+ return nil, fmt.Errorf("failed to get compare options: %w", err)
+ }
+
+ resourceOverrides, err := mgr.GetResourceOverrides()
+ if err != nil {
+ return nil, fmt.Errorf("failed to get resource overrides: %w", err)
+ }
+
+ for k, v := range resourceOverrides {
+ resourceUpdates := v.IgnoreResourceUpdates
+ if compareOptions.IgnoreDifferencesOnResourceUpdates {
+ resourceUpdates.JQPathExpressions = append(resourceUpdates.JQPathExpressions, v.IgnoreDifferences.JQPathExpressions...)
+ resourceUpdates.JSONPointers = append(resourceUpdates.JSONPointers, v.IgnoreDifferences.JSONPointers...)
+ resourceUpdates.ManagedFieldsManagers = append(resourceUpdates.ManagedFieldsManagers, v.IgnoreDifferences.ManagedFieldsManagers...)
+ }
+ // Set the IgnoreDifferences because these are the overrides used by Normalizers
+ v.IgnoreDifferences = resourceUpdates
+ v.IgnoreResourceUpdates = v1alpha1.OverrideIgnoreDiff{}
+ resourceOverrides[k] = v
+ }
+
+ if compareOptions.IgnoreDifferencesOnResourceUpdates {
+ log.Info("Using diffing customizations to ignore resource updates")
+ }
+
+ addIgnoreDiffItemOverrideToGK(resourceOverrides, "*/*", "/metadata/resourceVersion")
+ addIgnoreDiffItemOverrideToGK(resourceOverrides, "*/*", "/metadata/generation")
+ addIgnoreDiffItemOverrideToGK(resourceOverrides, "*/*", "/metadata/managedFields")
+
+ return resourceOverrides, nil
+}
+
+func (mgr *SettingsManager) GetIsIgnoreResourceUpdatesEnabled() (bool, error) {
+ argoCDCM, err := mgr.getConfigMap()
+ if err != nil {
+ return false, err
+ }
+
+ if argoCDCM.Data[resourceIgnoreResourceUpdatesEnabledKey] == "" {
+ return false, nil
+ }
+
+ return strconv.ParseBool(argoCDCM.Data[resourceIgnoreResourceUpdatesEnabledKey])
+}
+
// GetResourceOverrides loads Resource Overrides from argocd-cm ConfigMap
func (mgr *SettingsManager) GetResourceOverrides() (map[string]v1alpha1.ResourceOverride, error) {
argoCDCM, err := mgr.getConfigMap()
@@ -910,6 +946,13 @@ func (mgr *SettingsManager) appendResourceOverridesFromSplitKeys(cmData map[stri
return err
}
overrideVal.IgnoreDifferences = overrideIgnoreDiff
+ case "ignoreResourceUpdates":
+ overrideIgnoreUpdate := v1alpha1.OverrideIgnoreDiff{}
+ err := yaml.Unmarshal([]byte(v), &overrideIgnoreUpdate)
+ if err != nil {
+ return err
+ }
+ overrideVal.IgnoreResourceUpdates = overrideIgnoreUpdate
case "knownTypeFields":
var knownTypeFields []v1alpha1.KnownTypeField
err := yaml.Unmarshal([]byte(v), &knownTypeFields)
@@ -939,7 +982,7 @@ func convertToOverrideKey(groupKind string) (string, error) {
}
func GetDefaultDiffOptions() ArgoCDDiffOptions {
- return ArgoCDDiffOptions{IgnoreAggregatedRoles: false}
+ return ArgoCDDiffOptions{IgnoreAggregatedRoles: false, IgnoreDifferencesOnResourceUpdates: false}
}
// GetResourceCompareOptions loads the resource compare options settings from the ConfigMap
@@ -966,7 +1009,7 @@ func (mgr *SettingsManager) GetResourceCompareOptions() (ArgoCDDiffOptions, erro
func (mgr *SettingsManager) GetHelmSettings() (*v1alpha1.HelmOptions, error) {
argoCDCM, err := mgr.getConfigMap()
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to get argo-cd config map: %v", err)
}
helmOptions := &v1alpha1.HelmOptions{}
if value, ok := argoCDCM.Data[helmValuesFileSchemesKey]; ok {
@@ -1002,7 +1045,7 @@ func (mgr *SettingsManager) GetKustomizeSettings() (*KustomizeSettings, error) {
if strings.HasPrefix(k, kustomizeVersionKeyPrefix) {
err = addKustomizeVersion(kustomizeVersionKeyPrefix, k, v, kustomizeVersionsMap)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to add kustomize version from %q: %w", k, err)
}
}
@@ -1010,7 +1053,7 @@ func (mgr *SettingsManager) GetKustomizeSettings() (*KustomizeSettings, error) {
if strings.HasPrefix(k, kustomizePathPrefixKey) {
err = addKustomizeVersion(kustomizePathPrefixKey, k, v, kustomizeVersionsMap)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to add kustomize version from %q: %w", k, err)
}
}
@@ -1070,7 +1113,7 @@ func (mgr *SettingsManager) GetRepositories() ([]Repository, error) {
// Get the config map outside of the lock
argoCDCM, err := mgr.getConfigMap()
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to get argo-cd config map: %w", err)
}
mgr.mutex.Lock()
@@ -1080,7 +1123,7 @@ func (mgr *SettingsManager) GetRepositories() ([]Repository, error) {
if repositoriesStr != "" {
err := yaml.Unmarshal([]byte(repositoriesStr), &repositories)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("failed to unmarshal repositories from config map key %q: %w", repositoriesKey, err)
}
}
mgr.reposCache = repositories
@@ -1168,8 +1211,12 @@ func (mgr *SettingsManager) GetHelp() (*Help, error) {
if !ok {
chatText = "Chat now!"
}
+ chatURL, ok := argoCDCM.Data[helpChatURL]
+ if !ok {
+ chatText = ""
+ }
return &Help{
- ChatURL: argoCDCM.Data[helpChatURL],
+ ChatURL: chatURL,
ChatText: chatText,
BinaryURLs: getDownloadBinaryUrlsFromConfigMap(argoCDCM),
}, nil
@@ -1676,13 +1723,26 @@ func (a *ArgoCDSettings) oidcConfig() *oidcConfig {
if a.OIDCConfigRAW == "" {
return nil
}
- config, err := unmarshalOIDCConfig(a.OIDCConfigRAW)
+ configMap := map[string]interface{}{}
+ err := yaml.Unmarshal([]byte(a.OIDCConfigRAW), &configMap)
+ if err != nil {
+ log.Warnf("invalid oidc config: %v", err)
+ return nil
+ }
+
+ configMap = ReplaceMapSecrets(configMap, a.Secrets)
+ data, err := yaml.Marshal(configMap)
if err != nil {
log.Warnf("invalid oidc config: %v", err)
return nil
}
- config.ClientSecret = ReplaceStringSecret(config.ClientSecret, a.Secrets)
- config.ClientID = ReplaceStringSecret(config.ClientID, a.Secrets)
+
+ config, err := unmarshalOIDCConfig(string(data))
+ if err != nil {
+ log.Warnf("invalid oidc config: %v", err)
+ return nil
+ }
+
return &config
}
@@ -1973,6 +2033,42 @@ func (mgr *SettingsManager) InitializeSettings(insecureModeEnabled bool) (*ArgoC
return cdSettings, nil
}
+// ReplaceMapSecrets takes a json object and recursively looks for any secret key references in the
+// object and replaces the value with the secret value
+func ReplaceMapSecrets(obj map[string]interface{}, secretValues map[string]string) map[string]interface{} {
+ newObj := make(map[string]interface{})
+ for k, v := range obj {
+ switch val := v.(type) {
+ case map[string]interface{}:
+ newObj[k] = ReplaceMapSecrets(val, secretValues)
+ case []interface{}:
+ newObj[k] = replaceListSecrets(val, secretValues)
+ case string:
+ newObj[k] = ReplaceStringSecret(val, secretValues)
+ default:
+ newObj[k] = val
+ }
+ }
+ return newObj
+}
+
+func replaceListSecrets(obj []interface{}, secretValues map[string]string) []interface{} {
+ newObj := make([]interface{}, len(obj))
+ for i, v := range obj {
+ switch val := v.(type) {
+ case map[string]interface{}:
+ newObj[i] = ReplaceMapSecrets(val, secretValues)
+ case []interface{}:
+ newObj[i] = replaceListSecrets(val, secretValues)
+ case string:
+ newObj[i] = ReplaceStringSecret(val, secretValues)
+ default:
+ newObj[i] = val
+ }
+ }
+ return newObj
+}
+
// ReplaceStringSecret checks if given string is a secret key reference ( starts with $ ) and returns corresponding value from provided map
func ReplaceStringSecret(val string, secretValues map[string]string) string {
if val == "" || !strings.HasPrefix(val, "$") {
diff --git a/vendor/github.com/argoproj/argo-cd/v2/util/text/text.go b/vendor/github.com/argoproj/argo-cd/v2/util/text/text.go
deleted file mode 100644
index e1dc476600..0000000000
--- a/vendor/github.com/argoproj/argo-cd/v2/util/text/text.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package text
-
-import (
- "strings"
- "unicode/utf8"
-)
-
-// truncates messages to n characters
-func Trunc(message string, n int) string {
- if utf8.RuneCountInString(message) > n {
- return string([]rune(message)[0:n-3]) + "..."
- }
- return message
-}
-
-func SemVer(s string) string {
- return strings.ReplaceAll(s, "+", "")
-}
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/.codecov.yml b/vendor/github.com/bmatcuk/doublestar/v4/.codecov.yml
new file mode 100644
index 0000000000..db6e504a9a
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/.codecov.yml
@@ -0,0 +1,10 @@
+coverage:
+ status:
+ project:
+ default:
+ threshold: 1%
+ patch:
+ default:
+ target: 70%
+ignore:
+ - globoptions.go
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/.gitignore b/vendor/github.com/bmatcuk/doublestar/v4/.gitignore
new file mode 100644
index 0000000000..af212ecc28
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/.gitignore
@@ -0,0 +1,32 @@
+# vi
+*~
+*.swp
+*.swo
+
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
+
+# test directory
+test/
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/LICENSE b/vendor/github.com/bmatcuk/doublestar/v4/LICENSE
new file mode 100644
index 0000000000..309c9d1d11
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Bob Matcuk
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/README.md b/vendor/github.com/bmatcuk/doublestar/v4/README.md
new file mode 100644
index 0000000000..be715ff69e
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/README.md
@@ -0,0 +1,404 @@
+# doublestar
+
+Path pattern matching and globbing supporting `doublestar` (`**`) patterns.
+
+[](https://pkg.go.dev/github.com/bmatcuk/doublestar/v4)
+[](https://github.com/bmatcuk/doublestar/releases)
+[](https://github.com/bmatcuk/doublestar/actions)
+[](https://codecov.io/github/bmatcuk/doublestar?branch=master)
+[](https://github.com/sponsors/bmatcuk)
+
+## About
+
+#### [Upgrading?](UPGRADING.md)
+
+**doublestar** is a [golang] implementation of path pattern matching and
+globbing with support for "doublestar" (aka globstar: `**`) patterns.
+
+doublestar patterns match files and directories recursively. For example, if
+you had the following directory structure:
+
+```bash
+grandparent
+`-- parent
+ |-- child1
+ `-- child2
+```
+
+You could find the children with patterns such as: `**/child*`,
+`grandparent/**/child?`, `**/parent/*`, or even just `**` by itself (which will
+return all files and directories recursively).
+
+Bash's globstar is doublestar's inspiration and, as such, works similarly.
+Note that the doublestar must appear as a path component by itself. A pattern
+such as `/path**` is invalid and will be treated the same as `/path*`, but
+`/path*/**` should achieve the desired result. Additionally, `/path/**` will
+match all directories and files under the path directory, but `/path/**/` will
+only match directories.
+
+v4 is a complete rewrite with a focus on performance. Additionally,
+[doublestar] has been updated to use the new [io/fs] package for filesystem
+access. As a result, it is only supported by [golang] v1.16+.
+
+## Installation
+
+**doublestar** can be installed via `go get`:
+
+```bash
+go get github.com/bmatcuk/doublestar/v4
+```
+
+To use it in your code, you must import it:
+
+```go
+import "github.com/bmatcuk/doublestar/v4"
+```
+
+## Usage
+
+### ErrBadPattern
+
+```go
+doublestar.ErrBadPattern
+```
+
+Returned by various functions to report that the pattern is malformed. At the
+moment, this value is equal to `path.ErrBadPattern`, but, for portability, this
+equivalence should probably not be relied upon.
+
+### Match
+
+```go
+func Match(pattern, name string) (bool, error)
+```
+
+Match returns true if `name` matches the file name `pattern` ([see
+"patterns"]). `name` and `pattern` are split on forward slash (`/`) characters
+and may be relative or absolute.
+
+Match requires pattern to match all of name, not just a substring. The only
+possible returned error is `ErrBadPattern`, when pattern is malformed.
+
+Note: this is meant as a drop-in replacement for `path.Match()` which always
+uses `'/'` as the path separator. If you want to support systems which use a
+different path separator (such as Windows), what you want is `PathMatch()`.
+Alternatively, you can run `filepath.ToSlash()` on both pattern and name and
+then use this function.
+
+Note: users should _not_ count on the returned error,
+`doublestar.ErrBadPattern`, being equal to `path.ErrBadPattern`.
+
+
+### PathMatch
+
+```go
+func PathMatch(pattern, name string) (bool, error)
+```
+
+PathMatch returns true if `name` matches the file name `pattern` ([see
+"patterns"]). The difference between Match and PathMatch is that PathMatch will
+automatically use your system's path separator to split `name` and `pattern`.
+On systems where the path separator is `'\'`, escaping will be disabled.
+
+Note: this is meant as a drop-in replacement for `filepath.Match()`. It assumes
+that both `pattern` and `name` are using the system's path separator. If you
+can't be sure of that, use `filepath.ToSlash()` on both `pattern` and `name`,
+and then use the `Match()` function instead.
+
+### GlobOption
+
+Options that may be passed to `Glob`, `GlobWalk`, or `FilepathGlob`. Any number
+of options may be passed to these functions, and in any order, as the last
+argument(s).
+
+```go
+WithFailOnIOErrors()
+```
+
+If passed, doublestar will abort and return IO errors when encountered. Note
+that if the glob pattern references a path that does not exist (such as
+`nonexistent/path/*`), this is _not_ considered an IO error: it is considered a
+pattern with no matches.
+
+```go
+WithFailOnPatternNotExist()
+```
+
+If passed, doublestar will abort and return `doublestar.ErrPatternNotExist` if
+the pattern references a path that does not exist before any meta characters
+such as `nonexistent/path/*`. Note that alts (ie, `{...}`) are expanded before
+this check. In other words, a pattern such as `{a,b}/*` may fail if either `a`
+or `b` do not exist but `*/{a,b}` will never fail because the star may match
+nothing.
+
+```go
+WithFilesOnly()
+```
+
+If passed, doublestar will only return "files" from `Glob`, `GlobWalk`, or
+`FilepathGlob`. In this context, "files" are anything that is not a directory
+or a symlink to a directory.
+
+Note: if combined with the WithNoFollow option, symlinks to directories _will_
+be included in the result since no attempt is made to follow the symlink.
+
+```go
+WithNoFollow()
+```
+
+If passed, doublestar will not follow symlinks while traversing the filesystem.
+However, due to io/fs's _very_ poor support for querying the filesystem about
+symlinks, there's a caveat here: if part of the pattern before any meta
+characters contains a reference to a symlink, it will be followed. For example,
+a pattern such as `path/to/symlink/*` will be followed assuming it is a valid
+symlink to a directory. However, from this same example, a pattern such as
+`path/to/**` will not traverse the `symlink`, nor would `path/*/symlink/*`
+
+Note: if combined with the WithFilesOnly option, symlinks to directories _will_
+be included in the result since no attempt is made to follow the symlink.
+
+### Glob
+
+```go
+func Glob(fsys fs.FS, pattern string, opts ...GlobOption) ([]string, error)
+```
+
+Glob returns the names of all files matching pattern or nil if there is no
+matching file. The syntax of patterns is the same as in `Match()`. The pattern
+may describe hierarchical names such as `usr/*/bin/ed`.
+
+Glob ignores file system errors such as I/O errors reading directories by
+default. The only possible returned error is `ErrBadPattern`, reporting that
+the pattern is malformed.
+
+To enable aborting on I/O errors, the `WithFailOnIOErrors` option can be
+passed.
+
+Note: this is meant as a drop-in replacement for `io/fs.Glob()`. Like
+`io/fs.Glob()`, this function assumes that your pattern uses `/` as the path
+separator even if that's not correct for your OS (like Windows). If you aren't
+sure if that's the case, you can use `filepath.ToSlash()` on your pattern
+before calling `Glob()`.
+
+Like `io/fs.Glob()`, patterns containing `/./`, `/../`, or starting with `/`
+will return no results and no errors. This seems to be a [conscious
+decision](https://github.com/golang/go/issues/44092#issuecomment-774132549),
+even if counter-intuitive. You can use [SplitPattern] to divide a pattern into
+a base path (to initialize an `FS` object) and pattern.
+
+Note: users should _not_ count on the returned error,
+`doublestar.ErrBadPattern`, being equal to `path.ErrBadPattern`.
+
+### GlobWalk
+
+```go
+type GlobWalkFunc func(path string, d fs.DirEntry) error
+
+func GlobWalk(fsys fs.FS, pattern string, fn GlobWalkFunc, opts ...GlobOption) error
+```
+
+GlobWalk calls the callback function `fn` for every file matching pattern. The
+syntax of pattern is the same as in Match() and the behavior is the same as
+Glob(), with regard to limitations (such as patterns containing `/./`, `/../`,
+or starting with `/`). The pattern may describe hierarchical names such as
+usr/*/bin/ed.
+
+GlobWalk may have a small performance benefit over Glob if you do not need a
+slice of matches because it can avoid allocating memory for the matches.
+Additionally, GlobWalk gives you access to the `fs.DirEntry` objects for each
+match, and lets you quit early by returning a non-nil error from your callback
+function. Like `io/fs.WalkDir`, if your callback returns `SkipDir`, GlobWalk
+will skip the current directory. This means that if the current path _is_ a
+directory, GlobWalk will not recurse into it. If the current path is not a
+directory, the rest of the parent directory will be skipped.
+
+GlobWalk ignores file system errors such as I/O errors reading directories by
+default. GlobWalk may return `ErrBadPattern`, reporting that the pattern is
+malformed.
+
+To enable aborting on I/O errors, the `WithFailOnIOErrors` option can be
+passed.
+
+Additionally, if the callback function `fn` returns an error, GlobWalk will
+exit immediately and return that error.
+
+Like Glob(), this function assumes that your pattern uses `/` as the path
+separator even if that's not correct for your OS (like Windows). If you aren't
+sure if that's the case, you can use filepath.ToSlash() on your pattern before
+calling GlobWalk().
+
+Note: users should _not_ count on the returned error,
+`doublestar.ErrBadPattern`, being equal to `path.ErrBadPattern`.
+
+### FilepathGlob
+
+```go
+func FilepathGlob(pattern string, opts ...GlobOption) (matches []string, err error)
+```
+
+FilepathGlob returns the names of all files matching pattern or nil if there is
+no matching file. The syntax of pattern is the same as in Match(). The pattern
+may describe hierarchical names such as usr/*/bin/ed.
+
+FilepathGlob ignores file system errors such as I/O errors reading directories
+by default. The only possible returned error is `ErrBadPattern`, reporting that
+the pattern is malformed.
+
+To enable aborting on I/O errors, the `WithFailOnIOErrors` option can be
+passed.
+
+Note: FilepathGlob is a convenience function that is meant as a drop-in
+replacement for `path/filepath.Glob()` for users who don't need the
+complication of io/fs. Basically, it:
+
+* Runs `filepath.Clean()` and `ToSlash()` on the pattern
+* Runs `SplitPattern()` to get a base path and a pattern to Glob
+* Creates an FS object from the base path and `Glob()s` on the pattern
+* Joins the base path with all of the matches from `Glob()`
+
+Returned paths will use the system's path separator, just like
+`filepath.Glob()`.
+
+Note: the returned error `doublestar.ErrBadPattern` is not equal to
+`filepath.ErrBadPattern`.
+
+### SplitPattern
+
+```go
+func SplitPattern(p string) (base, pattern string)
+```
+
+SplitPattern is a utility function. Given a pattern, SplitPattern will return
+two strings: the first string is everything up to the last slash (`/`) that
+appears _before_ any unescaped "meta" characters (ie, `*?[{`). The second
+string is everything after that slash. For example, given the pattern:
+
+```
+../../path/to/meta*/**
+ ^----------- split here
+```
+
+SplitPattern returns "../../path/to" and "meta*/**". This is useful for
+initializing os.DirFS() to call Glob() because Glob() will silently fail if
+your pattern includes `/./` or `/../`. For example:
+
+```go
+base, pattern := SplitPattern("../../path/to/meta*/**")
+fsys := os.DirFS(base)
+matches, err := Glob(fsys, pattern)
+```
+
+If SplitPattern cannot find somewhere to split the pattern (for example,
+`meta*/**`), it will return "." and the unaltered pattern (`meta*/**` in this
+example).
+
+Of course, it is your responsibility to decide if the returned base path is
+"safe" in the context of your application. Perhaps you could use Match() to
+validate against a list of approved base directories?
+
+### ValidatePattern
+
+```go
+func ValidatePattern(s string) bool
+```
+
+Validate a pattern. Patterns are validated while they run in Match(),
+PathMatch(), and Glob(), so, you normally wouldn't need to call this. However,
+there are cases where this might be useful: for example, if your program allows
+a user to enter a pattern that you'll run at a later time, you might want to
+validate it.
+
+ValidatePattern assumes your pattern uses '/' as the path separator.
+
+### ValidatePathPattern
+
+```go
+func ValidatePathPattern(s string) bool
+```
+
+Like ValidatePattern, only uses your OS path separator. In other words, use
+ValidatePattern if you would normally use Match() or Glob(). Use
+ValidatePathPattern if you would normally use PathMatch(). Keep in mind, Glob()
+requires '/' separators, even if your OS uses something else.
+
+### Patterns
+
+**doublestar** supports the following special terms in the patterns:
+
+Special Terms | Meaning
+------------- | -------
+`*` | matches any sequence of non-path-separators
+`/**/` | matches zero or more directories
+`?` | matches any single non-path-separator character
+`[class]` | matches any single non-path-separator character against a class of characters ([see "character classes"])
+`{alt1,...}` | matches a sequence of characters if one of the comma-separated alternatives matches
+
+Any character with a special meaning can be escaped with a backslash (`\`).
+
+A doublestar (`**`) should appear surrounded by path separators such as `/**/`.
+A mid-pattern doublestar (`**`) behaves like bash's globstar option: a pattern
+such as `path/to/**.txt` would return the same results as `path/to/*.txt`. The
+pattern you're looking for is `path/to/**/*.txt`.
+
+#### Character Classes
+
+Character classes support the following:
+
+Class | Meaning
+---------- | -------
+`[abc]` | matches any single character within the set
+`[a-z]` | matches any single character in the range
+`[^class]` | matches any single character which does *not* match the class
+`[!class]` | same as `^`: negates the class
+
+## Performance
+
+```
+goos: darwin
+goarch: amd64
+pkg: github.com/bmatcuk/doublestar/v4
+cpu: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
+BenchmarkMatch-8 285639 3868 ns/op 0 B/op 0 allocs/op
+BenchmarkGoMatch-8 286945 3726 ns/op 0 B/op 0 allocs/op
+BenchmarkPathMatch-8 320511 3493 ns/op 0 B/op 0 allocs/op
+BenchmarkGoPathMatch-8 304236 3434 ns/op 0 B/op 0 allocs/op
+BenchmarkGlob-8 466 2501123 ns/op 190225 B/op 2849 allocs/op
+BenchmarkGlobWalk-8 476 2536293 ns/op 184017 B/op 2750 allocs/op
+BenchmarkGoGlob-8 463 2574836 ns/op 194249 B/op 2929 allocs/op
+```
+
+These benchmarks (in `doublestar_test.go`) compare Match() to path.Match(),
+PathMath() to filepath.Match(), and Glob() + GlobWalk() to io/fs.Glob(). They
+only run patterns that the standard go packages can understand as well (so, no
+`{alts}` or `**`) for a fair comparison. Of course, alts and doublestars will
+be less performant than the other pattern meta characters.
+
+Alts are essentially like running multiple patterns, the number of which can
+get large if your pattern has alts nested inside alts. This affects both
+matching (ie, Match()) and globbing (Glob()).
+
+`**` performance in matching is actually pretty similar to a regular `*`, but
+can cause a large number of reads when globbing as it will need to recursively
+traverse your filesystem.
+
+## Sponsors
+I started this project in 2014 in my spare time and have been maintaining it
+ever since. In that time, it has grown into one of the most popular globbing
+libraries in the Go ecosystem. So, if **doublestar** is a useful library in
+your project, consider [sponsoring] my work! I'd really appreciate it!
+
+[](https://reviewpad.com/)
+
+Thanks for sponsoring me!
+
+## License
+
+[MIT License](LICENSE)
+
+[SplitPattern]: #splitpattern
+[doublestar]: https://github.com/bmatcuk/doublestar
+[golang]: http://golang.org/
+[io/fs]: https://pkg.go.dev/io/fs
+[see "character classes"]: #character-classes
+[see "patterns"]: #patterns
+[sponsoring]: https://github.com/sponsors/bmatcuk
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/UPGRADING.md b/vendor/github.com/bmatcuk/doublestar/v4/UPGRADING.md
new file mode 100644
index 0000000000..25aace3db0
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/UPGRADING.md
@@ -0,0 +1,63 @@
+# Upgrading from v3 to v4
+
+v4 is a complete rewrite with a focus on performance. Additionally,
+[doublestar] has been updated to use the new [io/fs] package for filesystem
+access. As a result, it is only supported by [golang] v1.16+.
+
+`Match()` and `PathMatch()` mostly did not change, besides big performance
+improvements. Their API is the same. However, note the following corner cases:
+
+* In previous versions of [doublestar], `PathMatch()` could accept patterns
+ that used either platform-specific path separators, or `/`. This was
+ undocumented and didn't match `filepath.Match()`. In v4, both `pattern` and
+ `name` must be using appropriate path separators for the platform. You can
+ use `filepath.FromSlash()` to change `/` to platform-specific separators if
+ you aren't sure.
+* In previous versions of [doublestar], a pattern such as `path/to/a/**` would
+ _not_ match `path/to/a`. In v4, this pattern _will_ match because if `a` was
+ a directory, `Glob()` would return it. In other words, the following returns
+ true: `Match("path/to/a/**", "path/to/a")`
+
+`Glob()` changed from using a [doublestar]-specific filesystem abstraction (the
+`OS` interface) to the [io/fs] package. As a result, it now takes a `fs.FS` as
+its first argument. This change has a couple ramifications:
+
+* Like `io/fs.Glob`, `pattern` must use a `/` as path separator, even on
+ platforms that use something else. You can use `filepath.ToSlash()` on your
+ patterns if you aren't sure.
+* Patterns that contain `/./` or `/../` are invalid. The [io/fs] package
+ rejects them, returning an IO error. Since `Glob()` ignores IO errors, it'll
+ end up being silently rejected. You can run `path.Clean()` to ensure they are
+ removed from the pattern.
+
+v4 also added a `GlobWalk()` function that is slightly more performant than
+`Glob()` if you just need to iterate over the results and don't need a string
+slice. You also get `fs.DirEntry` objects for each result, and can quit early
+if your callback returns an error.
+
+# Upgrading from v2 to v3
+
+v3 introduced using `!` to negate character classes, in addition to `^`. If any
+of your patterns include a character class that starts with an exclamation mark
+(ie, `[!...]`), you'll need to update the pattern to escape or move the
+exclamation mark. Note that, like the caret (`^`), it only negates the
+character class if it is the first character in the character class.
+
+# Upgrading from v1 to v2
+
+The change from v1 to v2 was fairly minor: the return type of the `Open` method
+on the `OS` interface was changed from `*os.File` to `File`, a new interface
+exported by doublestar. The new `File` interface only defines the functionality
+doublestar actually needs (`io.Closer` and `Readdir`), making it easier to use
+doublestar with [go-billy], [afero], or something similar. If you were using
+this functionality, updating should be as easy as updating `Open's` return
+type, since `os.File` already implements `doublestar.File`.
+
+If you weren't using this functionality, updating should be as easy as changing
+your dependencies to point to v2.
+
+[afero]: https://github.com/spf13/afero
+[doublestar]: https://github.com/bmatcuk/doublestar
+[go-billy]: https://github.com/src-d/go-billy
+[golang]: http://golang.org/
+[io/fs]: https://golang.org/pkg/io/fs/
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/doublestar.go b/vendor/github.com/bmatcuk/doublestar/v4/doublestar.go
new file mode 100644
index 0000000000..210fd40ceb
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/doublestar.go
@@ -0,0 +1,13 @@
+package doublestar
+
+import (
+ "errors"
+ "path"
+)
+
+// ErrBadPattern indicates a pattern was malformed.
+var ErrBadPattern = path.ErrBadPattern
+
+// ErrPatternNotExist indicates that the pattern passed to Glob, GlobWalk, or
+// FilepathGlob references a path that does not exist.
+var ErrPatternNotExist = errors.New("pattern does not exist")
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/glob.go b/vendor/github.com/bmatcuk/doublestar/v4/glob.go
new file mode 100644
index 0000000000..519601b15c
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/glob.go
@@ -0,0 +1,473 @@
+package doublestar
+
+import (
+ "errors"
+ "io/fs"
+ "path"
+)
+
+// Glob returns the names of all files matching pattern or nil if there is no
+// matching file. The syntax of pattern is the same as in Match(). The pattern
+// may describe hierarchical names such as usr/*/bin/ed.
+//
+// Glob ignores file system errors such as I/O errors reading directories by
+// default. The only possible returned error is ErrBadPattern, reporting that
+// the pattern is malformed.
+//
+// To enable aborting on I/O errors, the WithFailOnIOErrors option can be
+// passed.
+//
+// Note: this is meant as a drop-in replacement for io/fs.Glob(). Like
+// io/fs.Glob(), this function assumes that your pattern uses `/` as the path
+// separator even if that's not correct for your OS (like Windows). If you
+// aren't sure if that's the case, you can use filepath.ToSlash() on your
+// pattern before calling Glob().
+//
+// Like `io/fs.Glob()`, patterns containing `/./`, `/../`, or starting with `/`
+// will return no results and no errors. You can use SplitPattern to divide a
+// pattern into a base path (to initialize an `FS` object) and pattern.
+//
+// Note: users should _not_ count on the returned error,
+// doublestar.ErrBadPattern, being equal to path.ErrBadPattern.
+//
+func Glob(fsys fs.FS, pattern string, opts ...GlobOption) ([]string, error) {
+ if !ValidatePattern(pattern) {
+ return nil, ErrBadPattern
+ }
+
+ g := newGlob(opts...)
+
+ if hasMidDoubleStar(pattern) {
+ // If the pattern has a `**` anywhere but the very end, GlobWalk is more
+ // performant because it can get away with less allocations. If the pattern
+ // ends in a `**`, both methods are pretty much the same, but Glob has a
+ // _very_ slight advantage because of lower function call overhead.
+ var matches []string
+ err := g.doGlobWalk(fsys, pattern, true, true, func(p string, d fs.DirEntry) error {
+ matches = append(matches, p)
+ return nil
+ })
+ return matches, err
+ }
+ return g.doGlob(fsys, pattern, nil, true, true)
+}
+
+// Does the actual globbin'
+// - firstSegment is true if we're in the first segment of the pattern, ie,
+// the right-most part where we can match files. If it's false, we're
+// somewhere in the middle (or at the beginning) and can only match
+// directories since there are path segments above us.
+// - beforeMeta is true if we're exploring segments before any meta
+// characters, ie, in a pattern such as `path/to/file*.txt`, the `path/to/`
+// bit does not contain any meta characters.
+func (g *glob) doGlob(fsys fs.FS, pattern string, m []string, firstSegment, beforeMeta bool) (matches []string, err error) {
+ matches = m
+ patternStart := indexMeta(pattern)
+ if patternStart == -1 {
+ // pattern doesn't contain any meta characters - does a file matching the
+ // pattern exist?
+ // The pattern may contain escaped wildcard characters for an exact path match.
+ path := unescapeMeta(pattern)
+ pathInfo, pathExists, pathErr := g.exists(fsys, path, beforeMeta)
+ if pathErr != nil {
+ return nil, pathErr
+ }
+
+ if pathExists && (!firstSegment || !g.filesOnly || !pathInfo.IsDir()) {
+ matches = append(matches, path)
+ }
+
+ return
+ }
+
+ dir := "."
+ splitIdx := lastIndexSlashOrAlt(pattern)
+ if splitIdx != -1 {
+ if pattern[splitIdx] == '}' {
+ openingIdx := indexMatchedOpeningAlt(pattern[:splitIdx])
+ if openingIdx == -1 {
+ // if there's no matching opening index, technically Match() will treat
+ // an unmatched `}` as nothing special, so... we will, too!
+ splitIdx = lastIndexSlash(pattern[:splitIdx])
+ if splitIdx != -1 {
+ dir = pattern[:splitIdx]
+ pattern = pattern[splitIdx+1:]
+ }
+ } else {
+ // otherwise, we have to handle the alts:
+ return g.globAlts(fsys, pattern, openingIdx, splitIdx, matches, firstSegment, beforeMeta)
+ }
+ } else {
+ dir = pattern[:splitIdx]
+ pattern = pattern[splitIdx+1:]
+ }
+ }
+
+ // if `splitIdx` is less than `patternStart`, we know `dir` has no meta
+ // characters. They would be equal if they are both -1, which means `dir`
+ // will be ".", and we know that doesn't have meta characters either.
+ if splitIdx <= patternStart {
+ return g.globDir(fsys, dir, pattern, matches, firstSegment, beforeMeta)
+ }
+
+ var dirs []string
+ dirs, err = g.doGlob(fsys, dir, matches, false, beforeMeta)
+ if err != nil {
+ return
+ }
+ for _, d := range dirs {
+ matches, err = g.globDir(fsys, d, pattern, matches, firstSegment, false)
+ if err != nil {
+ return
+ }
+ }
+
+ return
+}
+
+// handle alts in the glob pattern - `openingIdx` and `closingIdx` are the
+// indexes of `{` and `}`, respectively
+func (g *glob) globAlts(fsys fs.FS, pattern string, openingIdx, closingIdx int, m []string, firstSegment, beforeMeta bool) (matches []string, err error) {
+ matches = m
+
+ var dirs []string
+ startIdx := 0
+ afterIdx := closingIdx + 1
+ splitIdx := lastIndexSlashOrAlt(pattern[:openingIdx])
+ if splitIdx == -1 || pattern[splitIdx] == '}' {
+ // no common prefix
+ dirs = []string{""}
+ } else {
+ // our alts have a common prefix that we can process first
+ dirs, err = g.doGlob(fsys, pattern[:splitIdx], matches, false, beforeMeta)
+ if err != nil {
+ return
+ }
+
+ startIdx = splitIdx + 1
+ }
+
+ for _, d := range dirs {
+ patIdx := openingIdx + 1
+ altResultsStartIdx := len(matches)
+ thisResultStartIdx := altResultsStartIdx
+ for patIdx < closingIdx {
+ nextIdx := indexNextAlt(pattern[patIdx:closingIdx], true)
+ if nextIdx == -1 {
+ nextIdx = closingIdx
+ } else {
+ nextIdx += patIdx
+ }
+
+ alt := buildAlt(d, pattern, startIdx, openingIdx, patIdx, nextIdx, afterIdx)
+ matches, err = g.doGlob(fsys, alt, matches, firstSegment, beforeMeta)
+ if err != nil {
+ return
+ }
+
+ matchesLen := len(matches)
+ if altResultsStartIdx != thisResultStartIdx && thisResultStartIdx != matchesLen {
+ // Alts can result in matches that aren't sorted, or, worse, duplicates
+ // (consider the trivial pattern `path/to/{a,*}`). Since doGlob returns
+ // sorted results, we can do a sort of in-place merge and remove
+ // duplicates. But, we only need to do this if this isn't the first alt
+ // (ie, `altResultsStartIdx != thisResultsStartIdx`) and if the latest
+ // alt actually added some matches (`thisResultStartIdx !=
+ // len(matches)`)
+ matches = sortAndRemoveDups(matches, altResultsStartIdx, thisResultStartIdx, matchesLen)
+
+ // length of matches may have changed
+ thisResultStartIdx = len(matches)
+ } else {
+ thisResultStartIdx = matchesLen
+ }
+
+ patIdx = nextIdx + 1
+ }
+ }
+
+ return
+}
+
+// find files/subdirectories in the given `dir` that match `pattern`
+func (g *glob) globDir(fsys fs.FS, dir, pattern string, matches []string, canMatchFiles, beforeMeta bool) (m []string, e error) {
+ m = matches
+
+ if pattern == "" {
+ if !canMatchFiles || !g.filesOnly {
+ // pattern can be an empty string if the original pattern ended in a
+ // slash, in which case, we should just return dir, but only if it
+ // actually exists and it's a directory (or a symlink to a directory)
+ _, isDir, err := g.isPathDir(fsys, dir, beforeMeta)
+ if err != nil {
+ return nil, err
+ }
+ if isDir {
+ m = append(m, dir)
+ }
+ }
+ return
+ }
+
+ if pattern == "**" {
+ return g.globDoubleStar(fsys, dir, m, canMatchFiles, beforeMeta)
+ }
+
+ dirs, err := fs.ReadDir(fsys, dir)
+ if err != nil {
+ if errors.Is(err, fs.ErrNotExist) {
+ e = g.handlePatternNotExist(beforeMeta)
+ } else {
+ e = g.forwardErrIfFailOnIOErrors(err)
+ }
+ return
+ }
+
+ var matched bool
+ for _, info := range dirs {
+ name := info.Name()
+ matched, e = matchWithSeparator(pattern, name, '/', false)
+ if e != nil {
+ return
+ }
+ if matched {
+ matched = canMatchFiles
+ if !matched || g.filesOnly {
+ matched, e = g.isDir(fsys, dir, name, info)
+ if e != nil {
+ return
+ }
+ if canMatchFiles {
+ // if we're here, it's because g.filesOnly
+ // is set and we don't want directories
+ matched = !matched
+ }
+ }
+ if matched {
+ m = append(m, path.Join(dir, name))
+ }
+ }
+ }
+
+ return
+}
+
+func (g *glob) globDoubleStar(fsys fs.FS, dir string, matches []string, canMatchFiles, beforeMeta bool) ([]string, error) {
+ dirs, err := fs.ReadDir(fsys, dir)
+ if err != nil {
+ if errors.Is(err, fs.ErrNotExist) {
+ return matches, g.handlePatternNotExist(beforeMeta)
+ } else {
+ return matches, g.forwardErrIfFailOnIOErrors(err)
+ }
+ }
+
+ if !g.filesOnly {
+ // `**` can match *this* dir, so add it
+ matches = append(matches, dir)
+ }
+
+ for _, info := range dirs {
+ name := info.Name()
+ isDir, err := g.isDir(fsys, dir, name, info)
+ if err != nil {
+ return nil, err
+ }
+ if isDir {
+ matches, err = g.globDoubleStar(fsys, path.Join(dir, name), matches, canMatchFiles, false)
+ if err != nil {
+ return nil, err
+ }
+ } else if canMatchFiles {
+ matches = append(matches, path.Join(dir, name))
+ }
+ }
+
+ return matches, nil
+}
+
+// Returns true if the pattern has a doublestar in the middle of the pattern.
+// In this case, GlobWalk is faster because it can get away with less
+// allocations. However, Glob has a _very_ slight edge if the pattern ends in
+// `**`.
+func hasMidDoubleStar(p string) bool {
+ // subtract 3: 2 because we want to return false if the pattern ends in `**`
+ // (Glob is _very_ slightly faster in that case), and the extra 1 because our
+ // loop checks p[i] and p[i+1].
+ l := len(p) - 3
+ for i := 0; i < l; i++ {
+ if p[i] == '\\' {
+ // escape next byte
+ i++
+ } else if p[i] == '*' && p[i+1] == '*' {
+ return true
+ }
+ }
+ return false
+}
+
+// Returns the index of the first unescaped meta character, or negative 1.
+func indexMeta(s string) int {
+ var c byte
+ l := len(s)
+ for i := 0; i < l; i++ {
+ c = s[i]
+ if c == '*' || c == '?' || c == '[' || c == '{' {
+ return i
+ } else if c == '\\' {
+ // skip next byte
+ i++
+ }
+ }
+ return -1
+}
+
+// Returns the index of the last unescaped slash or closing alt (`}`) in the
+// string, or negative 1.
+func lastIndexSlashOrAlt(s string) int {
+ for i := len(s) - 1; i >= 0; i-- {
+ if (s[i] == '/' || s[i] == '}') && (i == 0 || s[i-1] != '\\') {
+ return i
+ }
+ }
+ return -1
+}
+
+// Returns the index of the last unescaped slash in the string, or negative 1.
+func lastIndexSlash(s string) int {
+ for i := len(s) - 1; i >= 0; i-- {
+ if s[i] == '/' && (i == 0 || s[i-1] != '\\') {
+ return i
+ }
+ }
+ return -1
+}
+
+// Assuming the byte after the end of `s` is a closing `}`, this function will
+// find the index of the matching `{`. That is, it'll skip over any nested `{}`
+// and account for escaping.
+func indexMatchedOpeningAlt(s string) int {
+ alts := 1
+ for i := len(s) - 1; i >= 0; i-- {
+ if s[i] == '}' && (i == 0 || s[i-1] != '\\') {
+ alts++
+ } else if s[i] == '{' && (i == 0 || s[i-1] != '\\') {
+ if alts--; alts == 0 {
+ return i
+ }
+ }
+ }
+ return -1
+}
+
+// Returns true if the path exists
+func (g *glob) exists(fsys fs.FS, name string, beforeMeta bool) (fs.FileInfo, bool, error) {
+ // name might end in a slash, but Stat doesn't like that
+ namelen := len(name)
+ if namelen > 1 && name[namelen-1] == '/' {
+ name = name[:namelen-1]
+ }
+
+ info, err := fs.Stat(fsys, name)
+ if errors.Is(err, fs.ErrNotExist) {
+ return nil, false, g.handlePatternNotExist(beforeMeta)
+ }
+ return info, err == nil, g.forwardErrIfFailOnIOErrors(err)
+}
+
+// Returns true if the path exists and is a directory or a symlink to a
+// directory
+func (g *glob) isPathDir(fsys fs.FS, name string, beforeMeta bool) (fs.FileInfo, bool, error) {
+ info, err := fs.Stat(fsys, name)
+ if errors.Is(err, fs.ErrNotExist) {
+ return nil, false, g.handlePatternNotExist(beforeMeta)
+ }
+ return info, err == nil && info.IsDir(), g.forwardErrIfFailOnIOErrors(err)
+}
+
+// Returns whether or not the given DirEntry is a directory. If the DirEntry
+// represents a symbolic link, the link is followed by running fs.Stat() on
+// `path.Join(dir, name)` (if dir is "", name will be used without joining)
+func (g *glob) isDir(fsys fs.FS, dir, name string, info fs.DirEntry) (bool, error) {
+ if !g.noFollow && (info.Type()&fs.ModeSymlink) > 0 {
+ p := name
+ if dir != "" {
+ p = path.Join(dir, name)
+ }
+ finfo, err := fs.Stat(fsys, p)
+ if err != nil {
+ if errors.Is(err, fs.ErrNotExist) {
+ // this function is only ever called while expanding a glob, so it can
+ // never return ErrPatternNotExist
+ return false, nil
+ }
+ return false, g.forwardErrIfFailOnIOErrors(err)
+ }
+ return finfo.IsDir(), nil
+ }
+ return info.IsDir(), nil
+}
+
+// Builds a string from an alt
+func buildAlt(prefix, pattern string, startIdx, openingIdx, currentIdx, nextIdx, afterIdx int) string {
+ // pattern:
+ // ignored/start{alts,go,here}remaining - len = 36
+ // | | | | ^--- afterIdx = 27
+ // | | | \--------- nextIdx = 21
+ // | | \----------- currentIdx = 19
+ // | \----------------- openingIdx = 13
+ // \---------------------- startIdx = 8
+ //
+ // result:
+ // prefix/startgoremaining - len = 7 + 5 + 2 + 9 = 23
+ var buf []byte
+ patLen := len(pattern)
+ size := (openingIdx - startIdx) + (nextIdx - currentIdx) + (patLen - afterIdx)
+ if prefix != "" && prefix != "." {
+ buf = make([]byte, 0, size+len(prefix)+1)
+ buf = append(buf, prefix...)
+ buf = append(buf, '/')
+ } else {
+ buf = make([]byte, 0, size)
+ }
+ buf = append(buf, pattern[startIdx:openingIdx]...)
+ buf = append(buf, pattern[currentIdx:nextIdx]...)
+ if afterIdx < patLen {
+ buf = append(buf, pattern[afterIdx:]...)
+ }
+ return string(buf)
+}
+
+// Running alts can produce results that are not sorted, and, worse, can cause
+// duplicates (consider the trivial pattern `path/to/{a,*}`). Since we know
+// each run of doGlob is sorted, we can basically do the "merge" step of a
+// merge sort in-place.
+func sortAndRemoveDups(matches []string, idx1, idx2, l int) []string {
+ var tmp string
+ for ; idx1 < idx2; idx1++ {
+ if matches[idx1] < matches[idx2] {
+ // order is correct
+ continue
+ } else if matches[idx1] > matches[idx2] {
+ // need to swap and then re-sort matches above idx2
+ tmp = matches[idx1]
+ matches[idx1] = matches[idx2]
+
+ shft := idx2 + 1
+ for ; shft < l && matches[shft] < tmp; shft++ {
+ matches[shft-1] = matches[shft]
+ }
+ matches[shft-1] = tmp
+ } else {
+ // duplicate - shift matches above idx2 down one and decrement l
+ for shft := idx2 + 1; shft < l; shft++ {
+ matches[shft-1] = matches[shft]
+ }
+ if l--; idx2 == l {
+ // nothing left to do... matches[idx2:] must have been full of dups
+ break
+ }
+ }
+ }
+ return matches[:l]
+}
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/globoptions.go b/vendor/github.com/bmatcuk/doublestar/v4/globoptions.go
new file mode 100644
index 0000000000..9483c4bb00
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/globoptions.go
@@ -0,0 +1,144 @@
+package doublestar
+
+import "strings"
+
+// glob is an internal type to store options during globbing.
+type glob struct {
+ failOnIOErrors bool
+ failOnPatternNotExist bool
+ filesOnly bool
+ noFollow bool
+}
+
+// GlobOption represents a setting that can be passed to Glob, GlobWalk, and
+// FilepathGlob.
+type GlobOption func(*glob)
+
+// Construct a new glob object with the given options
+func newGlob(opts ...GlobOption) *glob {
+ g := &glob{}
+ for _, opt := range opts {
+ opt(g)
+ }
+ return g
+}
+
+// WithFailOnIOErrors is an option that can be passed to Glob, GlobWalk, or
+// FilepathGlob. If passed, doublestar will abort and return IO errors when
+// encountered. Note that if the glob pattern references a path that does not
+// exist (such as `nonexistent/path/*`), this is _not_ considered an IO error:
+// it is considered a pattern with no matches.
+//
+func WithFailOnIOErrors() GlobOption {
+ return func(g *glob) {
+ g.failOnIOErrors = true
+ }
+}
+
+// WithFailOnPatternNotExist is an option that can be passed to Glob, GlobWalk,
+// or FilepathGlob. If passed, doublestar will abort and return
+// ErrPatternNotExist if the pattern references a path that does not exist
+// before any meta charcters such as `nonexistent/path/*`. Note that alts (ie,
+// `{...}`) are expanded before this check. In other words, a pattern such as
+// `{a,b}/*` may fail if either `a` or `b` do not exist but `*/{a,b}` will
+// never fail because the star may match nothing.
+//
+func WithFailOnPatternNotExist() GlobOption {
+ return func(g *glob) {
+ g.failOnPatternNotExist = true
+ }
+}
+
+// WithFilesOnly is an option that can be passed to Glob, GlobWalk, or
+// FilepathGlob. If passed, doublestar will only return files that match the
+// pattern, not directories.
+//
+// Note: if combined with the WithNoFollow option, symlinks to directories
+// _will_ be included in the result since no attempt is made to follow the
+// symlink.
+//
+func WithFilesOnly() GlobOption {
+ return func(g *glob) {
+ g.filesOnly = true
+ }
+}
+
+// WithNoFollow is an option that can be passed to Glob, GlobWalk, or
+// FilepathGlob. If passed, doublestar will not follow symlinks while
+// traversing the filesystem. However, due to io/fs's _very_ poor support for
+// querying the filesystem about symlinks, there's a caveat here: if part of
+// the pattern before any meta characters contains a reference to a symlink, it
+// will be followed. For example, a pattern such as `path/to/symlink/*` will be
+// followed assuming it is a valid symlink to a directory. However, from this
+// same example, a pattern such as `path/to/**` will not traverse the
+// `symlink`, nor would `path/*/symlink/*`
+//
+// Note: if combined with the WithFilesOnly option, symlinks to directories
+// _will_ be included in the result since no attempt is made to follow the
+// symlink.
+//
+func WithNoFollow() GlobOption {
+ return func(g *glob) {
+ g.noFollow = true
+ }
+}
+
+// forwardErrIfFailOnIOErrors is used to wrap the return values of I/O
+// functions. When failOnIOErrors is enabled, it will return err; otherwise, it
+// always returns nil.
+//
+func (g *glob) forwardErrIfFailOnIOErrors(err error) error {
+ if g.failOnIOErrors {
+ return err
+ }
+ return nil
+}
+
+// handleErrNotExist handles fs.ErrNotExist errors. If
+// WithFailOnPatternNotExist has been enabled and canFail is true, this will
+// return ErrPatternNotExist. Otherwise, it will return nil.
+//
+func (g *glob) handlePatternNotExist(canFail bool) error {
+ if canFail && g.failOnPatternNotExist {
+ return ErrPatternNotExist
+ }
+ return nil
+}
+
+// Format options for debugging/testing purposes
+func (g *glob) GoString() string {
+ var b strings.Builder
+ b.WriteString("opts: ")
+
+ hasOpts := false
+ if g.failOnIOErrors {
+ b.WriteString("WithFailOnIOErrors")
+ hasOpts = true
+ }
+ if g.failOnPatternNotExist {
+ if hasOpts {
+ b.WriteString(", ")
+ }
+ b.WriteString("WithFailOnPatternNotExist")
+ hasOpts = true
+ }
+ if g.filesOnly {
+ if hasOpts {
+ b.WriteString(", ")
+ }
+ b.WriteString("WithFilesOnly")
+ hasOpts = true
+ }
+ if g.noFollow {
+ if hasOpts {
+ b.WriteString(", ")
+ }
+ b.WriteString("WithNoFollow")
+ hasOpts = true
+ }
+
+ if !hasOpts {
+ b.WriteString("nil")
+ }
+ return b.String()
+}
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/globwalk.go b/vendor/github.com/bmatcuk/doublestar/v4/globwalk.go
new file mode 100644
index 0000000000..84e764f0e2
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/globwalk.go
@@ -0,0 +1,414 @@
+package doublestar
+
+import (
+ "errors"
+ "io/fs"
+ "path"
+ "path/filepath"
+ "strings"
+)
+
+// If returned from GlobWalkFunc, will cause GlobWalk to skip the current
+// directory. In other words, if the current path is a directory, GlobWalk will
+// not recurse into it. Otherwise, GlobWalk will skip the rest of the current
+// directory.
+var SkipDir = fs.SkipDir
+
+// Callback function for GlobWalk(). If the function returns an error, GlobWalk
+// will end immediately and return the same error.
+type GlobWalkFunc func(path string, d fs.DirEntry) error
+
+// GlobWalk calls the callback function `fn` for every file matching pattern.
+// The syntax of pattern is the same as in Match() and the behavior is the same
+// as Glob(), with regard to limitations (such as patterns containing `/./`,
+// `/../`, or starting with `/`). The pattern may describe hierarchical names
+// such as usr/*/bin/ed.
+//
+// GlobWalk may have a small performance benefit over Glob if you do not need a
+// slice of matches because it can avoid allocating memory for the matches.
+// Additionally, GlobWalk gives you access to the `fs.DirEntry` objects for
+// each match, and lets you quit early by returning a non-nil error from your
+// callback function. Like `io/fs.WalkDir`, if your callback returns `SkipDir`,
+// GlobWalk will skip the current directory. This means that if the current
+// path _is_ a directory, GlobWalk will not recurse into it. If the current
+// path is not a directory, the rest of the parent directory will be skipped.
+//
+// GlobWalk ignores file system errors such as I/O errors reading directories
+// by default. GlobWalk may return ErrBadPattern, reporting that the pattern is
+// malformed.
+//
+// To enable aborting on I/O errors, the WithFailOnIOErrors option can be
+// passed.
+//
+// Additionally, if the callback function `fn` returns an error, GlobWalk will
+// exit immediately and return that error.
+//
+// Like Glob(), this function assumes that your pattern uses `/` as the path
+// separator even if that's not correct for your OS (like Windows). If you
+// aren't sure if that's the case, you can use filepath.ToSlash() on your
+// pattern before calling GlobWalk().
+//
+// Note: users should _not_ count on the returned error,
+// doublestar.ErrBadPattern, being equal to path.ErrBadPattern.
+//
+func GlobWalk(fsys fs.FS, pattern string, fn GlobWalkFunc, opts ...GlobOption) error {
+ if !ValidatePattern(pattern) {
+ return ErrBadPattern
+ }
+
+ g := newGlob(opts...)
+ return g.doGlobWalk(fsys, pattern, true, true, fn)
+}
+
+// Actually execute GlobWalk
+// - firstSegment is true if we're in the first segment of the pattern, ie,
+// the right-most part where we can match files. If it's false, we're
+// somewhere in the middle (or at the beginning) and can only match
+// directories since there are path segments above us.
+// - beforeMeta is true if we're exploring segments before any meta
+// characters, ie, in a pattern such as `path/to/file*.txt`, the `path/to/`
+// bit does not contain any meta characters.
+func (g *glob) doGlobWalk(fsys fs.FS, pattern string, firstSegment, beforeMeta bool, fn GlobWalkFunc) error {
+ patternStart := indexMeta(pattern)
+ if patternStart == -1 {
+ // pattern doesn't contain any meta characters - does a file matching the
+ // pattern exist?
+ // The pattern may contain escaped wildcard characters for an exact path match.
+ path := unescapeMeta(pattern)
+ info, pathExists, err := g.exists(fsys, path, beforeMeta)
+ if pathExists && (!firstSegment || !g.filesOnly || !info.IsDir()) {
+ err = fn(path, dirEntryFromFileInfo(info))
+ if err == SkipDir {
+ err = nil
+ }
+ }
+ return err
+ }
+
+ dir := "."
+ splitIdx := lastIndexSlashOrAlt(pattern)
+ if splitIdx != -1 {
+ if pattern[splitIdx] == '}' {
+ openingIdx := indexMatchedOpeningAlt(pattern[:splitIdx])
+ if openingIdx == -1 {
+ // if there's no matching opening index, technically Match() will treat
+ // an unmatched `}` as nothing special, so... we will, too!
+ splitIdx = lastIndexSlash(pattern[:splitIdx])
+ if splitIdx != -1 {
+ dir = pattern[:splitIdx]
+ pattern = pattern[splitIdx+1:]
+ }
+ } else {
+ // otherwise, we have to handle the alts:
+ return g.globAltsWalk(fsys, pattern, openingIdx, splitIdx, firstSegment, beforeMeta, fn)
+ }
+ } else {
+ dir = pattern[:splitIdx]
+ pattern = pattern[splitIdx+1:]
+ }
+ }
+
+ // if `splitIdx` is less than `patternStart`, we know `dir` has no meta
+ // characters. They would be equal if they are both -1, which means `dir`
+ // will be ".", and we know that doesn't have meta characters either.
+ if splitIdx <= patternStart {
+ return g.globDirWalk(fsys, dir, pattern, firstSegment, beforeMeta, fn)
+ }
+
+ return g.doGlobWalk(fsys, dir, false, beforeMeta, func(p string, d fs.DirEntry) error {
+ if err := g.globDirWalk(fsys, p, pattern, firstSegment, false, fn); err != nil {
+ return err
+ }
+ return nil
+ })
+}
+
+// handle alts in the glob pattern - `openingIdx` and `closingIdx` are the
+// indexes of `{` and `}`, respectively
+func (g *glob) globAltsWalk(fsys fs.FS, pattern string, openingIdx, closingIdx int, firstSegment, beforeMeta bool, fn GlobWalkFunc) (err error) {
+ var matches []DirEntryWithFullPath
+ startIdx := 0
+ afterIdx := closingIdx + 1
+ splitIdx := lastIndexSlashOrAlt(pattern[:openingIdx])
+ if splitIdx == -1 || pattern[splitIdx] == '}' {
+ // no common prefix
+ matches, err = g.doGlobAltsWalk(fsys, "", pattern, startIdx, openingIdx, closingIdx, afterIdx, firstSegment, beforeMeta, matches)
+ if err != nil {
+ return
+ }
+ } else {
+ // our alts have a common prefix that we can process first
+ startIdx = splitIdx + 1
+ innerBeforeMeta := beforeMeta && !hasMetaExceptAlts(pattern[:splitIdx])
+ err = g.doGlobWalk(fsys, pattern[:splitIdx], false, beforeMeta, func(p string, d fs.DirEntry) (e error) {
+ matches, e = g.doGlobAltsWalk(fsys, p, pattern, startIdx, openingIdx, closingIdx, afterIdx, firstSegment, innerBeforeMeta, matches)
+ return e
+ })
+ if err != nil {
+ return
+ }
+ }
+
+ skip := ""
+ for _, m := range matches {
+ if skip != "" {
+ // Because matches are sorted, we know that descendants of the skipped
+ // item must come immediately after the skipped item. If we find an item
+ // that does not have a prefix matching the skipped item, we know we're
+ // done skipping. I'm using strings.HasPrefix here because
+ // filepath.HasPrefix has been marked deprecated (and just calls
+ // strings.HasPrefix anyway). The reason it's deprecated is because it
+ // doesn't handle case-insensitive paths, nor does it guarantee that the
+ // prefix is actually a parent directory. Neither is an issue here: the
+ // paths come from the system so their cases will match, and we guarantee
+ // a parent directory by appending a slash to the prefix.
+ //
+ // NOTE: m.Path will always use slashes as path separators.
+ if strings.HasPrefix(m.Path, skip) {
+ continue
+ }
+ skip = ""
+ }
+ if err = fn(m.Path, m.Entry); err != nil {
+ if err == SkipDir {
+ isDir, err := g.isDir(fsys, "", m.Path, m.Entry)
+ if err != nil {
+ return err
+ }
+ if isDir {
+ // append a slash to guarantee `skip` will be treated as a parent dir
+ skip = m.Path + "/"
+ } else {
+ // Dir() calls Clean() which calls FromSlash(), so we need to convert
+ // back to slashes
+ skip = filepath.ToSlash(filepath.Dir(m.Path)) + "/"
+ }
+ err = nil
+ continue
+ }
+ return
+ }
+ }
+
+ return
+}
+
+// runs actual matching for alts
+func (g *glob) doGlobAltsWalk(fsys fs.FS, d, pattern string, startIdx, openingIdx, closingIdx, afterIdx int, firstSegment, beforeMeta bool, m []DirEntryWithFullPath) (matches []DirEntryWithFullPath, err error) {
+ matches = m
+ matchesLen := len(m)
+ patIdx := openingIdx + 1
+ for patIdx < closingIdx {
+ nextIdx := indexNextAlt(pattern[patIdx:closingIdx], true)
+ if nextIdx == -1 {
+ nextIdx = closingIdx
+ } else {
+ nextIdx += patIdx
+ }
+
+ alt := buildAlt(d, pattern, startIdx, openingIdx, patIdx, nextIdx, afterIdx)
+ err = g.doGlobWalk(fsys, alt, firstSegment, beforeMeta, func(p string, d fs.DirEntry) error {
+ // insertion sort, ignoring dups
+ insertIdx := matchesLen
+ for insertIdx > 0 && matches[insertIdx-1].Path > p {
+ insertIdx--
+ }
+ if insertIdx > 0 && matches[insertIdx-1].Path == p {
+ // dup
+ return nil
+ }
+
+ // append to grow the slice, then insert
+ entry := DirEntryWithFullPath{d, p}
+ matches = append(matches, entry)
+ for i := matchesLen; i > insertIdx; i-- {
+ matches[i] = matches[i-1]
+ }
+ matches[insertIdx] = entry
+ matchesLen++
+
+ return nil
+ })
+ if err != nil {
+ return
+ }
+
+ patIdx = nextIdx + 1
+ }
+
+ return
+}
+
+func (g *glob) globDirWalk(fsys fs.FS, dir, pattern string, canMatchFiles, beforeMeta bool, fn GlobWalkFunc) (e error) {
+ if pattern == "" {
+ if !canMatchFiles || !g.filesOnly {
+ // pattern can be an empty string if the original pattern ended in a
+ // slash, in which case, we should just return dir, but only if it
+ // actually exists and it's a directory (or a symlink to a directory)
+ info, isDir, err := g.isPathDir(fsys, dir, beforeMeta)
+ if err != nil {
+ return err
+ }
+ if isDir {
+ e = fn(dir, dirEntryFromFileInfo(info))
+ if e == SkipDir {
+ e = nil
+ }
+ }
+ }
+ return
+ }
+
+ if pattern == "**" {
+ // `**` can match *this* dir
+ info, dirExists, err := g.exists(fsys, dir, beforeMeta)
+ if err != nil {
+ return err
+ }
+ if !dirExists || !info.IsDir() {
+ return nil
+ }
+ if !canMatchFiles || !g.filesOnly {
+ if e = fn(dir, dirEntryFromFileInfo(info)); e != nil {
+ if e == SkipDir {
+ e = nil
+ }
+ return
+ }
+ }
+ return g.globDoubleStarWalk(fsys, dir, canMatchFiles, fn)
+ }
+
+ dirs, err := fs.ReadDir(fsys, dir)
+ if err != nil {
+ if errors.Is(err, fs.ErrNotExist) {
+ return g.handlePatternNotExist(beforeMeta)
+ }
+ return g.forwardErrIfFailOnIOErrors(err)
+ }
+
+ var matched bool
+ for _, info := range dirs {
+ name := info.Name()
+ matched, e = matchWithSeparator(pattern, name, '/', false)
+ if e != nil {
+ return
+ }
+ if matched {
+ matched = canMatchFiles
+ if !matched || g.filesOnly {
+ matched, e = g.isDir(fsys, dir, name, info)
+ if e != nil {
+ return e
+ }
+ if canMatchFiles {
+ // if we're here, it's because g.filesOnly
+ // is set and we don't want directories
+ matched = !matched
+ }
+ }
+ if matched {
+ if e = fn(path.Join(dir, name), info); e != nil {
+ if e == SkipDir {
+ e = nil
+ }
+ return
+ }
+ }
+ }
+ }
+
+ return
+}
+
+// recursively walk files/directories in a directory
+func (g *glob) globDoubleStarWalk(fsys fs.FS, dir string, canMatchFiles bool, fn GlobWalkFunc) (e error) {
+ dirs, err := fs.ReadDir(fsys, dir)
+ if err != nil {
+ if errors.Is(err, fs.ErrNotExist) {
+ // This function is only ever called after we know the top-most directory
+ // exists, so, if we ever get here, we know we'll never return
+ // ErrPatternNotExist.
+ return nil
+ }
+ return g.forwardErrIfFailOnIOErrors(err)
+ }
+
+ for _, info := range dirs {
+ name := info.Name()
+ isDir, err := g.isDir(fsys, dir, name, info)
+ if err != nil {
+ return err
+ }
+
+ if isDir {
+ p := path.Join(dir, name)
+ if !canMatchFiles || !g.filesOnly {
+ // `**` can match *this* dir, so add it
+ if e = fn(p, info); e != nil {
+ if e == SkipDir {
+ e = nil
+ continue
+ }
+ return
+ }
+ }
+ if e = g.globDoubleStarWalk(fsys, p, canMatchFiles, fn); e != nil {
+ return
+ }
+ } else if canMatchFiles {
+ if e = fn(path.Join(dir, name), info); e != nil {
+ if e == SkipDir {
+ e = nil
+ }
+ return
+ }
+ }
+ }
+
+ return
+}
+
+type DirEntryFromFileInfo struct {
+ fi fs.FileInfo
+}
+
+func (d *DirEntryFromFileInfo) Name() string {
+ return d.fi.Name()
+}
+
+func (d *DirEntryFromFileInfo) IsDir() bool {
+ return d.fi.IsDir()
+}
+
+func (d *DirEntryFromFileInfo) Type() fs.FileMode {
+ return d.fi.Mode().Type()
+}
+
+func (d *DirEntryFromFileInfo) Info() (fs.FileInfo, error) {
+ return d.fi, nil
+}
+
+func dirEntryFromFileInfo(fi fs.FileInfo) fs.DirEntry {
+ return &DirEntryFromFileInfo{fi}
+}
+
+type DirEntryWithFullPath struct {
+ Entry fs.DirEntry
+ Path string
+}
+
+func hasMetaExceptAlts(s string) bool {
+ var c byte
+ l := len(s)
+ for i := 0; i < l; i++ {
+ c = s[i]
+ if c == '*' || c == '?' || c == '[' {
+ return true
+ } else if c == '\\' {
+ // skip next byte
+ i++
+ }
+ }
+ return false
+}
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/match.go b/vendor/github.com/bmatcuk/doublestar/v4/match.go
new file mode 100644
index 0000000000..6581d99862
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/match.go
@@ -0,0 +1,376 @@
+package doublestar
+
+import (
+ "path/filepath"
+ "unicode/utf8"
+)
+
+// Match reports whether name matches the shell pattern.
+// The pattern syntax is:
+//
+// pattern:
+// { term }
+// term:
+// '*' matches any sequence of non-path-separators
+// '/**/' matches zero or more directories
+// '?' matches any single non-path-separator character
+// '[' [ '^' '!' ] { character-range } ']'
+// character class (must be non-empty)
+// starting with `^` or `!` negates the class
+// '{' { term } [ ',' { term } ... ] '}'
+// alternatives
+// c matches character c (c != '*', '?', '\\', '[')
+// '\\' c matches character c
+//
+// character-range:
+// c matches character c (c != '\\', '-', ']')
+// '\\' c matches character c
+// lo '-' hi matches character c for lo <= c <= hi
+//
+// Match returns true if `name` matches the file name `pattern`. `name` and
+// `pattern` are split on forward slash (`/`) characters and may be relative or
+// absolute.
+//
+// Match requires pattern to match all of name, not just a substring.
+// The only possible returned error is ErrBadPattern, when pattern
+// is malformed.
+//
+// A doublestar (`**`) should appear surrounded by path separators such as
+// `/**/`. A mid-pattern doublestar (`**`) behaves like bash's globstar
+// option: a pattern such as `path/to/**.txt` would return the same results as
+// `path/to/*.txt`. The pattern you're looking for is `path/to/**/*.txt`.
+//
+// Note: this is meant as a drop-in replacement for path.Match() which
+// always uses '/' as the path separator. If you want to support systems
+// which use a different path separator (such as Windows), what you want
+// is PathMatch(). Alternatively, you can run filepath.ToSlash() on both
+// pattern and name and then use this function.
+//
+// Note: users should _not_ count on the returned error,
+// doublestar.ErrBadPattern, being equal to path.ErrBadPattern.
+//
+func Match(pattern, name string) (bool, error) {
+ return matchWithSeparator(pattern, name, '/', true)
+}
+
+// PathMatch returns true if `name` matches the file name `pattern`. The
+// difference between Match and PathMatch is that PathMatch will automatically
+// use your system's path separator to split `name` and `pattern`. On systems
+// where the path separator is `'\'`, escaping will be disabled.
+//
+// Note: this is meant as a drop-in replacement for filepath.Match(). It
+// assumes that both `pattern` and `name` are using the system's path
+// separator. If you can't be sure of that, use filepath.ToSlash() on both
+// `pattern` and `name`, and then use the Match() function instead.
+//
+func PathMatch(pattern, name string) (bool, error) {
+ return matchWithSeparator(pattern, name, filepath.Separator, true)
+}
+
+func matchWithSeparator(pattern, name string, separator rune, validate bool) (matched bool, err error) {
+ return doMatchWithSeparator(pattern, name, separator, validate, -1, -1, -1, -1, 0, 0)
+}
+
+func doMatchWithSeparator(pattern, name string, separator rune, validate bool, doublestarPatternBacktrack, doublestarNameBacktrack, starPatternBacktrack, starNameBacktrack, patIdx, nameIdx int) (matched bool, err error) {
+ patLen := len(pattern)
+ nameLen := len(name)
+ startOfSegment := true
+MATCH:
+ for nameIdx < nameLen {
+ if patIdx < patLen {
+ switch pattern[patIdx] {
+ case '*':
+ if patIdx++; patIdx < patLen && pattern[patIdx] == '*' {
+ // doublestar - must begin with a path separator, otherwise we'll
+ // treat it like a single star like bash
+ patIdx++
+ if startOfSegment {
+ if patIdx >= patLen {
+ // pattern ends in `/**`: return true
+ return true, nil
+ }
+
+ // doublestar must also end with a path separator, otherwise we're
+ // just going to treat the doublestar as a single star like bash
+ patRune, patRuneLen := utf8.DecodeRuneInString(pattern[patIdx:])
+ if patRune == separator {
+ patIdx += patRuneLen
+
+ doublestarPatternBacktrack = patIdx
+ doublestarNameBacktrack = nameIdx
+ starPatternBacktrack = -1
+ starNameBacktrack = -1
+ continue
+ }
+ }
+ }
+ startOfSegment = false
+
+ starPatternBacktrack = patIdx
+ starNameBacktrack = nameIdx
+ continue
+
+ case '?':
+ startOfSegment = false
+ nameRune, nameRuneLen := utf8.DecodeRuneInString(name[nameIdx:])
+ if nameRune == separator {
+ // `?` cannot match the separator
+ break
+ }
+
+ patIdx++
+ nameIdx += nameRuneLen
+ continue
+
+ case '[':
+ startOfSegment = false
+ if patIdx++; patIdx >= patLen {
+ // class didn't end
+ return false, ErrBadPattern
+ }
+ nameRune, nameRuneLen := utf8.DecodeRuneInString(name[nameIdx:])
+
+ matched := false
+ negate := pattern[patIdx] == '!' || pattern[patIdx] == '^'
+ if negate {
+ patIdx++
+ }
+
+ if patIdx >= patLen || pattern[patIdx] == ']' {
+ // class didn't end or empty character class
+ return false, ErrBadPattern
+ }
+
+ last := utf8.MaxRune
+ for patIdx < patLen && pattern[patIdx] != ']' {
+ patRune, patRuneLen := utf8.DecodeRuneInString(pattern[patIdx:])
+ patIdx += patRuneLen
+
+ // match a range
+ if last < utf8.MaxRune && patRune == '-' && patIdx < patLen && pattern[patIdx] != ']' {
+ if pattern[patIdx] == '\\' {
+ // next character is escaped
+ patIdx++
+ }
+ patRune, patRuneLen = utf8.DecodeRuneInString(pattern[patIdx:])
+ patIdx += patRuneLen
+
+ if last <= nameRune && nameRune <= patRune {
+ matched = true
+ break
+ }
+
+ // didn't match range - reset `last`
+ last = utf8.MaxRune
+ continue
+ }
+
+ // not a range - check if the next rune is escaped
+ if patRune == '\\' {
+ patRune, patRuneLen = utf8.DecodeRuneInString(pattern[patIdx:])
+ patIdx += patRuneLen
+ }
+
+ // check if the rune matches
+ if patRune == nameRune {
+ matched = true
+ break
+ }
+
+ // no matches yet
+ last = patRune
+ }
+
+ if matched == negate {
+ // failed to match - if we reached the end of the pattern, that means
+ // we never found a closing `]`
+ if patIdx >= patLen {
+ return false, ErrBadPattern
+ }
+ break
+ }
+
+ closingIdx := indexUnescapedByte(pattern[patIdx:], ']', true)
+ if closingIdx == -1 {
+ // no closing `]`
+ return false, ErrBadPattern
+ }
+
+ patIdx += closingIdx + 1
+ nameIdx += nameRuneLen
+ continue
+
+ case '{':
+ startOfSegment = false
+ beforeIdx := patIdx
+ patIdx++
+ closingIdx := indexMatchedClosingAlt(pattern[patIdx:], separator != '\\')
+ if closingIdx == -1 {
+ // no closing `}`
+ return false, ErrBadPattern
+ }
+ closingIdx += patIdx
+
+ for {
+ commaIdx := indexNextAlt(pattern[patIdx:closingIdx], separator != '\\')
+ if commaIdx == -1 {
+ break
+ }
+ commaIdx += patIdx
+
+ result, err := doMatchWithSeparator(pattern[:beforeIdx]+pattern[patIdx:commaIdx]+pattern[closingIdx+1:], name, separator, validate, doublestarPatternBacktrack, doublestarNameBacktrack, starPatternBacktrack, starNameBacktrack, beforeIdx, nameIdx)
+ if result || err != nil {
+ return result, err
+ }
+
+ patIdx = commaIdx + 1
+ }
+ return doMatchWithSeparator(pattern[:beforeIdx]+pattern[patIdx:closingIdx]+pattern[closingIdx+1:], name, separator, validate, doublestarPatternBacktrack, doublestarNameBacktrack, starPatternBacktrack, starNameBacktrack, beforeIdx, nameIdx)
+
+ case '\\':
+ if separator != '\\' {
+ // next rune is "escaped" in the pattern - literal match
+ if patIdx++; patIdx >= patLen {
+ // pattern ended
+ return false, ErrBadPattern
+ }
+ }
+ fallthrough
+
+ default:
+ patRune, patRuneLen := utf8.DecodeRuneInString(pattern[patIdx:])
+ nameRune, nameRuneLen := utf8.DecodeRuneInString(name[nameIdx:])
+ if patRune != nameRune {
+ if separator != '\\' && patIdx > 0 && pattern[patIdx-1] == '\\' {
+ // if this rune was meant to be escaped, we need to move patIdx
+ // back to the backslash before backtracking or validating below
+ patIdx--
+ }
+ break
+ }
+
+ patIdx += patRuneLen
+ nameIdx += nameRuneLen
+ startOfSegment = patRune == separator
+ continue
+ }
+ }
+
+ if starPatternBacktrack >= 0 {
+ // `*` backtrack, but only if the `name` rune isn't the separator
+ nameRune, nameRuneLen := utf8.DecodeRuneInString(name[starNameBacktrack:])
+ if nameRune != separator {
+ starNameBacktrack += nameRuneLen
+ patIdx = starPatternBacktrack
+ nameIdx = starNameBacktrack
+ startOfSegment = false
+ continue
+ }
+ }
+
+ if doublestarPatternBacktrack >= 0 {
+ // `**` backtrack, advance `name` past next separator
+ nameIdx = doublestarNameBacktrack
+ for nameIdx < nameLen {
+ nameRune, nameRuneLen := utf8.DecodeRuneInString(name[nameIdx:])
+ nameIdx += nameRuneLen
+ if nameRune == separator {
+ doublestarNameBacktrack = nameIdx
+ patIdx = doublestarPatternBacktrack
+ startOfSegment = true
+ continue MATCH
+ }
+ }
+ }
+
+ if validate && patIdx < patLen && !doValidatePattern(pattern[patIdx:], separator) {
+ return false, ErrBadPattern
+ }
+ return false, nil
+ }
+
+ if nameIdx < nameLen {
+ // we reached the end of `pattern` before the end of `name`
+ return false, nil
+ }
+
+ // we've reached the end of `name`; we've successfully matched if we've also
+ // reached the end of `pattern`, or if the rest of `pattern` can match a
+ // zero-length string
+ return isZeroLengthPattern(pattern[patIdx:], separator)
+}
+
+func isZeroLengthPattern(pattern string, separator rune) (ret bool, err error) {
+ // `/**` is a special case - a pattern such as `path/to/a/**` *should* match
+ // `path/to/a` because `a` might be a directory
+ if pattern == "" || pattern == "*" || pattern == "**" || pattern == string(separator)+"**" {
+ return true, nil
+ }
+
+ if pattern[0] == '{' {
+ closingIdx := indexMatchedClosingAlt(pattern[1:], separator != '\\')
+ if closingIdx == -1 {
+ // no closing '}'
+ return false, ErrBadPattern
+ }
+ closingIdx += 1
+
+ patIdx := 1
+ for {
+ commaIdx := indexNextAlt(pattern[patIdx:closingIdx], separator != '\\')
+ if commaIdx == -1 {
+ break
+ }
+ commaIdx += patIdx
+
+ ret, err = isZeroLengthPattern(pattern[patIdx:commaIdx]+pattern[closingIdx+1:], separator)
+ if ret || err != nil {
+ return
+ }
+
+ patIdx = commaIdx + 1
+ }
+ return isZeroLengthPattern(pattern[patIdx:closingIdx]+pattern[closingIdx+1:], separator)
+ }
+
+ // no luck - validate the rest of the pattern
+ if !doValidatePattern(pattern, separator) {
+ return false, ErrBadPattern
+ }
+ return false, nil
+}
+
+// Finds the index of the first unescaped byte `c`, or negative 1.
+func indexUnescapedByte(s string, c byte, allowEscaping bool) int {
+ l := len(s)
+ for i := 0; i < l; i++ {
+ if allowEscaping && s[i] == '\\' {
+ // skip next byte
+ i++
+ } else if s[i] == c {
+ return i
+ }
+ }
+ return -1
+}
+
+// Assuming the byte before the beginning of `s` is an opening `{`, this
+// function will find the index of the matching `}`. That is, it'll skip over
+// any nested `{}` and account for escaping
+func indexMatchedClosingAlt(s string, allowEscaping bool) int {
+ alts := 1
+ l := len(s)
+ for i := 0; i < l; i++ {
+ if allowEscaping && s[i] == '\\' {
+ // skip next byte
+ i++
+ } else if s[i] == '{' {
+ alts++
+ } else if s[i] == '}' {
+ if alts--; alts == 0 {
+ return i
+ }
+ }
+ }
+ return -1
+}
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/utils.go b/vendor/github.com/bmatcuk/doublestar/v4/utils.go
new file mode 100644
index 0000000000..0ab1dc98f7
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/utils.go
@@ -0,0 +1,147 @@
+package doublestar
+
+import (
+ "errors"
+ "os"
+ "path"
+ "path/filepath"
+ "strings"
+)
+
+// SplitPattern is a utility function. Given a pattern, SplitPattern will
+// return two strings: the first string is everything up to the last slash
+// (`/`) that appears _before_ any unescaped "meta" characters (ie, `*?[{`).
+// The second string is everything after that slash. For example, given the
+// pattern:
+//
+// ../../path/to/meta*/**
+// ^----------- split here
+//
+// SplitPattern returns "../../path/to" and "meta*/**". This is useful for
+// initializing os.DirFS() to call Glob() because Glob() will silently fail if
+// your pattern includes `/./` or `/../`. For example:
+//
+// base, pattern := SplitPattern("../../path/to/meta*/**")
+// fsys := os.DirFS(base)
+// matches, err := Glob(fsys, pattern)
+//
+// If SplitPattern cannot find somewhere to split the pattern (for example,
+// `meta*/**`), it will return "." and the unaltered pattern (`meta*/**` in
+// this example).
+//
+// Of course, it is your responsibility to decide if the returned base path is
+// "safe" in the context of your application. Perhaps you could use Match() to
+// validate against a list of approved base directories?
+//
+func SplitPattern(p string) (base, pattern string) {
+ base = "."
+ pattern = p
+
+ splitIdx := -1
+ for i := 0; i < len(p); i++ {
+ c := p[i]
+ if c == '\\' {
+ i++
+ } else if c == '/' {
+ splitIdx = i
+ } else if c == '*' || c == '?' || c == '[' || c == '{' {
+ break
+ }
+ }
+
+ if splitIdx == 0 {
+ return "/", p[1:]
+ } else if splitIdx > 0 {
+ return p[:splitIdx], p[splitIdx+1:]
+ }
+
+ return
+}
+
+// FilepathGlob returns the names of all files matching pattern or nil if there
+// is no matching file. The syntax of pattern is the same as in Match(). The
+// pattern may describe hierarchical names such as usr/*/bin/ed.
+//
+// FilepathGlob ignores file system errors such as I/O errors reading
+// directories by default. The only possible returned error is ErrBadPattern,
+// reporting that the pattern is malformed.
+//
+// To enable aborting on I/O errors, the WithFailOnIOErrors option can be
+// passed.
+//
+// Note: FilepathGlob is a convenience function that is meant as a drop-in
+// replacement for `path/filepath.Glob()` for users who don't need the
+// complication of io/fs. Basically, it:
+// - Runs `filepath.Clean()` and `ToSlash()` on the pattern
+// - Runs `SplitPattern()` to get a base path and a pattern to Glob
+// - Creates an FS object from the base path and `Glob()s` on the pattern
+// - Joins the base path with all of the matches from `Glob()`
+//
+// Returned paths will use the system's path separator, just like
+// `filepath.Glob()`.
+//
+// Note: the returned error doublestar.ErrBadPattern is not equal to
+// filepath.ErrBadPattern.
+//
+func FilepathGlob(pattern string, opts ...GlobOption) (matches []string, err error) {
+ pattern = filepath.Clean(pattern)
+ pattern = filepath.ToSlash(pattern)
+ base, f := SplitPattern(pattern)
+ if f == "" || f == "." || f == ".." {
+ // some special cases to match filepath.Glob behavior
+ if !ValidatePathPattern(pattern) {
+ return nil, ErrBadPattern
+ }
+
+ if filepath.Separator != '\\' {
+ pattern = unescapeMeta(pattern)
+ }
+
+ if _, err = os.Lstat(pattern); err != nil {
+ g := newGlob(opts...)
+ if errors.Is(err, os.ErrNotExist) {
+ return nil, g.handlePatternNotExist(true)
+ }
+ return nil, g.forwardErrIfFailOnIOErrors(err)
+ }
+ return []string{filepath.FromSlash(pattern)}, nil
+ }
+
+ fs := os.DirFS(base)
+ if matches, err = Glob(fs, f, opts...); err != nil {
+ return nil, err
+ }
+ for i := range matches {
+ // use path.Join because we used ToSlash above to ensure our paths are made
+ // of forward slashes, no matter what the system uses
+ matches[i] = filepath.FromSlash(path.Join(base, matches[i]))
+ }
+ return
+}
+
+// Finds the next comma, but ignores any commas that appear inside nested `{}`.
+// Assumes that each opening bracket has a corresponding closing bracket.
+func indexNextAlt(s string, allowEscaping bool) int {
+ alts := 1
+ l := len(s)
+ for i := 0; i < l; i++ {
+ if allowEscaping && s[i] == '\\' {
+ // skip next byte
+ i++
+ } else if s[i] == '{' {
+ alts++
+ } else if s[i] == '}' {
+ alts--
+ } else if s[i] == ',' && alts == 1 {
+ return i
+ }
+ }
+ return -1
+}
+
+var metaReplacer = strings.NewReplacer("\\*", "*", "\\?", "?", "\\[", "[", "\\]", "]", "\\{", "{", "\\}", "}")
+
+// Unescapes meta characters (*?[]{})
+func unescapeMeta(pattern string) string {
+ return metaReplacer.Replace(pattern)
+}
diff --git a/vendor/github.com/bmatcuk/doublestar/v4/validate.go b/vendor/github.com/bmatcuk/doublestar/v4/validate.go
new file mode 100644
index 0000000000..c689b9ebab
--- /dev/null
+++ b/vendor/github.com/bmatcuk/doublestar/v4/validate.go
@@ -0,0 +1,82 @@
+package doublestar
+
+import "path/filepath"
+
+// Validate a pattern. Patterns are validated while they run in Match(),
+// PathMatch(), and Glob(), so, you normally wouldn't need to call this.
+// However, there are cases where this might be useful: for example, if your
+// program allows a user to enter a pattern that you'll run at a later time,
+// you might want to validate it.
+//
+// ValidatePattern assumes your pattern uses '/' as the path separator.
+//
+func ValidatePattern(s string) bool {
+ return doValidatePattern(s, '/')
+}
+
+// Like ValidatePattern, only uses your OS path separator. In other words, use
+// ValidatePattern if you would normally use Match() or Glob(). Use
+// ValidatePathPattern if you would normally use PathMatch(). Keep in mind,
+// Glob() requires '/' separators, even if your OS uses something else.
+//
+func ValidatePathPattern(s string) bool {
+ return doValidatePattern(s, filepath.Separator)
+}
+
+func doValidatePattern(s string, separator rune) bool {
+ altDepth := 0
+ l := len(s)
+VALIDATE:
+ for i := 0; i < l; i++ {
+ switch s[i] {
+ case '\\':
+ if separator != '\\' {
+ // skip the next byte - return false if there is no next byte
+ if i++; i >= l {
+ return false
+ }
+ }
+ continue
+
+ case '[':
+ if i++; i >= l {
+ // class didn't end
+ return false
+ }
+ if s[i] == '^' || s[i] == '!' {
+ i++
+ }
+ if i >= l || s[i] == ']' {
+ // class didn't end or empty character class
+ return false
+ }
+
+ for ; i < l; i++ {
+ if separator != '\\' && s[i] == '\\' {
+ i++
+ } else if s[i] == ']' {
+ // looks good
+ continue VALIDATE
+ }
+ }
+
+ // class didn't end
+ return false
+
+ case '{':
+ altDepth++
+ continue
+
+ case '}':
+ if altDepth == 0 {
+ // alt end without a corresponding start
+ return false
+ }
+ altDepth--
+ continue
+ }
+ }
+
+ // valid as long as all alts are closed
+ return altDepth == 0
+}
diff --git a/vendor/github.com/bradleyfalzon/ghinstallation/v2/README.md b/vendor/github.com/bradleyfalzon/ghinstallation/v2/README.md
index 99dd0151fd..9c3071ec62 100644
--- a/vendor/github.com/bradleyfalzon/ghinstallation/v2/README.md
+++ b/vendor/github.com/bradleyfalzon/ghinstallation/v2/README.md
@@ -83,10 +83,26 @@ WebHook request
}
```
+# Customizing signing behavior
+
+Users can customize signing behavior by passing in a
+[Signer](https://pkg.go.dev/github.com/bradleyfalzon/ghinstallation/v2#Signer)
+implementation when creating an
+[AppsTransport](https://pkg.go.dev/github.com/bradleyfalzon/ghinstallation/v2#AppsTransport).
+For example, this can be used to create tokens backed by keys in a KMS system.
+
+```go
+signer := &myCustomSigner{
+ key: "https://url/to/key/vault",
+}
+atr := NewAppsTransportWithOptions(http.DefaultTransport, 1, WithSigner(signer))
+tr := NewFromAppsTransport(atr, 99)
+```
+
# License
[Apache 2.0](LICENSE)
# Dependencies
-- [github.com/golang-jwt/jwt-go](https://github.com/golang-jwt/jwt-go)
+- [github.com/golang-jwt/jwt-go](https://github.com/golang-jwt/jwt-go)
diff --git a/vendor/github.com/bradleyfalzon/ghinstallation/v2/appsTransport.go b/vendor/github.com/bradleyfalzon/ghinstallation/v2/appsTransport.go
index e1424d6294..317de76fc1 100644
--- a/vendor/github.com/bradleyfalzon/ghinstallation/v2/appsTransport.go
+++ b/vendor/github.com/bradleyfalzon/ghinstallation/v2/appsTransport.go
@@ -2,6 +2,7 @@ package ghinstallation
import (
"crypto/rsa"
+ "errors"
"fmt"
"io/ioutil"
"net/http"
@@ -23,7 +24,7 @@ type AppsTransport struct {
BaseURL string // BaseURL is the scheme and host for GitHub API, defaults to https://api.github.com
Client Client // Client to use to refresh tokens, defaults to http.Client with provided transport
tr http.RoundTripper // tr is the underlying roundtripper being wrapped
- key *rsa.PrivateKey // key is the GitHub App's private key
+ signer Signer // signer signs JWT tokens.
appID int64 // appID is the GitHub App's ID
}
@@ -57,11 +58,29 @@ func NewAppsTransportFromPrivateKey(tr http.RoundTripper, appID int64, key *rsa.
BaseURL: apiBaseURL,
Client: &http.Client{Transport: tr},
tr: tr,
- key: key,
+ signer: NewRSASigner(jwt.SigningMethodRS256, key),
appID: appID,
}
}
+func NewAppsTransportWithOptions(tr http.RoundTripper, appID int64, opts ...AppsTransportOption) (*AppsTransport, error) {
+ t := &AppsTransport{
+ BaseURL: apiBaseURL,
+ Client: &http.Client{Transport: tr},
+ tr: tr,
+ appID: appID,
+ }
+ for _, fn := range opts {
+ fn(t)
+ }
+
+ if t.signer == nil {
+ return nil, errors.New("no signer provided")
+ }
+
+ return t, nil
+}
+
// RoundTrip implements http.RoundTripper interface.
func (t *AppsTransport) RoundTrip(req *http.Request) (*http.Response, error) {
// GitHub rejects expiry and issue timestamps that are not an integer,
@@ -69,14 +88,13 @@ func (t *AppsTransport) RoundTrip(req *http.Request) (*http.Response, error) {
// Truncate them before passing to jwt-go.
iss := time.Now().Add(-30 * time.Second).Truncate(time.Second)
exp := iss.Add(2 * time.Minute)
- claims := &jwt.StandardClaims{
- IssuedAt: iss.Unix(),
- ExpiresAt: exp.Unix(),
+ claims := &jwt.RegisteredClaims{
+ IssuedAt: jwt.NewNumericDate(iss),
+ ExpiresAt: jwt.NewNumericDate(exp),
Issuer: strconv.FormatInt(t.appID, 10),
}
- bearer := jwt.NewWithClaims(jwt.SigningMethodRS256, claims)
- ss, err := bearer.SignedString(t.key)
+ ss, err := t.signer.Sign(claims)
if err != nil {
return nil, fmt.Errorf("could not sign jwt: %s", err)
}
@@ -87,3 +105,12 @@ func (t *AppsTransport) RoundTrip(req *http.Request) (*http.Response, error) {
resp, err := t.tr.RoundTrip(req)
return resp, err
}
+
+type AppsTransportOption func(*AppsTransport)
+
+// WithSigner configures the AppsTransport to use the given Signer for generating JWT tokens.
+func WithSigner(signer Signer) AppsTransportOption {
+ return func(at *AppsTransport) {
+ at.signer = signer
+ }
+}
diff --git a/vendor/github.com/bradleyfalzon/ghinstallation/v2/sign.go b/vendor/github.com/bradleyfalzon/ghinstallation/v2/sign.go
new file mode 100644
index 0000000000..928e10efc9
--- /dev/null
+++ b/vendor/github.com/bradleyfalzon/ghinstallation/v2/sign.go
@@ -0,0 +1,33 @@
+package ghinstallation
+
+import (
+ "crypto/rsa"
+
+ jwt "github.com/golang-jwt/jwt/v4"
+)
+
+// Signer is a JWT token signer. This is a wrapper around [jwt.SigningMethod] with predetermined
+// key material.
+type Signer interface {
+ // Sign signs the given claims and returns a JWT token string, as specified
+ // by [jwt.Token.SignedString]
+ Sign(claims jwt.Claims) (string, error)
+}
+
+// RSASigner signs JWT tokens using RSA keys.
+type RSASigner struct {
+ method *jwt.SigningMethodRSA
+ key *rsa.PrivateKey
+}
+
+func NewRSASigner(method *jwt.SigningMethodRSA, key *rsa.PrivateKey) *RSASigner {
+ return &RSASigner{
+ method: method,
+ key: key,
+ }
+}
+
+// Sign signs the JWT claims with the RSA key.
+func (s *RSASigner) Sign(claims jwt.Claims) (string, error) {
+ return jwt.NewWithClaims(s.method, claims).SignedString(s.key)
+}
diff --git a/vendor/github.com/bradleyfalzon/ghinstallation/v2/transport.go b/vendor/github.com/bradleyfalzon/ghinstallation/v2/transport.go
index ecebffad1b..015ebe4b65 100644
--- a/vendor/github.com/bradleyfalzon/ghinstallation/v2/transport.go
+++ b/vendor/github.com/bradleyfalzon/ghinstallation/v2/transport.go
@@ -4,6 +4,7 @@ import (
"bytes"
"context"
"encoding/json"
+ "errors"
"fmt"
"io"
"io/ioutil"
@@ -12,7 +13,7 @@ import (
"sync"
"time"
- "github.com/google/go-github/v45/github"
+ "github.com/google/go-github/v53/github"
)
const (
@@ -63,6 +64,11 @@ func (e *HTTPError) Error() string {
return e.Message
}
+// Unwrap implements the standard library's error wrapping. It unwraps to the root cause.
+func (e *HTTPError) Unwrap() error {
+ return e.RootCause
+}
+
var _ http.RoundTripper = &Transport{}
// NewKeyFromFile returns a Transport using a private key from file.
@@ -119,7 +125,7 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
}
}()
}
-
+
token, err := t.Token(req.Context())
if err != nil {
return nil, err
@@ -127,18 +133,29 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
creq := cloneRequest(req) // per RoundTripper contract
creq.Header.Set("Authorization", "token "+token)
- creq.Header.Add("Accept", acceptHeader) // We add to "Accept" header to avoid overwriting existing req headers.
+
+ if creq.Header.Get("Accept") == "" { // We only add an "Accept" header to avoid overwriting the expected behavior.
+ creq.Header.Add("Accept", acceptHeader)
+ }
reqBodyClosed = true // req.Body is assumed to be closed by the tr RoundTripper.
resp, err := t.tr.RoundTrip(creq)
return resp, err
}
+func (at *accessToken) getRefreshTime() time.Time {
+ return at.ExpiresAt.Add(-time.Minute)
+}
+
+func (at *accessToken) isExpired() bool {
+ return at == nil || at.getRefreshTime().Before(time.Now())
+}
+
// Token checks the active token expiration and renews if necessary. Token returns
// a valid access token. If renewal fails an error is returned.
func (t *Transport) Token(ctx context.Context) (string, error) {
t.mu.Lock()
defer t.mu.Unlock()
- if t.token == nil || t.token.ExpiresAt.Add(-time.Minute).Before(time.Now()) {
+ if t.token.isExpired() {
// Token is not set or expired/nearly expired, so refresh
if err := t.refreshToken(ctx); err != nil {
return "", fmt.Errorf("could not refresh installation id %v's token: %w", t.installationID, err)
@@ -164,6 +181,16 @@ func (t *Transport) Repositories() ([]github.Repository, error) {
return t.token.Repositories, nil
}
+// Expiry returns a transport token's expiration time and refresh time. There is a small grace period
+// built in where a token will be refreshed before it expires. expiresAt is the actual token expiry,
+// and refreshAt is when a call to Token() will cause it to be refreshed.
+func (t *Transport) Expiry() (expiresAt time.Time, refreshAt time.Time, err error) {
+ if t.token == nil {
+ return time.Time{}, time.Time{}, errors.New("Expiry() = unknown, err: nil token")
+ }
+ return t.token.ExpiresAt, t.token.getRefreshTime(), nil
+}
+
func (t *Transport) refreshToken(ctx context.Context) error {
// Convert InstallationTokenOptions into a ReadWriter to pass as an argument to http.NewRequest.
body, err := GetReadWriter(t.InstallationTokenOptions)
diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go
index 8cd4e333b9..83d7cdadd3 100644
--- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go
+++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go
@@ -9,7 +9,7 @@ import (
fp "github.com/cloudflare/circl/math/fp448"
)
-// twistCurve is -x^2+y^2=1-39082x^2y^2 and is 4-isogeneous to Goldilocks.
+// twistCurve is -x^2+y^2=1-39082x^2y^2 and is 4-isogenous to Goldilocks.
type twistCurve struct{}
// Identity returns the identity point.
diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go
index ab19d0ad12..1755fd1e6d 100644
--- a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go
+++ b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go
@@ -6,13 +6,21 @@ package sha3
// KeccakF1600 applies the Keccak permutation to a 1600b-wide
// state represented as a slice of 25 uint64s.
+// If turbo is true, applies the 12-round variant instead of the
+// regular 24-round variant.
// nolint:funlen
-func KeccakF1600(a *[25]uint64) {
+func KeccakF1600(a *[25]uint64, turbo bool) {
// Implementation translated from Keccak-inplace.c
// in the keccak reference code.
var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64
- for i := 0; i < 24; i += 4 {
+ i := 0
+
+ if turbo {
+ i = 12
+ }
+
+ for ; i < 24; i += 4 {
// Combines the 5 steps in each round into 2 steps.
// Unrolls 4 rounds per loop and spreads some steps across rounds.
diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go b/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go
index b35cd006b0..a0df5aa6c5 100644
--- a/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go
+++ b/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go
@@ -51,6 +51,7 @@ type State struct {
// Specific to SHA-3 and SHAKE.
outputLen int // the default output size in bytes
state spongeDirection // whether the sponge is absorbing or squeezing
+ turbo bool // Whether we're using 12 rounds instead of 24
}
// BlockSize returns the rate of sponge underlying this hash function.
@@ -86,11 +87,11 @@ func (d *State) permute() {
xorIn(d, d.buf())
d.bufe = 0
d.bufo = 0
- KeccakF1600(&d.a)
+ KeccakF1600(&d.a, d.turbo)
case spongeSqueezing:
// If we're squeezing, we need to apply the permutation before
// copying more output.
- KeccakF1600(&d.a)
+ KeccakF1600(&d.a, d.turbo)
d.bufe = d.rate
d.bufo = 0
copyOut(d, d.buf())
@@ -136,7 +137,7 @@ func (d *State) Write(p []byte) (written int, err error) {
// The fast path; absorb a full "rate" bytes of input and apply the permutation.
xorIn(d, p[:d.rate])
p = p[d.rate:]
- KeccakF1600(&d.a)
+ KeccakF1600(&d.a, d.turbo)
} else {
// The slow path; buffer the input until we can fill the sponge, and then xor it in.
todo := d.rate - bufl
@@ -193,3 +194,7 @@ func (d *State) Sum(in []byte) []byte {
_, _ = dup.Read(hash)
return append(in, hash...)
}
+
+func (d *State) IsAbsorbing() bool {
+ return d.state == spongeAbsorbing
+}
diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/shake.go b/vendor/github.com/cloudflare/circl/internal/sha3/shake.go
index b92c5b7d78..77817f758c 100644
--- a/vendor/github.com/cloudflare/circl/internal/sha3/shake.go
+++ b/vendor/github.com/cloudflare/circl/internal/sha3/shake.go
@@ -57,6 +57,17 @@ func NewShake128() State {
return State{rate: rate128, dsbyte: dsbyteShake}
}
+// NewTurboShake128 creates a new TurboSHAKE128 variable-output-length ShakeHash.
+// Its generic security strength is 128 bits against all attacks if at
+// least 32 bytes of its output are used.
+// D is the domain separation byte and must be between 0x01 and 0x7f inclusive.
+func NewTurboShake128(D byte) State {
+ if D == 0 || D > 0x7f {
+ panic("turboshake: D out of range")
+ }
+ return State{rate: rate128, dsbyte: D, turbo: true}
+}
+
// NewShake256 creates a new SHAKE256 variable-output-length ShakeHash.
// Its generic security strength is 256 bits against all attacks if
// at least 64 bytes of its output are used.
@@ -64,6 +75,17 @@ func NewShake256() State {
return State{rate: rate256, dsbyte: dsbyteShake}
}
+// NewTurboShake256 creates a new TurboSHAKE256 variable-output-length ShakeHash.
+// Its generic security strength is 256 bits against all attacks if
+// at least 64 bytes of its output are used.
+// D is the domain separation byte and must be between 0x01 and 0x7f inclusive.
+func NewTurboShake256(D byte) State {
+ if D == 0 || D > 0x7f {
+ panic("turboshake: D out of range")
+ }
+ return State{rate: rate256, dsbyte: D, turbo: true}
+}
+
// ShakeSum128 writes an arbitrary-length digest of data into hash.
func ShakeSum128(hash, data []byte) {
h := NewShake128()
@@ -77,3 +99,21 @@ func ShakeSum256(hash, data []byte) {
_, _ = h.Write(data)
_, _ = h.Read(hash)
}
+
+// TurboShakeSum128 writes an arbitrary-length digest of data into hash.
+func TurboShakeSum128(hash, data []byte, D byte) {
+ h := NewTurboShake128(D)
+ _, _ = h.Write(data)
+ _, _ = h.Read(hash)
+}
+
+// TurboShakeSum256 writes an arbitrary-length digest of data into hash.
+func TurboShakeSum256(hash, data []byte, D byte) {
+ h := NewTurboShake256(D)
+ _, _ = h.Write(data)
+ _, _ = h.Read(hash)
+}
+
+func (d *State) SwitchDS(D byte) {
+ d.dsbyte = D
+}
diff --git a/vendor/github.com/cloudflare/circl/math/primes.go b/vendor/github.com/cloudflare/circl/math/primes.go
new file mode 100644
index 0000000000..158fd83a7a
--- /dev/null
+++ b/vendor/github.com/cloudflare/circl/math/primes.go
@@ -0,0 +1,34 @@
+package math
+
+import (
+ "crypto/rand"
+ "io"
+ "math/big"
+)
+
+// IsSafePrime reports whether p is (probably) a safe prime.
+// The prime p=2*q+1 is safe prime if both p and q are primes.
+// Note that ProbablyPrime is not suitable for judging primes
+// that an adversary may have crafted to fool the test.
+func IsSafePrime(p *big.Int) bool {
+ pdiv2 := new(big.Int).Rsh(p, 1)
+ return p.ProbablyPrime(20) && pdiv2.ProbablyPrime(20)
+}
+
+// SafePrime returns a number of the given bit length that is a safe prime with high probability.
+// The number returned p=2*q+1 is a safe prime if both p and q are primes.
+// SafePrime will return error for any error returned by rand.Read or if bits < 2.
+func SafePrime(random io.Reader, bits int) (*big.Int, error) {
+ one := big.NewInt(1)
+ p := new(big.Int)
+ for {
+ q, err := rand.Prime(random, bits-1)
+ if err != nil {
+ return nil, err
+ }
+ p.Lsh(q, 1).Add(p, one)
+ if p.ProbablyPrime(20) {
+ return p, nil
+ }
+ }
+}
diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go b/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go
index 08ca65d799..2c73c26fb1 100644
--- a/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go
+++ b/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go
@@ -1,7 +1,7 @@
// Package ed25519 implements Ed25519 signature scheme as described in RFC-8032.
//
// This package provides optimized implementations of the three signature
-// variants and maintaining closer compatiblilty with crypto/ed25519.
+// variants and maintaining closer compatibility with crypto/ed25519.
//
// | Scheme Name | Sign Function | Verification | Context |
// |-------------|-------------------|---------------|-------------------|
diff --git a/vendor/github.com/devtron-labs/authenticator/client/k8sClient.go b/vendor/github.com/devtron-labs/authenticator/client/k8sClient.go
index 11c95d8d31..93d73251e3 100644
--- a/vendor/github.com/devtron-labs/authenticator/client/k8sClient.go
+++ b/vendor/github.com/devtron-labs/authenticator/client/k8sClient.go
@@ -126,6 +126,10 @@ func (impl *K8sClient) GetDevtronConfig() (secret *v1.Secret, err error) {
return secret, nil
}
+func (impl *K8sClient) GetDevtronNamespace() string {
+ return impl.runtimeConfig.DevtronDefaultNamespaceName
+}
+
// argocd specific conf
const (
SettingAdminPasswordHashKey = "admin.password"
diff --git a/vendor/github.com/go-errors/errors/.travis.yml b/vendor/github.com/go-errors/errors/.travis.yml
index 9d00fdd5d6..77a6bccf77 100644
--- a/vendor/github.com/go-errors/errors/.travis.yml
+++ b/vendor/github.com/go-errors/errors/.travis.yml
@@ -3,3 +3,6 @@ language: go
go:
- "1.8.x"
- "1.10.x"
+ - "1.13.x"
+ - "1.14.x"
+ - "1.16.x"
diff --git a/vendor/github.com/go-errors/errors/README.md b/vendor/github.com/go-errors/errors/README.md
index 5d4f1873dd..3d78525940 100644
--- a/vendor/github.com/go-errors/errors/README.md
+++ b/vendor/github.com/go-errors/errors/README.md
@@ -64,3 +64,19 @@ packages by Facebook and Dropbox, it was moved to one canonical location so
everyone can benefit.
This package is licensed under the MIT license, see LICENSE.MIT for details.
+
+
+## Changelog
+* v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is
+* v1.2.0 added `errors.As` from the standard library.
+* v1.3.0 *BREAKING* updated error methods to return `error` instead of `*Error`.
+> Code that needs access to the underlying `*Error` can use the new errors.AsError(e)
+> ```
+> // before
+> errors.New(err).ErrorStack()
+> // after
+>. errors.AsError(errors.Wrap(err)).ErrorStack()
+> ```
+* v1.4.0 *BREAKING* v1.4.0 reverted all changes from v1.3.0 and is identical to v1.2.0
+* v1.4.1 no code change, but now without an unnecessary cover.out file.
+* v1.4.2 performance improvement to ErrorStack() to avoid unnecessary work https://github.com/go-errors/errors/pull/40
diff --git a/vendor/github.com/go-errors/errors/cover.out b/vendor/github.com/go-errors/errors/cover.out
deleted file mode 100644
index ab18b0519f..0000000000
--- a/vendor/github.com/go-errors/errors/cover.out
+++ /dev/null
@@ -1,89 +0,0 @@
-mode: set
-github.com/go-errors/errors/stackframe.go:27.51,30.25 2 1
-github.com/go-errors/errors/stackframe.go:33.2,38.8 3 1
-github.com/go-errors/errors/stackframe.go:30.25,32.3 1 0
-github.com/go-errors/errors/stackframe.go:43.47,44.31 1 1
-github.com/go-errors/errors/stackframe.go:47.2,47.48 1 1
-github.com/go-errors/errors/stackframe.go:44.31,46.3 1 1
-github.com/go-errors/errors/stackframe.go:52.42,56.16 3 1
-github.com/go-errors/errors/stackframe.go:60.2,60.60 1 1
-github.com/go-errors/errors/stackframe.go:56.16,58.3 1 0
-github.com/go-errors/errors/stackframe.go:64.55,67.16 2 1
-github.com/go-errors/errors/stackframe.go:71.2,72.61 2 1
-github.com/go-errors/errors/stackframe.go:76.2,76.66 1 1
-github.com/go-errors/errors/stackframe.go:67.16,69.3 1 0
-github.com/go-errors/errors/stackframe.go:72.61,74.3 1 0
-github.com/go-errors/errors/stackframe.go:79.56,91.63 3 1
-github.com/go-errors/errors/stackframe.go:95.2,95.53 1 1
-github.com/go-errors/errors/stackframe.go:100.2,101.18 2 1
-github.com/go-errors/errors/stackframe.go:91.63,94.3 2 1
-github.com/go-errors/errors/stackframe.go:95.53,98.3 2 1
-github.com/go-errors/errors/error.go:70.32,73.23 2 1
-github.com/go-errors/errors/error.go:80.2,85.3 3 1
-github.com/go-errors/errors/error.go:74.2,75.10 1 1
-github.com/go-errors/errors/error.go:76.2,77.28 1 1
-github.com/go-errors/errors/error.go:92.43,95.23 2 1
-github.com/go-errors/errors/error.go:104.2,109.3 3 1
-github.com/go-errors/errors/error.go:96.2,97.11 1 1
-github.com/go-errors/errors/error.go:98.2,99.10 1 1
-github.com/go-errors/errors/error.go:100.2,101.28 1 1
-github.com/go-errors/errors/error.go:115.39,117.19 1 1
-github.com/go-errors/errors/error.go:121.2,121.29 1 1
-github.com/go-errors/errors/error.go:125.2,125.43 1 1
-github.com/go-errors/errors/error.go:129.2,129.14 1 1
-github.com/go-errors/errors/error.go:117.19,119.3 1 1
-github.com/go-errors/errors/error.go:121.29,123.3 1 1
-github.com/go-errors/errors/error.go:125.43,127.3 1 1
-github.com/go-errors/errors/error.go:135.53,137.2 1 1
-github.com/go-errors/errors/error.go:140.34,142.2 1 1
-github.com/go-errors/errors/error.go:146.34,149.42 2 1
-github.com/go-errors/errors/error.go:153.2,153.20 1 1
-github.com/go-errors/errors/error.go:149.42,151.3 1 1
-github.com/go-errors/errors/error.go:158.39,160.2 1 1
-github.com/go-errors/errors/error.go:164.46,165.23 1 1
-github.com/go-errors/errors/error.go:173.2,173.19 1 1
-github.com/go-errors/errors/error.go:165.23,168.32 2 1
-github.com/go-errors/errors/error.go:168.32,170.4 1 1
-github.com/go-errors/errors/error.go:177.37,178.42 1 1
-github.com/go-errors/errors/error.go:181.2,181.41 1 1
-github.com/go-errors/errors/error.go:178.42,180.3 1 1
-github.com/go-errors/errors/parse_panic.go:10.39,12.2 1 1
-github.com/go-errors/errors/parse_panic.go:16.46,24.34 5 1
-github.com/go-errors/errors/parse_panic.go:70.2,70.43 1 1
-github.com/go-errors/errors/parse_panic.go:73.2,73.55 1 0
-github.com/go-errors/errors/parse_panic.go:24.34,27.23 2 1
-github.com/go-errors/errors/parse_panic.go:27.23,28.42 1 1
-github.com/go-errors/errors/parse_panic.go:28.42,31.5 2 1
-github.com/go-errors/errors/parse_panic.go:31.6,33.5 1 0
-github.com/go-errors/errors/parse_panic.go:35.5,35.29 1 1
-github.com/go-errors/errors/parse_panic.go:35.29,36.86 1 1
-github.com/go-errors/errors/parse_panic.go:36.86,38.5 1 1
-github.com/go-errors/errors/parse_panic.go:40.5,40.32 1 1
-github.com/go-errors/errors/parse_panic.go:40.32,41.18 1 1
-github.com/go-errors/errors/parse_panic.go:45.4,46.46 2 1
-github.com/go-errors/errors/parse_panic.go:51.4,53.23 2 1
-github.com/go-errors/errors/parse_panic.go:57.4,58.18 2 1
-github.com/go-errors/errors/parse_panic.go:62.4,63.17 2 1
-github.com/go-errors/errors/parse_panic.go:41.18,43.10 2 1
-github.com/go-errors/errors/parse_panic.go:46.46,49.5 2 1
-github.com/go-errors/errors/parse_panic.go:53.23,55.5 1 0
-github.com/go-errors/errors/parse_panic.go:58.18,60.5 1 0
-github.com/go-errors/errors/parse_panic.go:63.17,65.10 2 1
-github.com/go-errors/errors/parse_panic.go:70.43,72.3 1 1
-github.com/go-errors/errors/parse_panic.go:80.85,82.29 2 1
-github.com/go-errors/errors/parse_panic.go:85.2,85.15 1 1
-github.com/go-errors/errors/parse_panic.go:88.2,90.63 2 1
-github.com/go-errors/errors/parse_panic.go:94.2,94.53 1 1
-github.com/go-errors/errors/parse_panic.go:99.2,101.36 2 1
-github.com/go-errors/errors/parse_panic.go:105.2,106.15 2 1
-github.com/go-errors/errors/parse_panic.go:109.2,112.49 3 1
-github.com/go-errors/errors/parse_panic.go:116.2,117.16 2 1
-github.com/go-errors/errors/parse_panic.go:121.2,126.8 1 1
-github.com/go-errors/errors/parse_panic.go:82.29,84.3 1 0
-github.com/go-errors/errors/parse_panic.go:85.15,87.3 1 1
-github.com/go-errors/errors/parse_panic.go:90.63,93.3 2 1
-github.com/go-errors/errors/parse_panic.go:94.53,97.3 2 1
-github.com/go-errors/errors/parse_panic.go:101.36,103.3 1 0
-github.com/go-errors/errors/parse_panic.go:106.15,108.3 1 0
-github.com/go-errors/errors/parse_panic.go:112.49,114.3 1 1
-github.com/go-errors/errors/parse_panic.go:117.16,119.3 1 0
diff --git a/vendor/github.com/go-errors/errors/error.go b/vendor/github.com/go-errors/errors/error.go
index 60062a4372..ccbc2e4272 100644
--- a/vendor/github.com/go-errors/errors/error.go
+++ b/vendor/github.com/go-errors/errors/error.go
@@ -91,6 +91,10 @@ func New(e interface{}) *Error {
// fmt.Errorf("%v"). The skip parameter indicates how far up the stack
// to start the stacktrace. 0 is from the current call, 1 from its caller, etc.
func Wrap(e interface{}, skip int) *Error {
+ if e == nil {
+ return nil
+ }
+
var err error
switch e := e.(type) {
@@ -117,6 +121,9 @@ func Wrap(e interface{}, skip int) *Error {
// up the stack to start the stacktrace. 0 is from the current call,
// 1 from its caller, etc.
func WrapPrefix(e interface{}, prefix string, skip int) *Error {
+ if e == nil {
+ return nil
+ }
err := Wrap(e, 1+skip)
@@ -132,26 +139,6 @@ func WrapPrefix(e interface{}, prefix string, skip int) *Error {
}
-// Is detects whether the error is equal to a given error. Errors
-// are considered equal by this function if they are the same object,
-// or if they both contain the same error inside an errors.Error.
-func Is(e error, original error) bool {
-
- if e == original {
- return true
- }
-
- if e, ok := e.(*Error); ok {
- return Is(e.Err, original)
- }
-
- if original, ok := original.(*Error); ok {
- return Is(e, original.Err)
- }
-
- return false
-}
-
// Errorf creates a new error with the given message. You can use it
// as a drop-in replacement for fmt.Errorf() to provide descriptive
// errors in return values.
@@ -215,3 +202,8 @@ func (err *Error) TypeName() string {
}
return reflect.TypeOf(err.Err).String()
}
+
+// Return the wrapped error (implements api for As function).
+func (err *Error) Unwrap() error {
+ return err.Err
+}
diff --git a/vendor/github.com/go-errors/errors/error_1_13.go b/vendor/github.com/go-errors/errors/error_1_13.go
new file mode 100644
index 0000000000..0af2fc8065
--- /dev/null
+++ b/vendor/github.com/go-errors/errors/error_1_13.go
@@ -0,0 +1,31 @@
+// +build go1.13
+
+package errors
+
+import (
+ baseErrors "errors"
+)
+
+// find error in any wrapped error
+func As(err error, target interface{}) bool {
+ return baseErrors.As(err, target)
+}
+
+// Is detects whether the error is equal to a given error. Errors
+// are considered equal by this function if they are matched by errors.Is
+// or if their contained errors are matched through errors.Is
+func Is(e error, original error) bool {
+ if baseErrors.Is(e, original) {
+ return true
+ }
+
+ if e, ok := e.(*Error); ok {
+ return Is(e.Err, original)
+ }
+
+ if original, ok := original.(*Error); ok {
+ return Is(e, original.Err)
+ }
+
+ return false
+}
diff --git a/vendor/github.com/go-errors/errors/error_backward.go b/vendor/github.com/go-errors/errors/error_backward.go
new file mode 100644
index 0000000000..80b0695e7e
--- /dev/null
+++ b/vendor/github.com/go-errors/errors/error_backward.go
@@ -0,0 +1,57 @@
+// +build !go1.13
+
+package errors
+
+import (
+ "reflect"
+)
+
+type unwrapper interface {
+ Unwrap() error
+}
+
+// As assigns error or any wrapped error to the value target points
+// to. If there is no value of the target type of target As returns
+// false.
+func As(err error, target interface{}) bool {
+ targetType := reflect.TypeOf(target)
+
+ for {
+ errType := reflect.TypeOf(err)
+
+ if errType == nil {
+ return false
+ }
+
+ if reflect.PtrTo(errType) == targetType {
+ reflect.ValueOf(target).Elem().Set(reflect.ValueOf(err))
+ return true
+ }
+
+ wrapped, ok := err.(unwrapper)
+ if ok {
+ err = wrapped.Unwrap()
+ } else {
+ return false
+ }
+ }
+}
+
+// Is detects whether the error is equal to a given error. Errors
+// are considered equal by this function if they are the same object,
+// or if they both contain the same error inside an errors.Error.
+func Is(e error, original error) bool {
+ if e == original {
+ return true
+ }
+
+ if e, ok := e.(*Error); ok {
+ return Is(e.Err, original)
+ }
+
+ if original, ok := original.(*Error); ok {
+ return Is(e, original.Err)
+ }
+
+ return false
+}
diff --git a/vendor/github.com/go-errors/errors/stackframe.go b/vendor/github.com/go-errors/errors/stackframe.go
index 750ab9a521..ef4a8b3f3b 100644
--- a/vendor/github.com/go-errors/errors/stackframe.go
+++ b/vendor/github.com/go-errors/errors/stackframe.go
@@ -1,9 +1,10 @@
package errors
import (
+ "bufio"
"bytes"
"fmt"
- "io/ioutil"
+ "os"
"runtime"
"strings"
)
@@ -52,7 +53,7 @@ func (frame *StackFrame) Func() *runtime.Func {
func (frame *StackFrame) String() string {
str := fmt.Sprintf("%s:%d (0x%x)\n", frame.File, frame.LineNumber, frame.ProgramCounter)
- source, err := frame.SourceLine()
+ source, err := frame.sourceLine()
if err != nil {
return str
}
@@ -62,18 +63,37 @@ func (frame *StackFrame) String() string {
// SourceLine gets the line of code (from File and Line) of the original source if possible.
func (frame *StackFrame) SourceLine() (string, error) {
- data, err := ioutil.ReadFile(frame.File)
-
+ source, err := frame.sourceLine()
if err != nil {
- return "", New(err)
+ return source, New(err)
}
+ return source, err
+}
- lines := bytes.Split(data, []byte{'\n'})
- if frame.LineNumber <= 0 || frame.LineNumber >= len(lines) {
+func (frame *StackFrame) sourceLine() (string, error) {
+ if frame.LineNumber <= 0 {
return "???", nil
}
- // -1 because line-numbers are 1 based, but our array is 0 based
- return string(bytes.Trim(lines[frame.LineNumber-1], " \t")), nil
+
+ file, err := os.Open(frame.File)
+ if err != nil {
+ return "", err
+ }
+ defer file.Close()
+
+ scanner := bufio.NewScanner(file)
+ currentLine := 1
+ for scanner.Scan() {
+ if currentLine == frame.LineNumber {
+ return string(bytes.Trim(scanner.Bytes(), " \t")), nil
+ }
+ currentLine++
+ }
+ if err := scanner.Err(); err != nil {
+ return "", err
+ }
+
+ return "???", nil
}
func packageAndName(fn *runtime.Func) (string, string) {
diff --git a/vendor/github.com/go-redis/redis/v8/.prettierrc.yml b/vendor/github.com/go-redis/cache/v9/.prettierrc.yml
similarity index 100%
rename from vendor/github.com/go-redis/redis/v8/.prettierrc.yml
rename to vendor/github.com/go-redis/cache/v9/.prettierrc.yml
diff --git a/vendor/github.com/go-redis/cache/v8/CHANGELOG.md b/vendor/github.com/go-redis/cache/v9/CHANGELOG.md
similarity index 100%
rename from vendor/github.com/go-redis/cache/v8/CHANGELOG.md
rename to vendor/github.com/go-redis/cache/v9/CHANGELOG.md
diff --git a/vendor/github.com/go-redis/cache/v8/LICENSE b/vendor/github.com/go-redis/cache/v9/LICENSE
similarity index 100%
rename from vendor/github.com/go-redis/cache/v8/LICENSE
rename to vendor/github.com/go-redis/cache/v9/LICENSE
diff --git a/vendor/github.com/go-redis/cache/v8/Makefile b/vendor/github.com/go-redis/cache/v9/Makefile
similarity index 100%
rename from vendor/github.com/go-redis/cache/v8/Makefile
rename to vendor/github.com/go-redis/cache/v9/Makefile
diff --git a/vendor/github.com/go-redis/cache/v8/README.md b/vendor/github.com/go-redis/cache/v9/README.md
similarity index 67%
rename from vendor/github.com/go-redis/cache/v8/README.md
rename to vendor/github.com/go-redis/cache/v9/README.md
index 8850fd140a..579c390e95 100644
--- a/vendor/github.com/go-redis/cache/v8/README.md
+++ b/vendor/github.com/go-redis/cache/v9/README.md
@@ -1,12 +1,21 @@
# Redis cache library for Golang
[](https://travis-ci.org/go-redis/cache)
-[](https://pkg.go.dev/github.com/go-redis/cache/v8?tab=doc)
+[](https://pkg.go.dev/github.com/go-redis/cache/v9?tab=doc)
-go-redis/cache library implements a cache using Redis as a
-key/value storage. It uses [MessagePack](https://github.com/vmihailenco/msgpack) to marshal values.
+> go-redis/cache is brought to you by :star:
+> [**uptrace/uptrace**](https://github.com/uptrace/uptrace). Uptrace is an open source and blazingly
+> fast [distributed tracing tool](https://get.uptrace.dev/) powered by OpenTelemetry and ClickHouse.
+> Give it a star as well!
-Optinally you can use [TinyLFU](https://github.com/dgryski/go-tinylfu) or any other [cache algorithm](https://github.com/vmihailenco/go-cache-benchmark) as a local in-process cache.
+go-redis/cache library implements a cache using Redis as a key/value storage. It uses
+[MessagePack](https://github.com/vmihailenco/msgpack) to marshal values.
+
+Optionally, you can use [TinyLFU](https://github.com/dgryski/go-tinylfu) or any other
+[cache algorithm](https://github.com/vmihailenco/go-cache-benchmark) as a local in-process cache.
+
+If you are interested in monitoring cache hit rate, see the guide for
+[Monitoring using OpenTelemetry Metrics](https://blog.uptrace.dev/posts/opentelemetry-metrics-cache-stats/).
## Installation
@@ -18,10 +27,10 @@ module:
go mod init github.com/my/repo
```
-And then install go-redis/cache/v8 (note _v8_ in the import; omitting it is a popular mistake):
+And then install go-redis/cache/v9 (note _v9_ in the import; omitting it is a popular mistake):
```shell
-go get github.com/go-redis/cache/v8
+go get github.com/go-redis/cache/v9
```
## Quickstart
@@ -34,8 +43,8 @@ import (
"fmt"
"time"
- "github.com/go-redis/redis/v8"
- "github.com/go-redis/cache/v8"
+ "github.com/redis/go-redis/v9"
+ "github.com/go-redis/cache/v9"
)
type Object struct {
diff --git a/vendor/github.com/go-redis/cache/v8/cache.go b/vendor/github.com/go-redis/cache/v9/cache.go
similarity index 98%
rename from vendor/github.com/go-redis/cache/v8/cache.go
rename to vendor/github.com/go-redis/cache/v9/cache.go
index ca6539a889..5410959e38 100644
--- a/vendor/github.com/go-redis/cache/v8/cache.go
+++ b/vendor/github.com/go-redis/cache/v9/cache.go
@@ -8,8 +8,8 @@ import (
"sync/atomic"
"time"
- "github.com/go-redis/redis/v8"
"github.com/klauspost/compress/s2"
+ "github.com/redis/go-redis/v9"
"github.com/vmihailenco/msgpack/v5"
"golang.org/x/sync/singleflight"
)
@@ -185,7 +185,8 @@ func (cd *Cache) set(item *Item) ([]byte, bool, error) {
// Exists reports whether value for the given key exists.
func (cd *Cache) Exists(ctx context.Context, key string) bool {
- return cd.Get(ctx, key, nil) == nil
+ _, err := cd.getBytes(ctx, key, false)
+ return err == nil
}
// Get gets the value for the given key.
diff --git a/vendor/github.com/go-redis/cache/v8/local.go b/vendor/github.com/go-redis/cache/v9/local.go
similarity index 93%
rename from vendor/github.com/go-redis/cache/v8/local.go
rename to vendor/github.com/go-redis/cache/v9/local.go
index 751feb41eb..81f5097824 100644
--- a/vendor/github.com/go-redis/cache/v8/local.go
+++ b/vendor/github.com/go-redis/cache/v9/local.go
@@ -1,11 +1,11 @@
package cache
import (
+ "math/rand"
"sync"
"time"
"github.com/vmihailenco/go-tinylfu"
- "golang.org/x/exp/rand"
)
type LocalCache interface {
@@ -33,7 +33,7 @@ func NewTinyLFU(size int, ttl time.Duration) *TinyLFU {
}
return &TinyLFU{
- rand: rand.New(rand.NewSource(uint64(time.Now().UnixNano()))),
+ rand: rand.New(rand.NewSource(time.Now().UnixNano())),
lfu: tinylfu.New(size, 100000),
ttl: ttl,
offset: offset,
diff --git a/vendor/github.com/go-redis/redis/v8/CHANGELOG.md b/vendor/github.com/go-redis/redis/v8/CHANGELOG.md
deleted file mode 100644
index 195e519338..0000000000
--- a/vendor/github.com/go-redis/redis/v8/CHANGELOG.md
+++ /dev/null
@@ -1,177 +0,0 @@
-## [8.11.5](https://github.com/go-redis/redis/compare/v8.11.4...v8.11.5) (2022-03-17)
-
-
-### Bug Fixes
-
-* add missing Expire methods to Cmdable ([17e3b43](https://github.com/go-redis/redis/commit/17e3b43879d516437ada71cf9c0deac6a382ed9a))
-* add whitespace for avoid unlikely colisions ([7f7c181](https://github.com/go-redis/redis/commit/7f7c1817617cfec909efb13d14ad22ef05a6ad4c))
-* example/otel compile error ([#2028](https://github.com/go-redis/redis/issues/2028)) ([187c07c](https://github.com/go-redis/redis/commit/187c07c41bf68dc3ab280bc3a925e960bbef6475))
-* **extra/redisotel:** set span.kind attribute to client ([065b200](https://github.com/go-redis/redis/commit/065b200070b41e6e949710b4f9e01b50ccc60ab2))
-* format ([96f53a0](https://github.com/go-redis/redis/commit/96f53a0159a28affa94beec1543a62234e7f8b32))
-* invalid type assert in stringArg ([de6c131](https://github.com/go-redis/redis/commit/de6c131865b8263400c8491777b295035f2408e4))
-* rename Golang to Go ([#2030](https://github.com/go-redis/redis/issues/2030)) ([b82a2d9](https://github.com/go-redis/redis/commit/b82a2d9d4d2de7b7cbe8fcd4895be62dbcacacbc))
-* set timeout for WAIT command. Fixes [#1963](https://github.com/go-redis/redis/issues/1963) ([333fee1](https://github.com/go-redis/redis/commit/333fee1a8fd98a2fbff1ab187c1b03246a7eb01f))
-* update some argument counts in pre-allocs ([f6974eb](https://github.com/go-redis/redis/commit/f6974ebb5c40a8adf90d2cacab6dc297f4eba4c2))
-
-
-### Features
-
-* Add redis v7's NX, XX, GT, LT expire variants ([e19bbb2](https://github.com/go-redis/redis/commit/e19bbb26e2e395c6e077b48d80d79e99f729a8b8))
-* add support for acl sentinel auth in universal client ([ab0ccc4](https://github.com/go-redis/redis/commit/ab0ccc47413f9b2a6eabc852fed5005a3ee1af6e))
-* add support for COPY command ([#2016](https://github.com/go-redis/redis/issues/2016)) ([730afbc](https://github.com/go-redis/redis/commit/730afbcffb93760e8a36cc06cfe55ab102b693a7))
-* add support for passing extra attributes added to spans ([39faaa1](https://github.com/go-redis/redis/commit/39faaa171523834ba527c9789710c4fde87f5a2e))
-* add support for time.Duration write and scan ([2f1b74e](https://github.com/go-redis/redis/commit/2f1b74e20cdd7719b2aecf0768d3e3ae7c3e781b))
-* **redisotel:** ability to override TracerProvider ([#1998](https://github.com/go-redis/redis/issues/1998)) ([bf8d4aa](https://github.com/go-redis/redis/commit/bf8d4aa60c00366cda2e98c3ddddc8cf68507417))
-* set net.peer.name and net.peer.port in otel example ([69bf454](https://github.com/go-redis/redis/commit/69bf454f706204211cd34835f76b2e8192d3766d))
-
-
-
-## [8.11.4](https://github.com/go-redis/redis/compare/v8.11.3...v8.11.4) (2021-10-04)
-
-
-### Features
-
-* add acl auth support for sentinels ([f66582f](https://github.com/go-redis/redis/commit/f66582f44f3dc3a4705a5260f982043fde4aa634))
-* add Cmd.{String,Int,Float,Bool}Slice helpers and an example ([5d3d293](https://github.com/go-redis/redis/commit/5d3d293cc9c60b90871e2420602001463708ce24))
-* add SetVal method for each command ([168981d](https://github.com/go-redis/redis/commit/168981da2d84ee9e07d15d3e74d738c162e264c4))
-
-
-
-## v8.11
-
-- Remove OpenTelemetry metrics.
-- Supports more redis commands and options.
-
-## v8.10
-
-- Removed extra OpenTelemetry spans from go-redis core. Now go-redis instrumentation only adds a
- single span with a Redis command (instead of 4 spans). There are multiple reasons behind this
- decision:
-
- - Traces become smaller and less noisy.
- - It may be costly to process those 3 extra spans for each query.
- - go-redis no longer depends on OpenTelemetry.
-
- Eventually we hope to replace the information that we no longer collect with OpenTelemetry
- Metrics.
-
-## v8.9
-
-- Changed `PubSub.Channel` to only rely on `Ping` result. You can now use `WithChannelSize`,
- `WithChannelHealthCheckInterval`, and `WithChannelSendTimeout` to override default settings.
-
-## v8.8
-
-- To make updating easier, extra modules now have the same version as go-redis does. That means that
- you need to update your imports:
-
-```
-github.com/go-redis/redis/extra/redisotel -> github.com/go-redis/redis/extra/redisotel/v8
-github.com/go-redis/redis/extra/rediscensus -> github.com/go-redis/redis/extra/rediscensus/v8
-```
-
-## v8.5
-
-- [knadh](https://github.com/knadh) contributed long-awaited ability to scan Redis Hash into a
- struct:
-
-```go
-err := rdb.HGetAll(ctx, "hash").Scan(&data)
-
-err := rdb.MGet(ctx, "key1", "key2").Scan(&data)
-```
-
-- Please check [redismock](https://github.com/go-redis/redismock) by
- [monkey92t](https://github.com/monkey92t) if you are looking for mocking Redis Client.
-
-## v8
-
-- All commands require `context.Context` as a first argument, e.g. `rdb.Ping(ctx)`. If you are not
- using `context.Context` yet, the simplest option is to define global package variable
- `var ctx = context.TODO()` and use it when `ctx` is required.
-
-- Full support for `context.Context` canceling.
-
-- Added `redis.NewFailoverClusterClient` that supports routing read-only commands to a slave node.
-
-- Added `redisext.OpenTemetryHook` that adds
- [Redis OpenTelemetry instrumentation](https://redis.uptrace.dev/tracing/).
-
-- Redis slow log support.
-
-- Ring uses Rendezvous Hashing by default which provides better distribution. You need to move
- existing keys to a new location or keys will be inaccessible / lost. To use old hashing scheme:
-
-```go
-import "github.com/golang/groupcache/consistenthash"
-
-ring := redis.NewRing(&redis.RingOptions{
- NewConsistentHash: func() {
- return consistenthash.New(100, crc32.ChecksumIEEE)
- },
-})
-```
-
-- `ClusterOptions.MaxRedirects` default value is changed from 8 to 3.
-- `Options.MaxRetries` default value is changed from 0 to 3.
-
-- `Cluster.ForEachNode` is renamed to `ForEachShard` for consistency with `Ring`.
-
-## v7.3
-
-- New option `Options.Username` which causes client to use `AuthACL`. Be aware if your connection
- URL contains username.
-
-## v7.2
-
-- Existing `HMSet` is renamed to `HSet` and old deprecated `HMSet` is restored for Redis 3 users.
-
-## v7.1
-
-- Existing `Cmd.String` is renamed to `Cmd.Text`. New `Cmd.String` implements `fmt.Stringer`
- interface.
-
-## v7
-
-- _Important_. Tx.Pipeline now returns a non-transactional pipeline. Use Tx.TxPipeline for a
- transactional pipeline.
-- WrapProcess is replaced with more convenient AddHook that has access to context.Context.
-- WithContext now can not be used to create a shallow copy of the client.
-- New methods ProcessContext, DoContext, and ExecContext.
-- Client respects Context.Deadline when setting net.Conn deadline.
-- Client listens on Context.Done while waiting for a connection from the pool and returns an error
- when context context is cancelled.
-- Add PubSub.ChannelWithSubscriptions that sends `*Subscription` in addition to `*Message` to allow
- detecting reconnections.
-- `time.Time` is now marshalled in RFC3339 format. `rdb.Get("foo").Time()` helper is added to parse
- the time.
-- `SetLimiter` is removed and added `Options.Limiter` instead.
-- `HMSet` is deprecated as of Redis v4.
-
-## v6.15
-
-- Cluster and Ring pipelines process commands for each node in its own goroutine.
-
-## 6.14
-
-- Added Options.MinIdleConns.
-- Added Options.MaxConnAge.
-- PoolStats.FreeConns is renamed to PoolStats.IdleConns.
-- Add Client.Do to simplify creating custom commands.
-- Add Cmd.String, Cmd.Int, Cmd.Int64, Cmd.Uint64, Cmd.Float64, and Cmd.Bool helpers.
-- Lower memory usage.
-
-## v6.13
-
-- Ring got new options called `HashReplicas` and `Hash`. It is recommended to set
- `HashReplicas = 1000` for better keys distribution between shards.
-- Cluster client was optimized to use much less memory when reloading cluster state.
-- PubSub.ReceiveMessage is re-worked to not use ReceiveTimeout so it does not lose data when timeout
- occurres. In most cases it is recommended to use PubSub.Channel instead.
-- Dialer.KeepAlive is set to 5 minutes by default.
-
-## v6.12
-
-- ClusterClient got new option called `ClusterSlots` which allows to build cluster of normal Redis
- Servers that don't have cluster mode enabled. See
- https://godoc.org/github.com/go-redis/redis#example-NewClusterClient--ManualSetup
diff --git a/vendor/github.com/go-redis/redis/v8/Makefile b/vendor/github.com/go-redis/redis/v8/Makefile
deleted file mode 100644
index a4cfe0576e..0000000000
--- a/vendor/github.com/go-redis/redis/v8/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-PACKAGE_DIRS := $(shell find . -mindepth 2 -type f -name 'go.mod' -exec dirname {} \; | sort)
-
-test: testdeps
- go test ./...
- go test ./... -short -race
- go test ./... -run=NONE -bench=. -benchmem
- env GOOS=linux GOARCH=386 go test ./...
- go vet
-
-testdeps: testdata/redis/src/redis-server
-
-bench: testdeps
- go test ./... -test.run=NONE -test.bench=. -test.benchmem
-
-.PHONY: all test testdeps bench
-
-testdata/redis:
- mkdir -p $@
- wget -qO- https://download.redis.io/releases/redis-6.2.5.tar.gz | tar xvz --strip-components=1 -C $@
-
-testdata/redis/src/redis-server: testdata/redis
- cd $< && make all
-
-fmt:
- gofmt -w -s ./
- goimports -w -local github.com/go-redis/redis ./
-
-go_mod_tidy:
- go get -u && go mod tidy
- set -e; for dir in $(PACKAGE_DIRS); do \
- echo "go mod tidy in $${dir}"; \
- (cd "$${dir}" && \
- go get -u && \
- go mod tidy); \
- done
diff --git a/vendor/github.com/go-redis/redis/v8/command.go b/vendor/github.com/go-redis/redis/v8/command.go
deleted file mode 100644
index 4bb12a85be..0000000000
--- a/vendor/github.com/go-redis/redis/v8/command.go
+++ /dev/null
@@ -1,3478 +0,0 @@
-package redis
-
-import (
- "context"
- "fmt"
- "net"
- "strconv"
- "time"
-
- "github.com/go-redis/redis/v8/internal"
- "github.com/go-redis/redis/v8/internal/hscan"
- "github.com/go-redis/redis/v8/internal/proto"
- "github.com/go-redis/redis/v8/internal/util"
-)
-
-type Cmder interface {
- Name() string
- FullName() string
- Args() []interface{}
- String() string
- stringArg(int) string
- firstKeyPos() int8
- SetFirstKeyPos(int8)
-
- readTimeout() *time.Duration
- readReply(rd *proto.Reader) error
-
- SetErr(error)
- Err() error
-}
-
-func setCmdsErr(cmds []Cmder, e error) {
- for _, cmd := range cmds {
- if cmd.Err() == nil {
- cmd.SetErr(e)
- }
- }
-}
-
-func cmdsFirstErr(cmds []Cmder) error {
- for _, cmd := range cmds {
- if err := cmd.Err(); err != nil {
- return err
- }
- }
- return nil
-}
-
-func writeCmds(wr *proto.Writer, cmds []Cmder) error {
- for _, cmd := range cmds {
- if err := writeCmd(wr, cmd); err != nil {
- return err
- }
- }
- return nil
-}
-
-func writeCmd(wr *proto.Writer, cmd Cmder) error {
- return wr.WriteArgs(cmd.Args())
-}
-
-func cmdFirstKeyPos(cmd Cmder, info *CommandInfo) int {
- if pos := cmd.firstKeyPos(); pos != 0 {
- return int(pos)
- }
-
- switch cmd.Name() {
- case "eval", "evalsha":
- if cmd.stringArg(2) != "0" {
- return 3
- }
-
- return 0
- case "publish":
- return 1
- case "memory":
- // https://github.com/redis/redis/issues/7493
- if cmd.stringArg(1) == "usage" {
- return 2
- }
- }
-
- if info != nil {
- return int(info.FirstKeyPos)
- }
- return 0
-}
-
-func cmdString(cmd Cmder, val interface{}) string {
- b := make([]byte, 0, 64)
-
- for i, arg := range cmd.Args() {
- if i > 0 {
- b = append(b, ' ')
- }
- b = internal.AppendArg(b, arg)
- }
-
- if err := cmd.Err(); err != nil {
- b = append(b, ": "...)
- b = append(b, err.Error()...)
- } else if val != nil {
- b = append(b, ": "...)
- b = internal.AppendArg(b, val)
- }
-
- return internal.String(b)
-}
-
-//------------------------------------------------------------------------------
-
-type baseCmd struct {
- ctx context.Context
- args []interface{}
- err error
- keyPos int8
-
- _readTimeout *time.Duration
-}
-
-var _ Cmder = (*Cmd)(nil)
-
-func (cmd *baseCmd) Name() string {
- if len(cmd.args) == 0 {
- return ""
- }
- // Cmd name must be lower cased.
- return internal.ToLower(cmd.stringArg(0))
-}
-
-func (cmd *baseCmd) FullName() string {
- switch name := cmd.Name(); name {
- case "cluster", "command":
- if len(cmd.args) == 1 {
- return name
- }
- if s2, ok := cmd.args[1].(string); ok {
- return name + " " + s2
- }
- return name
- default:
- return name
- }
-}
-
-func (cmd *baseCmd) Args() []interface{} {
- return cmd.args
-}
-
-func (cmd *baseCmd) stringArg(pos int) string {
- if pos < 0 || pos >= len(cmd.args) {
- return ""
- }
- arg := cmd.args[pos]
- switch v := arg.(type) {
- case string:
- return v
- default:
- // TODO: consider using appendArg
- return fmt.Sprint(v)
- }
-}
-
-func (cmd *baseCmd) firstKeyPos() int8 {
- return cmd.keyPos
-}
-
-func (cmd *baseCmd) SetFirstKeyPos(keyPos int8) {
- cmd.keyPos = keyPos
-}
-
-func (cmd *baseCmd) SetErr(e error) {
- cmd.err = e
-}
-
-func (cmd *baseCmd) Err() error {
- return cmd.err
-}
-
-func (cmd *baseCmd) readTimeout() *time.Duration {
- return cmd._readTimeout
-}
-
-func (cmd *baseCmd) setReadTimeout(d time.Duration) {
- cmd._readTimeout = &d
-}
-
-//------------------------------------------------------------------------------
-
-type Cmd struct {
- baseCmd
-
- val interface{}
-}
-
-func NewCmd(ctx context.Context, args ...interface{}) *Cmd {
- return &Cmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *Cmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *Cmd) SetVal(val interface{}) {
- cmd.val = val
-}
-
-func (cmd *Cmd) Val() interface{} {
- return cmd.val
-}
-
-func (cmd *Cmd) Result() (interface{}, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *Cmd) Text() (string, error) {
- if cmd.err != nil {
- return "", cmd.err
- }
- return toString(cmd.val)
-}
-
-func toString(val interface{}) (string, error) {
- switch val := val.(type) {
- case string:
- return val, nil
- default:
- err := fmt.Errorf("redis: unexpected type=%T for String", val)
- return "", err
- }
-}
-
-func (cmd *Cmd) Int() (int, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- switch val := cmd.val.(type) {
- case int64:
- return int(val), nil
- case string:
- return strconv.Atoi(val)
- default:
- err := fmt.Errorf("redis: unexpected type=%T for Int", val)
- return 0, err
- }
-}
-
-func (cmd *Cmd) Int64() (int64, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return toInt64(cmd.val)
-}
-
-func toInt64(val interface{}) (int64, error) {
- switch val := val.(type) {
- case int64:
- return val, nil
- case string:
- return strconv.ParseInt(val, 10, 64)
- default:
- err := fmt.Errorf("redis: unexpected type=%T for Int64", val)
- return 0, err
- }
-}
-
-func (cmd *Cmd) Uint64() (uint64, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return toUint64(cmd.val)
-}
-
-func toUint64(val interface{}) (uint64, error) {
- switch val := val.(type) {
- case int64:
- return uint64(val), nil
- case string:
- return strconv.ParseUint(val, 10, 64)
- default:
- err := fmt.Errorf("redis: unexpected type=%T for Uint64", val)
- return 0, err
- }
-}
-
-func (cmd *Cmd) Float32() (float32, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return toFloat32(cmd.val)
-}
-
-func toFloat32(val interface{}) (float32, error) {
- switch val := val.(type) {
- case int64:
- return float32(val), nil
- case string:
- f, err := strconv.ParseFloat(val, 32)
- if err != nil {
- return 0, err
- }
- return float32(f), nil
- default:
- err := fmt.Errorf("redis: unexpected type=%T for Float32", val)
- return 0, err
- }
-}
-
-func (cmd *Cmd) Float64() (float64, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return toFloat64(cmd.val)
-}
-
-func toFloat64(val interface{}) (float64, error) {
- switch val := val.(type) {
- case int64:
- return float64(val), nil
- case string:
- return strconv.ParseFloat(val, 64)
- default:
- err := fmt.Errorf("redis: unexpected type=%T for Float64", val)
- return 0, err
- }
-}
-
-func (cmd *Cmd) Bool() (bool, error) {
- if cmd.err != nil {
- return false, cmd.err
- }
- return toBool(cmd.val)
-}
-
-func toBool(val interface{}) (bool, error) {
- switch val := val.(type) {
- case int64:
- return val != 0, nil
- case string:
- return strconv.ParseBool(val)
- default:
- err := fmt.Errorf("redis: unexpected type=%T for Bool", val)
- return false, err
- }
-}
-
-func (cmd *Cmd) Slice() ([]interface{}, error) {
- if cmd.err != nil {
- return nil, cmd.err
- }
- switch val := cmd.val.(type) {
- case []interface{}:
- return val, nil
- default:
- return nil, fmt.Errorf("redis: unexpected type=%T for Slice", val)
- }
-}
-
-func (cmd *Cmd) StringSlice() ([]string, error) {
- slice, err := cmd.Slice()
- if err != nil {
- return nil, err
- }
-
- ss := make([]string, len(slice))
- for i, iface := range slice {
- val, err := toString(iface)
- if err != nil {
- return nil, err
- }
- ss[i] = val
- }
- return ss, nil
-}
-
-func (cmd *Cmd) Int64Slice() ([]int64, error) {
- slice, err := cmd.Slice()
- if err != nil {
- return nil, err
- }
-
- nums := make([]int64, len(slice))
- for i, iface := range slice {
- val, err := toInt64(iface)
- if err != nil {
- return nil, err
- }
- nums[i] = val
- }
- return nums, nil
-}
-
-func (cmd *Cmd) Uint64Slice() ([]uint64, error) {
- slice, err := cmd.Slice()
- if err != nil {
- return nil, err
- }
-
- nums := make([]uint64, len(slice))
- for i, iface := range slice {
- val, err := toUint64(iface)
- if err != nil {
- return nil, err
- }
- nums[i] = val
- }
- return nums, nil
-}
-
-func (cmd *Cmd) Float32Slice() ([]float32, error) {
- slice, err := cmd.Slice()
- if err != nil {
- return nil, err
- }
-
- floats := make([]float32, len(slice))
- for i, iface := range slice {
- val, err := toFloat32(iface)
- if err != nil {
- return nil, err
- }
- floats[i] = val
- }
- return floats, nil
-}
-
-func (cmd *Cmd) Float64Slice() ([]float64, error) {
- slice, err := cmd.Slice()
- if err != nil {
- return nil, err
- }
-
- floats := make([]float64, len(slice))
- for i, iface := range slice {
- val, err := toFloat64(iface)
- if err != nil {
- return nil, err
- }
- floats[i] = val
- }
- return floats, nil
-}
-
-func (cmd *Cmd) BoolSlice() ([]bool, error) {
- slice, err := cmd.Slice()
- if err != nil {
- return nil, err
- }
-
- bools := make([]bool, len(slice))
- for i, iface := range slice {
- val, err := toBool(iface)
- if err != nil {
- return nil, err
- }
- bools[i] = val
- }
- return bools, nil
-}
-
-func (cmd *Cmd) readReply(rd *proto.Reader) (err error) {
- cmd.val, err = rd.ReadReply(sliceParser)
- return err
-}
-
-// sliceParser implements proto.MultiBulkParse.
-func sliceParser(rd *proto.Reader, n int64) (interface{}, error) {
- vals := make([]interface{}, n)
- for i := 0; i < len(vals); i++ {
- v, err := rd.ReadReply(sliceParser)
- if err != nil {
- if err == Nil {
- vals[i] = nil
- continue
- }
- if err, ok := err.(proto.RedisError); ok {
- vals[i] = err
- continue
- }
- return nil, err
- }
- vals[i] = v
- }
- return vals, nil
-}
-
-//------------------------------------------------------------------------------
-
-type SliceCmd struct {
- baseCmd
-
- val []interface{}
-}
-
-var _ Cmder = (*SliceCmd)(nil)
-
-func NewSliceCmd(ctx context.Context, args ...interface{}) *SliceCmd {
- return &SliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *SliceCmd) SetVal(val []interface{}) {
- cmd.val = val
-}
-
-func (cmd *SliceCmd) Val() []interface{} {
- return cmd.val
-}
-
-func (cmd *SliceCmd) Result() ([]interface{}, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *SliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-// Scan scans the results from the map into a destination struct. The map keys
-// are matched in the Redis struct fields by the `redis:"field"` tag.
-func (cmd *SliceCmd) Scan(dst interface{}) error {
- if cmd.err != nil {
- return cmd.err
- }
-
- // Pass the list of keys and values.
- // Skip the first two args for: HMGET key
- var args []interface{}
- if cmd.args[0] == "hmget" {
- args = cmd.args[2:]
- } else {
- // Otherwise, it's: MGET field field ...
- args = cmd.args[1:]
- }
-
- return hscan.Scan(dst, args, cmd.val)
-}
-
-func (cmd *SliceCmd) readReply(rd *proto.Reader) error {
- v, err := rd.ReadArrayReply(sliceParser)
- if err != nil {
- return err
- }
- cmd.val = v.([]interface{})
- return nil
-}
-
-//------------------------------------------------------------------------------
-
-type StatusCmd struct {
- baseCmd
-
- val string
-}
-
-var _ Cmder = (*StatusCmd)(nil)
-
-func NewStatusCmd(ctx context.Context, args ...interface{}) *StatusCmd {
- return &StatusCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *StatusCmd) SetVal(val string) {
- cmd.val = val
-}
-
-func (cmd *StatusCmd) Val() string {
- return cmd.val
-}
-
-func (cmd *StatusCmd) Result() (string, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *StatusCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *StatusCmd) readReply(rd *proto.Reader) (err error) {
- cmd.val, err = rd.ReadString()
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type IntCmd struct {
- baseCmd
-
- val int64
-}
-
-var _ Cmder = (*IntCmd)(nil)
-
-func NewIntCmd(ctx context.Context, args ...interface{}) *IntCmd {
- return &IntCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *IntCmd) SetVal(val int64) {
- cmd.val = val
-}
-
-func (cmd *IntCmd) Val() int64 {
- return cmd.val
-}
-
-func (cmd *IntCmd) Result() (int64, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *IntCmd) Uint64() (uint64, error) {
- return uint64(cmd.val), cmd.err
-}
-
-func (cmd *IntCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *IntCmd) readReply(rd *proto.Reader) (err error) {
- cmd.val, err = rd.ReadIntReply()
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type IntSliceCmd struct {
- baseCmd
-
- val []int64
-}
-
-var _ Cmder = (*IntSliceCmd)(nil)
-
-func NewIntSliceCmd(ctx context.Context, args ...interface{}) *IntSliceCmd {
- return &IntSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *IntSliceCmd) SetVal(val []int64) {
- cmd.val = val
-}
-
-func (cmd *IntSliceCmd) Val() []int64 {
- return cmd.val
-}
-
-func (cmd *IntSliceCmd) Result() ([]int64, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *IntSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *IntSliceCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]int64, n)
- for i := 0; i < len(cmd.val); i++ {
- num, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- cmd.val[i] = num
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type DurationCmd struct {
- baseCmd
-
- val time.Duration
- precision time.Duration
-}
-
-var _ Cmder = (*DurationCmd)(nil)
-
-func NewDurationCmd(ctx context.Context, precision time.Duration, args ...interface{}) *DurationCmd {
- return &DurationCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- precision: precision,
- }
-}
-
-func (cmd *DurationCmd) SetVal(val time.Duration) {
- cmd.val = val
-}
-
-func (cmd *DurationCmd) Val() time.Duration {
- return cmd.val
-}
-
-func (cmd *DurationCmd) Result() (time.Duration, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *DurationCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *DurationCmd) readReply(rd *proto.Reader) error {
- n, err := rd.ReadIntReply()
- if err != nil {
- return err
- }
- switch n {
- // -2 if the key does not exist
- // -1 if the key exists but has no associated expire
- case -2, -1:
- cmd.val = time.Duration(n)
- default:
- cmd.val = time.Duration(n) * cmd.precision
- }
- return nil
-}
-
-//------------------------------------------------------------------------------
-
-type TimeCmd struct {
- baseCmd
-
- val time.Time
-}
-
-var _ Cmder = (*TimeCmd)(nil)
-
-func NewTimeCmd(ctx context.Context, args ...interface{}) *TimeCmd {
- return &TimeCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *TimeCmd) SetVal(val time.Time) {
- cmd.val = val
-}
-
-func (cmd *TimeCmd) Val() time.Time {
- return cmd.val
-}
-
-func (cmd *TimeCmd) Result() (time.Time, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *TimeCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *TimeCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 2 {
- return nil, fmt.Errorf("got %d elements, expected 2", n)
- }
-
- sec, err := rd.ReadInt()
- if err != nil {
- return nil, err
- }
-
- microsec, err := rd.ReadInt()
- if err != nil {
- return nil, err
- }
-
- cmd.val = time.Unix(sec, microsec*1000)
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type BoolCmd struct {
- baseCmd
-
- val bool
-}
-
-var _ Cmder = (*BoolCmd)(nil)
-
-func NewBoolCmd(ctx context.Context, args ...interface{}) *BoolCmd {
- return &BoolCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *BoolCmd) SetVal(val bool) {
- cmd.val = val
-}
-
-func (cmd *BoolCmd) Val() bool {
- return cmd.val
-}
-
-func (cmd *BoolCmd) Result() (bool, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *BoolCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *BoolCmd) readReply(rd *proto.Reader) error {
- v, err := rd.ReadReply(nil)
- // `SET key value NX` returns nil when key already exists. But
- // `SETNX key value` returns bool (0/1). So convert nil to bool.
- if err == Nil {
- cmd.val = false
- return nil
- }
- if err != nil {
- return err
- }
- switch v := v.(type) {
- case int64:
- cmd.val = v == 1
- return nil
- case string:
- cmd.val = v == "OK"
- return nil
- default:
- return fmt.Errorf("got %T, wanted int64 or string", v)
- }
-}
-
-//------------------------------------------------------------------------------
-
-type StringCmd struct {
- baseCmd
-
- val string
-}
-
-var _ Cmder = (*StringCmd)(nil)
-
-func NewStringCmd(ctx context.Context, args ...interface{}) *StringCmd {
- return &StringCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *StringCmd) SetVal(val string) {
- cmd.val = val
-}
-
-func (cmd *StringCmd) Val() string {
- return cmd.val
-}
-
-func (cmd *StringCmd) Result() (string, error) {
- return cmd.Val(), cmd.err
-}
-
-func (cmd *StringCmd) Bytes() ([]byte, error) {
- return util.StringToBytes(cmd.val), cmd.err
-}
-
-func (cmd *StringCmd) Bool() (bool, error) {
- if cmd.err != nil {
- return false, cmd.err
- }
- return strconv.ParseBool(cmd.val)
-}
-
-func (cmd *StringCmd) Int() (int, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return strconv.Atoi(cmd.Val())
-}
-
-func (cmd *StringCmd) Int64() (int64, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return strconv.ParseInt(cmd.Val(), 10, 64)
-}
-
-func (cmd *StringCmd) Uint64() (uint64, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return strconv.ParseUint(cmd.Val(), 10, 64)
-}
-
-func (cmd *StringCmd) Float32() (float32, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- f, err := strconv.ParseFloat(cmd.Val(), 32)
- if err != nil {
- return 0, err
- }
- return float32(f), nil
-}
-
-func (cmd *StringCmd) Float64() (float64, error) {
- if cmd.err != nil {
- return 0, cmd.err
- }
- return strconv.ParseFloat(cmd.Val(), 64)
-}
-
-func (cmd *StringCmd) Time() (time.Time, error) {
- if cmd.err != nil {
- return time.Time{}, cmd.err
- }
- return time.Parse(time.RFC3339Nano, cmd.Val())
-}
-
-func (cmd *StringCmd) Scan(val interface{}) error {
- if cmd.err != nil {
- return cmd.err
- }
- return proto.Scan([]byte(cmd.val), val)
-}
-
-func (cmd *StringCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *StringCmd) readReply(rd *proto.Reader) (err error) {
- cmd.val, err = rd.ReadString()
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type FloatCmd struct {
- baseCmd
-
- val float64
-}
-
-var _ Cmder = (*FloatCmd)(nil)
-
-func NewFloatCmd(ctx context.Context, args ...interface{}) *FloatCmd {
- return &FloatCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *FloatCmd) SetVal(val float64) {
- cmd.val = val
-}
-
-func (cmd *FloatCmd) Val() float64 {
- return cmd.val
-}
-
-func (cmd *FloatCmd) Result() (float64, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *FloatCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *FloatCmd) readReply(rd *proto.Reader) (err error) {
- cmd.val, err = rd.ReadFloatReply()
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type FloatSliceCmd struct {
- baseCmd
-
- val []float64
-}
-
-var _ Cmder = (*FloatSliceCmd)(nil)
-
-func NewFloatSliceCmd(ctx context.Context, args ...interface{}) *FloatSliceCmd {
- return &FloatSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *FloatSliceCmd) SetVal(val []float64) {
- cmd.val = val
-}
-
-func (cmd *FloatSliceCmd) Val() []float64 {
- return cmd.val
-}
-
-func (cmd *FloatSliceCmd) Result() ([]float64, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *FloatSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *FloatSliceCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]float64, n)
- for i := 0; i < len(cmd.val); i++ {
- switch num, err := rd.ReadFloatReply(); {
- case err == Nil:
- cmd.val[i] = 0
- case err != nil:
- return nil, err
- default:
- cmd.val[i] = num
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type StringSliceCmd struct {
- baseCmd
-
- val []string
-}
-
-var _ Cmder = (*StringSliceCmd)(nil)
-
-func NewStringSliceCmd(ctx context.Context, args ...interface{}) *StringSliceCmd {
- return &StringSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *StringSliceCmd) SetVal(val []string) {
- cmd.val = val
-}
-
-func (cmd *StringSliceCmd) Val() []string {
- return cmd.val
-}
-
-func (cmd *StringSliceCmd) Result() ([]string, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *StringSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *StringSliceCmd) ScanSlice(container interface{}) error {
- return proto.ScanSlice(cmd.Val(), container)
-}
-
-func (cmd *StringSliceCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]string, n)
- for i := 0; i < len(cmd.val); i++ {
- switch s, err := rd.ReadString(); {
- case err == Nil:
- cmd.val[i] = ""
- case err != nil:
- return nil, err
- default:
- cmd.val[i] = s
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type BoolSliceCmd struct {
- baseCmd
-
- val []bool
-}
-
-var _ Cmder = (*BoolSliceCmd)(nil)
-
-func NewBoolSliceCmd(ctx context.Context, args ...interface{}) *BoolSliceCmd {
- return &BoolSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *BoolSliceCmd) SetVal(val []bool) {
- cmd.val = val
-}
-
-func (cmd *BoolSliceCmd) Val() []bool {
- return cmd.val
-}
-
-func (cmd *BoolSliceCmd) Result() ([]bool, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *BoolSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *BoolSliceCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]bool, n)
- for i := 0; i < len(cmd.val); i++ {
- n, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- cmd.val[i] = n == 1
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type StringStringMapCmd struct {
- baseCmd
-
- val map[string]string
-}
-
-var _ Cmder = (*StringStringMapCmd)(nil)
-
-func NewStringStringMapCmd(ctx context.Context, args ...interface{}) *StringStringMapCmd {
- return &StringStringMapCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *StringStringMapCmd) SetVal(val map[string]string) {
- cmd.val = val
-}
-
-func (cmd *StringStringMapCmd) Val() map[string]string {
- return cmd.val
-}
-
-func (cmd *StringStringMapCmd) Result() (map[string]string, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *StringStringMapCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-// Scan scans the results from the map into a destination struct. The map keys
-// are matched in the Redis struct fields by the `redis:"field"` tag.
-func (cmd *StringStringMapCmd) Scan(dest interface{}) error {
- if cmd.err != nil {
- return cmd.err
- }
-
- strct, err := hscan.Struct(dest)
- if err != nil {
- return err
- }
-
- for k, v := range cmd.val {
- if err := strct.Scan(k, v); err != nil {
- return err
- }
- }
-
- return nil
-}
-
-func (cmd *StringStringMapCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make(map[string]string, n/2)
- for i := int64(0); i < n; i += 2 {
- key, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- value, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- cmd.val[key] = value
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type StringIntMapCmd struct {
- baseCmd
-
- val map[string]int64
-}
-
-var _ Cmder = (*StringIntMapCmd)(nil)
-
-func NewStringIntMapCmd(ctx context.Context, args ...interface{}) *StringIntMapCmd {
- return &StringIntMapCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *StringIntMapCmd) SetVal(val map[string]int64) {
- cmd.val = val
-}
-
-func (cmd *StringIntMapCmd) Val() map[string]int64 {
- return cmd.val
-}
-
-func (cmd *StringIntMapCmd) Result() (map[string]int64, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *StringIntMapCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *StringIntMapCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make(map[string]int64, n/2)
- for i := int64(0); i < n; i += 2 {
- key, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- n, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- cmd.val[key] = n
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type StringStructMapCmd struct {
- baseCmd
-
- val map[string]struct{}
-}
-
-var _ Cmder = (*StringStructMapCmd)(nil)
-
-func NewStringStructMapCmd(ctx context.Context, args ...interface{}) *StringStructMapCmd {
- return &StringStructMapCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *StringStructMapCmd) SetVal(val map[string]struct{}) {
- cmd.val = val
-}
-
-func (cmd *StringStructMapCmd) Val() map[string]struct{} {
- return cmd.val
-}
-
-func (cmd *StringStructMapCmd) Result() (map[string]struct{}, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *StringStructMapCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *StringStructMapCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make(map[string]struct{}, n)
- for i := int64(0); i < n; i++ {
- key, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
- cmd.val[key] = struct{}{}
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type XMessage struct {
- ID string
- Values map[string]interface{}
-}
-
-type XMessageSliceCmd struct {
- baseCmd
-
- val []XMessage
-}
-
-var _ Cmder = (*XMessageSliceCmd)(nil)
-
-func NewXMessageSliceCmd(ctx context.Context, args ...interface{}) *XMessageSliceCmd {
- return &XMessageSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XMessageSliceCmd) SetVal(val []XMessage) {
- cmd.val = val
-}
-
-func (cmd *XMessageSliceCmd) Val() []XMessage {
- return cmd.val
-}
-
-func (cmd *XMessageSliceCmd) Result() ([]XMessage, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XMessageSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XMessageSliceCmd) readReply(rd *proto.Reader) error {
- var err error
- cmd.val, err = readXMessageSlice(rd)
- return err
-}
-
-func readXMessageSlice(rd *proto.Reader) ([]XMessage, error) {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
-
- msgs := make([]XMessage, n)
- for i := 0; i < n; i++ {
- var err error
- msgs[i], err = readXMessage(rd)
- if err != nil {
- return nil, err
- }
- }
- return msgs, nil
-}
-
-func readXMessage(rd *proto.Reader) (XMessage, error) {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return XMessage{}, err
- }
- if n != 2 {
- return XMessage{}, fmt.Errorf("got %d, wanted 2", n)
- }
-
- id, err := rd.ReadString()
- if err != nil {
- return XMessage{}, err
- }
-
- var values map[string]interface{}
-
- v, err := rd.ReadArrayReply(stringInterfaceMapParser)
- if err != nil {
- if err != proto.Nil {
- return XMessage{}, err
- }
- } else {
- values = v.(map[string]interface{})
- }
-
- return XMessage{
- ID: id,
- Values: values,
- }, nil
-}
-
-// stringInterfaceMapParser implements proto.MultiBulkParse.
-func stringInterfaceMapParser(rd *proto.Reader, n int64) (interface{}, error) {
- m := make(map[string]interface{}, n/2)
- for i := int64(0); i < n; i += 2 {
- key, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- value, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- m[key] = value
- }
- return m, nil
-}
-
-//------------------------------------------------------------------------------
-
-type XStream struct {
- Stream string
- Messages []XMessage
-}
-
-type XStreamSliceCmd struct {
- baseCmd
-
- val []XStream
-}
-
-var _ Cmder = (*XStreamSliceCmd)(nil)
-
-func NewXStreamSliceCmd(ctx context.Context, args ...interface{}) *XStreamSliceCmd {
- return &XStreamSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XStreamSliceCmd) SetVal(val []XStream) {
- cmd.val = val
-}
-
-func (cmd *XStreamSliceCmd) Val() []XStream {
- return cmd.val
-}
-
-func (cmd *XStreamSliceCmd) Result() ([]XStream, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XStreamSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XStreamSliceCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]XStream, n)
- for i := 0; i < len(cmd.val); i++ {
- i := i
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 2 {
- return nil, fmt.Errorf("got %d, wanted 2", n)
- }
-
- stream, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- msgs, err := readXMessageSlice(rd)
- if err != nil {
- return nil, err
- }
-
- cmd.val[i] = XStream{
- Stream: stream,
- Messages: msgs,
- }
- return nil, nil
- })
- if err != nil {
- return nil, err
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type XPending struct {
- Count int64
- Lower string
- Higher string
- Consumers map[string]int64
-}
-
-type XPendingCmd struct {
- baseCmd
- val *XPending
-}
-
-var _ Cmder = (*XPendingCmd)(nil)
-
-func NewXPendingCmd(ctx context.Context, args ...interface{}) *XPendingCmd {
- return &XPendingCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XPendingCmd) SetVal(val *XPending) {
- cmd.val = val
-}
-
-func (cmd *XPendingCmd) Val() *XPending {
- return cmd.val
-}
-
-func (cmd *XPendingCmd) Result() (*XPending, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XPendingCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XPendingCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 4 {
- return nil, fmt.Errorf("got %d, wanted 4", n)
- }
-
- count, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- lower, err := rd.ReadString()
- if err != nil && err != Nil {
- return nil, err
- }
-
- higher, err := rd.ReadString()
- if err != nil && err != Nil {
- return nil, err
- }
-
- cmd.val = &XPending{
- Count: count,
- Lower: lower,
- Higher: higher,
- }
- _, err = rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- for i := int64(0); i < n; i++ {
- _, err = rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 2 {
- return nil, fmt.Errorf("got %d, wanted 2", n)
- }
-
- consumerName, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- consumerPending, err := rd.ReadInt()
- if err != nil {
- return nil, err
- }
-
- if cmd.val.Consumers == nil {
- cmd.val.Consumers = make(map[string]int64)
- }
- cmd.val.Consumers[consumerName] = consumerPending
-
- return nil, nil
- })
- if err != nil {
- return nil, err
- }
- }
- return nil, nil
- })
- if err != nil && err != Nil {
- return nil, err
- }
-
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type XPendingExt struct {
- ID string
- Consumer string
- Idle time.Duration
- RetryCount int64
-}
-
-type XPendingExtCmd struct {
- baseCmd
- val []XPendingExt
-}
-
-var _ Cmder = (*XPendingExtCmd)(nil)
-
-func NewXPendingExtCmd(ctx context.Context, args ...interface{}) *XPendingExtCmd {
- return &XPendingExtCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XPendingExtCmd) SetVal(val []XPendingExt) {
- cmd.val = val
-}
-
-func (cmd *XPendingExtCmd) Val() []XPendingExt {
- return cmd.val
-}
-
-func (cmd *XPendingExtCmd) Result() ([]XPendingExt, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XPendingExtCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XPendingExtCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]XPendingExt, 0, n)
- for i := int64(0); i < n; i++ {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 4 {
- return nil, fmt.Errorf("got %d, wanted 4", n)
- }
-
- id, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- consumer, err := rd.ReadString()
- if err != nil && err != Nil {
- return nil, err
- }
-
- idle, err := rd.ReadIntReply()
- if err != nil && err != Nil {
- return nil, err
- }
-
- retryCount, err := rd.ReadIntReply()
- if err != nil && err != Nil {
- return nil, err
- }
-
- cmd.val = append(cmd.val, XPendingExt{
- ID: id,
- Consumer: consumer,
- Idle: time.Duration(idle) * time.Millisecond,
- RetryCount: retryCount,
- })
- return nil, nil
- })
- if err != nil {
- return nil, err
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type XAutoClaimCmd struct {
- baseCmd
-
- start string
- val []XMessage
-}
-
-var _ Cmder = (*XAutoClaimCmd)(nil)
-
-func NewXAutoClaimCmd(ctx context.Context, args ...interface{}) *XAutoClaimCmd {
- return &XAutoClaimCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XAutoClaimCmd) SetVal(val []XMessage, start string) {
- cmd.val = val
- cmd.start = start
-}
-
-func (cmd *XAutoClaimCmd) Val() (messages []XMessage, start string) {
- return cmd.val, cmd.start
-}
-
-func (cmd *XAutoClaimCmd) Result() (messages []XMessage, start string, err error) {
- return cmd.val, cmd.start, cmd.err
-}
-
-func (cmd *XAutoClaimCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XAutoClaimCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 2 {
- return nil, fmt.Errorf("got %d, wanted 2", n)
- }
- var err error
-
- cmd.start, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- cmd.val, err = readXMessageSlice(rd)
- if err != nil {
- return nil, err
- }
-
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type XAutoClaimJustIDCmd struct {
- baseCmd
-
- start string
- val []string
-}
-
-var _ Cmder = (*XAutoClaimJustIDCmd)(nil)
-
-func NewXAutoClaimJustIDCmd(ctx context.Context, args ...interface{}) *XAutoClaimJustIDCmd {
- return &XAutoClaimJustIDCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XAutoClaimJustIDCmd) SetVal(val []string, start string) {
- cmd.val = val
- cmd.start = start
-}
-
-func (cmd *XAutoClaimJustIDCmd) Val() (ids []string, start string) {
- return cmd.val, cmd.start
-}
-
-func (cmd *XAutoClaimJustIDCmd) Result() (ids []string, start string, err error) {
- return cmd.val, cmd.start, cmd.err
-}
-
-func (cmd *XAutoClaimJustIDCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XAutoClaimJustIDCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 2 {
- return nil, fmt.Errorf("got %d, wanted 2", n)
- }
- var err error
-
- cmd.start, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- nn, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
-
- cmd.val = make([]string, nn)
- for i := 0; i < nn; i++ {
- cmd.val[i], err = rd.ReadString()
- if err != nil {
- return nil, err
- }
- }
-
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type XInfoConsumersCmd struct {
- baseCmd
- val []XInfoConsumer
-}
-
-type XInfoConsumer struct {
- Name string
- Pending int64
- Idle int64
-}
-
-var _ Cmder = (*XInfoConsumersCmd)(nil)
-
-func NewXInfoConsumersCmd(ctx context.Context, stream string, group string) *XInfoConsumersCmd {
- return &XInfoConsumersCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: []interface{}{"xinfo", "consumers", stream, group},
- },
- }
-}
-
-func (cmd *XInfoConsumersCmd) SetVal(val []XInfoConsumer) {
- cmd.val = val
-}
-
-func (cmd *XInfoConsumersCmd) Val() []XInfoConsumer {
- return cmd.val
-}
-
-func (cmd *XInfoConsumersCmd) Result() ([]XInfoConsumer, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XInfoConsumersCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XInfoConsumersCmd) readReply(rd *proto.Reader) error {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return err
- }
-
- cmd.val = make([]XInfoConsumer, n)
-
- for i := 0; i < n; i++ {
- cmd.val[i], err = readXConsumerInfo(rd)
- if err != nil {
- return err
- }
- }
-
- return nil
-}
-
-func readXConsumerInfo(rd *proto.Reader) (XInfoConsumer, error) {
- var consumer XInfoConsumer
-
- n, err := rd.ReadArrayLen()
- if err != nil {
- return consumer, err
- }
- if n != 6 {
- return consumer, fmt.Errorf("redis: got %d elements in XINFO CONSUMERS reply, wanted 6", n)
- }
-
- for i := 0; i < 3; i++ {
- key, err := rd.ReadString()
- if err != nil {
- return consumer, err
- }
-
- val, err := rd.ReadString()
- if err != nil {
- return consumer, err
- }
-
- switch key {
- case "name":
- consumer.Name = val
- case "pending":
- consumer.Pending, err = strconv.ParseInt(val, 0, 64)
- if err != nil {
- return consumer, err
- }
- case "idle":
- consumer.Idle, err = strconv.ParseInt(val, 0, 64)
- if err != nil {
- return consumer, err
- }
- default:
- return consumer, fmt.Errorf("redis: unexpected content %s in XINFO CONSUMERS reply", key)
- }
- }
-
- return consumer, nil
-}
-
-//------------------------------------------------------------------------------
-
-type XInfoGroupsCmd struct {
- baseCmd
- val []XInfoGroup
-}
-
-type XInfoGroup struct {
- Name string
- Consumers int64
- Pending int64
- LastDeliveredID string
-}
-
-var _ Cmder = (*XInfoGroupsCmd)(nil)
-
-func NewXInfoGroupsCmd(ctx context.Context, stream string) *XInfoGroupsCmd {
- return &XInfoGroupsCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: []interface{}{"xinfo", "groups", stream},
- },
- }
-}
-
-func (cmd *XInfoGroupsCmd) SetVal(val []XInfoGroup) {
- cmd.val = val
-}
-
-func (cmd *XInfoGroupsCmd) Val() []XInfoGroup {
- return cmd.val
-}
-
-func (cmd *XInfoGroupsCmd) Result() ([]XInfoGroup, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XInfoGroupsCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XInfoGroupsCmd) readReply(rd *proto.Reader) error {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return err
- }
-
- cmd.val = make([]XInfoGroup, n)
-
- for i := 0; i < n; i++ {
- cmd.val[i], err = readXGroupInfo(rd)
- if err != nil {
- return err
- }
- }
-
- return nil
-}
-
-func readXGroupInfo(rd *proto.Reader) (XInfoGroup, error) {
- var group XInfoGroup
-
- n, err := rd.ReadArrayLen()
- if err != nil {
- return group, err
- }
- if n != 8 {
- return group, fmt.Errorf("redis: got %d elements in XINFO GROUPS reply, wanted 8", n)
- }
-
- for i := 0; i < 4; i++ {
- key, err := rd.ReadString()
- if err != nil {
- return group, err
- }
-
- val, err := rd.ReadString()
- if err != nil {
- return group, err
- }
-
- switch key {
- case "name":
- group.Name = val
- case "consumers":
- group.Consumers, err = strconv.ParseInt(val, 0, 64)
- if err != nil {
- return group, err
- }
- case "pending":
- group.Pending, err = strconv.ParseInt(val, 0, 64)
- if err != nil {
- return group, err
- }
- case "last-delivered-id":
- group.LastDeliveredID = val
- default:
- return group, fmt.Errorf("redis: unexpected content %s in XINFO GROUPS reply", key)
- }
- }
-
- return group, nil
-}
-
-//------------------------------------------------------------------------------
-
-type XInfoStreamCmd struct {
- baseCmd
- val *XInfoStream
-}
-
-type XInfoStream struct {
- Length int64
- RadixTreeKeys int64
- RadixTreeNodes int64
- Groups int64
- LastGeneratedID string
- FirstEntry XMessage
- LastEntry XMessage
-}
-
-var _ Cmder = (*XInfoStreamCmd)(nil)
-
-func NewXInfoStreamCmd(ctx context.Context, stream string) *XInfoStreamCmd {
- return &XInfoStreamCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: []interface{}{"xinfo", "stream", stream},
- },
- }
-}
-
-func (cmd *XInfoStreamCmd) SetVal(val *XInfoStream) {
- cmd.val = val
-}
-
-func (cmd *XInfoStreamCmd) Val() *XInfoStream {
- return cmd.val
-}
-
-func (cmd *XInfoStreamCmd) Result() (*XInfoStream, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XInfoStreamCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XInfoStreamCmd) readReply(rd *proto.Reader) error {
- v, err := rd.ReadReply(xStreamInfoParser)
- if err != nil {
- return err
- }
- cmd.val = v.(*XInfoStream)
- return nil
-}
-
-func xStreamInfoParser(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 14 {
- return nil, fmt.Errorf("redis: got %d elements in XINFO STREAM reply,"+
- "wanted 14", n)
- }
- var info XInfoStream
- for i := 0; i < 7; i++ {
- key, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
- switch key {
- case "length":
- info.Length, err = rd.ReadIntReply()
- case "radix-tree-keys":
- info.RadixTreeKeys, err = rd.ReadIntReply()
- case "radix-tree-nodes":
- info.RadixTreeNodes, err = rd.ReadIntReply()
- case "groups":
- info.Groups, err = rd.ReadIntReply()
- case "last-generated-id":
- info.LastGeneratedID, err = rd.ReadString()
- case "first-entry":
- info.FirstEntry, err = readXMessage(rd)
- if err == Nil {
- err = nil
- }
- case "last-entry":
- info.LastEntry, err = readXMessage(rd)
- if err == Nil {
- err = nil
- }
- default:
- return nil, fmt.Errorf("redis: unexpected content %s "+
- "in XINFO STREAM reply", key)
- }
- if err != nil {
- return nil, err
- }
- }
- return &info, nil
-}
-
-//------------------------------------------------------------------------------
-
-type XInfoStreamFullCmd struct {
- baseCmd
- val *XInfoStreamFull
-}
-
-type XInfoStreamFull struct {
- Length int64
- RadixTreeKeys int64
- RadixTreeNodes int64
- LastGeneratedID string
- Entries []XMessage
- Groups []XInfoStreamGroup
-}
-
-type XInfoStreamGroup struct {
- Name string
- LastDeliveredID string
- PelCount int64
- Pending []XInfoStreamGroupPending
- Consumers []XInfoStreamConsumer
-}
-
-type XInfoStreamGroupPending struct {
- ID string
- Consumer string
- DeliveryTime time.Time
- DeliveryCount int64
-}
-
-type XInfoStreamConsumer struct {
- Name string
- SeenTime time.Time
- PelCount int64
- Pending []XInfoStreamConsumerPending
-}
-
-type XInfoStreamConsumerPending struct {
- ID string
- DeliveryTime time.Time
- DeliveryCount int64
-}
-
-var _ Cmder = (*XInfoStreamFullCmd)(nil)
-
-func NewXInfoStreamFullCmd(ctx context.Context, args ...interface{}) *XInfoStreamFullCmd {
- return &XInfoStreamFullCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *XInfoStreamFullCmd) SetVal(val *XInfoStreamFull) {
- cmd.val = val
-}
-
-func (cmd *XInfoStreamFullCmd) Val() *XInfoStreamFull {
- return cmd.val
-}
-
-func (cmd *XInfoStreamFullCmd) Result() (*XInfoStreamFull, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *XInfoStreamFullCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *XInfoStreamFullCmd) readReply(rd *proto.Reader) error {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return err
- }
- if n != 12 {
- return fmt.Errorf("redis: got %d elements in XINFO STREAM FULL reply,"+
- "wanted 12", n)
- }
-
- cmd.val = &XInfoStreamFull{}
-
- for i := 0; i < 6; i++ {
- key, err := rd.ReadString()
- if err != nil {
- return err
- }
-
- switch key {
- case "length":
- cmd.val.Length, err = rd.ReadIntReply()
- case "radix-tree-keys":
- cmd.val.RadixTreeKeys, err = rd.ReadIntReply()
- case "radix-tree-nodes":
- cmd.val.RadixTreeNodes, err = rd.ReadIntReply()
- case "last-generated-id":
- cmd.val.LastGeneratedID, err = rd.ReadString()
- case "entries":
- cmd.val.Entries, err = readXMessageSlice(rd)
- case "groups":
- cmd.val.Groups, err = readStreamGroups(rd)
- default:
- return fmt.Errorf("redis: unexpected content %s "+
- "in XINFO STREAM reply", key)
- }
- if err != nil {
- return err
- }
- }
- return nil
-}
-
-func readStreamGroups(rd *proto.Reader) ([]XInfoStreamGroup, error) {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- groups := make([]XInfoStreamGroup, 0, n)
- for i := 0; i < n; i++ {
- nn, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if nn != 10 {
- return nil, fmt.Errorf("redis: got %d elements in XINFO STREAM FULL reply,"+
- "wanted 10", nn)
- }
-
- group := XInfoStreamGroup{}
-
- for f := 0; f < 5; f++ {
- key, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- switch key {
- case "name":
- group.Name, err = rd.ReadString()
- case "last-delivered-id":
- group.LastDeliveredID, err = rd.ReadString()
- case "pel-count":
- group.PelCount, err = rd.ReadIntReply()
- case "pending":
- group.Pending, err = readXInfoStreamGroupPending(rd)
- case "consumers":
- group.Consumers, err = readXInfoStreamConsumers(rd)
- default:
- return nil, fmt.Errorf("redis: unexpected content %s "+
- "in XINFO STREAM reply", key)
- }
-
- if err != nil {
- return nil, err
- }
- }
-
- groups = append(groups, group)
- }
-
- return groups, nil
-}
-
-func readXInfoStreamGroupPending(rd *proto.Reader) ([]XInfoStreamGroupPending, error) {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
-
- pending := make([]XInfoStreamGroupPending, 0, n)
-
- for i := 0; i < n; i++ {
- nn, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if nn != 4 {
- return nil, fmt.Errorf("redis: got %d elements in XINFO STREAM FULL reply,"+
- "wanted 4", nn)
- }
-
- p := XInfoStreamGroupPending{}
-
- p.ID, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- p.Consumer, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- delivery, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- p.DeliveryTime = time.Unix(delivery/1000, delivery%1000*int64(time.Millisecond))
-
- p.DeliveryCount, err = rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- pending = append(pending, p)
- }
-
- return pending, nil
-}
-
-func readXInfoStreamConsumers(rd *proto.Reader) ([]XInfoStreamConsumer, error) {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
-
- consumers := make([]XInfoStreamConsumer, 0, n)
-
- for i := 0; i < n; i++ {
- nn, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if nn != 8 {
- return nil, fmt.Errorf("redis: got %d elements in XINFO STREAM FULL reply,"+
- "wanted 8", nn)
- }
-
- c := XInfoStreamConsumer{}
-
- for f := 0; f < 4; f++ {
- cKey, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- switch cKey {
- case "name":
- c.Name, err = rd.ReadString()
- case "seen-time":
- seen, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- c.SeenTime = time.Unix(seen/1000, seen%1000*int64(time.Millisecond))
- case "pel-count":
- c.PelCount, err = rd.ReadIntReply()
- case "pending":
- pendingNumber, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
-
- c.Pending = make([]XInfoStreamConsumerPending, 0, pendingNumber)
-
- for pn := 0; pn < pendingNumber; pn++ {
- nn, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if nn != 3 {
- return nil, fmt.Errorf("redis: got %d elements in XINFO STREAM reply,"+
- "wanted 3", nn)
- }
-
- p := XInfoStreamConsumerPending{}
-
- p.ID, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- delivery, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- p.DeliveryTime = time.Unix(delivery/1000, delivery%1000*int64(time.Millisecond))
-
- p.DeliveryCount, err = rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- c.Pending = append(c.Pending, p)
- }
- default:
- return nil, fmt.Errorf("redis: unexpected content %s "+
- "in XINFO STREAM reply", cKey)
- }
- if err != nil {
- return nil, err
- }
- }
- consumers = append(consumers, c)
- }
-
- return consumers, nil
-}
-
-//------------------------------------------------------------------------------
-
-type ZSliceCmd struct {
- baseCmd
-
- val []Z
-}
-
-var _ Cmder = (*ZSliceCmd)(nil)
-
-func NewZSliceCmd(ctx context.Context, args ...interface{}) *ZSliceCmd {
- return &ZSliceCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *ZSliceCmd) SetVal(val []Z) {
- cmd.val = val
-}
-
-func (cmd *ZSliceCmd) Val() []Z {
- return cmd.val
-}
-
-func (cmd *ZSliceCmd) Result() ([]Z, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *ZSliceCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *ZSliceCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]Z, n/2)
- for i := 0; i < len(cmd.val); i++ {
- member, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- score, err := rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
-
- cmd.val[i] = Z{
- Member: member,
- Score: score,
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type ZWithKeyCmd struct {
- baseCmd
-
- val *ZWithKey
-}
-
-var _ Cmder = (*ZWithKeyCmd)(nil)
-
-func NewZWithKeyCmd(ctx context.Context, args ...interface{}) *ZWithKeyCmd {
- return &ZWithKeyCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *ZWithKeyCmd) SetVal(val *ZWithKey) {
- cmd.val = val
-}
-
-func (cmd *ZWithKeyCmd) Val() *ZWithKey {
- return cmd.val
-}
-
-func (cmd *ZWithKeyCmd) Result() (*ZWithKey, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *ZWithKeyCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *ZWithKeyCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- if n != 3 {
- return nil, fmt.Errorf("got %d elements, expected 3", n)
- }
-
- cmd.val = &ZWithKey{}
- var err error
-
- cmd.val.Key, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- cmd.val.Member, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- cmd.val.Score, err = rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
-
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type ScanCmd struct {
- baseCmd
-
- page []string
- cursor uint64
-
- process cmdable
-}
-
-var _ Cmder = (*ScanCmd)(nil)
-
-func NewScanCmd(ctx context.Context, process cmdable, args ...interface{}) *ScanCmd {
- return &ScanCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- process: process,
- }
-}
-
-func (cmd *ScanCmd) SetVal(page []string, cursor uint64) {
- cmd.page = page
- cmd.cursor = cursor
-}
-
-func (cmd *ScanCmd) Val() (keys []string, cursor uint64) {
- return cmd.page, cmd.cursor
-}
-
-func (cmd *ScanCmd) Result() (keys []string, cursor uint64, err error) {
- return cmd.page, cmd.cursor, cmd.err
-}
-
-func (cmd *ScanCmd) String() string {
- return cmdString(cmd, cmd.page)
-}
-
-func (cmd *ScanCmd) readReply(rd *proto.Reader) (err error) {
- cmd.page, cmd.cursor, err = rd.ReadScanReply()
- return err
-}
-
-// Iterator creates a new ScanIterator.
-func (cmd *ScanCmd) Iterator() *ScanIterator {
- return &ScanIterator{
- cmd: cmd,
- }
-}
-
-//------------------------------------------------------------------------------
-
-type ClusterNode struct {
- ID string
- Addr string
-}
-
-type ClusterSlot struct {
- Start int
- End int
- Nodes []ClusterNode
-}
-
-type ClusterSlotsCmd struct {
- baseCmd
-
- val []ClusterSlot
-}
-
-var _ Cmder = (*ClusterSlotsCmd)(nil)
-
-func NewClusterSlotsCmd(ctx context.Context, args ...interface{}) *ClusterSlotsCmd {
- return &ClusterSlotsCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *ClusterSlotsCmd) SetVal(val []ClusterSlot) {
- cmd.val = val
-}
-
-func (cmd *ClusterSlotsCmd) Val() []ClusterSlot {
- return cmd.val
-}
-
-func (cmd *ClusterSlotsCmd) Result() ([]ClusterSlot, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *ClusterSlotsCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *ClusterSlotsCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]ClusterSlot, n)
- for i := 0; i < len(cmd.val); i++ {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if n < 2 {
- err := fmt.Errorf("redis: got %d elements in cluster info, expected at least 2", n)
- return nil, err
- }
-
- start, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- end, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- nodes := make([]ClusterNode, n-2)
- for j := 0; j < len(nodes); j++ {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if n != 2 && n != 3 {
- err := fmt.Errorf("got %d elements in cluster info address, expected 2 or 3", n)
- return nil, err
- }
-
- ip, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- port, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- nodes[j].Addr = net.JoinHostPort(ip, port)
-
- if n == 3 {
- id, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
- nodes[j].ID = id
- }
- }
-
- cmd.val[i] = ClusterSlot{
- Start: int(start),
- End: int(end),
- Nodes: nodes,
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-// GeoLocation is used with GeoAdd to add geospatial location.
-type GeoLocation struct {
- Name string
- Longitude, Latitude, Dist float64
- GeoHash int64
-}
-
-// GeoRadiusQuery is used with GeoRadius to query geospatial index.
-type GeoRadiusQuery struct {
- Radius float64
- // Can be m, km, ft, or mi. Default is km.
- Unit string
- WithCoord bool
- WithDist bool
- WithGeoHash bool
- Count int
- // Can be ASC or DESC. Default is no sort order.
- Sort string
- Store string
- StoreDist string
-}
-
-type GeoLocationCmd struct {
- baseCmd
-
- q *GeoRadiusQuery
- locations []GeoLocation
-}
-
-var _ Cmder = (*GeoLocationCmd)(nil)
-
-func NewGeoLocationCmd(ctx context.Context, q *GeoRadiusQuery, args ...interface{}) *GeoLocationCmd {
- return &GeoLocationCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: geoLocationArgs(q, args...),
- },
- q: q,
- }
-}
-
-func geoLocationArgs(q *GeoRadiusQuery, args ...interface{}) []interface{} {
- args = append(args, q.Radius)
- if q.Unit != "" {
- args = append(args, q.Unit)
- } else {
- args = append(args, "km")
- }
- if q.WithCoord {
- args = append(args, "withcoord")
- }
- if q.WithDist {
- args = append(args, "withdist")
- }
- if q.WithGeoHash {
- args = append(args, "withhash")
- }
- if q.Count > 0 {
- args = append(args, "count", q.Count)
- }
- if q.Sort != "" {
- args = append(args, q.Sort)
- }
- if q.Store != "" {
- args = append(args, "store")
- args = append(args, q.Store)
- }
- if q.StoreDist != "" {
- args = append(args, "storedist")
- args = append(args, q.StoreDist)
- }
- return args
-}
-
-func (cmd *GeoLocationCmd) SetVal(locations []GeoLocation) {
- cmd.locations = locations
-}
-
-func (cmd *GeoLocationCmd) Val() []GeoLocation {
- return cmd.locations
-}
-
-func (cmd *GeoLocationCmd) Result() ([]GeoLocation, error) {
- return cmd.locations, cmd.err
-}
-
-func (cmd *GeoLocationCmd) String() string {
- return cmdString(cmd, cmd.locations)
-}
-
-func (cmd *GeoLocationCmd) readReply(rd *proto.Reader) error {
- v, err := rd.ReadArrayReply(newGeoLocationSliceParser(cmd.q))
- if err != nil {
- return err
- }
- cmd.locations = v.([]GeoLocation)
- return nil
-}
-
-func newGeoLocationSliceParser(q *GeoRadiusQuery) proto.MultiBulkParse {
- return func(rd *proto.Reader, n int64) (interface{}, error) {
- locs := make([]GeoLocation, 0, n)
- for i := int64(0); i < n; i++ {
- v, err := rd.ReadReply(newGeoLocationParser(q))
- if err != nil {
- return nil, err
- }
- switch vv := v.(type) {
- case string:
- locs = append(locs, GeoLocation{
- Name: vv,
- })
- case *GeoLocation:
- // TODO: avoid copying
- locs = append(locs, *vv)
- default:
- return nil, fmt.Errorf("got %T, expected string or *GeoLocation", v)
- }
- }
- return locs, nil
- }
-}
-
-func newGeoLocationParser(q *GeoRadiusQuery) proto.MultiBulkParse {
- return func(rd *proto.Reader, n int64) (interface{}, error) {
- var loc GeoLocation
- var err error
-
- loc.Name, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
- if q.WithDist {
- loc.Dist, err = rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
- }
- if q.WithGeoHash {
- loc.GeoHash, err = rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- }
- if q.WithCoord {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if n != 2 {
- return nil, fmt.Errorf("got %d coordinates, expected 2", n)
- }
-
- loc.Longitude, err = rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
- loc.Latitude, err = rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
- }
-
- return &loc, nil
- }
-}
-
-//------------------------------------------------------------------------------
-
-// GeoSearchQuery is used for GEOSearch/GEOSearchStore command query.
-type GeoSearchQuery struct {
- Member string
-
- // Latitude and Longitude when using FromLonLat option.
- Longitude float64
- Latitude float64
-
- // Distance and unit when using ByRadius option.
- // Can use m, km, ft, or mi. Default is km.
- Radius float64
- RadiusUnit string
-
- // Height, width and unit when using ByBox option.
- // Can be m, km, ft, or mi. Default is km.
- BoxWidth float64
- BoxHeight float64
- BoxUnit string
-
- // Can be ASC or DESC. Default is no sort order.
- Sort string
- Count int
- CountAny bool
-}
-
-type GeoSearchLocationQuery struct {
- GeoSearchQuery
-
- WithCoord bool
- WithDist bool
- WithHash bool
-}
-
-type GeoSearchStoreQuery struct {
- GeoSearchQuery
-
- // When using the StoreDist option, the command stores the items in a
- // sorted set populated with their distance from the center of the circle or box,
- // as a floating-point number, in the same unit specified for that shape.
- StoreDist bool
-}
-
-func geoSearchLocationArgs(q *GeoSearchLocationQuery, args []interface{}) []interface{} {
- args = geoSearchArgs(&q.GeoSearchQuery, args)
-
- if q.WithCoord {
- args = append(args, "withcoord")
- }
- if q.WithDist {
- args = append(args, "withdist")
- }
- if q.WithHash {
- args = append(args, "withhash")
- }
-
- return args
-}
-
-func geoSearchArgs(q *GeoSearchQuery, args []interface{}) []interface{} {
- if q.Member != "" {
- args = append(args, "frommember", q.Member)
- } else {
- args = append(args, "fromlonlat", q.Longitude, q.Latitude)
- }
-
- if q.Radius > 0 {
- if q.RadiusUnit == "" {
- q.RadiusUnit = "km"
- }
- args = append(args, "byradius", q.Radius, q.RadiusUnit)
- } else {
- if q.BoxUnit == "" {
- q.BoxUnit = "km"
- }
- args = append(args, "bybox", q.BoxWidth, q.BoxHeight, q.BoxUnit)
- }
-
- if q.Sort != "" {
- args = append(args, q.Sort)
- }
-
- if q.Count > 0 {
- args = append(args, "count", q.Count)
- if q.CountAny {
- args = append(args, "any")
- }
- }
-
- return args
-}
-
-type GeoSearchLocationCmd struct {
- baseCmd
-
- opt *GeoSearchLocationQuery
- val []GeoLocation
-}
-
-var _ Cmder = (*GeoSearchLocationCmd)(nil)
-
-func NewGeoSearchLocationCmd(
- ctx context.Context, opt *GeoSearchLocationQuery, args ...interface{},
-) *GeoSearchLocationCmd {
- return &GeoSearchLocationCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- opt: opt,
- }
-}
-
-func (cmd *GeoSearchLocationCmd) SetVal(val []GeoLocation) {
- cmd.val = val
-}
-
-func (cmd *GeoSearchLocationCmd) Val() []GeoLocation {
- return cmd.val
-}
-
-func (cmd *GeoSearchLocationCmd) Result() ([]GeoLocation, error) {
- return cmd.val, cmd.err
-}
-
-func (cmd *GeoSearchLocationCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *GeoSearchLocationCmd) readReply(rd *proto.Reader) error {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return err
- }
-
- cmd.val = make([]GeoLocation, n)
- for i := 0; i < n; i++ {
- _, err = rd.ReadArrayLen()
- if err != nil {
- return err
- }
-
- var loc GeoLocation
-
- loc.Name, err = rd.ReadString()
- if err != nil {
- return err
- }
- if cmd.opt.WithDist {
- loc.Dist, err = rd.ReadFloatReply()
- if err != nil {
- return err
- }
- }
- if cmd.opt.WithHash {
- loc.GeoHash, err = rd.ReadIntReply()
- if err != nil {
- return err
- }
- }
- if cmd.opt.WithCoord {
- nn, err := rd.ReadArrayLen()
- if err != nil {
- return err
- }
- if nn != 2 {
- return fmt.Errorf("got %d coordinates, expected 2", nn)
- }
-
- loc.Longitude, err = rd.ReadFloatReply()
- if err != nil {
- return err
- }
- loc.Latitude, err = rd.ReadFloatReply()
- if err != nil {
- return err
- }
- }
-
- cmd.val[i] = loc
- }
-
- return nil
-}
-
-//------------------------------------------------------------------------------
-
-type GeoPos struct {
- Longitude, Latitude float64
-}
-
-type GeoPosCmd struct {
- baseCmd
-
- val []*GeoPos
-}
-
-var _ Cmder = (*GeoPosCmd)(nil)
-
-func NewGeoPosCmd(ctx context.Context, args ...interface{}) *GeoPosCmd {
- return &GeoPosCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *GeoPosCmd) SetVal(val []*GeoPos) {
- cmd.val = val
-}
-
-func (cmd *GeoPosCmd) Val() []*GeoPos {
- return cmd.val
-}
-
-func (cmd *GeoPosCmd) Result() ([]*GeoPos, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *GeoPosCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *GeoPosCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]*GeoPos, n)
- for i := 0; i < len(cmd.val); i++ {
- i := i
- _, err := rd.ReadReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- longitude, err := rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
-
- latitude, err := rd.ReadFloatReply()
- if err != nil {
- return nil, err
- }
-
- cmd.val[i] = &GeoPos{
- Longitude: longitude,
- Latitude: latitude,
- }
- return nil, nil
- })
- if err != nil {
- if err == Nil {
- cmd.val[i] = nil
- continue
- }
- return nil, err
- }
- }
- return nil, nil
- })
- return err
-}
-
-//------------------------------------------------------------------------------
-
-type CommandInfo struct {
- Name string
- Arity int8
- Flags []string
- ACLFlags []string
- FirstKeyPos int8
- LastKeyPos int8
- StepCount int8
- ReadOnly bool
-}
-
-type CommandsInfoCmd struct {
- baseCmd
-
- val map[string]*CommandInfo
-}
-
-var _ Cmder = (*CommandsInfoCmd)(nil)
-
-func NewCommandsInfoCmd(ctx context.Context, args ...interface{}) *CommandsInfoCmd {
- return &CommandsInfoCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *CommandsInfoCmd) SetVal(val map[string]*CommandInfo) {
- cmd.val = val
-}
-
-func (cmd *CommandsInfoCmd) Val() map[string]*CommandInfo {
- return cmd.val
-}
-
-func (cmd *CommandsInfoCmd) Result() (map[string]*CommandInfo, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *CommandsInfoCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *CommandsInfoCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make(map[string]*CommandInfo, n)
- for i := int64(0); i < n; i++ {
- v, err := rd.ReadReply(commandInfoParser)
- if err != nil {
- return nil, err
- }
- vv := v.(*CommandInfo)
- cmd.val[vv.Name] = vv
- }
- return nil, nil
- })
- return err
-}
-
-func commandInfoParser(rd *proto.Reader, n int64) (interface{}, error) {
- const numArgRedis5 = 6
- const numArgRedis6 = 7
-
- switch n {
- case numArgRedis5, numArgRedis6:
- // continue
- default:
- return nil, fmt.Errorf("redis: got %d elements in COMMAND reply, wanted 7", n)
- }
-
- var cmd CommandInfo
- var err error
-
- cmd.Name, err = rd.ReadString()
- if err != nil {
- return nil, err
- }
-
- arity, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- cmd.Arity = int8(arity)
-
- _, err = rd.ReadReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.Flags = make([]string, n)
- for i := 0; i < len(cmd.Flags); i++ {
- switch s, err := rd.ReadString(); {
- case err == Nil:
- cmd.Flags[i] = ""
- case err != nil:
- return nil, err
- default:
- cmd.Flags[i] = s
- }
- }
- return nil, nil
- })
- if err != nil {
- return nil, err
- }
-
- firstKeyPos, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- cmd.FirstKeyPos = int8(firstKeyPos)
-
- lastKeyPos, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- cmd.LastKeyPos = int8(lastKeyPos)
-
- stepCount, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- cmd.StepCount = int8(stepCount)
-
- for _, flag := range cmd.Flags {
- if flag == "readonly" {
- cmd.ReadOnly = true
- break
- }
- }
-
- if n == numArgRedis5 {
- return &cmd, nil
- }
-
- _, err = rd.ReadReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.ACLFlags = make([]string, n)
- for i := 0; i < len(cmd.ACLFlags); i++ {
- switch s, err := rd.ReadString(); {
- case err == Nil:
- cmd.ACLFlags[i] = ""
- case err != nil:
- return nil, err
- default:
- cmd.ACLFlags[i] = s
- }
- }
- return nil, nil
- })
- if err != nil {
- return nil, err
- }
-
- return &cmd, nil
-}
-
-//------------------------------------------------------------------------------
-
-type cmdsInfoCache struct {
- fn func(ctx context.Context) (map[string]*CommandInfo, error)
-
- once internal.Once
- cmds map[string]*CommandInfo
-}
-
-func newCmdsInfoCache(fn func(ctx context.Context) (map[string]*CommandInfo, error)) *cmdsInfoCache {
- return &cmdsInfoCache{
- fn: fn,
- }
-}
-
-func (c *cmdsInfoCache) Get(ctx context.Context) (map[string]*CommandInfo, error) {
- err := c.once.Do(func() error {
- cmds, err := c.fn(ctx)
- if err != nil {
- return err
- }
-
- // Extensions have cmd names in upper case. Convert them to lower case.
- for k, v := range cmds {
- lower := internal.ToLower(k)
- if lower != k {
- cmds[lower] = v
- }
- }
-
- c.cmds = cmds
- return nil
- })
- return c.cmds, err
-}
-
-//------------------------------------------------------------------------------
-
-type SlowLog struct {
- ID int64
- Time time.Time
- Duration time.Duration
- Args []string
- // These are also optional fields emitted only by Redis 4.0 or greater:
- // https://redis.io/commands/slowlog#output-format
- ClientAddr string
- ClientName string
-}
-
-type SlowLogCmd struct {
- baseCmd
-
- val []SlowLog
-}
-
-var _ Cmder = (*SlowLogCmd)(nil)
-
-func NewSlowLogCmd(ctx context.Context, args ...interface{}) *SlowLogCmd {
- return &SlowLogCmd{
- baseCmd: baseCmd{
- ctx: ctx,
- args: args,
- },
- }
-}
-
-func (cmd *SlowLogCmd) SetVal(val []SlowLog) {
- cmd.val = val
-}
-
-func (cmd *SlowLogCmd) Val() []SlowLog {
- return cmd.val
-}
-
-func (cmd *SlowLogCmd) Result() ([]SlowLog, error) {
- return cmd.Val(), cmd.Err()
-}
-
-func (cmd *SlowLogCmd) String() string {
- return cmdString(cmd, cmd.val)
-}
-
-func (cmd *SlowLogCmd) readReply(rd *proto.Reader) error {
- _, err := rd.ReadArrayReply(func(rd *proto.Reader, n int64) (interface{}, error) {
- cmd.val = make([]SlowLog, n)
- for i := 0; i < len(cmd.val); i++ {
- n, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if n < 4 {
- err := fmt.Errorf("redis: got %d elements in slowlog get, expected at least 4", n)
- return nil, err
- }
-
- id, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
-
- createdAt, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- createdAtTime := time.Unix(createdAt, 0)
-
- costs, err := rd.ReadIntReply()
- if err != nil {
- return nil, err
- }
- costsDuration := time.Duration(costs) * time.Microsecond
-
- cmdLen, err := rd.ReadArrayLen()
- if err != nil {
- return nil, err
- }
- if cmdLen < 1 {
- err := fmt.Errorf("redis: got %d elements commands reply in slowlog get, expected at least 1", cmdLen)
- return nil, err
- }
-
- cmdString := make([]string, cmdLen)
- for i := 0; i < cmdLen; i++ {
- cmdString[i], err = rd.ReadString()
- if err != nil {
- return nil, err
- }
- }
-
- var address, name string
- for i := 4; i < n; i++ {
- str, err := rd.ReadString()
- if err != nil {
- return nil, err
- }
- if i == 4 {
- address = str
- } else if i == 5 {
- name = str
- }
- }
-
- cmd.val[i] = SlowLog{
- ID: id,
- Time: createdAtTime,
- Duration: costsDuration,
- Args: cmdString,
- ClientAddr: address,
- ClientName: name,
- }
- }
- return nil, nil
- })
- return err
-}
diff --git a/vendor/github.com/go-redis/redis/v8/internal/proto/reader.go b/vendor/github.com/go-redis/redis/v8/internal/proto/reader.go
deleted file mode 100644
index 0e6ca779b1..0000000000
--- a/vendor/github.com/go-redis/redis/v8/internal/proto/reader.go
+++ /dev/null
@@ -1,332 +0,0 @@
-package proto
-
-import (
- "bufio"
- "fmt"
- "io"
-
- "github.com/go-redis/redis/v8/internal/util"
-)
-
-// redis resp protocol data type.
-const (
- ErrorReply = '-'
- StatusReply = '+'
- IntReply = ':'
- StringReply = '$'
- ArrayReply = '*'
-)
-
-//------------------------------------------------------------------------------
-
-const Nil = RedisError("redis: nil") // nolint:errname
-
-type RedisError string
-
-func (e RedisError) Error() string { return string(e) }
-
-func (RedisError) RedisError() {}
-
-//------------------------------------------------------------------------------
-
-type MultiBulkParse func(*Reader, int64) (interface{}, error)
-
-type Reader struct {
- rd *bufio.Reader
- _buf []byte
-}
-
-func NewReader(rd io.Reader) *Reader {
- return &Reader{
- rd: bufio.NewReader(rd),
- _buf: make([]byte, 64),
- }
-}
-
-func (r *Reader) Buffered() int {
- return r.rd.Buffered()
-}
-
-func (r *Reader) Peek(n int) ([]byte, error) {
- return r.rd.Peek(n)
-}
-
-func (r *Reader) Reset(rd io.Reader) {
- r.rd.Reset(rd)
-}
-
-func (r *Reader) ReadLine() ([]byte, error) {
- line, err := r.readLine()
- if err != nil {
- return nil, err
- }
- if isNilReply(line) {
- return nil, Nil
- }
- return line, nil
-}
-
-// readLine that returns an error if:
-// - there is a pending read error;
-// - or line does not end with \r\n.
-func (r *Reader) readLine() ([]byte, error) {
- b, err := r.rd.ReadSlice('\n')
- if err != nil {
- if err != bufio.ErrBufferFull {
- return nil, err
- }
-
- full := make([]byte, len(b))
- copy(full, b)
-
- b, err = r.rd.ReadBytes('\n')
- if err != nil {
- return nil, err
- }
-
- full = append(full, b...) //nolint:makezero
- b = full
- }
- if len(b) <= 2 || b[len(b)-1] != '\n' || b[len(b)-2] != '\r' {
- return nil, fmt.Errorf("redis: invalid reply: %q", b)
- }
- return b[:len(b)-2], nil
-}
-
-func (r *Reader) ReadReply(m MultiBulkParse) (interface{}, error) {
- line, err := r.ReadLine()
- if err != nil {
- return nil, err
- }
-
- switch line[0] {
- case ErrorReply:
- return nil, ParseErrorReply(line)
- case StatusReply:
- return string(line[1:]), nil
- case IntReply:
- return util.ParseInt(line[1:], 10, 64)
- case StringReply:
- return r.readStringReply(line)
- case ArrayReply:
- n, err := parseArrayLen(line)
- if err != nil {
- return nil, err
- }
- if m == nil {
- err := fmt.Errorf("redis: got %.100q, but multi bulk parser is nil", line)
- return nil, err
- }
- return m(r, n)
- }
- return nil, fmt.Errorf("redis: can't parse %.100q", line)
-}
-
-func (r *Reader) ReadIntReply() (int64, error) {
- line, err := r.ReadLine()
- if err != nil {
- return 0, err
- }
- switch line[0] {
- case ErrorReply:
- return 0, ParseErrorReply(line)
- case IntReply:
- return util.ParseInt(line[1:], 10, 64)
- default:
- return 0, fmt.Errorf("redis: can't parse int reply: %.100q", line)
- }
-}
-
-func (r *Reader) ReadString() (string, error) {
- line, err := r.ReadLine()
- if err != nil {
- return "", err
- }
- switch line[0] {
- case ErrorReply:
- return "", ParseErrorReply(line)
- case StringReply:
- return r.readStringReply(line)
- case StatusReply:
- return string(line[1:]), nil
- case IntReply:
- return string(line[1:]), nil
- default:
- return "", fmt.Errorf("redis: can't parse reply=%.100q reading string", line)
- }
-}
-
-func (r *Reader) readStringReply(line []byte) (string, error) {
- if isNilReply(line) {
- return "", Nil
- }
-
- replyLen, err := util.Atoi(line[1:])
- if err != nil {
- return "", err
- }
-
- b := make([]byte, replyLen+2)
- _, err = io.ReadFull(r.rd, b)
- if err != nil {
- return "", err
- }
-
- return util.BytesToString(b[:replyLen]), nil
-}
-
-func (r *Reader) ReadArrayReply(m MultiBulkParse) (interface{}, error) {
- line, err := r.ReadLine()
- if err != nil {
- return nil, err
- }
- switch line[0] {
- case ErrorReply:
- return nil, ParseErrorReply(line)
- case ArrayReply:
- n, err := parseArrayLen(line)
- if err != nil {
- return nil, err
- }
- return m(r, n)
- default:
- return nil, fmt.Errorf("redis: can't parse array reply: %.100q", line)
- }
-}
-
-func (r *Reader) ReadArrayLen() (int, error) {
- line, err := r.ReadLine()
- if err != nil {
- return 0, err
- }
- switch line[0] {
- case ErrorReply:
- return 0, ParseErrorReply(line)
- case ArrayReply:
- n, err := parseArrayLen(line)
- if err != nil {
- return 0, err
- }
- return int(n), nil
- default:
- return 0, fmt.Errorf("redis: can't parse array reply: %.100q", line)
- }
-}
-
-func (r *Reader) ReadScanReply() ([]string, uint64, error) {
- n, err := r.ReadArrayLen()
- if err != nil {
- return nil, 0, err
- }
- if n != 2 {
- return nil, 0, fmt.Errorf("redis: got %d elements in scan reply, expected 2", n)
- }
-
- cursor, err := r.ReadUint()
- if err != nil {
- return nil, 0, err
- }
-
- n, err = r.ReadArrayLen()
- if err != nil {
- return nil, 0, err
- }
-
- keys := make([]string, n)
-
- for i := 0; i < n; i++ {
- key, err := r.ReadString()
- if err != nil {
- return nil, 0, err
- }
- keys[i] = key
- }
-
- return keys, cursor, err
-}
-
-func (r *Reader) ReadInt() (int64, error) {
- b, err := r.readTmpBytesReply()
- if err != nil {
- return 0, err
- }
- return util.ParseInt(b, 10, 64)
-}
-
-func (r *Reader) ReadUint() (uint64, error) {
- b, err := r.readTmpBytesReply()
- if err != nil {
- return 0, err
- }
- return util.ParseUint(b, 10, 64)
-}
-
-func (r *Reader) ReadFloatReply() (float64, error) {
- b, err := r.readTmpBytesReply()
- if err != nil {
- return 0, err
- }
- return util.ParseFloat(b, 64)
-}
-
-func (r *Reader) readTmpBytesReply() ([]byte, error) {
- line, err := r.ReadLine()
- if err != nil {
- return nil, err
- }
- switch line[0] {
- case ErrorReply:
- return nil, ParseErrorReply(line)
- case StringReply:
- return r._readTmpBytesReply(line)
- case StatusReply:
- return line[1:], nil
- default:
- return nil, fmt.Errorf("redis: can't parse string reply: %.100q", line)
- }
-}
-
-func (r *Reader) _readTmpBytesReply(line []byte) ([]byte, error) {
- if isNilReply(line) {
- return nil, Nil
- }
-
- replyLen, err := util.Atoi(line[1:])
- if err != nil {
- return nil, err
- }
-
- buf := r.buf(replyLen + 2)
- _, err = io.ReadFull(r.rd, buf)
- if err != nil {
- return nil, err
- }
-
- return buf[:replyLen], nil
-}
-
-func (r *Reader) buf(n int) []byte {
- if n <= cap(r._buf) {
- return r._buf[:n]
- }
- d := n - cap(r._buf)
- r._buf = append(r._buf, make([]byte, d)...)
- return r._buf
-}
-
-func isNilReply(b []byte) bool {
- return len(b) == 3 &&
- (b[0] == StringReply || b[0] == ArrayReply) &&
- b[1] == '-' && b[2] == '1'
-}
-
-func ParseErrorReply(line []byte) error {
- return RedisError(string(line[1:]))
-}
-
-func parseArrayLen(line []byte) (int64, error) {
- if isNilReply(line) {
- return 0, Nil
- }
- return util.ParseInt(line[1:], 10, 64)
-}
diff --git a/vendor/github.com/go-redis/redis/v8/internal/safe.go b/vendor/github.com/go-redis/redis/v8/internal/safe.go
deleted file mode 100644
index fd2f434094..0000000000
--- a/vendor/github.com/go-redis/redis/v8/internal/safe.go
+++ /dev/null
@@ -1,12 +0,0 @@
-//go:build appengine
-// +build appengine
-
-package internal
-
-func String(b []byte) string {
- return string(b)
-}
-
-func Bytes(s string) []byte {
- return []byte(s)
-}
diff --git a/vendor/github.com/go-redis/redis/v8/internal/unsafe.go b/vendor/github.com/go-redis/redis/v8/internal/unsafe.go
deleted file mode 100644
index 9f2e418f79..0000000000
--- a/vendor/github.com/go-redis/redis/v8/internal/unsafe.go
+++ /dev/null
@@ -1,21 +0,0 @@
-//go:build !appengine
-// +build !appengine
-
-package internal
-
-import "unsafe"
-
-// String converts byte slice to string.
-func String(b []byte) string {
- return *(*string)(unsafe.Pointer(&b))
-}
-
-// Bytes converts string to byte slice.
-func Bytes(s string) []byte {
- return *(*[]byte)(unsafe.Pointer(
- &struct {
- string
- Cap int
- }{s, len(s)},
- ))
-}
diff --git a/vendor/github.com/go-redis/redis/v8/redis.go b/vendor/github.com/go-redis/redis/v8/redis.go
deleted file mode 100644
index bcf8a2a94b..0000000000
--- a/vendor/github.com/go-redis/redis/v8/redis.go
+++ /dev/null
@@ -1,773 +0,0 @@
-package redis
-
-import (
- "context"
- "errors"
- "fmt"
- "sync/atomic"
- "time"
-
- "github.com/go-redis/redis/v8/internal"
- "github.com/go-redis/redis/v8/internal/pool"
- "github.com/go-redis/redis/v8/internal/proto"
-)
-
-// Nil reply returned by Redis when key does not exist.
-const Nil = proto.Nil
-
-func SetLogger(logger internal.Logging) {
- internal.Logger = logger
-}
-
-//------------------------------------------------------------------------------
-
-type Hook interface {
- BeforeProcess(ctx context.Context, cmd Cmder) (context.Context, error)
- AfterProcess(ctx context.Context, cmd Cmder) error
-
- BeforeProcessPipeline(ctx context.Context, cmds []Cmder) (context.Context, error)
- AfterProcessPipeline(ctx context.Context, cmds []Cmder) error
-}
-
-type hooks struct {
- hooks []Hook
-}
-
-func (hs *hooks) lock() {
- hs.hooks = hs.hooks[:len(hs.hooks):len(hs.hooks)]
-}
-
-func (hs hooks) clone() hooks {
- clone := hs
- clone.lock()
- return clone
-}
-
-func (hs *hooks) AddHook(hook Hook) {
- hs.hooks = append(hs.hooks, hook)
-}
-
-func (hs hooks) process(
- ctx context.Context, cmd Cmder, fn func(context.Context, Cmder) error,
-) error {
- if len(hs.hooks) == 0 {
- err := fn(ctx, cmd)
- cmd.SetErr(err)
- return err
- }
-
- var hookIndex int
- var retErr error
-
- for ; hookIndex < len(hs.hooks) && retErr == nil; hookIndex++ {
- ctx, retErr = hs.hooks[hookIndex].BeforeProcess(ctx, cmd)
- if retErr != nil {
- cmd.SetErr(retErr)
- }
- }
-
- if retErr == nil {
- retErr = fn(ctx, cmd)
- cmd.SetErr(retErr)
- }
-
- for hookIndex--; hookIndex >= 0; hookIndex-- {
- if err := hs.hooks[hookIndex].AfterProcess(ctx, cmd); err != nil {
- retErr = err
- cmd.SetErr(retErr)
- }
- }
-
- return retErr
-}
-
-func (hs hooks) processPipeline(
- ctx context.Context, cmds []Cmder, fn func(context.Context, []Cmder) error,
-) error {
- if len(hs.hooks) == 0 {
- err := fn(ctx, cmds)
- return err
- }
-
- var hookIndex int
- var retErr error
-
- for ; hookIndex < len(hs.hooks) && retErr == nil; hookIndex++ {
- ctx, retErr = hs.hooks[hookIndex].BeforeProcessPipeline(ctx, cmds)
- if retErr != nil {
- setCmdsErr(cmds, retErr)
- }
- }
-
- if retErr == nil {
- retErr = fn(ctx, cmds)
- }
-
- for hookIndex--; hookIndex >= 0; hookIndex-- {
- if err := hs.hooks[hookIndex].AfterProcessPipeline(ctx, cmds); err != nil {
- retErr = err
- setCmdsErr(cmds, retErr)
- }
- }
-
- return retErr
-}
-
-func (hs hooks) processTxPipeline(
- ctx context.Context, cmds []Cmder, fn func(context.Context, []Cmder) error,
-) error {
- cmds = wrapMultiExec(ctx, cmds)
- return hs.processPipeline(ctx, cmds, fn)
-}
-
-//------------------------------------------------------------------------------
-
-type baseClient struct {
- opt *Options
- connPool pool.Pooler
-
- onClose func() error // hook called when client is closed
-}
-
-func newBaseClient(opt *Options, connPool pool.Pooler) *baseClient {
- return &baseClient{
- opt: opt,
- connPool: connPool,
- }
-}
-
-func (c *baseClient) clone() *baseClient {
- clone := *c
- return &clone
-}
-
-func (c *baseClient) withTimeout(timeout time.Duration) *baseClient {
- opt := c.opt.clone()
- opt.ReadTimeout = timeout
- opt.WriteTimeout = timeout
-
- clone := c.clone()
- clone.opt = opt
-
- return clone
-}
-
-func (c *baseClient) String() string {
- return fmt.Sprintf("Redis<%s db:%d>", c.getAddr(), c.opt.DB)
-}
-
-func (c *baseClient) newConn(ctx context.Context) (*pool.Conn, error) {
- cn, err := c.connPool.NewConn(ctx)
- if err != nil {
- return nil, err
- }
-
- err = c.initConn(ctx, cn)
- if err != nil {
- _ = c.connPool.CloseConn(cn)
- return nil, err
- }
-
- return cn, nil
-}
-
-func (c *baseClient) getConn(ctx context.Context) (*pool.Conn, error) {
- if c.opt.Limiter != nil {
- err := c.opt.Limiter.Allow()
- if err != nil {
- return nil, err
- }
- }
-
- cn, err := c._getConn(ctx)
- if err != nil {
- if c.opt.Limiter != nil {
- c.opt.Limiter.ReportResult(err)
- }
- return nil, err
- }
-
- return cn, nil
-}
-
-func (c *baseClient) _getConn(ctx context.Context) (*pool.Conn, error) {
- cn, err := c.connPool.Get(ctx)
- if err != nil {
- return nil, err
- }
-
- if cn.Inited {
- return cn, nil
- }
-
- if err := c.initConn(ctx, cn); err != nil {
- c.connPool.Remove(ctx, cn, err)
- if err := errors.Unwrap(err); err != nil {
- return nil, err
- }
- return nil, err
- }
-
- return cn, nil
-}
-
-func (c *baseClient) initConn(ctx context.Context, cn *pool.Conn) error {
- if cn.Inited {
- return nil
- }
- cn.Inited = true
-
- if c.opt.Password == "" &&
- c.opt.DB == 0 &&
- !c.opt.readOnly &&
- c.opt.OnConnect == nil {
- return nil
- }
-
- connPool := pool.NewSingleConnPool(c.connPool, cn)
- conn := newConn(ctx, c.opt, connPool)
-
- _, err := conn.Pipelined(ctx, func(pipe Pipeliner) error {
- if c.opt.Password != "" {
- if c.opt.Username != "" {
- pipe.AuthACL(ctx, c.opt.Username, c.opt.Password)
- } else {
- pipe.Auth(ctx, c.opt.Password)
- }
- }
-
- if c.opt.DB > 0 {
- pipe.Select(ctx, c.opt.DB)
- }
-
- if c.opt.readOnly {
- pipe.ReadOnly(ctx)
- }
-
- return nil
- })
- if err != nil {
- return err
- }
-
- if c.opt.OnConnect != nil {
- return c.opt.OnConnect(ctx, conn)
- }
- return nil
-}
-
-func (c *baseClient) releaseConn(ctx context.Context, cn *pool.Conn, err error) {
- if c.opt.Limiter != nil {
- c.opt.Limiter.ReportResult(err)
- }
-
- if isBadConn(err, false, c.opt.Addr) {
- c.connPool.Remove(ctx, cn, err)
- } else {
- c.connPool.Put(ctx, cn)
- }
-}
-
-func (c *baseClient) withConn(
- ctx context.Context, fn func(context.Context, *pool.Conn) error,
-) error {
- cn, err := c.getConn(ctx)
- if err != nil {
- return err
- }
-
- defer func() {
- c.releaseConn(ctx, cn, err)
- }()
-
- done := ctx.Done() //nolint:ifshort
-
- if done == nil {
- err = fn(ctx, cn)
- return err
- }
-
- errc := make(chan error, 1)
- go func() { errc <- fn(ctx, cn) }()
-
- select {
- case <-done:
- _ = cn.Close()
- // Wait for the goroutine to finish and send something.
- <-errc
-
- err = ctx.Err()
- return err
- case err = <-errc:
- return err
- }
-}
-
-func (c *baseClient) process(ctx context.Context, cmd Cmder) error {
- var lastErr error
- for attempt := 0; attempt <= c.opt.MaxRetries; attempt++ {
- attempt := attempt
-
- retry, err := c._process(ctx, cmd, attempt)
- if err == nil || !retry {
- return err
- }
-
- lastErr = err
- }
- return lastErr
-}
-
-func (c *baseClient) _process(ctx context.Context, cmd Cmder, attempt int) (bool, error) {
- if attempt > 0 {
- if err := internal.Sleep(ctx, c.retryBackoff(attempt)); err != nil {
- return false, err
- }
- }
-
- retryTimeout := uint32(1)
- err := c.withConn(ctx, func(ctx context.Context, cn *pool.Conn) error {
- err := cn.WithWriter(ctx, c.opt.WriteTimeout, func(wr *proto.Writer) error {
- return writeCmd(wr, cmd)
- })
- if err != nil {
- return err
- }
-
- err = cn.WithReader(ctx, c.cmdTimeout(cmd), cmd.readReply)
- if err != nil {
- if cmd.readTimeout() == nil {
- atomic.StoreUint32(&retryTimeout, 1)
- }
- return err
- }
-
- return nil
- })
- if err == nil {
- return false, nil
- }
-
- retry := shouldRetry(err, atomic.LoadUint32(&retryTimeout) == 1)
- return retry, err
-}
-
-func (c *baseClient) retryBackoff(attempt int) time.Duration {
- return internal.RetryBackoff(attempt, c.opt.MinRetryBackoff, c.opt.MaxRetryBackoff)
-}
-
-func (c *baseClient) cmdTimeout(cmd Cmder) time.Duration {
- if timeout := cmd.readTimeout(); timeout != nil {
- t := *timeout
- if t == 0 {
- return 0
- }
- return t + 10*time.Second
- }
- return c.opt.ReadTimeout
-}
-
-// Close closes the client, releasing any open resources.
-//
-// It is rare to Close a Client, as the Client is meant to be
-// long-lived and shared between many goroutines.
-func (c *baseClient) Close() error {
- var firstErr error
- if c.onClose != nil {
- if err := c.onClose(); err != nil {
- firstErr = err
- }
- }
- if err := c.connPool.Close(); err != nil && firstErr == nil {
- firstErr = err
- }
- return firstErr
-}
-
-func (c *baseClient) getAddr() string {
- return c.opt.Addr
-}
-
-func (c *baseClient) processPipeline(ctx context.Context, cmds []Cmder) error {
- return c.generalProcessPipeline(ctx, cmds, c.pipelineProcessCmds)
-}
-
-func (c *baseClient) processTxPipeline(ctx context.Context, cmds []Cmder) error {
- return c.generalProcessPipeline(ctx, cmds, c.txPipelineProcessCmds)
-}
-
-type pipelineProcessor func(context.Context, *pool.Conn, []Cmder) (bool, error)
-
-func (c *baseClient) generalProcessPipeline(
- ctx context.Context, cmds []Cmder, p pipelineProcessor,
-) error {
- err := c._generalProcessPipeline(ctx, cmds, p)
- if err != nil {
- setCmdsErr(cmds, err)
- return err
- }
- return cmdsFirstErr(cmds)
-}
-
-func (c *baseClient) _generalProcessPipeline(
- ctx context.Context, cmds []Cmder, p pipelineProcessor,
-) error {
- var lastErr error
- for attempt := 0; attempt <= c.opt.MaxRetries; attempt++ {
- if attempt > 0 {
- if err := internal.Sleep(ctx, c.retryBackoff(attempt)); err != nil {
- return err
- }
- }
-
- var canRetry bool
- lastErr = c.withConn(ctx, func(ctx context.Context, cn *pool.Conn) error {
- var err error
- canRetry, err = p(ctx, cn, cmds)
- return err
- })
- if lastErr == nil || !canRetry || !shouldRetry(lastErr, true) {
- return lastErr
- }
- }
- return lastErr
-}
-
-func (c *baseClient) pipelineProcessCmds(
- ctx context.Context, cn *pool.Conn, cmds []Cmder,
-) (bool, error) {
- err := cn.WithWriter(ctx, c.opt.WriteTimeout, func(wr *proto.Writer) error {
- return writeCmds(wr, cmds)
- })
- if err != nil {
- return true, err
- }
-
- err = cn.WithReader(ctx, c.opt.ReadTimeout, func(rd *proto.Reader) error {
- return pipelineReadCmds(rd, cmds)
- })
- return true, err
-}
-
-func pipelineReadCmds(rd *proto.Reader, cmds []Cmder) error {
- for _, cmd := range cmds {
- err := cmd.readReply(rd)
- cmd.SetErr(err)
- if err != nil && !isRedisError(err) {
- return err
- }
- }
- return nil
-}
-
-func (c *baseClient) txPipelineProcessCmds(
- ctx context.Context, cn *pool.Conn, cmds []Cmder,
-) (bool, error) {
- err := cn.WithWriter(ctx, c.opt.WriteTimeout, func(wr *proto.Writer) error {
- return writeCmds(wr, cmds)
- })
- if err != nil {
- return true, err
- }
-
- err = cn.WithReader(ctx, c.opt.ReadTimeout, func(rd *proto.Reader) error {
- statusCmd := cmds[0].(*StatusCmd)
- // Trim multi and exec.
- cmds = cmds[1 : len(cmds)-1]
-
- err := txPipelineReadQueued(rd, statusCmd, cmds)
- if err != nil {
- return err
- }
-
- return pipelineReadCmds(rd, cmds)
- })
- return false, err
-}
-
-func wrapMultiExec(ctx context.Context, cmds []Cmder) []Cmder {
- if len(cmds) == 0 {
- panic("not reached")
- }
- cmdCopy := make([]Cmder, len(cmds)+2)
- cmdCopy[0] = NewStatusCmd(ctx, "multi")
- copy(cmdCopy[1:], cmds)
- cmdCopy[len(cmdCopy)-1] = NewSliceCmd(ctx, "exec")
- return cmdCopy
-}
-
-func txPipelineReadQueued(rd *proto.Reader, statusCmd *StatusCmd, cmds []Cmder) error {
- // Parse queued replies.
- if err := statusCmd.readReply(rd); err != nil {
- return err
- }
-
- for range cmds {
- if err := statusCmd.readReply(rd); err != nil && !isRedisError(err) {
- return err
- }
- }
-
- // Parse number of replies.
- line, err := rd.ReadLine()
- if err != nil {
- if err == Nil {
- err = TxFailedErr
- }
- return err
- }
-
- switch line[0] {
- case proto.ErrorReply:
- return proto.ParseErrorReply(line)
- case proto.ArrayReply:
- // ok
- default:
- err := fmt.Errorf("redis: expected '*', but got line %q", line)
- return err
- }
-
- return nil
-}
-
-//------------------------------------------------------------------------------
-
-// Client is a Redis client representing a pool of zero or more
-// underlying connections. It's safe for concurrent use by multiple
-// goroutines.
-type Client struct {
- *baseClient
- cmdable
- hooks
- ctx context.Context
-}
-
-// NewClient returns a client to the Redis Server specified by Options.
-func NewClient(opt *Options) *Client {
- opt.init()
-
- c := Client{
- baseClient: newBaseClient(opt, newConnPool(opt)),
- ctx: context.Background(),
- }
- c.cmdable = c.Process
-
- return &c
-}
-
-func (c *Client) clone() *Client {
- clone := *c
- clone.cmdable = clone.Process
- clone.hooks.lock()
- return &clone
-}
-
-func (c *Client) WithTimeout(timeout time.Duration) *Client {
- clone := c.clone()
- clone.baseClient = c.baseClient.withTimeout(timeout)
- return clone
-}
-
-func (c *Client) Context() context.Context {
- return c.ctx
-}
-
-func (c *Client) WithContext(ctx context.Context) *Client {
- if ctx == nil {
- panic("nil context")
- }
- clone := c.clone()
- clone.ctx = ctx
- return clone
-}
-
-func (c *Client) Conn(ctx context.Context) *Conn {
- return newConn(ctx, c.opt, pool.NewStickyConnPool(c.connPool))
-}
-
-// Do creates a Cmd from the args and processes the cmd.
-func (c *Client) Do(ctx context.Context, args ...interface{}) *Cmd {
- cmd := NewCmd(ctx, args...)
- _ = c.Process(ctx, cmd)
- return cmd
-}
-
-func (c *Client) Process(ctx context.Context, cmd Cmder) error {
- return c.hooks.process(ctx, cmd, c.baseClient.process)
-}
-
-func (c *Client) processPipeline(ctx context.Context, cmds []Cmder) error {
- return c.hooks.processPipeline(ctx, cmds, c.baseClient.processPipeline)
-}
-
-func (c *Client) processTxPipeline(ctx context.Context, cmds []Cmder) error {
- return c.hooks.processTxPipeline(ctx, cmds, c.baseClient.processTxPipeline)
-}
-
-// Options returns read-only Options that were used to create the client.
-func (c *Client) Options() *Options {
- return c.opt
-}
-
-type PoolStats pool.Stats
-
-// PoolStats returns connection pool stats.
-func (c *Client) PoolStats() *PoolStats {
- stats := c.connPool.Stats()
- return (*PoolStats)(stats)
-}
-
-func (c *Client) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error) {
- return c.Pipeline().Pipelined(ctx, fn)
-}
-
-func (c *Client) Pipeline() Pipeliner {
- pipe := Pipeline{
- ctx: c.ctx,
- exec: c.processPipeline,
- }
- pipe.init()
- return &pipe
-}
-
-func (c *Client) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error) {
- return c.TxPipeline().Pipelined(ctx, fn)
-}
-
-// TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
-func (c *Client) TxPipeline() Pipeliner {
- pipe := Pipeline{
- ctx: c.ctx,
- exec: c.processTxPipeline,
- }
- pipe.init()
- return &pipe
-}
-
-func (c *Client) pubSub() *PubSub {
- pubsub := &PubSub{
- opt: c.opt,
-
- newConn: func(ctx context.Context, channels []string) (*pool.Conn, error) {
- return c.newConn(ctx)
- },
- closeConn: c.connPool.CloseConn,
- }
- pubsub.init()
- return pubsub
-}
-
-// Subscribe subscribes the client to the specified channels.
-// Channels can be omitted to create empty subscription.
-// Note that this method does not wait on a response from Redis, so the
-// subscription may not be active immediately. To force the connection to wait,
-// you may call the Receive() method on the returned *PubSub like so:
-//
-// sub := client.Subscribe(queryResp)
-// iface, err := sub.Receive()
-// if err != nil {
-// // handle error
-// }
-//
-// // Should be *Subscription, but others are possible if other actions have been
-// // taken on sub since it was created.
-// switch iface.(type) {
-// case *Subscription:
-// // subscribe succeeded
-// case *Message:
-// // received first message
-// case *Pong:
-// // pong received
-// default:
-// // handle error
-// }
-//
-// ch := sub.Channel()
-func (c *Client) Subscribe(ctx context.Context, channels ...string) *PubSub {
- pubsub := c.pubSub()
- if len(channels) > 0 {
- _ = pubsub.Subscribe(ctx, channels...)
- }
- return pubsub
-}
-
-// PSubscribe subscribes the client to the given patterns.
-// Patterns can be omitted to create empty subscription.
-func (c *Client) PSubscribe(ctx context.Context, channels ...string) *PubSub {
- pubsub := c.pubSub()
- if len(channels) > 0 {
- _ = pubsub.PSubscribe(ctx, channels...)
- }
- return pubsub
-}
-
-//------------------------------------------------------------------------------
-
-type conn struct {
- baseClient
- cmdable
- statefulCmdable
- hooks // TODO: inherit hooks
-}
-
-// Conn represents a single Redis connection rather than a pool of connections.
-// Prefer running commands from Client unless there is a specific need
-// for a continuous single Redis connection.
-type Conn struct {
- *conn
- ctx context.Context
-}
-
-func newConn(ctx context.Context, opt *Options, connPool pool.Pooler) *Conn {
- c := Conn{
- conn: &conn{
- baseClient: baseClient{
- opt: opt,
- connPool: connPool,
- },
- },
- ctx: ctx,
- }
- c.cmdable = c.Process
- c.statefulCmdable = c.Process
- return &c
-}
-
-func (c *Conn) Process(ctx context.Context, cmd Cmder) error {
- return c.hooks.process(ctx, cmd, c.baseClient.process)
-}
-
-func (c *Conn) processPipeline(ctx context.Context, cmds []Cmder) error {
- return c.hooks.processPipeline(ctx, cmds, c.baseClient.processPipeline)
-}
-
-func (c *Conn) processTxPipeline(ctx context.Context, cmds []Cmder) error {
- return c.hooks.processTxPipeline(ctx, cmds, c.baseClient.processTxPipeline)
-}
-
-func (c *Conn) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error) {
- return c.Pipeline().Pipelined(ctx, fn)
-}
-
-func (c *Conn) Pipeline() Pipeliner {
- pipe := Pipeline{
- ctx: c.ctx,
- exec: c.processPipeline,
- }
- pipe.init()
- return &pipe
-}
-
-func (c *Conn) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error) {
- return c.TxPipeline().Pipelined(ctx, fn)
-}
-
-// TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
-func (c *Conn) TxPipeline() Pipeliner {
- pipe := Pipeline{
- ctx: c.ctx,
- exec: c.processTxPipeline,
- }
- pipe.init()
- return &pipe
-}
diff --git a/vendor/github.com/golang/protobuf/jsonpb/decode.go b/vendor/github.com/golang/protobuf/jsonpb/decode.go
index 6c16c255ff..c6f66f1039 100644
--- a/vendor/github.com/golang/protobuf/jsonpb/decode.go
+++ b/vendor/github.com/golang/protobuf/jsonpb/decode.go
@@ -56,6 +56,7 @@ type Unmarshaler struct {
// implement JSONPBMarshaler so that the custom format can be produced.
//
// The JSON unmarshaling must follow the JSON to proto specification:
+//
// https://developers.google.com/protocol-buffers/docs/proto3#json
//
// Deprecated: Custom types should implement protobuf reflection instead.
diff --git a/vendor/github.com/golang/protobuf/jsonpb/encode.go b/vendor/github.com/golang/protobuf/jsonpb/encode.go
index 685c80a62b..e9438a93f3 100644
--- a/vendor/github.com/golang/protobuf/jsonpb/encode.go
+++ b/vendor/github.com/golang/protobuf/jsonpb/encode.go
@@ -55,6 +55,7 @@ type Marshaler struct {
// implement JSONPBUnmarshaler so that the custom format can be parsed.
//
// The JSON marshaling must follow the proto to JSON specification:
+//
// https://developers.google.com/protocol-buffers/docs/proto3#json
//
// Deprecated: Custom types should implement protobuf reflection instead.
diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go
index 63dc057851..a5a138613a 100644
--- a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go
+++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go
@@ -12,6 +12,31 @@ import (
// Symbols defined in public import of google/protobuf/descriptor.proto.
+type Edition = descriptorpb.Edition
+
+const Edition_EDITION_UNKNOWN = descriptorpb.Edition_EDITION_UNKNOWN
+const Edition_EDITION_PROTO2 = descriptorpb.Edition_EDITION_PROTO2
+const Edition_EDITION_PROTO3 = descriptorpb.Edition_EDITION_PROTO3
+const Edition_EDITION_2023 = descriptorpb.Edition_EDITION_2023
+const Edition_EDITION_2024 = descriptorpb.Edition_EDITION_2024
+const Edition_EDITION_1_TEST_ONLY = descriptorpb.Edition_EDITION_1_TEST_ONLY
+const Edition_EDITION_2_TEST_ONLY = descriptorpb.Edition_EDITION_2_TEST_ONLY
+const Edition_EDITION_99997_TEST_ONLY = descriptorpb.Edition_EDITION_99997_TEST_ONLY
+const Edition_EDITION_99998_TEST_ONLY = descriptorpb.Edition_EDITION_99998_TEST_ONLY
+const Edition_EDITION_99999_TEST_ONLY = descriptorpb.Edition_EDITION_99999_TEST_ONLY
+const Edition_EDITION_MAX = descriptorpb.Edition_EDITION_MAX
+
+var Edition_name = descriptorpb.Edition_name
+var Edition_value = descriptorpb.Edition_value
+
+type ExtensionRangeOptions_VerificationState = descriptorpb.ExtensionRangeOptions_VerificationState
+
+const ExtensionRangeOptions_DECLARATION = descriptorpb.ExtensionRangeOptions_DECLARATION
+const ExtensionRangeOptions_UNVERIFIED = descriptorpb.ExtensionRangeOptions_UNVERIFIED
+
+var ExtensionRangeOptions_VerificationState_name = descriptorpb.ExtensionRangeOptions_VerificationState_name
+var ExtensionRangeOptions_VerificationState_value = descriptorpb.ExtensionRangeOptions_VerificationState_value
+
type FieldDescriptorProto_Type = descriptorpb.FieldDescriptorProto_Type
const FieldDescriptorProto_TYPE_DOUBLE = descriptorpb.FieldDescriptorProto_TYPE_DOUBLE
@@ -39,8 +64,8 @@ var FieldDescriptorProto_Type_value = descriptorpb.FieldDescriptorProto_Type_val
type FieldDescriptorProto_Label = descriptorpb.FieldDescriptorProto_Label
const FieldDescriptorProto_LABEL_OPTIONAL = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL
-const FieldDescriptorProto_LABEL_REQUIRED = descriptorpb.FieldDescriptorProto_LABEL_REQUIRED
const FieldDescriptorProto_LABEL_REPEATED = descriptorpb.FieldDescriptorProto_LABEL_REPEATED
+const FieldDescriptorProto_LABEL_REQUIRED = descriptorpb.FieldDescriptorProto_LABEL_REQUIRED
var FieldDescriptorProto_Label_name = descriptorpb.FieldDescriptorProto_Label_name
var FieldDescriptorProto_Label_value = descriptorpb.FieldDescriptorProto_Label_value
@@ -72,6 +97,31 @@ const FieldOptions_JS_NUMBER = descriptorpb.FieldOptions_JS_NUMBER
var FieldOptions_JSType_name = descriptorpb.FieldOptions_JSType_name
var FieldOptions_JSType_value = descriptorpb.FieldOptions_JSType_value
+type FieldOptions_OptionRetention = descriptorpb.FieldOptions_OptionRetention
+
+const FieldOptions_RETENTION_UNKNOWN = descriptorpb.FieldOptions_RETENTION_UNKNOWN
+const FieldOptions_RETENTION_RUNTIME = descriptorpb.FieldOptions_RETENTION_RUNTIME
+const FieldOptions_RETENTION_SOURCE = descriptorpb.FieldOptions_RETENTION_SOURCE
+
+var FieldOptions_OptionRetention_name = descriptorpb.FieldOptions_OptionRetention_name
+var FieldOptions_OptionRetention_value = descriptorpb.FieldOptions_OptionRetention_value
+
+type FieldOptions_OptionTargetType = descriptorpb.FieldOptions_OptionTargetType
+
+const FieldOptions_TARGET_TYPE_UNKNOWN = descriptorpb.FieldOptions_TARGET_TYPE_UNKNOWN
+const FieldOptions_TARGET_TYPE_FILE = descriptorpb.FieldOptions_TARGET_TYPE_FILE
+const FieldOptions_TARGET_TYPE_EXTENSION_RANGE = descriptorpb.FieldOptions_TARGET_TYPE_EXTENSION_RANGE
+const FieldOptions_TARGET_TYPE_MESSAGE = descriptorpb.FieldOptions_TARGET_TYPE_MESSAGE
+const FieldOptions_TARGET_TYPE_FIELD = descriptorpb.FieldOptions_TARGET_TYPE_FIELD
+const FieldOptions_TARGET_TYPE_ONEOF = descriptorpb.FieldOptions_TARGET_TYPE_ONEOF
+const FieldOptions_TARGET_TYPE_ENUM = descriptorpb.FieldOptions_TARGET_TYPE_ENUM
+const FieldOptions_TARGET_TYPE_ENUM_ENTRY = descriptorpb.FieldOptions_TARGET_TYPE_ENUM_ENTRY
+const FieldOptions_TARGET_TYPE_SERVICE = descriptorpb.FieldOptions_TARGET_TYPE_SERVICE
+const FieldOptions_TARGET_TYPE_METHOD = descriptorpb.FieldOptions_TARGET_TYPE_METHOD
+
+var FieldOptions_OptionTargetType_name = descriptorpb.FieldOptions_OptionTargetType_name
+var FieldOptions_OptionTargetType_value = descriptorpb.FieldOptions_OptionTargetType_value
+
type MethodOptions_IdempotencyLevel = descriptorpb.MethodOptions_IdempotencyLevel
const MethodOptions_IDEMPOTENCY_UNKNOWN = descriptorpb.MethodOptions_IDEMPOTENCY_UNKNOWN
@@ -81,10 +131,77 @@ const MethodOptions_IDEMPOTENT = descriptorpb.MethodOptions_IDEMPOTENT
var MethodOptions_IdempotencyLevel_name = descriptorpb.MethodOptions_IdempotencyLevel_name
var MethodOptions_IdempotencyLevel_value = descriptorpb.MethodOptions_IdempotencyLevel_value
+type FeatureSet_FieldPresence = descriptorpb.FeatureSet_FieldPresence
+
+const FeatureSet_FIELD_PRESENCE_UNKNOWN = descriptorpb.FeatureSet_FIELD_PRESENCE_UNKNOWN
+const FeatureSet_EXPLICIT = descriptorpb.FeatureSet_EXPLICIT
+const FeatureSet_IMPLICIT = descriptorpb.FeatureSet_IMPLICIT
+const FeatureSet_LEGACY_REQUIRED = descriptorpb.FeatureSet_LEGACY_REQUIRED
+
+var FeatureSet_FieldPresence_name = descriptorpb.FeatureSet_FieldPresence_name
+var FeatureSet_FieldPresence_value = descriptorpb.FeatureSet_FieldPresence_value
+
+type FeatureSet_EnumType = descriptorpb.FeatureSet_EnumType
+
+const FeatureSet_ENUM_TYPE_UNKNOWN = descriptorpb.FeatureSet_ENUM_TYPE_UNKNOWN
+const FeatureSet_OPEN = descriptorpb.FeatureSet_OPEN
+const FeatureSet_CLOSED = descriptorpb.FeatureSet_CLOSED
+
+var FeatureSet_EnumType_name = descriptorpb.FeatureSet_EnumType_name
+var FeatureSet_EnumType_value = descriptorpb.FeatureSet_EnumType_value
+
+type FeatureSet_RepeatedFieldEncoding = descriptorpb.FeatureSet_RepeatedFieldEncoding
+
+const FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN = descriptorpb.FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN
+const FeatureSet_PACKED = descriptorpb.FeatureSet_PACKED
+const FeatureSet_EXPANDED = descriptorpb.FeatureSet_EXPANDED
+
+var FeatureSet_RepeatedFieldEncoding_name = descriptorpb.FeatureSet_RepeatedFieldEncoding_name
+var FeatureSet_RepeatedFieldEncoding_value = descriptorpb.FeatureSet_RepeatedFieldEncoding_value
+
+type FeatureSet_Utf8Validation = descriptorpb.FeatureSet_Utf8Validation
+
+const FeatureSet_UTF8_VALIDATION_UNKNOWN = descriptorpb.FeatureSet_UTF8_VALIDATION_UNKNOWN
+const FeatureSet_VERIFY = descriptorpb.FeatureSet_VERIFY
+const FeatureSet_NONE = descriptorpb.FeatureSet_NONE
+
+var FeatureSet_Utf8Validation_name = descriptorpb.FeatureSet_Utf8Validation_name
+var FeatureSet_Utf8Validation_value = descriptorpb.FeatureSet_Utf8Validation_value
+
+type FeatureSet_MessageEncoding = descriptorpb.FeatureSet_MessageEncoding
+
+const FeatureSet_MESSAGE_ENCODING_UNKNOWN = descriptorpb.FeatureSet_MESSAGE_ENCODING_UNKNOWN
+const FeatureSet_LENGTH_PREFIXED = descriptorpb.FeatureSet_LENGTH_PREFIXED
+const FeatureSet_DELIMITED = descriptorpb.FeatureSet_DELIMITED
+
+var FeatureSet_MessageEncoding_name = descriptorpb.FeatureSet_MessageEncoding_name
+var FeatureSet_MessageEncoding_value = descriptorpb.FeatureSet_MessageEncoding_value
+
+type FeatureSet_JsonFormat = descriptorpb.FeatureSet_JsonFormat
+
+const FeatureSet_JSON_FORMAT_UNKNOWN = descriptorpb.FeatureSet_JSON_FORMAT_UNKNOWN
+const FeatureSet_ALLOW = descriptorpb.FeatureSet_ALLOW
+const FeatureSet_LEGACY_BEST_EFFORT = descriptorpb.FeatureSet_LEGACY_BEST_EFFORT
+
+var FeatureSet_JsonFormat_name = descriptorpb.FeatureSet_JsonFormat_name
+var FeatureSet_JsonFormat_value = descriptorpb.FeatureSet_JsonFormat_value
+
+type GeneratedCodeInfo_Annotation_Semantic = descriptorpb.GeneratedCodeInfo_Annotation_Semantic
+
+const GeneratedCodeInfo_Annotation_NONE = descriptorpb.GeneratedCodeInfo_Annotation_NONE
+const GeneratedCodeInfo_Annotation_SET = descriptorpb.GeneratedCodeInfo_Annotation_SET
+const GeneratedCodeInfo_Annotation_ALIAS = descriptorpb.GeneratedCodeInfo_Annotation_ALIAS
+
+var GeneratedCodeInfo_Annotation_Semantic_name = descriptorpb.GeneratedCodeInfo_Annotation_Semantic_name
+var GeneratedCodeInfo_Annotation_Semantic_value = descriptorpb.GeneratedCodeInfo_Annotation_Semantic_value
+
type FileDescriptorSet = descriptorpb.FileDescriptorSet
type FileDescriptorProto = descriptorpb.FileDescriptorProto
type DescriptorProto = descriptorpb.DescriptorProto
type ExtensionRangeOptions = descriptorpb.ExtensionRangeOptions
+
+const Default_ExtensionRangeOptions_Verification = descriptorpb.Default_ExtensionRangeOptions_Verification
+
type FieldDescriptorProto = descriptorpb.FieldDescriptorProto
type OneofDescriptorProto = descriptorpb.OneofDescriptorProto
type EnumDescriptorProto = descriptorpb.EnumDescriptorProto
@@ -103,7 +220,6 @@ const Default_FileOptions_OptimizeFor = descriptorpb.Default_FileOptions_Optimiz
const Default_FileOptions_CcGenericServices = descriptorpb.Default_FileOptions_CcGenericServices
const Default_FileOptions_JavaGenericServices = descriptorpb.Default_FileOptions_JavaGenericServices
const Default_FileOptions_PyGenericServices = descriptorpb.Default_FileOptions_PyGenericServices
-const Default_FileOptions_PhpGenericServices = descriptorpb.Default_FileOptions_PhpGenericServices
const Default_FileOptions_Deprecated = descriptorpb.Default_FileOptions_Deprecated
const Default_FileOptions_CcEnableArenas = descriptorpb.Default_FileOptions_CcEnableArenas
@@ -118,8 +234,10 @@ type FieldOptions = descriptorpb.FieldOptions
const Default_FieldOptions_Ctype = descriptorpb.Default_FieldOptions_Ctype
const Default_FieldOptions_Jstype = descriptorpb.Default_FieldOptions_Jstype
const Default_FieldOptions_Lazy = descriptorpb.Default_FieldOptions_Lazy
+const Default_FieldOptions_UnverifiedLazy = descriptorpb.Default_FieldOptions_UnverifiedLazy
const Default_FieldOptions_Deprecated = descriptorpb.Default_FieldOptions_Deprecated
const Default_FieldOptions_Weak = descriptorpb.Default_FieldOptions_Weak
+const Default_FieldOptions_DebugRedact = descriptorpb.Default_FieldOptions_DebugRedact
type OneofOptions = descriptorpb.OneofOptions
type EnumOptions = descriptorpb.EnumOptions
@@ -129,6 +247,7 @@ const Default_EnumOptions_Deprecated = descriptorpb.Default_EnumOptions_Deprecat
type EnumValueOptions = descriptorpb.EnumValueOptions
const Default_EnumValueOptions_Deprecated = descriptorpb.Default_EnumValueOptions_Deprecated
+const Default_EnumValueOptions_DebugRedact = descriptorpb.Default_EnumValueOptions_DebugRedact
type ServiceOptions = descriptorpb.ServiceOptions
@@ -140,12 +259,17 @@ const Default_MethodOptions_Deprecated = descriptorpb.Default_MethodOptions_Depr
const Default_MethodOptions_IdempotencyLevel = descriptorpb.Default_MethodOptions_IdempotencyLevel
type UninterpretedOption = descriptorpb.UninterpretedOption
+type FeatureSet = descriptorpb.FeatureSet
+type FeatureSetDefaults = descriptorpb.FeatureSetDefaults
type SourceCodeInfo = descriptorpb.SourceCodeInfo
type GeneratedCodeInfo = descriptorpb.GeneratedCodeInfo
type DescriptorProto_ExtensionRange = descriptorpb.DescriptorProto_ExtensionRange
type DescriptorProto_ReservedRange = descriptorpb.DescriptorProto_ReservedRange
+type ExtensionRangeOptions_Declaration = descriptorpb.ExtensionRangeOptions_Declaration
type EnumDescriptorProto_EnumReservedRange = descriptorpb.EnumDescriptorProto_EnumReservedRange
+type FieldOptions_EditionDefault = descriptorpb.FieldOptions_EditionDefault
type UninterpretedOption_NamePart = descriptorpb.UninterpretedOption_NamePart
+type FeatureSetDefaults_FeatureSetEditionDefault = descriptorpb.FeatureSetDefaults_FeatureSetEditionDefault
type SourceCodeInfo_Location = descriptorpb.SourceCodeInfo_Location
type GeneratedCodeInfo_Annotation = descriptorpb.GeneratedCodeInfo_Annotation
diff --git a/vendor/github.com/golang/protobuf/ptypes/any.go b/vendor/github.com/golang/protobuf/ptypes/any.go
index 85f9f57365..fdff3fdb4c 100644
--- a/vendor/github.com/golang/protobuf/ptypes/any.go
+++ b/vendor/github.com/golang/protobuf/ptypes/any.go
@@ -127,9 +127,10 @@ func Is(any *anypb.Any, m proto.Message) bool {
// The allocated message is stored in the embedded proto.Message.
//
// Example:
-// var x ptypes.DynamicAny
-// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... }
-// fmt.Printf("unmarshaled message: %v", x.Message)
+//
+// var x ptypes.DynamicAny
+// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... }
+// fmt.Printf("unmarshaled message: %v", x.Message)
//
// Deprecated: Use the any.UnmarshalNew method instead to unmarshal
// the any message contents into a new instance of the underlying message.
diff --git a/vendor/github.com/google/btree/.travis.yml b/vendor/github.com/google/btree/.travis.yml
deleted file mode 100644
index 4f2ee4d973..0000000000
--- a/vendor/github.com/google/btree/.travis.yml
+++ /dev/null
@@ -1 +0,0 @@
-language: go
diff --git a/vendor/github.com/google/btree/README.md b/vendor/github.com/google/btree/README.md
index 6062a4dacd..eab5dbf7ba 100644
--- a/vendor/github.com/google/btree/README.md
+++ b/vendor/github.com/google/btree/README.md
@@ -1,7 +1,5 @@
# BTree implementation for Go
-
-
This package provides an in-memory B-Tree implementation for Go, useful as
an ordered, mutable data structure.
diff --git a/vendor/github.com/google/btree/btree.go b/vendor/github.com/google/btree/btree.go
index b83acdbc6d..969b910d70 100644
--- a/vendor/github.com/google/btree/btree.go
+++ b/vendor/github.com/google/btree/btree.go
@@ -12,6 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+//go:build !go1.18
+// +build !go1.18
+
// Package btree implements in-memory B-Trees of arbitrary degree.
//
// btree implements an in-memory B-Tree for use as an ordered data structure.
diff --git a/vendor/github.com/google/btree/btree_generic.go b/vendor/github.com/google/btree/btree_generic.go
new file mode 100644
index 0000000000..e44a0f4880
--- /dev/null
+++ b/vendor/github.com/google/btree/btree_generic.go
@@ -0,0 +1,1083 @@
+// Copyright 2014-2022 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:build go1.18
+// +build go1.18
+
+// In Go 1.18 and beyond, a BTreeG generic is created, and BTree is a specific
+// instantiation of that generic for the Item interface, with a backwards-
+// compatible API. Before go1.18, generics are not supported,
+// and BTree is just an implementation based around the Item interface.
+
+// Package btree implements in-memory B-Trees of arbitrary degree.
+//
+// btree implements an in-memory B-Tree for use as an ordered data structure.
+// It is not meant for persistent storage solutions.
+//
+// It has a flatter structure than an equivalent red-black or other binary tree,
+// which in some cases yields better memory usage and/or performance.
+// See some discussion on the matter here:
+// http://google-opensource.blogspot.com/2013/01/c-containers-that-save-memory-and-time.html
+// Note, though, that this project is in no way related to the C++ B-Tree
+// implementation written about there.
+//
+// Within this tree, each node contains a slice of items and a (possibly nil)
+// slice of children. For basic numeric values or raw structs, this can cause
+// efficiency differences when compared to equivalent C++ template code that
+// stores values in arrays within the node:
+// * Due to the overhead of storing values as interfaces (each
+// value needs to be stored as the value itself, then 2 words for the
+// interface pointing to that value and its type), resulting in higher
+// memory use.
+// * Since interfaces can point to values anywhere in memory, values are
+// most likely not stored in contiguous blocks, resulting in a higher
+// number of cache misses.
+// These issues don't tend to matter, though, when working with strings or other
+// heap-allocated structures, since C++-equivalent structures also must store
+// pointers and also distribute their values across the heap.
+//
+// This implementation is designed to be a drop-in replacement to gollrb.LLRB
+// trees, (http://github.com/petar/gollrb), an excellent and probably the most
+// widely used ordered tree implementation in the Go ecosystem currently.
+// Its functions, therefore, exactly mirror those of
+// llrb.LLRB where possible. Unlike gollrb, though, we currently don't
+// support storing multiple equivalent values.
+//
+// There are two implementations; those suffixed with 'G' are generics, usable
+// for any type, and require a passed-in "less" function to define their ordering.
+// Those without this prefix are specific to the 'Item' interface, and use
+// its 'Less' function for ordering.
+package btree
+
+import (
+ "fmt"
+ "io"
+ "sort"
+ "strings"
+ "sync"
+)
+
+// Item represents a single object in the tree.
+type Item interface {
+ // Less tests whether the current item is less than the given argument.
+ //
+ // This must provide a strict weak ordering.
+ // If !a.Less(b) && !b.Less(a), we treat this to mean a == b (i.e. we can only
+ // hold one of either a or b in the tree).
+ Less(than Item) bool
+}
+
+const (
+ DefaultFreeListSize = 32
+)
+
+// FreeListG represents a free list of btree nodes. By default each
+// BTree has its own FreeList, but multiple BTrees can share the same
+// FreeList, in particular when they're created with Clone.
+// Two Btrees using the same freelist are safe for concurrent write access.
+type FreeListG[T any] struct {
+ mu sync.Mutex
+ freelist []*node[T]
+}
+
+// NewFreeListG creates a new free list.
+// size is the maximum size of the returned free list.
+func NewFreeListG[T any](size int) *FreeListG[T] {
+ return &FreeListG[T]{freelist: make([]*node[T], 0, size)}
+}
+
+func (f *FreeListG[T]) newNode() (n *node[T]) {
+ f.mu.Lock()
+ index := len(f.freelist) - 1
+ if index < 0 {
+ f.mu.Unlock()
+ return new(node[T])
+ }
+ n = f.freelist[index]
+ f.freelist[index] = nil
+ f.freelist = f.freelist[:index]
+ f.mu.Unlock()
+ return
+}
+
+func (f *FreeListG[T]) freeNode(n *node[T]) (out bool) {
+ f.mu.Lock()
+ if len(f.freelist) < cap(f.freelist) {
+ f.freelist = append(f.freelist, n)
+ out = true
+ }
+ f.mu.Unlock()
+ return
+}
+
+// ItemIteratorG allows callers of {A/De}scend* to iterate in-order over portions of
+// the tree. When this function returns false, iteration will stop and the
+// associated Ascend* function will immediately return.
+type ItemIteratorG[T any] func(item T) bool
+
+// Ordered represents the set of types for which the '<' operator work.
+type Ordered interface {
+ ~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~float32 | ~float64 | ~string
+}
+
+// Less[T] returns a default LessFunc that uses the '<' operator for types that support it.
+func Less[T Ordered]() LessFunc[T] {
+ return func(a, b T) bool { return a < b }
+}
+
+// NewOrderedG creates a new B-Tree for ordered types.
+func NewOrderedG[T Ordered](degree int) *BTreeG[T] {
+ return NewG[T](degree, Less[T]())
+}
+
+// NewG creates a new B-Tree with the given degree.
+//
+// NewG(2), for example, will create a 2-3-4 tree (each node contains 1-3 items
+// and 2-4 children).
+//
+// The passed-in LessFunc determines how objects of type T are ordered.
+func NewG[T any](degree int, less LessFunc[T]) *BTreeG[T] {
+ return NewWithFreeListG(degree, less, NewFreeListG[T](DefaultFreeListSize))
+}
+
+// NewWithFreeListG creates a new B-Tree that uses the given node free list.
+func NewWithFreeListG[T any](degree int, less LessFunc[T], f *FreeListG[T]) *BTreeG[T] {
+ if degree <= 1 {
+ panic("bad degree")
+ }
+ return &BTreeG[T]{
+ degree: degree,
+ cow: ©OnWriteContext[T]{freelist: f, less: less},
+ }
+}
+
+// items stores items in a node.
+type items[T any] []T
+
+// insertAt inserts a value into the given index, pushing all subsequent values
+// forward.
+func (s *items[T]) insertAt(index int, item T) {
+ var zero T
+ *s = append(*s, zero)
+ if index < len(*s) {
+ copy((*s)[index+1:], (*s)[index:])
+ }
+ (*s)[index] = item
+}
+
+// removeAt removes a value at a given index, pulling all subsequent values
+// back.
+func (s *items[T]) removeAt(index int) T {
+ item := (*s)[index]
+ copy((*s)[index:], (*s)[index+1:])
+ var zero T
+ (*s)[len(*s)-1] = zero
+ *s = (*s)[:len(*s)-1]
+ return item
+}
+
+// pop removes and returns the last element in the list.
+func (s *items[T]) pop() (out T) {
+ index := len(*s) - 1
+ out = (*s)[index]
+ var zero T
+ (*s)[index] = zero
+ *s = (*s)[:index]
+ return
+}
+
+// truncate truncates this instance at index so that it contains only the
+// first index items. index must be less than or equal to length.
+func (s *items[T]) truncate(index int) {
+ var toClear items[T]
+ *s, toClear = (*s)[:index], (*s)[index:]
+ var zero T
+ for i := 0; i < len(toClear); i++ {
+ toClear[i] = zero
+ }
+}
+
+// find returns the index where the given item should be inserted into this
+// list. 'found' is true if the item already exists in the list at the given
+// index.
+func (s items[T]) find(item T, less func(T, T) bool) (index int, found bool) {
+ i := sort.Search(len(s), func(i int) bool {
+ return less(item, s[i])
+ })
+ if i > 0 && !less(s[i-1], item) {
+ return i - 1, true
+ }
+ return i, false
+}
+
+// node is an internal node in a tree.
+//
+// It must at all times maintain the invariant that either
+// * len(children) == 0, len(items) unconstrained
+// * len(children) == len(items) + 1
+type node[T any] struct {
+ items items[T]
+ children items[*node[T]]
+ cow *copyOnWriteContext[T]
+}
+
+func (n *node[T]) mutableFor(cow *copyOnWriteContext[T]) *node[T] {
+ if n.cow == cow {
+ return n
+ }
+ out := cow.newNode()
+ if cap(out.items) >= len(n.items) {
+ out.items = out.items[:len(n.items)]
+ } else {
+ out.items = make(items[T], len(n.items), cap(n.items))
+ }
+ copy(out.items, n.items)
+ // Copy children
+ if cap(out.children) >= len(n.children) {
+ out.children = out.children[:len(n.children)]
+ } else {
+ out.children = make(items[*node[T]], len(n.children), cap(n.children))
+ }
+ copy(out.children, n.children)
+ return out
+}
+
+func (n *node[T]) mutableChild(i int) *node[T] {
+ c := n.children[i].mutableFor(n.cow)
+ n.children[i] = c
+ return c
+}
+
+// split splits the given node at the given index. The current node shrinks,
+// and this function returns the item that existed at that index and a new node
+// containing all items/children after it.
+func (n *node[T]) split(i int) (T, *node[T]) {
+ item := n.items[i]
+ next := n.cow.newNode()
+ next.items = append(next.items, n.items[i+1:]...)
+ n.items.truncate(i)
+ if len(n.children) > 0 {
+ next.children = append(next.children, n.children[i+1:]...)
+ n.children.truncate(i + 1)
+ }
+ return item, next
+}
+
+// maybeSplitChild checks if a child should be split, and if so splits it.
+// Returns whether or not a split occurred.
+func (n *node[T]) maybeSplitChild(i, maxItems int) bool {
+ if len(n.children[i].items) < maxItems {
+ return false
+ }
+ first := n.mutableChild(i)
+ item, second := first.split(maxItems / 2)
+ n.items.insertAt(i, item)
+ n.children.insertAt(i+1, second)
+ return true
+}
+
+// insert inserts an item into the subtree rooted at this node, making sure
+// no nodes in the subtree exceed maxItems items. Should an equivalent item be
+// be found/replaced by insert, it will be returned.
+func (n *node[T]) insert(item T, maxItems int) (_ T, _ bool) {
+ i, found := n.items.find(item, n.cow.less)
+ if found {
+ out := n.items[i]
+ n.items[i] = item
+ return out, true
+ }
+ if len(n.children) == 0 {
+ n.items.insertAt(i, item)
+ return
+ }
+ if n.maybeSplitChild(i, maxItems) {
+ inTree := n.items[i]
+ switch {
+ case n.cow.less(item, inTree):
+ // no change, we want first split node
+ case n.cow.less(inTree, item):
+ i++ // we want second split node
+ default:
+ out := n.items[i]
+ n.items[i] = item
+ return out, true
+ }
+ }
+ return n.mutableChild(i).insert(item, maxItems)
+}
+
+// get finds the given key in the subtree and returns it.
+func (n *node[T]) get(key T) (_ T, _ bool) {
+ i, found := n.items.find(key, n.cow.less)
+ if found {
+ return n.items[i], true
+ } else if len(n.children) > 0 {
+ return n.children[i].get(key)
+ }
+ return
+}
+
+// min returns the first item in the subtree.
+func min[T any](n *node[T]) (_ T, found bool) {
+ if n == nil {
+ return
+ }
+ for len(n.children) > 0 {
+ n = n.children[0]
+ }
+ if len(n.items) == 0 {
+ return
+ }
+ return n.items[0], true
+}
+
+// max returns the last item in the subtree.
+func max[T any](n *node[T]) (_ T, found bool) {
+ if n == nil {
+ return
+ }
+ for len(n.children) > 0 {
+ n = n.children[len(n.children)-1]
+ }
+ if len(n.items) == 0 {
+ return
+ }
+ return n.items[len(n.items)-1], true
+}
+
+// toRemove details what item to remove in a node.remove call.
+type toRemove int
+
+const (
+ removeItem toRemove = iota // removes the given item
+ removeMin // removes smallest item in the subtree
+ removeMax // removes largest item in the subtree
+)
+
+// remove removes an item from the subtree rooted at this node.
+func (n *node[T]) remove(item T, minItems int, typ toRemove) (_ T, _ bool) {
+ var i int
+ var found bool
+ switch typ {
+ case removeMax:
+ if len(n.children) == 0 {
+ return n.items.pop(), true
+ }
+ i = len(n.items)
+ case removeMin:
+ if len(n.children) == 0 {
+ return n.items.removeAt(0), true
+ }
+ i = 0
+ case removeItem:
+ i, found = n.items.find(item, n.cow.less)
+ if len(n.children) == 0 {
+ if found {
+ return n.items.removeAt(i), true
+ }
+ return
+ }
+ default:
+ panic("invalid type")
+ }
+ // If we get to here, we have children.
+ if len(n.children[i].items) <= minItems {
+ return n.growChildAndRemove(i, item, minItems, typ)
+ }
+ child := n.mutableChild(i)
+ // Either we had enough items to begin with, or we've done some
+ // merging/stealing, because we've got enough now and we're ready to return
+ // stuff.
+ if found {
+ // The item exists at index 'i', and the child we've selected can give us a
+ // predecessor, since if we've gotten here it's got > minItems items in it.
+ out := n.items[i]
+ // We use our special-case 'remove' call with typ=maxItem to pull the
+ // predecessor of item i (the rightmost leaf of our immediate left child)
+ // and set it into where we pulled the item from.
+ var zero T
+ n.items[i], _ = child.remove(zero, minItems, removeMax)
+ return out, true
+ }
+ // Final recursive call. Once we're here, we know that the item isn't in this
+ // node and that the child is big enough to remove from.
+ return child.remove(item, minItems, typ)
+}
+
+// growChildAndRemove grows child 'i' to make sure it's possible to remove an
+// item from it while keeping it at minItems, then calls remove to actually
+// remove it.
+//
+// Most documentation says we have to do two sets of special casing:
+// 1) item is in this node
+// 2) item is in child
+// In both cases, we need to handle the two subcases:
+// A) node has enough values that it can spare one
+// B) node doesn't have enough values
+// For the latter, we have to check:
+// a) left sibling has node to spare
+// b) right sibling has node to spare
+// c) we must merge
+// To simplify our code here, we handle cases #1 and #2 the same:
+// If a node doesn't have enough items, we make sure it does (using a,b,c).
+// We then simply redo our remove call, and the second time (regardless of
+// whether we're in case 1 or 2), we'll have enough items and can guarantee
+// that we hit case A.
+func (n *node[T]) growChildAndRemove(i int, item T, minItems int, typ toRemove) (T, bool) {
+ if i > 0 && len(n.children[i-1].items) > minItems {
+ // Steal from left child
+ child := n.mutableChild(i)
+ stealFrom := n.mutableChild(i - 1)
+ stolenItem := stealFrom.items.pop()
+ child.items.insertAt(0, n.items[i-1])
+ n.items[i-1] = stolenItem
+ if len(stealFrom.children) > 0 {
+ child.children.insertAt(0, stealFrom.children.pop())
+ }
+ } else if i < len(n.items) && len(n.children[i+1].items) > minItems {
+ // steal from right child
+ child := n.mutableChild(i)
+ stealFrom := n.mutableChild(i + 1)
+ stolenItem := stealFrom.items.removeAt(0)
+ child.items = append(child.items, n.items[i])
+ n.items[i] = stolenItem
+ if len(stealFrom.children) > 0 {
+ child.children = append(child.children, stealFrom.children.removeAt(0))
+ }
+ } else {
+ if i >= len(n.items) {
+ i--
+ }
+ child := n.mutableChild(i)
+ // merge with right child
+ mergeItem := n.items.removeAt(i)
+ mergeChild := n.children.removeAt(i + 1)
+ child.items = append(child.items, mergeItem)
+ child.items = append(child.items, mergeChild.items...)
+ child.children = append(child.children, mergeChild.children...)
+ n.cow.freeNode(mergeChild)
+ }
+ return n.remove(item, minItems, typ)
+}
+
+type direction int
+
+const (
+ descend = direction(-1)
+ ascend = direction(+1)
+)
+
+type optionalItem[T any] struct {
+ item T
+ valid bool
+}
+
+func optional[T any](item T) optionalItem[T] {
+ return optionalItem[T]{item: item, valid: true}
+}
+func empty[T any]() optionalItem[T] {
+ return optionalItem[T]{}
+}
+
+// iterate provides a simple method for iterating over elements in the tree.
+//
+// When ascending, the 'start' should be less than 'stop' and when descending,
+// the 'start' should be greater than 'stop'. Setting 'includeStart' to true
+// will force the iterator to include the first item when it equals 'start',
+// thus creating a "greaterOrEqual" or "lessThanEqual" rather than just a
+// "greaterThan" or "lessThan" queries.
+func (n *node[T]) iterate(dir direction, start, stop optionalItem[T], includeStart bool, hit bool, iter ItemIteratorG[T]) (bool, bool) {
+ var ok, found bool
+ var index int
+ switch dir {
+ case ascend:
+ if start.valid {
+ index, _ = n.items.find(start.item, n.cow.less)
+ }
+ for i := index; i < len(n.items); i++ {
+ if len(n.children) > 0 {
+ if hit, ok = n.children[i].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ if !includeStart && !hit && start.valid && !n.cow.less(start.item, n.items[i]) {
+ hit = true
+ continue
+ }
+ hit = true
+ if stop.valid && !n.cow.less(n.items[i], stop.item) {
+ return hit, false
+ }
+ if !iter(n.items[i]) {
+ return hit, false
+ }
+ }
+ if len(n.children) > 0 {
+ if hit, ok = n.children[len(n.children)-1].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ case descend:
+ if start.valid {
+ index, found = n.items.find(start.item, n.cow.less)
+ if !found {
+ index = index - 1
+ }
+ } else {
+ index = len(n.items) - 1
+ }
+ for i := index; i >= 0; i-- {
+ if start.valid && !n.cow.less(n.items[i], start.item) {
+ if !includeStart || hit || n.cow.less(start.item, n.items[i]) {
+ continue
+ }
+ }
+ if len(n.children) > 0 {
+ if hit, ok = n.children[i+1].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ if stop.valid && !n.cow.less(stop.item, n.items[i]) {
+ return hit, false // continue
+ }
+ hit = true
+ if !iter(n.items[i]) {
+ return hit, false
+ }
+ }
+ if len(n.children) > 0 {
+ if hit, ok = n.children[0].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ }
+ return hit, true
+}
+
+// print is used for testing/debugging purposes.
+func (n *node[T]) print(w io.Writer, level int) {
+ fmt.Fprintf(w, "%sNODE:%v\n", strings.Repeat(" ", level), n.items)
+ for _, c := range n.children {
+ c.print(w, level+1)
+ }
+}
+
+// BTreeG is a generic implementation of a B-Tree.
+//
+// BTreeG stores items of type T in an ordered structure, allowing easy insertion,
+// removal, and iteration.
+//
+// Write operations are not safe for concurrent mutation by multiple
+// goroutines, but Read operations are.
+type BTreeG[T any] struct {
+ degree int
+ length int
+ root *node[T]
+ cow *copyOnWriteContext[T]
+}
+
+// LessFunc[T] determines how to order a type 'T'. It should implement a strict
+// ordering, and should return true if within that ordering, 'a' < 'b'.
+type LessFunc[T any] func(a, b T) bool
+
+// copyOnWriteContext pointers determine node ownership... a tree with a write
+// context equivalent to a node's write context is allowed to modify that node.
+// A tree whose write context does not match a node's is not allowed to modify
+// it, and must create a new, writable copy (IE: it's a Clone).
+//
+// When doing any write operation, we maintain the invariant that the current
+// node's context is equal to the context of the tree that requested the write.
+// We do this by, before we descend into any node, creating a copy with the
+// correct context if the contexts don't match.
+//
+// Since the node we're currently visiting on any write has the requesting
+// tree's context, that node is modifiable in place. Children of that node may
+// not share context, but before we descend into them, we'll make a mutable
+// copy.
+type copyOnWriteContext[T any] struct {
+ freelist *FreeListG[T]
+ less LessFunc[T]
+}
+
+// Clone clones the btree, lazily. Clone should not be called concurrently,
+// but the original tree (t) and the new tree (t2) can be used concurrently
+// once the Clone call completes.
+//
+// The internal tree structure of b is marked read-only and shared between t and
+// t2. Writes to both t and t2 use copy-on-write logic, creating new nodes
+// whenever one of b's original nodes would have been modified. Read operations
+// should have no performance degredation. Write operations for both t and t2
+// will initially experience minor slow-downs caused by additional allocs and
+// copies due to the aforementioned copy-on-write logic, but should converge to
+// the original performance characteristics of the original tree.
+func (t *BTreeG[T]) Clone() (t2 *BTreeG[T]) {
+ // Create two entirely new copy-on-write contexts.
+ // This operation effectively creates three trees:
+ // the original, shared nodes (old b.cow)
+ // the new b.cow nodes
+ // the new out.cow nodes
+ cow1, cow2 := *t.cow, *t.cow
+ out := *t
+ t.cow = &cow1
+ out.cow = &cow2
+ return &out
+}
+
+// maxItems returns the max number of items to allow per node.
+func (t *BTreeG[T]) maxItems() int {
+ return t.degree*2 - 1
+}
+
+// minItems returns the min number of items to allow per node (ignored for the
+// root node).
+func (t *BTreeG[T]) minItems() int {
+ return t.degree - 1
+}
+
+func (c *copyOnWriteContext[T]) newNode() (n *node[T]) {
+ n = c.freelist.newNode()
+ n.cow = c
+ return
+}
+
+type freeType int
+
+const (
+ ftFreelistFull freeType = iota // node was freed (available for GC, not stored in freelist)
+ ftStored // node was stored in the freelist for later use
+ ftNotOwned // node was ignored by COW, since it's owned by another one
+)
+
+// freeNode frees a node within a given COW context, if it's owned by that
+// context. It returns what happened to the node (see freeType const
+// documentation).
+func (c *copyOnWriteContext[T]) freeNode(n *node[T]) freeType {
+ if n.cow == c {
+ // clear to allow GC
+ n.items.truncate(0)
+ n.children.truncate(0)
+ n.cow = nil
+ if c.freelist.freeNode(n) {
+ return ftStored
+ } else {
+ return ftFreelistFull
+ }
+ } else {
+ return ftNotOwned
+ }
+}
+
+// ReplaceOrInsert adds the given item to the tree. If an item in the tree
+// already equals the given one, it is removed from the tree and returned,
+// and the second return value is true. Otherwise, (zeroValue, false)
+//
+// nil cannot be added to the tree (will panic).
+func (t *BTreeG[T]) ReplaceOrInsert(item T) (_ T, _ bool) {
+ if t.root == nil {
+ t.root = t.cow.newNode()
+ t.root.items = append(t.root.items, item)
+ t.length++
+ return
+ } else {
+ t.root = t.root.mutableFor(t.cow)
+ if len(t.root.items) >= t.maxItems() {
+ item2, second := t.root.split(t.maxItems() / 2)
+ oldroot := t.root
+ t.root = t.cow.newNode()
+ t.root.items = append(t.root.items, item2)
+ t.root.children = append(t.root.children, oldroot, second)
+ }
+ }
+ out, outb := t.root.insert(item, t.maxItems())
+ if !outb {
+ t.length++
+ }
+ return out, outb
+}
+
+// Delete removes an item equal to the passed in item from the tree, returning
+// it. If no such item exists, returns (zeroValue, false).
+func (t *BTreeG[T]) Delete(item T) (T, bool) {
+ return t.deleteItem(item, removeItem)
+}
+
+// DeleteMin removes the smallest item in the tree and returns it.
+// If no such item exists, returns (zeroValue, false).
+func (t *BTreeG[T]) DeleteMin() (T, bool) {
+ var zero T
+ return t.deleteItem(zero, removeMin)
+}
+
+// DeleteMax removes the largest item in the tree and returns it.
+// If no such item exists, returns (zeroValue, false).
+func (t *BTreeG[T]) DeleteMax() (T, bool) {
+ var zero T
+ return t.deleteItem(zero, removeMax)
+}
+
+func (t *BTreeG[T]) deleteItem(item T, typ toRemove) (_ T, _ bool) {
+ if t.root == nil || len(t.root.items) == 0 {
+ return
+ }
+ t.root = t.root.mutableFor(t.cow)
+ out, outb := t.root.remove(item, t.minItems(), typ)
+ if len(t.root.items) == 0 && len(t.root.children) > 0 {
+ oldroot := t.root
+ t.root = t.root.children[0]
+ t.cow.freeNode(oldroot)
+ }
+ if outb {
+ t.length--
+ }
+ return out, outb
+}
+
+// AscendRange calls the iterator for every value in the tree within the range
+// [greaterOrEqual, lessThan), until iterator returns false.
+func (t *BTreeG[T]) AscendRange(greaterOrEqual, lessThan T, iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, optional[T](greaterOrEqual), optional[T](lessThan), true, false, iterator)
+}
+
+// AscendLessThan calls the iterator for every value in the tree within the range
+// [first, pivot), until iterator returns false.
+func (t *BTreeG[T]) AscendLessThan(pivot T, iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, empty[T](), optional(pivot), false, false, iterator)
+}
+
+// AscendGreaterOrEqual calls the iterator for every value in the tree within
+// the range [pivot, last], until iterator returns false.
+func (t *BTreeG[T]) AscendGreaterOrEqual(pivot T, iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, optional[T](pivot), empty[T](), true, false, iterator)
+}
+
+// Ascend calls the iterator for every value in the tree within the range
+// [first, last], until iterator returns false.
+func (t *BTreeG[T]) Ascend(iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, empty[T](), empty[T](), false, false, iterator)
+}
+
+// DescendRange calls the iterator for every value in the tree within the range
+// [lessOrEqual, greaterThan), until iterator returns false.
+func (t *BTreeG[T]) DescendRange(lessOrEqual, greaterThan T, iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, optional[T](lessOrEqual), optional[T](greaterThan), true, false, iterator)
+}
+
+// DescendLessOrEqual calls the iterator for every value in the tree within the range
+// [pivot, first], until iterator returns false.
+func (t *BTreeG[T]) DescendLessOrEqual(pivot T, iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, optional[T](pivot), empty[T](), true, false, iterator)
+}
+
+// DescendGreaterThan calls the iterator for every value in the tree within
+// the range [last, pivot), until iterator returns false.
+func (t *BTreeG[T]) DescendGreaterThan(pivot T, iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, empty[T](), optional[T](pivot), false, false, iterator)
+}
+
+// Descend calls the iterator for every value in the tree within the range
+// [last, first], until iterator returns false.
+func (t *BTreeG[T]) Descend(iterator ItemIteratorG[T]) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, empty[T](), empty[T](), false, false, iterator)
+}
+
+// Get looks for the key item in the tree, returning it. It returns
+// (zeroValue, false) if unable to find that item.
+func (t *BTreeG[T]) Get(key T) (_ T, _ bool) {
+ if t.root == nil {
+ return
+ }
+ return t.root.get(key)
+}
+
+// Min returns the smallest item in the tree, or (zeroValue, false) if the tree is empty.
+func (t *BTreeG[T]) Min() (_ T, _ bool) {
+ return min(t.root)
+}
+
+// Max returns the largest item in the tree, or (zeroValue, false) if the tree is empty.
+func (t *BTreeG[T]) Max() (_ T, _ bool) {
+ return max(t.root)
+}
+
+// Has returns true if the given key is in the tree.
+func (t *BTreeG[T]) Has(key T) bool {
+ _, ok := t.Get(key)
+ return ok
+}
+
+// Len returns the number of items currently in the tree.
+func (t *BTreeG[T]) Len() int {
+ return t.length
+}
+
+// Clear removes all items from the btree. If addNodesToFreelist is true,
+// t's nodes are added to its freelist as part of this call, until the freelist
+// is full. Otherwise, the root node is simply dereferenced and the subtree
+// left to Go's normal GC processes.
+//
+// This can be much faster
+// than calling Delete on all elements, because that requires finding/removing
+// each element in the tree and updating the tree accordingly. It also is
+// somewhat faster than creating a new tree to replace the old one, because
+// nodes from the old tree are reclaimed into the freelist for use by the new
+// one, instead of being lost to the garbage collector.
+//
+// This call takes:
+// O(1): when addNodesToFreelist is false, this is a single operation.
+// O(1): when the freelist is already full, it breaks out immediately
+// O(freelist size): when the freelist is empty and the nodes are all owned
+// by this tree, nodes are added to the freelist until full.
+// O(tree size): when all nodes are owned by another tree, all nodes are
+// iterated over looking for nodes to add to the freelist, and due to
+// ownership, none are.
+func (t *BTreeG[T]) Clear(addNodesToFreelist bool) {
+ if t.root != nil && addNodesToFreelist {
+ t.root.reset(t.cow)
+ }
+ t.root, t.length = nil, 0
+}
+
+// reset returns a subtree to the freelist. It breaks out immediately if the
+// freelist is full, since the only benefit of iterating is to fill that
+// freelist up. Returns true if parent reset call should continue.
+func (n *node[T]) reset(c *copyOnWriteContext[T]) bool {
+ for _, child := range n.children {
+ if !child.reset(c) {
+ return false
+ }
+ }
+ return c.freeNode(n) != ftFreelistFull
+}
+
+// Int implements the Item interface for integers.
+type Int int
+
+// Less returns true if int(a) < int(b).
+func (a Int) Less(b Item) bool {
+ return a < b.(Int)
+}
+
+// BTree is an implementation of a B-Tree.
+//
+// BTree stores Item instances in an ordered structure, allowing easy insertion,
+// removal, and iteration.
+//
+// Write operations are not safe for concurrent mutation by multiple
+// goroutines, but Read operations are.
+type BTree BTreeG[Item]
+
+var itemLess LessFunc[Item] = func(a, b Item) bool {
+ return a.Less(b)
+}
+
+// New creates a new B-Tree with the given degree.
+//
+// New(2), for example, will create a 2-3-4 tree (each node contains 1-3 items
+// and 2-4 children).
+func New(degree int) *BTree {
+ return (*BTree)(NewG[Item](degree, itemLess))
+}
+
+// FreeList represents a free list of btree nodes. By default each
+// BTree has its own FreeList, but multiple BTrees can share the same
+// FreeList.
+// Two Btrees using the same freelist are safe for concurrent write access.
+type FreeList FreeListG[Item]
+
+// NewFreeList creates a new free list.
+// size is the maximum size of the returned free list.
+func NewFreeList(size int) *FreeList {
+ return (*FreeList)(NewFreeListG[Item](size))
+}
+
+// NewWithFreeList creates a new B-Tree that uses the given node free list.
+func NewWithFreeList(degree int, f *FreeList) *BTree {
+ return (*BTree)(NewWithFreeListG[Item](degree, itemLess, (*FreeListG[Item])(f)))
+}
+
+// ItemIterator allows callers of Ascend* to iterate in-order over portions of
+// the tree. When this function returns false, iteration will stop and the
+// associated Ascend* function will immediately return.
+type ItemIterator ItemIteratorG[Item]
+
+// Clone clones the btree, lazily. Clone should not be called concurrently,
+// but the original tree (t) and the new tree (t2) can be used concurrently
+// once the Clone call completes.
+//
+// The internal tree structure of b is marked read-only and shared between t and
+// t2. Writes to both t and t2 use copy-on-write logic, creating new nodes
+// whenever one of b's original nodes would have been modified. Read operations
+// should have no performance degredation. Write operations for both t and t2
+// will initially experience minor slow-downs caused by additional allocs and
+// copies due to the aforementioned copy-on-write logic, but should converge to
+// the original performance characteristics of the original tree.
+func (t *BTree) Clone() (t2 *BTree) {
+ return (*BTree)((*BTreeG[Item])(t).Clone())
+}
+
+// Delete removes an item equal to the passed in item from the tree, returning
+// it. If no such item exists, returns nil.
+func (t *BTree) Delete(item Item) Item {
+ i, _ := (*BTreeG[Item])(t).Delete(item)
+ return i
+}
+
+// DeleteMax removes the largest item in the tree and returns it.
+// If no such item exists, returns nil.
+func (t *BTree) DeleteMax() Item {
+ i, _ := (*BTreeG[Item])(t).DeleteMax()
+ return i
+}
+
+// DeleteMin removes the smallest item in the tree and returns it.
+// If no such item exists, returns nil.
+func (t *BTree) DeleteMin() Item {
+ i, _ := (*BTreeG[Item])(t).DeleteMin()
+ return i
+}
+
+// Get looks for the key item in the tree, returning it. It returns nil if
+// unable to find that item.
+func (t *BTree) Get(key Item) Item {
+ i, _ := (*BTreeG[Item])(t).Get(key)
+ return i
+}
+
+// Max returns the largest item in the tree, or nil if the tree is empty.
+func (t *BTree) Max() Item {
+ i, _ := (*BTreeG[Item])(t).Max()
+ return i
+}
+
+// Min returns the smallest item in the tree, or nil if the tree is empty.
+func (t *BTree) Min() Item {
+ i, _ := (*BTreeG[Item])(t).Min()
+ return i
+}
+
+// Has returns true if the given key is in the tree.
+func (t *BTree) Has(key Item) bool {
+ return (*BTreeG[Item])(t).Has(key)
+}
+
+// ReplaceOrInsert adds the given item to the tree. If an item in the tree
+// already equals the given one, it is removed from the tree and returned.
+// Otherwise, nil is returned.
+//
+// nil cannot be added to the tree (will panic).
+func (t *BTree) ReplaceOrInsert(item Item) Item {
+ i, _ := (*BTreeG[Item])(t).ReplaceOrInsert(item)
+ return i
+}
+
+// AscendRange calls the iterator for every value in the tree within the range
+// [greaterOrEqual, lessThan), until iterator returns false.
+func (t *BTree) AscendRange(greaterOrEqual, lessThan Item, iterator ItemIterator) {
+ (*BTreeG[Item])(t).AscendRange(greaterOrEqual, lessThan, (ItemIteratorG[Item])(iterator))
+}
+
+// AscendLessThan calls the iterator for every value in the tree within the range
+// [first, pivot), until iterator returns false.
+func (t *BTree) AscendLessThan(pivot Item, iterator ItemIterator) {
+ (*BTreeG[Item])(t).AscendLessThan(pivot, (ItemIteratorG[Item])(iterator))
+}
+
+// AscendGreaterOrEqual calls the iterator for every value in the tree within
+// the range [pivot, last], until iterator returns false.
+func (t *BTree) AscendGreaterOrEqual(pivot Item, iterator ItemIterator) {
+ (*BTreeG[Item])(t).AscendGreaterOrEqual(pivot, (ItemIteratorG[Item])(iterator))
+}
+
+// Ascend calls the iterator for every value in the tree within the range
+// [first, last], until iterator returns false.
+func (t *BTree) Ascend(iterator ItemIterator) {
+ (*BTreeG[Item])(t).Ascend((ItemIteratorG[Item])(iterator))
+}
+
+// DescendRange calls the iterator for every value in the tree within the range
+// [lessOrEqual, greaterThan), until iterator returns false.
+func (t *BTree) DescendRange(lessOrEqual, greaterThan Item, iterator ItemIterator) {
+ (*BTreeG[Item])(t).DescendRange(lessOrEqual, greaterThan, (ItemIteratorG[Item])(iterator))
+}
+
+// DescendLessOrEqual calls the iterator for every value in the tree within the range
+// [pivot, first], until iterator returns false.
+func (t *BTree) DescendLessOrEqual(pivot Item, iterator ItemIterator) {
+ (*BTreeG[Item])(t).DescendLessOrEqual(pivot, (ItemIteratorG[Item])(iterator))
+}
+
+// DescendGreaterThan calls the iterator for every value in the tree within
+// the range [last, pivot), until iterator returns false.
+func (t *BTree) DescendGreaterThan(pivot Item, iterator ItemIterator) {
+ (*BTreeG[Item])(t).DescendGreaterThan(pivot, (ItemIteratorG[Item])(iterator))
+}
+
+// Descend calls the iterator for every value in the tree within the range
+// [last, first], until iterator returns false.
+func (t *BTree) Descend(iterator ItemIterator) {
+ (*BTreeG[Item])(t).Descend((ItemIteratorG[Item])(iterator))
+}
+
+// Len returns the number of items currently in the tree.
+func (t *BTree) Len() int {
+ return (*BTreeG[Item])(t).Len()
+}
+
+// Clear removes all items from the btree. If addNodesToFreelist is true,
+// t's nodes are added to its freelist as part of this call, until the freelist
+// is full. Otherwise, the root node is simply dereferenced and the subtree
+// left to Go's normal GC processes.
+//
+// This can be much faster
+// than calling Delete on all elements, because that requires finding/removing
+// each element in the tree and updating the tree accordingly. It also is
+// somewhat faster than creating a new tree to replace the old one, because
+// nodes from the old tree are reclaimed into the freelist for use by the new
+// one, instead of being lost to the garbage collector.
+//
+// This call takes:
+// O(1): when addNodesToFreelist is false, this is a single operation.
+// O(1): when the freelist is already full, it breaks out immediately
+// O(freelist size): when the freelist is empty and the nodes are all owned
+// by this tree, nodes are added to the freelist until full.
+// O(tree size): when all nodes are owned by another tree, all nodes are
+// iterated over looking for nodes to add to the freelist, and due to
+// ownership, none are.
+func (t *BTree) Clear(addNodesToFreelist bool) {
+ (*BTreeG[Item])(t).Clear(addNodesToFreelist)
+}
diff --git a/vendor/github.com/google/gnostic/jsonschema/display.go b/vendor/github.com/google/gnostic/jsonschema/display.go
index 028a760a91..8677ed49a0 100644
--- a/vendor/github.com/google/gnostic/jsonschema/display.go
+++ b/vendor/github.com/google/gnostic/jsonschema/display.go
@@ -46,8 +46,23 @@ func (schema *Schema) describeSchema(indent string) string {
if schema.Schema != nil {
result += indent + "$schema: " + *(schema.Schema) + "\n"
}
+ if schema.ReadOnly != nil && *schema.ReadOnly {
+ result += indent + fmt.Sprintf("readOnly: %+v\n", *(schema.ReadOnly))
+ }
+ if schema.WriteOnly != nil && *schema.WriteOnly {
+ result += indent + fmt.Sprintf("writeOnly: %+v\n", *(schema.WriteOnly))
+ }
if schema.ID != nil {
- result += indent + "id: " + *(schema.ID) + "\n"
+ switch strings.TrimSuffix(*schema.Schema, "#") {
+ case "http://json-schema.org/draft-04/schema#":
+ fallthrough
+ case "#":
+ fallthrough
+ case "":
+ result += indent + "id: " + *(schema.ID) + "\n"
+ default:
+ result += indent + "$id: " + *(schema.ID) + "\n"
+ }
}
if schema.MultipleOf != nil {
result += indent + fmt.Sprintf("multipleOf: %+v\n", *(schema.MultipleOf))
diff --git a/vendor/github.com/google/gnostic/jsonschema/models.go b/vendor/github.com/google/gnostic/jsonschema/models.go
index 4781bdc5f5..0d877249ab 100644
--- a/vendor/github.com/google/gnostic/jsonschema/models.go
+++ b/vendor/github.com/google/gnostic/jsonschema/models.go
@@ -23,9 +23,11 @@ import "gopkg.in/yaml.v3"
// All fields are pointers and are nil if the associated values
// are not specified.
type Schema struct {
- Schema *string // $schema
- ID *string // id keyword used for $ref resolution scope
- Ref *string // $ref, i.e. JSON Pointers
+ Schema *string // $schema
+ ID *string // id keyword used for $ref resolution scope
+ Ref *string // $ref, i.e. JSON Pointers
+ ReadOnly *bool
+ WriteOnly *bool
// http://json-schema.org/latest/json-schema-validation.html
// 5.1. Validation keywords for numeric instances (number and integer)
diff --git a/vendor/github.com/google/gnostic/jsonschema/reader.go b/vendor/github.com/google/gnostic/jsonschema/reader.go
index b8583d4660..a909a34128 100644
--- a/vendor/github.com/google/gnostic/jsonschema/reader.go
+++ b/vendor/github.com/google/gnostic/jsonschema/reader.go
@@ -165,7 +165,6 @@ func NewSchemaFromObject(jsonData *yaml.Node) *Schema {
default:
fmt.Printf("schemaValue: unexpected node %+v\n", jsonData)
- return nil
}
return nil
diff --git a/vendor/github.com/google/gnostic/jsonschema/writer.go b/vendor/github.com/google/gnostic/jsonschema/writer.go
index 340dc5f933..15b1f90506 100644
--- a/vendor/github.com/google/gnostic/jsonschema/writer.go
+++ b/vendor/github.com/google/gnostic/jsonschema/writer.go
@@ -16,6 +16,7 @@ package jsonschema
import (
"fmt"
+ "strings"
"gopkg.in/yaml.v3"
)
@@ -33,7 +34,11 @@ func renderMappingNode(node *yaml.Node, indent string) (result string) {
value := node.Content[i+1]
switch value.Kind {
case yaml.ScalarNode:
- result += "\"" + value.Value + "\""
+ if value.Tag == "!!bool" {
+ result += value.Value
+ } else {
+ result += "\"" + value.Value + "\""
+ }
case yaml.MappingNode:
result += renderMappingNode(value, innerIndent)
case yaml.SequenceNode:
@@ -58,7 +63,11 @@ func renderSequenceNode(node *yaml.Node, indent string) (result string) {
item := node.Content[i]
switch item.Kind {
case yaml.ScalarNode:
- result += innerIndent + "\"" + item.Value + "\""
+ if item.Tag == "!!bool" {
+ result += innerIndent + item.Value
+ } else {
+ result += innerIndent + "\"" + item.Value + "\""
+ }
case yaml.MappingNode:
result += innerIndent + renderMappingNode(item, innerIndent) + ""
default:
@@ -260,11 +269,26 @@ func (schema *Schema) nodeValue() *yaml.Node {
content = appendPair(content, "title", nodeForString(*schema.Title))
}
if schema.ID != nil {
- content = appendPair(content, "id", nodeForString(*schema.ID))
+ switch strings.TrimSuffix(*schema.Schema, "#") {
+ case "http://json-schema.org/draft-04/schema":
+ fallthrough
+ case "#":
+ fallthrough
+ case "":
+ content = appendPair(content, "id", nodeForString(*schema.ID))
+ default:
+ content = appendPair(content, "$id", nodeForString(*schema.ID))
+ }
}
if schema.Schema != nil {
content = appendPair(content, "$schema", nodeForString(*schema.Schema))
}
+ if schema.ReadOnly != nil && *schema.ReadOnly {
+ content = appendPair(content, "readOnly", nodeForBoolean(*schema.ReadOnly))
+ }
+ if schema.WriteOnly != nil && *schema.WriteOnly {
+ content = appendPair(content, "writeOnly", nodeForBoolean(*schema.WriteOnly))
+ }
if schema.Type != nil {
content = appendPair(content, "type", schema.Type.nodeValue())
}
diff --git a/vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.go b/vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.go
index 0f17907667..28c2777d51 100644
--- a/vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.go
+++ b/vendor/github.com/google/gnostic/openapiv2/OpenAPIv2.go
@@ -7887,7 +7887,12 @@ func (m *Oauth2Scopes) ToRawInfo() *yaml.Node {
if m == nil {
return info
}
- // &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}
+ if m.AdditionalProperties != nil {
+ for _, item := range m.AdditionalProperties {
+ info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
+ info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Value))
+ }
+ }
return info
}
diff --git a/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.go b/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.go
index 5f4a7025ea..d54a84db7c 100644
--- a/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.go
+++ b/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.go
@@ -8560,7 +8560,12 @@ func (m *Strings) ToRawInfo() *yaml.Node {
if m == nil {
return info
}
- // &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}
+ if m.AdditionalProperties != nil {
+ for _, item := range m.AdditionalProperties {
+ info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
+ info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Value))
+ }
+ }
return info
}
diff --git a/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.pb.go b/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.pb.go
index 499e7f932d..90a56f5526 100644
--- a/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.pb.go
+++ b/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.pb.go
@@ -16,8 +16,8 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.18.1
+// protoc-gen-go v1.28.0
+// protoc v3.19.4
// source: openapiv3/OpenAPIv3.proto
package openapi_v3
@@ -6760,12 +6760,13 @@ var file_openapiv3_OpenAPIv3_proto_rawDesc = []byte{
0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,
0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3e,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x56,
0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33,
0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
- 0x5a, 0x16, 0x2e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x3b, 0x6f, 0x70,
- 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x4f, 0x41, 0x53, 0x62, 0x06,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6f, 0x70, 0x65, 0x6e,
+ 0x61, 0x70, 0x69, 0x76, 0x33, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33,
+ 0xa2, 0x02, 0x03, 0x4f, 0x41, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.proto b/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.proto
index 1be335b89b..7aede5ed90 100644
--- a/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.proto
+++ b/vendor/github.com/google/gnostic/openapiv3/OpenAPIv3.proto
@@ -42,7 +42,7 @@ option java_package = "org.openapi_v3";
option objc_class_prefix = "OAS";
// The Go package name.
-option go_package = "./openapiv3;openapi_v3";
+option go_package = "github.com/google/gnostic/openapiv3;openapi_v3";
message AdditionalPropertiesItem {
oneof oneof {
diff --git a/vendor/github.com/google/gnostic/openapiv3/README.md b/vendor/github.com/google/gnostic/openapiv3/README.md
index 5ee12d92e2..83603b82aa 100644
--- a/vendor/github.com/google/gnostic/openapiv3/README.md
+++ b/vendor/github.com/google/gnostic/openapiv3/README.md
@@ -19,3 +19,7 @@ for OpenAPI.
The schema-generator directory contains support code which generates
openapi-3.1.json from the OpenAPI 3.1 specification document (Markdown).
+
+### How to rebuild
+
+`protoc -I=. -I=third_party --go_out=. --go_opt=paths=source_relative openapiv3/*.proto`
\ No newline at end of file
diff --git a/vendor/github.com/google/gnostic/openapiv3/annotations.pb.go b/vendor/github.com/google/gnostic/openapiv3/annotations.pb.go
new file mode 100644
index 0000000000..ae242f3043
--- /dev/null
+++ b/vendor/github.com/google/gnostic/openapiv3/annotations.pb.go
@@ -0,0 +1,183 @@
+// Copyright 2022 Google LLC. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.19.4
+// source: openapiv3/annotations.proto
+
+package openapi_v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ descriptorpb "google.golang.org/protobuf/types/descriptorpb"
+ reflect "reflect"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+var file_openapiv3_annotations_proto_extTypes = []protoimpl.ExtensionInfo{
+ {
+ ExtendedType: (*descriptorpb.FileOptions)(nil),
+ ExtensionType: (*Document)(nil),
+ Field: 1143,
+ Name: "openapi.v3.document",
+ Tag: "bytes,1143,opt,name=document",
+ Filename: "openapiv3/annotations.proto",
+ },
+ {
+ ExtendedType: (*descriptorpb.MethodOptions)(nil),
+ ExtensionType: (*Operation)(nil),
+ Field: 1143,
+ Name: "openapi.v3.operation",
+ Tag: "bytes,1143,opt,name=operation",
+ Filename: "openapiv3/annotations.proto",
+ },
+ {
+ ExtendedType: (*descriptorpb.MessageOptions)(nil),
+ ExtensionType: (*Schema)(nil),
+ Field: 1143,
+ Name: "openapi.v3.schema",
+ Tag: "bytes,1143,opt,name=schema",
+ Filename: "openapiv3/annotations.proto",
+ },
+ {
+ ExtendedType: (*descriptorpb.FieldOptions)(nil),
+ ExtensionType: (*Schema)(nil),
+ Field: 1143,
+ Name: "openapi.v3.property",
+ Tag: "bytes,1143,opt,name=property",
+ Filename: "openapiv3/annotations.proto",
+ },
+}
+
+// Extension fields to descriptorpb.FileOptions.
+var (
+ // optional openapi.v3.Document document = 1143;
+ E_Document = &file_openapiv3_annotations_proto_extTypes[0]
+)
+
+// Extension fields to descriptorpb.MethodOptions.
+var (
+ // optional openapi.v3.Operation operation = 1143;
+ E_Operation = &file_openapiv3_annotations_proto_extTypes[1]
+)
+
+// Extension fields to descriptorpb.MessageOptions.
+var (
+ // optional openapi.v3.Schema schema = 1143;
+ E_Schema = &file_openapiv3_annotations_proto_extTypes[2]
+)
+
+// Extension fields to descriptorpb.FieldOptions.
+var (
+ // optional openapi.v3.Schema property = 1143;
+ E_Property = &file_openapiv3_annotations_proto_extTypes[3]
+)
+
+var File_openapiv3_annotations_proto protoreflect.FileDescriptor
+
+var file_openapiv3_annotations_proto_rawDesc = []byte{
+ 0x0a, 0x1b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x2f, 0x61, 0x6e, 0x6e, 0x6f,
+ 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f,
+ 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x1a, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x61,
+ 0x70, 0x69, 0x76, 0x33, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x76, 0x33, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x4f, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0xf7, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,
+ 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x64,
+ 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x54, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x4c, 0x0a,
+ 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x4e, 0x0a, 0x08, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x5a, 0x0a, 0x0e, 0x6f,
+ 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33, 0x42, 0x10, 0x41,
+ 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
+ 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6f, 0x70, 0x65,
+ 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76,
+ 0x33, 0xa2, 0x02, 0x03, 0x4f, 0x41, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var file_openapiv3_annotations_proto_goTypes = []interface{}{
+ (*descriptorpb.FileOptions)(nil), // 0: google.protobuf.FileOptions
+ (*descriptorpb.MethodOptions)(nil), // 1: google.protobuf.MethodOptions
+ (*descriptorpb.MessageOptions)(nil), // 2: google.protobuf.MessageOptions
+ (*descriptorpb.FieldOptions)(nil), // 3: google.protobuf.FieldOptions
+ (*Document)(nil), // 4: openapi.v3.Document
+ (*Operation)(nil), // 5: openapi.v3.Operation
+ (*Schema)(nil), // 6: openapi.v3.Schema
+}
+var file_openapiv3_annotations_proto_depIdxs = []int32{
+ 0, // 0: openapi.v3.document:extendee -> google.protobuf.FileOptions
+ 1, // 1: openapi.v3.operation:extendee -> google.protobuf.MethodOptions
+ 2, // 2: openapi.v3.schema:extendee -> google.protobuf.MessageOptions
+ 3, // 3: openapi.v3.property:extendee -> google.protobuf.FieldOptions
+ 4, // 4: openapi.v3.document:type_name -> openapi.v3.Document
+ 5, // 5: openapi.v3.operation:type_name -> openapi.v3.Operation
+ 6, // 6: openapi.v3.schema:type_name -> openapi.v3.Schema
+ 6, // 7: openapi.v3.property:type_name -> openapi.v3.Schema
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 4, // [4:8] is the sub-list for extension type_name
+ 0, // [0:4] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_openapiv3_annotations_proto_init() }
+func file_openapiv3_annotations_proto_init() {
+ if File_openapiv3_annotations_proto != nil {
+ return
+ }
+ file_openapiv3_OpenAPIv3_proto_init()
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_openapiv3_annotations_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 0,
+ NumExtensions: 4,
+ NumServices: 0,
+ },
+ GoTypes: file_openapiv3_annotations_proto_goTypes,
+ DependencyIndexes: file_openapiv3_annotations_proto_depIdxs,
+ ExtensionInfos: file_openapiv3_annotations_proto_extTypes,
+ }.Build()
+ File_openapiv3_annotations_proto = out.File
+ file_openapiv3_annotations_proto_rawDesc = nil
+ file_openapiv3_annotations_proto_goTypes = nil
+ file_openapiv3_annotations_proto_depIdxs = nil
+}
diff --git a/vendor/github.com/google/gnostic/openapiv3/annotations.proto b/vendor/github.com/google/gnostic/openapiv3/annotations.proto
new file mode 100644
index 0000000000..0bd87810db
--- /dev/null
+++ b/vendor/github.com/google/gnostic/openapiv3/annotations.proto
@@ -0,0 +1,60 @@
+// Copyright 2022 Google LLC. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package openapi.v3;
+
+import "openapiv3/OpenAPIv3.proto";
+import "google/protobuf/descriptor.proto";
+
+// This option lets the proto compiler generate Java code inside the package
+// name (see below) instead of inside an outer class. It creates a simpler
+// developer experience by reducing one-level of name nesting and be
+// consistent with most programming languages that don't support outer classes.
+option java_multiple_files = true;
+
+// The Java outer classname should be the filename in UpperCamelCase. This
+// class is only used to hold proto descriptor, so developers don't need to
+// work with it directly.
+option java_outer_classname = "AnnotationsProto";
+
+// The Java package name must be proto package name with proper prefix.
+option java_package = "org.openapi_v3";
+
+// A reasonable prefix for the Objective-C symbols generated from the package.
+// It should at a minimum be 3 characters long, all uppercase, and convention
+// is to use an abbreviation of the package name. Something short, but
+// hopefully unique enough to not conflict with things that may come along in
+// the future. 'GPB' is reserved for the protocol buffer implementation itself.
+option objc_class_prefix = "OAS";
+
+// The Go package name.
+option go_package = "github.com/google/gnostic/openapiv3;openapi_v3";
+
+extend google.protobuf.FileOptions {
+ Document document = 1143;
+}
+
+extend google.protobuf.MethodOptions {
+ Operation operation = 1143;
+}
+
+extend google.protobuf.MessageOptions {
+ Schema schema = 1143;
+}
+
+extend google.protobuf.FieldOptions {
+ Schema property = 1143;
+}
\ No newline at end of file
diff --git a/vendor/github.com/google/go-github/v45/github/orgs_audit_log.go b/vendor/github.com/google/go-github/v45/github/orgs_audit_log.go
deleted file mode 100644
index 52bacfed9a..0000000000
--- a/vendor/github.com/google/go-github/v45/github/orgs_audit_log.go
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright 2021 The go-github AUTHORS. All rights reserved.
-//
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package github
-
-import (
- "context"
- "fmt"
-)
-
-// GetAuditLogOptions sets up optional parameters to query audit-log endpoint.
-type GetAuditLogOptions struct {
- Phrase *string `url:"phrase,omitempty"` // A search phrase. (Optional.)
- Include *string `url:"include,omitempty"` // Event type includes. Can be one of "web", "git", "all". Default: "web". (Optional.)
- Order *string `url:"order,omitempty"` // The order of audit log events. Can be one of "asc" or "desc". Default: "desc". (Optional.)
-
- ListCursorOptions
-}
-
-// HookConfig describes metadata about a webhook configuration.
-type HookConfig struct {
- ContentType *string `json:"content_type,omitempty"`
- InsecureSSL *string `json:"insecure_ssl,omitempty"`
- URL *string `json:"url,omitempty"`
-
- // Secret is returned obfuscated by GitHub, but it can be set for outgoing requests.
- Secret *string `json:"secret,omitempty"`
-}
-
-// AuditEntry describes the fields that may be represented by various audit-log "action" entries.
-// For a list of actions see - https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#audit-log-actions
-type AuditEntry struct {
- Action *string `json:"action,omitempty"` // The name of the action that was performed, for example `user.login` or `repo.create`.
- Active *bool `json:"active,omitempty"`
- ActiveWas *bool `json:"active_was,omitempty"`
- Actor *string `json:"actor,omitempty"` // The actor who performed the action.
- BlockedUser *string `json:"blocked_user,omitempty"`
- Business *string `json:"business,omitempty"`
- CancelledAt *Timestamp `json:"cancelled_at,omitempty"`
- CompletedAt *Timestamp `json:"completed_at,omitempty"`
- Conclusion *string `json:"conclusion,omitempty"`
- Config *HookConfig `json:"config,omitempty"`
- ConfigWas *HookConfig `json:"config_was,omitempty"`
- ContentType *string `json:"content_type,omitempty"`
- CreatedAt *Timestamp `json:"created_at,omitempty"`
- DeployKeyFingerprint *string `json:"deploy_key_fingerprint,omitempty"`
- DocumentID *string `json:"_document_id,omitempty"`
- Emoji *string `json:"emoji,omitempty"`
- EnvironmentName *string `json:"environment_name,omitempty"`
- Event *string `json:"event,omitempty"`
- Events []string `json:"events,omitempty"`
- EventsWere []string `json:"events_were,omitempty"`
- Explanation *string `json:"explanation,omitempty"`
- Fingerprint *string `json:"fingerprint,omitempty"`
- HeadBranch *string `json:"head_branch,omitempty"`
- HeadSHA *string `json:"head_sha,omitempty"`
- HookID *int64 `json:"hook_id,omitempty"`
- IsHostedRunner *bool `json:"is_hosted_runner,omitempty"`
- JobName *string `json:"job_name,omitempty"`
- LimitedAvailability *bool `json:"limited_availability,omitempty"`
- Message *string `json:"message,omitempty"`
- Name *string `json:"name,omitempty"`
- OldUser *string `json:"old_user,omitempty"`
- OpenSSHPublicKey *string `json:"openssh_public_key,omitempty"`
- Org *string `json:"org,omitempty"`
- PreviousVisibility *string `json:"previous_visibility,omitempty"`
- ReadOnly *string `json:"read_only,omitempty"`
- Repo *string `json:"repo,omitempty"`
- Repository *string `json:"repository,omitempty"`
- RepositoryPublic *bool `json:"repository_public,omitempty"`
- RunnerGroupID *int64 `json:"runner_group_id,omitempty"`
- RunnerGroupName *string `json:"runner_group_name,omitempty"`
- RunnerID *int64 `json:"runner_id,omitempty"`
- RunnerLabels []string `json:"runner_labels,omitempty"`
- RunnerName *string `json:"runner_name,omitempty"`
- SecretsPassed []string `json:"secrets_passed,omitempty"`
- SourceVersion *string `json:"source_version,omitempty"`
- StartedAt *Timestamp `json:"started_at,omitempty"`
- TargetLogin *string `json:"target_login,omitempty"`
- TargetVersion *string `json:"target_version,omitempty"`
- Team *string `json:"team,omitempty"`
- Timestamp *Timestamp `json:"@timestamp,omitempty"` // The time the audit log event occurred, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time).
- TransportProtocolName *string `json:"transport_protocol_name,omitempty"` // A human readable name for the protocol (for example, HTTP or SSH) used to transfer Git data.
- TransportProtocol *int `json:"transport_protocol,omitempty"` // The type of protocol (for example, HTTP=1 or SSH=2) used to transfer Git data.
- TriggerID *int64 `json:"trigger_id,omitempty"`
- User *string `json:"user,omitempty"` // The user that was affected by the action performed (if available).
- Visibility *string `json:"visibility,omitempty"` // The repository visibility, for example `public` or `private`.
- WorkflowID *int64 `json:"workflow_id,omitempty"`
- WorkflowRunID *int64 `json:"workflow_run_id,omitempty"`
-}
-
-// GetAuditLog gets the audit-log entries for an organization.
-//
-// GitHub API docs: https://docs.github.com/en/rest/orgs/orgs#get-the-audit-log-for-an-organization
-func (s *OrganizationsService) GetAuditLog(ctx context.Context, org string, opts *GetAuditLogOptions) ([]*AuditEntry, *Response, error) {
- u := fmt.Sprintf("orgs/%v/audit-log", org)
- u, err := addOptions(u, opts)
- if err != nil {
- return nil, nil, err
- }
-
- req, err := s.client.NewRequest("GET", u, nil)
- if err != nil {
- return nil, nil, err
- }
-
- var auditEntries []*AuditEntry
- resp, err := s.client.Do(ctx, req, &auditEntries)
- if err != nil {
- return nil, resp, err
- }
-
- return auditEntries, resp, nil
-}
diff --git a/vendor/github.com/google/go-github/v45/github/orgs_custom_roles.go b/vendor/github.com/google/go-github/v45/github/orgs_custom_roles.go
deleted file mode 100644
index 9904685b94..0000000000
--- a/vendor/github.com/google/go-github/v45/github/orgs_custom_roles.go
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2022 The go-github AUTHORS. All rights reserved.
-//
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package github
-
-import (
- "context"
- "fmt"
-)
-
-// OrganizationCustomRepoRoles represents custom repository roles available in specified organization.
-type OrganizationCustomRepoRoles struct {
- TotalCount *int `json:"total_count,omitempty"`
- CustomRepoRoles []*CustomRepoRoles `json:"custom_roles,omitempty"`
-}
-
-// CustomRepoRoles represents custom repository roles for an organization.
-// See https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization
-// for more information.
-type CustomRepoRoles struct {
- ID *int64 `json:"id,omitempty"`
- Name *string `json:"name,omitempty"`
-}
-
-// ListCustomRepoRoles lists the custom repository roles available in this organization.
-// In order to see custom repository roles in an organization, the authenticated user must be an organization owner.
-//
-// GitHub API docs: https://docs.github.com/en/rest/orgs/custom-roles#list-custom-repository-roles-in-an-organization
-func (s *OrganizationsService) ListCustomRepoRoles(ctx context.Context, org string) (*OrganizationCustomRepoRoles, *Response, error) {
- u := fmt.Sprintf("orgs/%v/custom_roles", org)
-
- req, err := s.client.NewRequest("GET", u, nil)
- if err != nil {
- return nil, nil, err
- }
-
- customRepoRoles := new(OrganizationCustomRepoRoles)
- resp, err := s.client.Do(ctx, req, customRepoRoles)
- if err != nil {
- return nil, resp, err
- }
-
- return customRepoRoles, resp, nil
-}
diff --git a/vendor/github.com/google/go-github/v45/AUTHORS b/vendor/github.com/google/go-github/v53/AUTHORS
similarity index 82%
rename from vendor/github.com/google/go-github/v45/AUTHORS
rename to vendor/github.com/google/go-github/v53/AUTHORS
index 80bd26dd4f..5e40cd1f38 100644
--- a/vendor/github.com/google/go-github/v45/AUTHORS
+++ b/vendor/github.com/google/go-github/v53/AUTHORS
@@ -11,7 +11,10 @@
178inaba
2BFL
413x
+Abed Kibbe
Abhinav Gupta
+Abhishek Veeramalla
+aboy
adrienzieba
afdesk
Ahmed Hagy
@@ -24,15 +27,18 @@ Alec Thomas
Aleks Clark
Alex Bramley
Alex Orr
+Alex Su
Alex Unger
Alexander Harkness
Alexis Gauthiez
Ali Farooq
+Allan Guwatudde
Allen Sun
Amey Sakhadeo
Anders Janmyr
Andreas Garnæs
Andrew Ryabchun
+Andrew Svoboda
Andy Grunwald
Andy Hume
Andy Lindeman
@@ -58,20 +64,26 @@ Beshr Kayali
Beyang Liu
Billy Keyes
Billy Lynch
+Bjorn Neergaard
Björn Häuser
boljen
+Bracken
Brad Harris
Brad Moylan
Bradley Falzon
Bradley McAllister
+Brandon Butler
Brandon Cook
+Brett Kuhlman
Brett Logan
Brian Egizi
Bryan Boreham
+Bryan Peterson
Cami Diez
Carl Johnson
Carlos Alexandro Becker
Carlos Tadeu Panato Junior
+ChandanChainani
chandresh-pancholi
Charles Fenwick Elliott
Charlie Yan
@@ -82,12 +94,17 @@ Chris Raborg
Chris Roche
Chris Schaefer
chrisforrette
+Christian Bargmann
Christian Muehlhaeuser
Christoph Sassenberg
+CI Monk
Colin Misare
+Craig Gumbley
Craig Peterson
Cristian Maglie
+Cyb3r Jak3
Daehyeok Mun
+Dalton Hubble
Daniel Lanner
Daniel Leavitt
Daniel Nilsson
@@ -97,6 +114,7 @@ Dave Henderson
Dave Perrett
Dave Protasowski
David Deng
+David Gamba
David J. M. Karlsen
David Jannotta
David Ji
@@ -104,6 +122,7 @@ David Lopez Reyes
Davide Zipeto
Dennis Webb
Derek Jobst
+DeviousLab
Dhi Aurrahman
Diego Lapiduz
Dmitri Shuralyov
@@ -116,6 +135,8 @@ Eivind
Eli Uriegas
Elliott Beach
Emerson Wood
+Emil V
+Eng Zer Jun
eperm
Erick Fejta
Erik Nobel
@@ -123,13 +144,17 @@ erwinvaneyk
Evan Elias
Fabian Holler
Fabrice
+Fatema-Moaiyadi
Felix Geisendörfer
Filippo Valsorda
Florian Forster
+Florian Wagner
Francesc Gil
Francis
Francisco Guimarães
+François de Metz
Fredrik Jönsson
+Gabriel
Garrett Squire
George Kontridze
Georgy Buranov
@@ -143,11 +168,15 @@ Guz Alexander
Guðmundur Bjarni Ólafsson
Hanno Hecker
Hari haran
+Harikesh00
haya14busa
haya14busa
+Hiroki Ito
+Hubot Jr
Huy Tr
huydx
i2bskn
+Iain Steers
Ikko Ashimine
Ioannis Georgoulas
Isao Jonas
@@ -157,8 +186,10 @@ Jacob Valdemar
Jake Krammer
Jake White
Jameel Haffejee
+James Bowes
James Cockbain
James Loh
+Jamie West
Jan Kosecki
Jan Švábík
Javier Campanini
@@ -168,15 +199,18 @@ Jeremy Morris
Jesse Haka
Jesse Newland
Jihoon Chung
+Jille Timmermans
Jimmi Dyson
Joan Saum
Joe Tsai
John Barton
John Engelman
+John Jones
John Liu
Jordan Brockopp
Jordan Sussman
Joshua Bezaleel Abednego
+João Cerqueira
JP Phillips
jpbelanger-mtl
Juan
@@ -185,25 +219,34 @@ Julien Garcia Gonzalez
Julien Rostand
Junya Kono
Justin Abrahms
+Justin Toh
Jusung Lee
jzhoucliqr
+k1rnt
kadern0
Katrina Owen
Kautilya Tripathi
Keita Urashima
Kevin Burke
+Kevin Wang
+Kevin Zhao
Kirill
Konrad Malawski
Kookheon Kwon
+Krishna Indani
Krzysztof Kowalczyk
Kshitij Saraogi
Kumar Saurabh
+Kyle Kurz
kyokomi
Laurent Verdoïa
+leopoldwang
Liam Galvin
+Lluis Campos
Lovro Mažgon
Luca Campese
Lucas Alcantara
+Luis Davim
Luke Evers
Luke Kysow
Luke Roberts
@@ -219,6 +262,7 @@ Martins Sipenko
Marwan Sulaiman
Masayuki Izumi
Mat Geist
+Matija Horvat
Matin Rahmanian
Matt
Matt Brender
@@ -226,12 +270,17 @@ Matt Gaunt
Matt Landis
Matt Moore
Maxime Bury
+Michael Meng
Michael Spiegel
Michael Tiller
Michał Glapa
Michelangelo Morrillo
+Miguel Elias dos Santos
+Mike Chen
+Mohammed AlDujaili
Mukundan Senthil
Munia Balayil
+Mustafa Abban
Nadav Kaner
Nathan VanBenschoten
Navaneeth Suresh
@@ -241,6 +290,7 @@ Nick Platt
Nick Spragg
Nikhita Raghunath
Nilesh Singh
+Noah Hanjun Lee
Noah Zoschke
ns-cweber
Ole Orhagen
@@ -251,13 +301,17 @@ Pablo Pérez Schröder
Palash Nigam
Panagiotis Moustafellos
Parham Alvani
+pari-27
Parker Moore
parkhyukjun89
+Pat Alwell
Patrick DeVivo