diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 976dee047d..e7472b3c38 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -64,7 +64,6 @@ jobs: runs-on: ubuntu-latest env: GOPATH: /home/runner/go - PROTOC_ZIP: protoc-3.12.3-linux-x86_64.zip steps: - name: Checkout code uses: actions/checkout@v2 @@ -84,53 +83,23 @@ jobs: with: path: /home/runner/go/bin key: go-bin-v1-${{ hashFiles('**/go.mod') }} - - uses: actions/cache@v2 - with: - path: protoc-3.12.3-linux-x86_64.zip - key: protoc-3.12.3-linux-x86_64.zip - name: Install protoc run: | - set -eux -o pipefail - curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.12.3/$PROTOC_ZIP - sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc - sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*' - sudo chmod +x /usr/local/bin/protoc - sudo find /usr/local/include -type f | xargs sudo chmod a+r - sudo find /usr/local/include -type d | xargs sudo chmod a+rx - ls /usr/local/include/google/protobuf/ - + make install-toolchain - name: Add ~/go/bin to PATH run: | echo "/home/runner/go/bin" >> $GITHUB_PATH - name: Add /usr/local/bin to PATH run: | echo "/usr/local/bin" >> $GITHUB_PATH - - name: Create links run: | mkdir -p ~/go/src/github.com/argoproj cp -a ../argo-rollouts ~/go/src/github.com/argoproj - - name: Vendor and Download - run: | - go mod vendor -v - go mod download - - - name: Install UI code generator - run: | - wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.25/swagger-codegen-cli-3.0.25.jar -O swagger-codegen-cli.jar - echo "#!/usr/bin/java -jar" > swagger-codegen - cat swagger-codegen-cli.jar >> swagger-codegen - chmod +x swagger-codegen - sudo mv swagger-codegen /usr/local/bin/swagger-codegen - rm swagger-codegen-cli.jar - - - uses: actions/setup-java@v1 - with: - java-version: "9.0.4" - - name: Run codegen run: | + make go-mod-vendor make codegen make manifests make docs diff --git a/Makefile b/Makefile index 644cbe1784..686a0a136b 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,7 @@ define protoc # protoc $(1) PATH=${DIST_DIR}:$$PATH protoc \ -I /usr/local/include \ + -I ${DIST_DIR}/protoc-include \ -I . \ -I ./vendor \ -I ${GOPATH}/src \ @@ -69,63 +70,27 @@ go-mod-vendor: go mod tidy go mod vendor -# go_get,path -# use go_get to install a toolchain binary for a package which is *not* vendored in go.mod -define go_get - cd /tmp && GOBIN=${DIST_DIR} go get $(1) -endef - -# go_install,path -# use go_install to install a toolchain binary for a package which *is* vendored in go.mod -define go_install - GOBIN=${DIST_DIR} go install -mod=vendor ./vendor/$(1) -endef - -.PHONY: $(DIST_DIR)/controller-gen -$(DIST_DIR)/controller-gen: - $(call go_get,sigs.k8s.io/controller-tools/cmd/controller-gen@v0.5.0) - -.PHONY: $(DIST_DIR)/bin/goimports -$(DIST_DIR)/bin/goimports: - $(call go_get,golang.org/x/tools/cmd/goimports) - -.PHONY: $(DIST_DIR)/go-to-protobuf -$(DIST_DIR)/go-to-protobuf: go-mod-vendor - $(call go_install,k8s.io/code-generator/cmd/go-to-protobuf) - -.PHONY: $(DIST_DIR)/protoc-gen-gogo -$(DIST_DIR)/protoc-gen-gogo: go-mod-vendor - $(call go_install,github.com/gogo/protobuf/protoc-gen-gogo) - -.PHONY: $(DIST_DIR)/protoc-gen-gogofast -$(DIST_DIR)/protoc-gen-gogofast: - $(call go_install,github.com/gogo/protobuf/protoc-gen-gogofast) - -.PHONY: $(DIST_DIR)/protoc-gen-grpc-gateway -$(DIST_DIR)/protoc-gen-grpc-gateway: go-mod-vendor - $(call go_install,github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway) - -.PHONY: $(DIST_DIR)/protoc-gen-swagger -$(DIST_DIR)/protoc-gen-swagger: go-mod-vendor - $(call go_install,github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger) +.PHONY: install-go-tools-local +install-go-tools-local: go-mod-vendor + ./hack/installers/install-codegen-go-tools.sh -.PHONY: $(DIST_DIR)/openapi-gen -$(DIST_DIR)/openapi-gen: go-mod-vendor - $(call go_install,k8s.io/kube-openapi/cmd/openapi-gen) +.PHONY: install-protoc-local +install-protoc-local: + ./hack/installers/install-protoc.sh -.PHONY: $(DIST_DIR)/mockery -$(DIST_DIR)/mockery: - $(call go_get,github.com/vektra/mockery/v2@v2.6.0) +# Installs all tools required to build and test locally +.PHONY: install-tools-local +install-tools-local: install-go-tools-local install-protoc-local TYPES := $(shell find pkg/apis/rollouts/v1alpha1 -type f -name '*.go' -not -name openapi_generated.go -not -name '*generated*' -not -name '*test.go') APIMACHINERY_PKGS=k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,+k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/batch/v1 .PHONY: install-toolchain -install-toolchain: go-mod-vendor $(DIST_DIR)/controller-gen $(DIST_DIR)/bin/goimports $(DIST_DIR)/go-to-protobuf $(DIST_DIR)/protoc-gen-gogo $(DIST_DIR)/protoc-gen-gogofast $(DIST_DIR)/protoc-gen-grpc-gateway $(DIST_DIR)/protoc-gen-swagger $(DIST_DIR)/openapi-gen $(DIST_DIR)/mockery +install-toolchain: install-go-tools-local install-protoc-local # generates all auto-generated code .PHONY: codegen -codegen: gen-proto gen-k8scodegen gen-openapi gen-mocks gen-crd manifests +codegen: go-mod-vendor gen-proto gen-k8scodegen gen-openapi gen-mocks gen-crd manifests # generates all files related to proto files .PHONY: gen-proto @@ -133,17 +98,18 @@ gen-proto: k8s-proto api-proto ui-proto # generates the .proto files affected by changes to types.go .PHONY: k8s-proto -k8s-proto: go-mod-vendor install-toolchain $(TYPES) +k8s-proto: go-mod-vendor $(TYPES) PATH=${DIST_DIR}:$$PATH go-to-protobuf \ --go-header-file=./hack/custom-boilerplate.go.txt \ --packages=github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1 \ --apimachinery-packages=${APIMACHINERY_PKGS} \ - --proto-import $(CURDIR)/vendor + --proto-import $(CURDIR)/vendor \ + --proto-import=${DIST_DIR}/protoc-include touch pkg/apis/rollouts/v1alpha1/generated.proto # generates *.pb.go, *.pb.gw.go, swagger from .proto files .PHONY: api-proto -api-proto: go-mod-vendor install-toolchain k8s-proto +api-proto: go-mod-vendor k8s-proto $(call protoc,pkg/apiclient/rollout/rollout.proto) # generates ui related proto files diff --git a/analysis/analysis.go b/analysis/analysis.go index 3afc481635..77a2081920 100644 --- a/analysis/analysis.go +++ b/analysis/analysis.go @@ -716,7 +716,7 @@ func (c *Controller) garbageCollectMeasurements(run *v1alpha1.AnalysisRun, measu measurementRetentionObject := measurementRetentionMetricNamesMap[result.Name] measurementsLimit := limit if measurementRetentionObject != nil && measurementRetentionObject.Limit > 0 { - measurementsLimit = measurementRetentionObject.Limit + measurementsLimit = int(measurementRetentionObject.Limit) } if length > measurementsLimit { metric, ok := metricsByName[result.Name] diff --git a/docs/features/kustomize/rollout_cr_schema.json b/docs/features/kustomize/rollout_cr_schema.json index 0578824a9d..2f27f6f557 100644 --- a/docs/features/kustomize/rollout_cr_schema.json +++ b/docs/features/kustomize/rollout_cr_schema.json @@ -47,6 +47,22 @@ "type": "array", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" + }, + "dryRun": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "required": [ + "metricName" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge" } }, "type": "object" @@ -90,6 +106,22 @@ "type": "array", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" + }, + "dryRun": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "required": [ + "metricName" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge" } }, "type": "object" @@ -141,6 +173,22 @@ "type": "array", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" + }, + "dryRun": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "required": [ + "metricName" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge" } }, "type": "object" diff --git a/hack/installers/install-codegen-go-tools.sh b/hack/installers/install-codegen-go-tools.sh new file mode 100755 index 0000000000..b74ef32753 --- /dev/null +++ b/hack/installers/install-codegen-go-tools.sh @@ -0,0 +1,57 @@ +#!/bin/bash +set -eux -o pipefail + +SRCROOT="$( CDPATH='' cd -- "$(dirname "$0")/../.." && pwd -P )" + +# This script installs all our golang-based codegen utility CLIs necessary for codegen. +# Some dependencies are vendored in go.mod (ones which are actually imported in our codebase). +# Other dependencies are only used as a CLI and do not need vendoring in go.mod (doing so adds +# unecessary dependencies to go.mod). We want to maintain a single source of truth for versioning +# our binaries (either go.mod or go install @), so we use two techniques to install +# our CLIs: +# 1. For CLIs which are NOT vendored in go.mod, we can run `go install @` with an explicit version +# 2. For packages which we *do* vendor in go.mod, we determine version from go.mod followed by `go install` with that version +go_mod_install() { + module=$(go list -f '{{.Module}}' $1 | awk '{print $1}') + module_version=$(go list -m $module | awk '{print $NF}' | head -1) + go install $1@$module_version +} + +# All binaries are compiled into the argo-cd/dist directory, which is added to the PATH during codegen +export GOBIN="${SRCROOT}/dist" +mkdir -p $GOBIN + +# protoc-gen-go* is used to generate .pb.go from .proto files +#go_mod_install github.com/golang/protobuf/protoc-gen-go +#go_mod_install github.com/gogo/protobuf/protoc-gen-gogo +go_mod_install github.com/gogo/protobuf/protoc-gen-gogofast + +# protoc-gen-grpc-gateway is used to build .pb.gw.go files from from .proto files +go_mod_install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway + +# # protoc-gen-swagger is used to build swagger.json +go_mod_install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger + +# k8s tools to codegen .proto files, client libraries, and helpers from types.go +go_mod_install k8s.io/code-generator/cmd/go-to-protobuf +go_mod_install k8s.io/code-generator/cmd/go-to-protobuf/protoc-gen-gogo +go_mod_install k8s.io/code-generator/cmd/client-gen +go_mod_install k8s.io/code-generator/cmd/deepcopy-gen +go_mod_install k8s.io/code-generator/cmd/defaulter-gen +go_mod_install k8s.io/code-generator/cmd/informer-gen +go_mod_install k8s.io/code-generator/cmd/lister-gen + +# We still install openapi-gen from go.mod since upstream does not utilize release tags +go_mod_install k8s.io/kube-openapi/cmd/openapi-gen + +# controller-gen is run by ./hack/gen-crd-spec to generate the CRDs +go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.5.0 + +# swagger cli is used to generate swagger docs +go install github.com/go-swagger/go-swagger/cmd/swagger@v0.28.0 + +# goimports is used to auto-format generated code +go install golang.org/x/tools/cmd/goimports@v0.1.8 + +# mockery is used for generating mock +go install github.com/vektra/mockery/v2@v2.6.0 diff --git a/hack/installers/install-protoc.sh b/hack/installers/install-protoc.sh new file mode 100755 index 0000000000..1f3dd8e7bc --- /dev/null +++ b/hack/installers/install-protoc.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -eux -o pipefail + +PROJECT_ROOT=$(cd $(dirname ${BASH_SOURCE})/../..; pwd) +DIST_PATH="${PROJECT_ROOT}/dist" +PATH="${DIST_PATH}:${PATH}" + +protoc_version=3.17.3 + +OS=$(go env GOOS) +ARCH=$(go env GOARCH) +case $OS in + darwin) + # For macOS, the x86_64 binary is used even on Apple Silicon (it is run through rosetta), so + # we download and install the x86_64 version. See: https://github.com/protocolbuffers/protobuf/pull/8557 + protoc_os=osx + protoc_arch=x86_64 + ;; + *) + protoc_os=linux + case $ARCH in + arm64|arm) + protoc_arch=aarch_64 + ;; + *) + protoc_arch=x86_64 + ;; + esac + ;; +esac + +export TARGET_FILE=protoc_${protoc_version}_${OS}_${ARCH}.zip +temp_path="/tmp/${TARGET_FILE}" +url=https://github.com/protocolbuffers/protobuf/releases/download/v${protoc_version}/protoc-${protoc_version}-${protoc_os}-${protoc_arch}.zip +[ -e ${temp_path} ] || curl -sLf --retry 3 -o ${temp_path} ${url} + +mkdir -p /tmp/protoc-${protoc_version} +unzip -o ${temp_path} -d /tmp/protoc-${protoc_version} +mkdir -p ${DIST_PATH}/protoc-include +cp /tmp/protoc-${protoc_version}/bin/protoc ${DIST_PATH}/protoc +chmod +x ${DIST_PATH}/protoc +cp -a /tmp/protoc-${protoc_version}/include/* ${DIST_PATH}/protoc-include +chmod -R +rx ${DIST_PATH}/protoc-include +protoc --version diff --git a/hack/tools.go b/hack/tools.go index 22abdb37c9..be7401da62 100644 --- a/hack/tools.go +++ b/hack/tools.go @@ -8,6 +8,7 @@ import ( _ "k8s.io/code-generator/cmd/deepcopy-gen" _ "k8s.io/code-generator/cmd/defaulter-gen" _ "k8s.io/code-generator/cmd/go-to-protobuf" + _ "k8s.io/code-generator/cmd/go-to-protobuf/protoc-gen-gogo" _ "k8s.io/code-generator/cmd/informer-gen" _ "k8s.io/code-generator/cmd/lister-gen" _ "k8s.io/code-generator/pkg/util" diff --git a/manifests/crds/analysis-run-crd.yaml b/manifests/crds/analysis-run-crd.yaml index c01f11145e..51d86d0e51 100644 --- a/manifests/crds/analysis-run-crd.yaml +++ b/manifests/crds/analysis-run-crd.yaml @@ -81,6 +81,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string diff --git a/manifests/crds/analysis-template-crd.yaml b/manifests/crds/analysis-template-crd.yaml index b439a780d1..0677555741 100644 --- a/manifests/crds/analysis-template-crd.yaml +++ b/manifests/crds/analysis-template-crd.yaml @@ -77,6 +77,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string diff --git a/manifests/crds/cluster-analysis-template-crd.yaml b/manifests/crds/cluster-analysis-template-crd.yaml index 91acef74e1..6a25750124 100644 --- a/manifests/crds/cluster-analysis-template-crd.yaml +++ b/manifests/crds/cluster-analysis-template-crd.yaml @@ -77,6 +77,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string diff --git a/manifests/install.yaml b/manifests/install.yaml index bee89265c9..89f4621d96 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -82,6 +82,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string @@ -2831,6 +2832,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string @@ -5470,6 +5472,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index ea598cc1b0..7b74516558 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -82,6 +82,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string @@ -2831,6 +2832,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string @@ -5470,6 +5472,7 @@ spec: items: properties: limit: + format: int32 type: integer metricName: type: string diff --git a/pkg/apis/rollouts/v1alpha1/analysis_types.go b/pkg/apis/rollouts/v1alpha1/analysis_types.go index 0094571c5d..82d461cdcc 100644 --- a/pkg/apis/rollouts/v1alpha1/analysis_types.go +++ b/pkg/apis/rollouts/v1alpha1/analysis_types.go @@ -130,7 +130,7 @@ type MeasurementRetention struct { // MetricName is the name of the metric on which this retention policy should be applied. MetricName string `json:"metricName" protobuf:"bytes,1,opt,name=metricName"` // Limit is the maximum number of measurements to be retained for this given metric. - Limit int `json:"limit" protobuf:"varint,2,opt,name=limit"` + Limit int32 `json:"limit" protobuf:"varint,2,opt,name=limit"` } // EffectiveCount is the effective count based on whether or not count/interval is specified diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 5ff91102e2..3f052727e0 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2021 The Kubernetes sample-controller Authors. +Copyright 2022 The Kubernetes sample-controller Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -860,10 +860,38 @@ func (m *DatadogMetric) XXX_DiscardUnknown() { var xxx_messageInfo_DatadogMetric proto.InternalMessageInfo +func (m *DryRun) Reset() { *m = DryRun{} } +func (*DryRun) ProtoMessage() {} +func (*DryRun) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{29} +} +func (m *DryRun) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DryRun) 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 *DryRun) XXX_Merge(src proto.Message) { + xxx_messageInfo_DryRun.Merge(m, src) +} +func (m *DryRun) XXX_Size() int { + return m.Size() +} +func (m *DryRun) XXX_DiscardUnknown() { + xxx_messageInfo_DryRun.DiscardUnknown(m) +} + +var xxx_messageInfo_DryRun proto.InternalMessageInfo + func (m *Experiment) Reset() { *m = Experiment{} } func (*Experiment) ProtoMessage() {} func (*Experiment) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{29} + return fileDescriptor_e0e705f843545fab, []int{30} } func (m *Experiment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -891,7 +919,7 @@ var xxx_messageInfo_Experiment proto.InternalMessageInfo func (m *ExperimentAnalysisRunStatus) Reset() { *m = ExperimentAnalysisRunStatus{} } func (*ExperimentAnalysisRunStatus) ProtoMessage() {} func (*ExperimentAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{30} + return fileDescriptor_e0e705f843545fab, []int{31} } func (m *ExperimentAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -919,7 +947,7 @@ var xxx_messageInfo_ExperimentAnalysisRunStatus proto.InternalMessageInfo func (m *ExperimentAnalysisTemplateRef) Reset() { *m = ExperimentAnalysisTemplateRef{} } func (*ExperimentAnalysisTemplateRef) ProtoMessage() {} func (*ExperimentAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{31} + return fileDescriptor_e0e705f843545fab, []int{32} } func (m *ExperimentAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -947,7 +975,7 @@ var xxx_messageInfo_ExperimentAnalysisTemplateRef proto.InternalMessageInfo func (m *ExperimentCondition) Reset() { *m = ExperimentCondition{} } func (*ExperimentCondition) ProtoMessage() {} func (*ExperimentCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{32} + return fileDescriptor_e0e705f843545fab, []int{33} } func (m *ExperimentCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -975,7 +1003,7 @@ var xxx_messageInfo_ExperimentCondition proto.InternalMessageInfo func (m *ExperimentList) Reset() { *m = ExperimentList{} } func (*ExperimentList) ProtoMessage() {} func (*ExperimentList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{33} + return fileDescriptor_e0e705f843545fab, []int{34} } func (m *ExperimentList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1003,7 +1031,7 @@ var xxx_messageInfo_ExperimentList proto.InternalMessageInfo func (m *ExperimentSpec) Reset() { *m = ExperimentSpec{} } func (*ExperimentSpec) ProtoMessage() {} func (*ExperimentSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{34} + return fileDescriptor_e0e705f843545fab, []int{35} } func (m *ExperimentSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1031,7 +1059,7 @@ var xxx_messageInfo_ExperimentSpec proto.InternalMessageInfo func (m *ExperimentStatus) Reset() { *m = ExperimentStatus{} } func (*ExperimentStatus) ProtoMessage() {} func (*ExperimentStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{35} + return fileDescriptor_e0e705f843545fab, []int{36} } func (m *ExperimentStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1059,7 +1087,7 @@ var xxx_messageInfo_ExperimentStatus proto.InternalMessageInfo func (m *FieldRef) Reset() { *m = FieldRef{} } func (*FieldRef) ProtoMessage() {} func (*FieldRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{36} + return fileDescriptor_e0e705f843545fab, []int{37} } func (m *FieldRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1087,7 +1115,7 @@ var xxx_messageInfo_FieldRef proto.InternalMessageInfo func (m *GraphiteMetric) Reset() { *m = GraphiteMetric{} } func (*GraphiteMetric) ProtoMessage() {} func (*GraphiteMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{37} + return fileDescriptor_e0e705f843545fab, []int{38} } func (m *GraphiteMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1115,7 +1143,7 @@ var xxx_messageInfo_GraphiteMetric proto.InternalMessageInfo func (m *IstioDestinationRule) Reset() { *m = IstioDestinationRule{} } func (*IstioDestinationRule) ProtoMessage() {} func (*IstioDestinationRule) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{38} + return fileDescriptor_e0e705f843545fab, []int{39} } func (m *IstioDestinationRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1143,7 +1171,7 @@ var xxx_messageInfo_IstioDestinationRule proto.InternalMessageInfo func (m *IstioTrafficRouting) Reset() { *m = IstioTrafficRouting{} } func (*IstioTrafficRouting) ProtoMessage() {} func (*IstioTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{39} + return fileDescriptor_e0e705f843545fab, []int{40} } func (m *IstioTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1171,7 +1199,7 @@ var xxx_messageInfo_IstioTrafficRouting proto.InternalMessageInfo func (m *IstioVirtualService) Reset() { *m = IstioVirtualService{} } func (*IstioVirtualService) ProtoMessage() {} func (*IstioVirtualService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{40} + return fileDescriptor_e0e705f843545fab, []int{41} } func (m *IstioVirtualService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1199,7 +1227,7 @@ var xxx_messageInfo_IstioVirtualService proto.InternalMessageInfo func (m *JobMetric) Reset() { *m = JobMetric{} } func (*JobMetric) ProtoMessage() {} func (*JobMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{41} + return fileDescriptor_e0e705f843545fab, []int{42} } func (m *JobMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1227,7 +1255,7 @@ var xxx_messageInfo_JobMetric proto.InternalMessageInfo func (m *KayentaMetric) Reset() { *m = KayentaMetric{} } func (*KayentaMetric) ProtoMessage() {} func (*KayentaMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{42} + return fileDescriptor_e0e705f843545fab, []int{43} } func (m *KayentaMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1255,7 +1283,7 @@ var xxx_messageInfo_KayentaMetric proto.InternalMessageInfo func (m *KayentaScope) Reset() { *m = KayentaScope{} } func (*KayentaScope) ProtoMessage() {} func (*KayentaScope) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{43} + return fileDescriptor_e0e705f843545fab, []int{44} } func (m *KayentaScope) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1283,7 +1311,7 @@ var xxx_messageInfo_KayentaScope proto.InternalMessageInfo func (m *KayentaThreshold) Reset() { *m = KayentaThreshold{} } func (*KayentaThreshold) ProtoMessage() {} func (*KayentaThreshold) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{44} + return fileDescriptor_e0e705f843545fab, []int{45} } func (m *KayentaThreshold) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1311,7 +1339,7 @@ var xxx_messageInfo_KayentaThreshold proto.InternalMessageInfo func (m *Measurement) Reset() { *m = Measurement{} } func (*Measurement) ProtoMessage() {} func (*Measurement) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{45} + return fileDescriptor_e0e705f843545fab, []int{46} } func (m *Measurement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1336,10 +1364,38 @@ func (m *Measurement) XXX_DiscardUnknown() { var xxx_messageInfo_Measurement proto.InternalMessageInfo +func (m *MeasurementRetention) Reset() { *m = MeasurementRetention{} } +func (*MeasurementRetention) ProtoMessage() {} +func (*MeasurementRetention) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{47} +} +func (m *MeasurementRetention) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MeasurementRetention) 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 *MeasurementRetention) XXX_Merge(src proto.Message) { + xxx_messageInfo_MeasurementRetention.Merge(m, src) +} +func (m *MeasurementRetention) XXX_Size() int { + return m.Size() +} +func (m *MeasurementRetention) XXX_DiscardUnknown() { + xxx_messageInfo_MeasurementRetention.DiscardUnknown(m) +} + +var xxx_messageInfo_MeasurementRetention proto.InternalMessageInfo + func (m *Metric) Reset() { *m = Metric{} } func (*Metric) ProtoMessage() {} func (*Metric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{46} + return fileDescriptor_e0e705f843545fab, []int{48} } func (m *Metric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1367,7 +1423,7 @@ var xxx_messageInfo_Metric proto.InternalMessageInfo func (m *MetricProvider) Reset() { *m = MetricProvider{} } func (*MetricProvider) ProtoMessage() {} func (*MetricProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{47} + return fileDescriptor_e0e705f843545fab, []int{49} } func (m *MetricProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1395,7 +1451,7 @@ var xxx_messageInfo_MetricProvider proto.InternalMessageInfo func (m *MetricResult) Reset() { *m = MetricResult{} } func (*MetricResult) ProtoMessage() {} func (*MetricResult) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{48} + return fileDescriptor_e0e705f843545fab, []int{50} } func (m *MetricResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1423,7 +1479,7 @@ var xxx_messageInfo_MetricResult proto.InternalMessageInfo func (m *NewRelicMetric) Reset() { *m = NewRelicMetric{} } func (*NewRelicMetric) ProtoMessage() {} func (*NewRelicMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{49} + return fileDescriptor_e0e705f843545fab, []int{51} } func (m *NewRelicMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1451,7 +1507,7 @@ var xxx_messageInfo_NewRelicMetric proto.InternalMessageInfo func (m *NginxTrafficRouting) Reset() { *m = NginxTrafficRouting{} } func (*NginxTrafficRouting) ProtoMessage() {} func (*NginxTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{50} + return fileDescriptor_e0e705f843545fab, []int{52} } func (m *NginxTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1479,7 +1535,7 @@ var xxx_messageInfo_NginxTrafficRouting proto.InternalMessageInfo func (m *ObjectRef) Reset() { *m = ObjectRef{} } func (*ObjectRef) ProtoMessage() {} func (*ObjectRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{51} + return fileDescriptor_e0e705f843545fab, []int{53} } func (m *ObjectRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1507,7 +1563,7 @@ var xxx_messageInfo_ObjectRef proto.InternalMessageInfo func (m *PauseCondition) Reset() { *m = PauseCondition{} } func (*PauseCondition) ProtoMessage() {} func (*PauseCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{52} + return fileDescriptor_e0e705f843545fab, []int{54} } func (m *PauseCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1535,7 +1591,7 @@ var xxx_messageInfo_PauseCondition proto.InternalMessageInfo func (m *PodTemplateMetadata) Reset() { *m = PodTemplateMetadata{} } func (*PodTemplateMetadata) ProtoMessage() {} func (*PodTemplateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{53} + return fileDescriptor_e0e705f843545fab, []int{55} } func (m *PodTemplateMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1565,7 +1621,7 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*PreferredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*PreferredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{54} + return fileDescriptor_e0e705f843545fab, []int{56} } func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1593,7 +1649,7 @@ var xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution proto.Intern func (m *PrometheusMetric) Reset() { *m = PrometheusMetric{} } func (*PrometheusMetric) ProtoMessage() {} func (*PrometheusMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{55} + return fileDescriptor_e0e705f843545fab, []int{57} } func (m *PrometheusMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1623,7 +1679,7 @@ func (m *RequiredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*RequiredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*RequiredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{56} + return fileDescriptor_e0e705f843545fab, []int{58} } func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1651,7 +1707,7 @@ var xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution proto.Interna func (m *Rollout) Reset() { *m = Rollout{} } func (*Rollout) ProtoMessage() {} func (*Rollout) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{57} + return fileDescriptor_e0e705f843545fab, []int{59} } func (m *Rollout) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1679,7 +1735,7 @@ var xxx_messageInfo_Rollout proto.InternalMessageInfo func (m *RolloutAnalysis) Reset() { *m = RolloutAnalysis{} } func (*RolloutAnalysis) ProtoMessage() {} func (*RolloutAnalysis) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{58} + return fileDescriptor_e0e705f843545fab, []int{60} } func (m *RolloutAnalysis) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1707,7 +1763,7 @@ var xxx_messageInfo_RolloutAnalysis proto.InternalMessageInfo func (m *RolloutAnalysisBackground) Reset() { *m = RolloutAnalysisBackground{} } func (*RolloutAnalysisBackground) ProtoMessage() {} func (*RolloutAnalysisBackground) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{59} + return fileDescriptor_e0e705f843545fab, []int{61} } func (m *RolloutAnalysisBackground) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1735,7 +1791,7 @@ var xxx_messageInfo_RolloutAnalysisBackground proto.InternalMessageInfo func (m *RolloutAnalysisRunStatus) Reset() { *m = RolloutAnalysisRunStatus{} } func (*RolloutAnalysisRunStatus) ProtoMessage() {} func (*RolloutAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{60} + return fileDescriptor_e0e705f843545fab, []int{62} } func (m *RolloutAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1763,7 +1819,7 @@ var xxx_messageInfo_RolloutAnalysisRunStatus proto.InternalMessageInfo func (m *RolloutAnalysisTemplate) Reset() { *m = RolloutAnalysisTemplate{} } func (*RolloutAnalysisTemplate) ProtoMessage() {} func (*RolloutAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{61} + return fileDescriptor_e0e705f843545fab, []int{63} } func (m *RolloutAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1791,7 +1847,7 @@ var xxx_messageInfo_RolloutAnalysisTemplate proto.InternalMessageInfo func (m *RolloutCondition) Reset() { *m = RolloutCondition{} } func (*RolloutCondition) ProtoMessage() {} func (*RolloutCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{62} + return fileDescriptor_e0e705f843545fab, []int{64} } func (m *RolloutCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1819,7 +1875,7 @@ var xxx_messageInfo_RolloutCondition proto.InternalMessageInfo func (m *RolloutExperimentStep) Reset() { *m = RolloutExperimentStep{} } func (*RolloutExperimentStep) ProtoMessage() {} func (*RolloutExperimentStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{63} + return fileDescriptor_e0e705f843545fab, []int{65} } func (m *RolloutExperimentStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1849,7 +1905,7 @@ func (m *RolloutExperimentStepAnalysisTemplateRef) Reset() { } func (*RolloutExperimentStepAnalysisTemplateRef) ProtoMessage() {} func (*RolloutExperimentStepAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{64} + return fileDescriptor_e0e705f843545fab, []int{66} } func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1877,7 +1933,7 @@ var xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef proto.InternalMessa func (m *RolloutExperimentTemplate) Reset() { *m = RolloutExperimentTemplate{} } func (*RolloutExperimentTemplate) ProtoMessage() {} func (*RolloutExperimentTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{65} + return fileDescriptor_e0e705f843545fab, []int{67} } func (m *RolloutExperimentTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1905,7 +1961,7 @@ var xxx_messageInfo_RolloutExperimentTemplate proto.InternalMessageInfo func (m *RolloutList) Reset() { *m = RolloutList{} } func (*RolloutList) ProtoMessage() {} func (*RolloutList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{66} + return fileDescriptor_e0e705f843545fab, []int{68} } func (m *RolloutList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1933,7 +1989,7 @@ var xxx_messageInfo_RolloutList proto.InternalMessageInfo func (m *RolloutPause) Reset() { *m = RolloutPause{} } func (*RolloutPause) ProtoMessage() {} func (*RolloutPause) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{67} + return fileDescriptor_e0e705f843545fab, []int{69} } func (m *RolloutPause) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1961,7 +2017,7 @@ var xxx_messageInfo_RolloutPause proto.InternalMessageInfo func (m *RolloutSpec) Reset() { *m = RolloutSpec{} } func (*RolloutSpec) ProtoMessage() {} func (*RolloutSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{68} + return fileDescriptor_e0e705f843545fab, []int{70} } func (m *RolloutSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1989,7 +2045,7 @@ var xxx_messageInfo_RolloutSpec proto.InternalMessageInfo func (m *RolloutStatus) Reset() { *m = RolloutStatus{} } func (*RolloutStatus) ProtoMessage() {} func (*RolloutStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{69} + return fileDescriptor_e0e705f843545fab, []int{71} } func (m *RolloutStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2017,7 +2073,7 @@ var xxx_messageInfo_RolloutStatus proto.InternalMessageInfo func (m *RolloutStrategy) Reset() { *m = RolloutStrategy{} } func (*RolloutStrategy) ProtoMessage() {} func (*RolloutStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{70} + return fileDescriptor_e0e705f843545fab, []int{72} } func (m *RolloutStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2045,7 +2101,7 @@ var xxx_messageInfo_RolloutStrategy proto.InternalMessageInfo func (m *RolloutTrafficRouting) Reset() { *m = RolloutTrafficRouting{} } func (*RolloutTrafficRouting) ProtoMessage() {} func (*RolloutTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{71} + return fileDescriptor_e0e705f843545fab, []int{73} } func (m *RolloutTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2070,10 +2126,38 @@ func (m *RolloutTrafficRouting) XXX_DiscardUnknown() { var xxx_messageInfo_RolloutTrafficRouting proto.InternalMessageInfo +func (m *RunSummary) Reset() { *m = RunSummary{} } +func (*RunSummary) ProtoMessage() {} +func (*RunSummary) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{74} +} +func (m *RunSummary) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RunSummary) 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 *RunSummary) XXX_Merge(src proto.Message) { + xxx_messageInfo_RunSummary.Merge(m, src) +} +func (m *RunSummary) XXX_Size() int { + return m.Size() +} +func (m *RunSummary) XXX_DiscardUnknown() { + xxx_messageInfo_RunSummary.DiscardUnknown(m) +} + +var xxx_messageInfo_RunSummary proto.InternalMessageInfo + func (m *SMITrafficRouting) Reset() { *m = SMITrafficRouting{} } func (*SMITrafficRouting) ProtoMessage() {} func (*SMITrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{72} + return fileDescriptor_e0e705f843545fab, []int{75} } func (m *SMITrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2101,7 +2185,7 @@ var xxx_messageInfo_SMITrafficRouting proto.InternalMessageInfo func (m *ScopeDetail) Reset() { *m = ScopeDetail{} } func (*ScopeDetail) ProtoMessage() {} func (*ScopeDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{73} + return fileDescriptor_e0e705f843545fab, []int{76} } func (m *ScopeDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2129,7 +2213,7 @@ var xxx_messageInfo_ScopeDetail proto.InternalMessageInfo func (m *SecretKeyRef) Reset() { *m = SecretKeyRef{} } func (*SecretKeyRef) ProtoMessage() {} func (*SecretKeyRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{74} + return fileDescriptor_e0e705f843545fab, []int{77} } func (m *SecretKeyRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2157,7 +2241,7 @@ var xxx_messageInfo_SecretKeyRef proto.InternalMessageInfo func (m *SetCanaryScale) Reset() { *m = SetCanaryScale{} } func (*SetCanaryScale) ProtoMessage() {} func (*SetCanaryScale) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{75} + return fileDescriptor_e0e705f843545fab, []int{78} } func (m *SetCanaryScale) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2185,7 +2269,7 @@ var xxx_messageInfo_SetCanaryScale proto.InternalMessageInfo func (m *StickinessConfig) Reset() { *m = StickinessConfig{} } func (*StickinessConfig) ProtoMessage() {} func (*StickinessConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{76} + return fileDescriptor_e0e705f843545fab, []int{79} } func (m *StickinessConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2213,7 +2297,7 @@ var xxx_messageInfo_StickinessConfig proto.InternalMessageInfo func (m *TLSRoute) Reset() { *m = TLSRoute{} } func (*TLSRoute) ProtoMessage() {} func (*TLSRoute) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{77} + return fileDescriptor_e0e705f843545fab, []int{80} } func (m *TLSRoute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2241,7 +2325,7 @@ var xxx_messageInfo_TLSRoute proto.InternalMessageInfo func (m *TemplateService) Reset() { *m = TemplateService{} } func (*TemplateService) ProtoMessage() {} func (*TemplateService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{78} + return fileDescriptor_e0e705f843545fab, []int{81} } func (m *TemplateService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2269,7 +2353,7 @@ var xxx_messageInfo_TemplateService proto.InternalMessageInfo func (m *TemplateSpec) Reset() { *m = TemplateSpec{} } func (*TemplateSpec) ProtoMessage() {} func (*TemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{79} + return fileDescriptor_e0e705f843545fab, []int{82} } func (m *TemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2297,7 +2381,7 @@ var xxx_messageInfo_TemplateSpec proto.InternalMessageInfo func (m *TemplateStatus) Reset() { *m = TemplateStatus{} } func (*TemplateStatus) ProtoMessage() {} func (*TemplateStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{80} + return fileDescriptor_e0e705f843545fab, []int{83} } func (m *TemplateStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2325,7 +2409,7 @@ var xxx_messageInfo_TemplateStatus proto.InternalMessageInfo func (m *TrafficWeights) Reset() { *m = TrafficWeights{} } func (*TrafficWeights) ProtoMessage() {} func (*TrafficWeights) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{81} + return fileDescriptor_e0e705f843545fab, []int{84} } func (m *TrafficWeights) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2353,7 +2437,7 @@ var xxx_messageInfo_TrafficWeights proto.InternalMessageInfo func (m *ValueFrom) Reset() { *m = ValueFrom{} } func (*ValueFrom) ProtoMessage() {} func (*ValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{82} + return fileDescriptor_e0e705f843545fab, []int{85} } func (m *ValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2381,7 +2465,7 @@ var xxx_messageInfo_ValueFrom proto.InternalMessageInfo func (m *WavefrontMetric) Reset() { *m = WavefrontMetric{} } func (*WavefrontMetric) ProtoMessage() {} func (*WavefrontMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{83} + return fileDescriptor_e0e705f843545fab, []int{86} } func (m *WavefrontMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2409,7 +2493,7 @@ var xxx_messageInfo_WavefrontMetric proto.InternalMessageInfo func (m *WebMetric) Reset() { *m = WebMetric{} } func (*WebMetric) ProtoMessage() {} func (*WebMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{84} + return fileDescriptor_e0e705f843545fab, []int{87} } func (m *WebMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2437,7 +2521,7 @@ var xxx_messageInfo_WebMetric proto.InternalMessageInfo func (m *WebMetricHeader) Reset() { *m = WebMetricHeader{} } func (*WebMetricHeader) ProtoMessage() {} func (*WebMetricHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{85} + return fileDescriptor_e0e705f843545fab, []int{88} } func (m *WebMetricHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2465,7 +2549,7 @@ var xxx_messageInfo_WebMetricHeader proto.InternalMessageInfo func (m *WeightDestination) Reset() { *m = WeightDestination{} } func (*WeightDestination) ProtoMessage() {} func (*WeightDestination) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{86} + return fileDescriptor_e0e705f843545fab, []int{89} } func (m *WeightDestination) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2520,6 +2604,7 @@ func init() { proto.RegisterType((*ClusterAnalysisTemplate)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ClusterAnalysisTemplate") proto.RegisterType((*ClusterAnalysisTemplateList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ClusterAnalysisTemplateList") proto.RegisterType((*DatadogMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.DatadogMetric") + proto.RegisterType((*DryRun)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.DryRun") proto.RegisterType((*Experiment)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Experiment") proto.RegisterType((*ExperimentAnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentAnalysisRunStatus") proto.RegisterType((*ExperimentAnalysisTemplateRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentAnalysisTemplateRef") @@ -2538,6 +2623,7 @@ func init() { proto.RegisterType((*KayentaThreshold)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.KayentaThreshold") proto.RegisterType((*Measurement)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Measurement") proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Measurement.MetadataEntry") + proto.RegisterType((*MeasurementRetention)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.MeasurementRetention") proto.RegisterType((*Metric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Metric") proto.RegisterType((*MetricProvider)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.MetricProvider") proto.RegisterType((*MetricResult)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.MetricResult") @@ -2567,6 +2653,7 @@ func init() { proto.RegisterType((*RolloutStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStatus") proto.RegisterType((*RolloutStrategy)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStrategy") proto.RegisterType((*RolloutTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutTrafficRouting") + proto.RegisterType((*RunSummary)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RunSummary") proto.RegisterType((*SMITrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SMITrafficRouting") proto.RegisterType((*ScopeDetail)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ScopeDetail") proto.RegisterType((*SecretKeyRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SecretKeyRef") @@ -2589,424 +2676,436 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 6668 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x5b, 0x8c, 0x24, 0xc9, - 0x51, 0x57, 0xdd, 0xf3, 0xe8, 0x89, 0x79, 0xe7, 0xce, 0x7a, 0x7b, 0xe7, 0x6e, 0xb7, 0xcf, 0x75, - 0xd6, 0x71, 0x06, 0x7b, 0xd6, 0xde, 0xbb, 0x83, 0xb3, 0xcf, 0x3a, 0xd1, 0x3d, 0xb3, 0x8f, 0xd9, - 0x9b, 0xd9, 0x9d, 0xcd, 0x9e, 0xdd, 0xb5, 0xcf, 0x3e, 0xe3, 0x9a, 0xee, 0x9c, 0x9e, 0xda, 0xad, - 0xae, 0x6a, 0x57, 0x55, 0xcf, 0xee, 0x9c, 0x2d, 0xfb, 0x8c, 0x75, 0xc6, 0x20, 0x5b, 0x3e, 0xb0, - 0xfd, 0x81, 0x90, 0x91, 0x85, 0xf8, 0x40, 0x98, 0x0f, 0x64, 0x81, 0xf8, 0x31, 0x02, 0x81, 0x2d, - 0x99, 0x0f, 0x90, 0x91, 0x80, 0x33, 0xc8, 0x6e, 0x7c, 0x6d, 0xf8, 0x80, 0x1f, 0x64, 0xc9, 0x08, - 0x79, 0xbf, 0x50, 0x3e, 0x2b, 0xab, 0xba, 0x7a, 0xb6, 0x7b, 0xba, 0x66, 0xb1, 0x80, 0xbf, 0xee, - 0x8c, 0xc8, 0x88, 0x7c, 0x44, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc1, 0x46, 0xc3, 0x0e, 0xf7, 0xda, - 0x3b, 0x2b, 0x35, 0xaf, 0x79, 0xce, 0xf2, 0x1b, 0x5e, 0xcb, 0xf7, 0x6e, 0xb3, 0x1f, 0xef, 0xf4, - 0x3d, 0xc7, 0xf1, 0xda, 0x61, 0x70, 0xae, 0x75, 0xa7, 0x71, 0xce, 0x6a, 0xd9, 0xc1, 0x39, 0x55, - 0xb2, 0xff, 0x6e, 0xcb, 0x69, 0xed, 0x59, 0xef, 0x3e, 0xd7, 0x20, 0x2e, 0xf1, 0xad, 0x90, 0xd4, - 0x57, 0x5a, 0xbe, 0x17, 0x7a, 0xe8, 0x7d, 0x11, 0xb5, 0x15, 0x49, 0x8d, 0xfd, 0xf8, 0x25, 0x59, - 0x77, 0xa5, 0x75, 0xa7, 0xb1, 0x42, 0xa9, 0xad, 0xa8, 0x12, 0x49, 0x6d, 0xf9, 0x9d, 0x5a, 0x5b, - 0x1a, 0x5e, 0xc3, 0x3b, 0xc7, 0x88, 0xee, 0xb4, 0x77, 0xd9, 0x3f, 0xf6, 0x87, 0xfd, 0xe2, 0xcc, - 0x96, 0x9f, 0xb8, 0xf3, 0x5c, 0xb0, 0x62, 0x7b, 0xb4, 0x6d, 0xe7, 0x76, 0xac, 0xb0, 0xb6, 0x77, - 0x6e, 0xbf, 0xa7, 0x45, 0xcb, 0xa6, 0x86, 0x54, 0xf3, 0x7c, 0x92, 0x86, 0xf3, 0x4c, 0x84, 0xd3, - 0xb4, 0x6a, 0x7b, 0xb6, 0x4b, 0xfc, 0x83, 0xa8, 0xd7, 0x4d, 0x12, 0x5a, 0x69, 0xb5, 0xce, 0xf5, - 0xab, 0xe5, 0xb7, 0xdd, 0xd0, 0x6e, 0x92, 0x9e, 0x0a, 0x3f, 0xff, 0xa0, 0x0a, 0x41, 0x6d, 0x8f, - 0x34, 0xad, 0x9e, 0x7a, 0x4f, 0xf7, 0xab, 0xd7, 0x0e, 0x6d, 0xe7, 0x9c, 0xed, 0x86, 0x41, 0xe8, - 0x27, 0x2b, 0x99, 0xdf, 0xcc, 0xc3, 0x54, 0x79, 0xa3, 0x52, 0x0d, 0xad, 0xb0, 0x1d, 0xa0, 0xcf, - 0x18, 0x30, 0xe3, 0x78, 0x56, 0xbd, 0x62, 0x39, 0x96, 0x5b, 0x23, 0x7e, 0xd1, 0x78, 0xdc, 0x78, - 0x6a, 0xfa, 0xfc, 0xc6, 0xca, 0x28, 0xf3, 0xb5, 0x52, 0xbe, 0x1b, 0x60, 0x12, 0x78, 0x6d, 0xbf, - 0x46, 0x30, 0xd9, 0xad, 0x2c, 0x7d, 0xbb, 0x53, 0x7a, 0xa4, 0xdb, 0x29, 0xcd, 0x6c, 0x68, 0x9c, - 0x70, 0x8c, 0x2f, 0xfa, 0xb2, 0x01, 0x8b, 0x35, 0xcb, 0xb5, 0xfc, 0x83, 0x6d, 0xcb, 0x6f, 0x90, - 0xf0, 0x92, 0xef, 0xb5, 0x5b, 0xc5, 0xdc, 0x31, 0xb4, 0xe6, 0xb4, 0x68, 0xcd, 0xe2, 0x6a, 0x92, - 0x1d, 0xee, 0x6d, 0x01, 0x6b, 0x57, 0x10, 0x5a, 0x3b, 0x0e, 0xd1, 0xdb, 0x95, 0x3f, 0xce, 0x76, - 0x55, 0x93, 0xec, 0x70, 0x6f, 0x0b, 0xcc, 0xd7, 0xf2, 0xb0, 0x58, 0xde, 0xa8, 0x6c, 0xfb, 0xd6, - 0xee, 0xae, 0x5d, 0xc3, 0x5e, 0x3b, 0xb4, 0xdd, 0x06, 0x7a, 0x3b, 0x4c, 0xda, 0x6e, 0xc3, 0x27, - 0x41, 0xc0, 0x26, 0x72, 0xaa, 0x32, 0x2f, 0x88, 0x4e, 0xae, 0xf3, 0x62, 0x2c, 0xe1, 0xe8, 0x59, - 0x98, 0x0e, 0x88, 0xbf, 0x6f, 0xd7, 0xc8, 0x96, 0xe7, 0x87, 0x6c, 0xa4, 0xc7, 0x2b, 0x27, 0x04, - 0xfa, 0x74, 0x35, 0x02, 0x61, 0x1d, 0x8f, 0x56, 0xf3, 0x3d, 0x2f, 0x14, 0x70, 0x36, 0x10, 0x53, - 0x51, 0x35, 0x1c, 0x81, 0xb0, 0x8e, 0x87, 0x5e, 0x37, 0x60, 0x21, 0x08, 0xed, 0xda, 0x1d, 0xdb, - 0x25, 0x41, 0xb0, 0xea, 0xb9, 0xbb, 0x76, 0xa3, 0x38, 0xce, 0x46, 0xf1, 0xea, 0x68, 0xa3, 0x58, - 0x4d, 0x50, 0xad, 0x2c, 0x75, 0x3b, 0xa5, 0x85, 0x64, 0x29, 0xee, 0xe1, 0x8e, 0xd6, 0x60, 0xc1, - 0x72, 0x5d, 0x2f, 0xb4, 0x42, 0xdb, 0x73, 0xb7, 0x7c, 0xb2, 0x6b, 0xdf, 0x2b, 0x8e, 0xb1, 0xee, - 0x14, 0x45, 0x77, 0x16, 0xca, 0x09, 0x38, 0xee, 0xa9, 0x61, 0xae, 0x41, 0xb1, 0xdc, 0xdc, 0xb1, - 0x82, 0xc0, 0xaa, 0x7b, 0x7e, 0x62, 0x36, 0x9e, 0x82, 0x42, 0xd3, 0x6a, 0xb5, 0x6c, 0xb7, 0x41, - 0xa7, 0x23, 0xff, 0xd4, 0x54, 0x65, 0xa6, 0xdb, 0x29, 0x15, 0x36, 0x45, 0x19, 0x56, 0x50, 0xf3, - 0x1f, 0x73, 0x30, 0x5d, 0x76, 0x2d, 0xe7, 0x20, 0xb0, 0x03, 0xdc, 0x76, 0xd1, 0x47, 0xa0, 0x40, - 0xb5, 0x4b, 0xdd, 0x0a, 0x2d, 0xb1, 0x22, 0xdf, 0xb5, 0xc2, 0x17, 0xfb, 0x8a, 0xbe, 0xd8, 0xa3, - 0x71, 0xa1, 0xd8, 0x2b, 0xfb, 0xef, 0x5e, 0xb9, 0xb6, 0x73, 0x9b, 0xd4, 0xc2, 0x4d, 0x12, 0x5a, - 0x15, 0x24, 0x7a, 0x01, 0x51, 0x19, 0x56, 0x54, 0x91, 0x07, 0x63, 0x41, 0x8b, 0xd4, 0xc4, 0x0a, - 0xdb, 0x1c, 0x51, 0x92, 0xa3, 0xa6, 0x57, 0x5b, 0xa4, 0x56, 0x99, 0x11, 0xac, 0xc7, 0xe8, 0x3f, - 0xcc, 0x18, 0xa1, 0xbb, 0x30, 0x11, 0x30, 0x9d, 0x23, 0x16, 0xcf, 0xb5, 0xec, 0x58, 0x32, 0xb2, - 0x95, 0x39, 0xc1, 0x74, 0x82, 0xff, 0xc7, 0x82, 0x9d, 0xf9, 0x4f, 0x06, 0x9c, 0xd0, 0xb0, 0xcb, - 0x7e, 0xa3, 0xdd, 0x24, 0x6e, 0x88, 0x1e, 0x87, 0x31, 0xd7, 0x6a, 0x12, 0xb1, 0x50, 0x54, 0x93, - 0xaf, 0x5a, 0x4d, 0x82, 0x19, 0x04, 0x3d, 0x01, 0xe3, 0xfb, 0x96, 0xd3, 0x26, 0x6c, 0x90, 0xa6, - 0x2a, 0xb3, 0x02, 0x65, 0xfc, 0x26, 0x2d, 0xc4, 0x1c, 0x86, 0x3e, 0x0e, 0x53, 0xec, 0xc7, 0x45, - 0xdf, 0x6b, 0x66, 0xd4, 0x35, 0xd1, 0xc2, 0x9b, 0x92, 0x6c, 0x65, 0xb6, 0xdb, 0x29, 0x4d, 0xa9, - 0xbf, 0x38, 0x62, 0x68, 0xfe, 0xb3, 0x01, 0xf3, 0x5a, 0xe7, 0x36, 0xec, 0x20, 0x44, 0x1f, 0xea, - 0x11, 0x9e, 0x95, 0xc1, 0x84, 0x87, 0xd6, 0x66, 0xa2, 0xb3, 0x20, 0x7a, 0x5a, 0x90, 0x25, 0x9a, - 0xe0, 0xb8, 0x30, 0x6e, 0x87, 0xa4, 0x19, 0x14, 0x73, 0x8f, 0xe7, 0x9f, 0x9a, 0x3e, 0xbf, 0x9e, - 0xd9, 0x34, 0x46, 0xe3, 0xbb, 0x4e, 0xe9, 0x63, 0xce, 0xc6, 0xfc, 0x4a, 0x2e, 0xd6, 0x43, 0x2a, - 0x51, 0xc8, 0x83, 0xc9, 0x26, 0x09, 0x7d, 0xbb, 0xc6, 0xd7, 0xd5, 0xf4, 0xf9, 0xb5, 0xd1, 0x5a, - 0xb1, 0xc9, 0x88, 0x45, 0xca, 0x92, 0xff, 0x0f, 0xb0, 0xe4, 0x82, 0xf6, 0x60, 0xcc, 0xf2, 0x1b, - 0xb2, 0xcf, 0x17, 0xb3, 0x99, 0xdf, 0x48, 0xe6, 0xca, 0x7e, 0x23, 0xc0, 0x8c, 0x03, 0x3a, 0x07, - 0x53, 0x21, 0xf1, 0x9b, 0xb6, 0x6b, 0x85, 0x5c, 0xbb, 0x16, 0x2a, 0x8b, 0x02, 0x6d, 0x6a, 0x5b, - 0x02, 0x70, 0x84, 0x63, 0xbe, 0x91, 0x83, 0xc5, 0x9e, 0xc5, 0x80, 0x9e, 0x81, 0xf1, 0xd6, 0x9e, - 0x15, 0x48, 0xe9, 0x3e, 0x2b, 0x87, 0x76, 0x8b, 0x16, 0xde, 0xef, 0x94, 0x66, 0x65, 0x15, 0x56, - 0x80, 0x39, 0x32, 0xdd, 0x3e, 0x9a, 0x24, 0x08, 0xac, 0x86, 0x14, 0x79, 0x6d, 0x44, 0x58, 0x31, - 0x96, 0x70, 0xf4, 0x2b, 0x06, 0xcc, 0xf2, 0xd1, 0xc1, 0x24, 0x68, 0x3b, 0x21, 0x5d, 0xd6, 0x74, - 0x6c, 0xae, 0x64, 0x31, 0x13, 0x9c, 0x64, 0xe5, 0xa4, 0xe0, 0x3e, 0xab, 0x97, 0x06, 0x38, 0xce, - 0x17, 0xdd, 0x82, 0xa9, 0x20, 0xb4, 0xfc, 0x90, 0xd4, 0xcb, 0x21, 0x53, 0xe0, 0xd3, 0xe7, 0x7f, - 0x76, 0x30, 0x79, 0xdf, 0xb6, 0x9b, 0x84, 0xaf, 0xad, 0xaa, 0x24, 0x80, 0x23, 0x5a, 0xe6, 0xdf, - 0xc7, 0x15, 0x47, 0x35, 0xa4, 0x66, 0x54, 0xe3, 0x00, 0x7d, 0x10, 0x4e, 0x07, 0xed, 0x5a, 0x8d, - 0x04, 0xc1, 0x6e, 0xdb, 0xc1, 0x6d, 0xf7, 0xb2, 0x1d, 0x84, 0x9e, 0x7f, 0xb0, 0x61, 0x37, 0xed, - 0x90, 0x8d, 0xf7, 0x78, 0xe5, 0x4c, 0xb7, 0x53, 0x3a, 0x5d, 0xed, 0x87, 0x84, 0xfb, 0xd7, 0x47, - 0x16, 0x3c, 0xda, 0x76, 0xfb, 0x93, 0xe7, 0xdb, 0x74, 0xa9, 0xdb, 0x29, 0x3d, 0x7a, 0xa3, 0x3f, - 0x1a, 0x3e, 0x8c, 0x86, 0xf9, 0xef, 0x06, 0x2c, 0xc8, 0x7e, 0x6d, 0x93, 0x66, 0xcb, 0xb1, 0x42, - 0xf2, 0x10, 0x76, 0x9c, 0x30, 0xb6, 0xe3, 0xe0, 0x6c, 0xf4, 0x86, 0x6c, 0x7f, 0xbf, 0x6d, 0xc7, - 0xfc, 0x37, 0x03, 0x96, 0x92, 0xc8, 0x0f, 0x41, 0x4b, 0x06, 0x71, 0x2d, 0x79, 0x35, 0xdb, 0xde, - 0xf6, 0x51, 0x95, 0x3f, 0x4a, 0xe9, 0xeb, 0xff, 0x72, 0x7d, 0x69, 0xfe, 0xde, 0x18, 0xcc, 0x94, - 0xdd, 0xd0, 0x2e, 0xef, 0xee, 0xda, 0xae, 0x1d, 0x1e, 0xa0, 0xcf, 0xe5, 0xe0, 0x5c, 0xcb, 0x27, - 0xbb, 0xc4, 0xf7, 0x49, 0x7d, 0xad, 0xed, 0xdb, 0x6e, 0xa3, 0x5a, 0xdb, 0x23, 0xf5, 0xb6, 0x63, - 0xbb, 0x8d, 0xf5, 0x86, 0xeb, 0xa9, 0xe2, 0x0b, 0xf7, 0x48, 0xad, 0x4d, 0x4d, 0x39, 0x31, 0xff, - 0xcd, 0xd1, 0x9a, 0xb9, 0x35, 0x1c, 0xd3, 0xca, 0xd3, 0xdd, 0x4e, 0xe9, 0xdc, 0x90, 0x95, 0xf0, - 0xb0, 0x5d, 0x43, 0x9f, 0xcd, 0xc1, 0x8a, 0x4f, 0x3e, 0xda, 0xb6, 0x07, 0x1f, 0x0d, 0xbe, 0x40, - 0x9d, 0xd1, 0x46, 0x03, 0x0f, 0xc5, 0xb3, 0x72, 0xbe, 0xdb, 0x29, 0x0d, 0x59, 0x07, 0x0f, 0xd9, - 0x2f, 0xf3, 0x2f, 0x0d, 0x28, 0x0c, 0x61, 0xfd, 0x95, 0xe2, 0xd6, 0xdf, 0x54, 0x8f, 0xe5, 0x17, - 0xf6, 0x5a, 0x7e, 0x97, 0x46, 0x1b, 0xb4, 0x41, 0x2c, 0xbe, 0xff, 0x30, 0x60, 0xb1, 0xc7, 0x42, - 0x44, 0x7b, 0xb0, 0xd4, 0xf2, 0xea, 0x72, 0xd1, 0x5f, 0xb6, 0x82, 0x3d, 0x06, 0x13, 0xdd, 0x7b, - 0xa6, 0xdb, 0x29, 0x2d, 0x6d, 0xa5, 0xc0, 0xef, 0x77, 0x4a, 0x45, 0x45, 0x24, 0x81, 0x80, 0x53, - 0x29, 0xa2, 0x16, 0x14, 0x76, 0x6d, 0xe2, 0xd4, 0x31, 0xd9, 0x15, 0x92, 0x32, 0xe2, 0xf2, 0xbe, - 0x28, 0xa8, 0xf1, 0xc3, 0x91, 0xfc, 0x87, 0x15, 0x17, 0xf3, 0x3a, 0xcc, 0xc5, 0x8f, 0xca, 0x03, - 0x4c, 0xde, 0x19, 0xc8, 0x5b, 0xbe, 0x2b, 0xa6, 0x6e, 0x5a, 0x20, 0xe4, 0xcb, 0xf8, 0x2a, 0xa6, - 0xe5, 0xe6, 0x4f, 0xc6, 0x60, 0xbe, 0xe2, 0xb4, 0xc9, 0x25, 0x9f, 0x10, 0x69, 0x32, 0x95, 0x61, - 0xbe, 0xe5, 0x93, 0x7d, 0x9b, 0xdc, 0xad, 0x12, 0x87, 0xd4, 0x42, 0xcf, 0x17, 0xf4, 0x4f, 0x89, - 0xea, 0xf3, 0x5b, 0x71, 0x30, 0x4e, 0xe2, 0xa3, 0x17, 0x60, 0xce, 0xaa, 0x85, 0xf6, 0x3e, 0x51, - 0x14, 0x78, 0x03, 0xde, 0x22, 0x28, 0xcc, 0x95, 0x63, 0x50, 0x9c, 0xc0, 0x46, 0x1f, 0x82, 0x62, - 0x50, 0xb3, 0x1c, 0x72, 0xa3, 0x25, 0x58, 0xad, 0xee, 0x91, 0xda, 0x9d, 0x2d, 0xcf, 0x76, 0x43, - 0x61, 0x0b, 0x3e, 0x2e, 0x28, 0x15, 0xab, 0x7d, 0xf0, 0x70, 0x5f, 0x0a, 0xe8, 0xcf, 0x0c, 0x38, - 0xd3, 0xf2, 0xc9, 0x96, 0xef, 0x35, 0x3d, 0xba, 0x20, 0x7a, 0xac, 0x46, 0x61, 0x3d, 0xdd, 0x1c, - 0x71, 0xe5, 0xf3, 0x92, 0xde, 0x03, 0xda, 0x5b, 0xbb, 0x9d, 0xd2, 0x99, 0xad, 0xc3, 0x1a, 0x80, - 0x0f, 0x6f, 0x1f, 0xfa, 0x0b, 0x03, 0xce, 0xb6, 0xbc, 0x20, 0x3c, 0xa4, 0x0b, 0xe3, 0xc7, 0xda, - 0x05, 0xb3, 0xdb, 0x29, 0x9d, 0xdd, 0x3a, 0xb4, 0x05, 0xf8, 0x01, 0x2d, 0x34, 0xbb, 0xd3, 0xb0, - 0xa8, 0xc9, 0x9e, 0x30, 0x2a, 0x9f, 0x87, 0x59, 0x29, 0x0c, 0xdc, 0xb3, 0xc2, 0x65, 0x4f, 0x99, - 0xc0, 0x65, 0x1d, 0x88, 0xe3, 0xb8, 0x54, 0xee, 0x94, 0x28, 0xf2, 0xda, 0x09, 0xb9, 0xdb, 0x8a, - 0x41, 0x71, 0x02, 0x1b, 0xad, 0xc3, 0x09, 0x51, 0x82, 0x49, 0xcb, 0xb1, 0x6b, 0xd6, 0xaa, 0xd7, - 0x16, 0x22, 0x37, 0x5e, 0x39, 0xd5, 0xed, 0x94, 0x4e, 0x6c, 0xf5, 0x82, 0x71, 0x5a, 0x1d, 0xb4, - 0x01, 0x4b, 0x56, 0x3b, 0xf4, 0x54, 0xff, 0x2f, 0xb8, 0xd6, 0x8e, 0x43, 0xea, 0x4c, 0xb4, 0x0a, - 0x95, 0x22, 0x55, 0x44, 0xe5, 0x14, 0x38, 0x4e, 0xad, 0x85, 0xb6, 0x12, 0xd4, 0xaa, 0xa4, 0xe6, - 0xb9, 0x75, 0x3e, 0xcb, 0xe3, 0x95, 0xc7, 0x44, 0xf7, 0xe2, 0x14, 0x05, 0x0e, 0x4e, 0xad, 0x89, - 0x1c, 0x98, 0x6b, 0x5a, 0xf7, 0x6e, 0xb8, 0xd6, 0xbe, 0x65, 0x3b, 0x94, 0x49, 0x71, 0xe2, 0x01, - 0xd6, 0x6e, 0x3b, 0xb4, 0x9d, 0x15, 0xee, 0x4c, 0x5d, 0x59, 0x77, 0xc3, 0x6b, 0x7e, 0x35, 0xa4, - 0xfb, 0x4a, 0x05, 0xd1, 0x81, 0xdd, 0x8c, 0xd1, 0xc2, 0x09, 0xda, 0xe8, 0x1a, 0x9c, 0x64, 0xcb, - 0x71, 0xcd, 0xbb, 0xeb, 0xae, 0x11, 0xc7, 0x3a, 0x90, 0x1d, 0x98, 0x64, 0x1d, 0x38, 0xdd, 0xed, - 0x94, 0x4e, 0x56, 0xd3, 0x10, 0x70, 0x7a, 0x3d, 0x7a, 0x3c, 0x88, 0x03, 0x30, 0xd9, 0xb7, 0x03, - 0xdb, 0x73, 0xf9, 0xf1, 0xa0, 0x10, 0x1d, 0x0f, 0xaa, 0xfd, 0xd1, 0xf0, 0x61, 0x34, 0xd0, 0x6f, - 0x19, 0xb0, 0x94, 0xb6, 0x0c, 0x8b, 0x53, 0x59, 0xb8, 0x8a, 0x12, 0x4b, 0x8b, 0x4b, 0x44, 0xaa, - 0x52, 0x48, 0x6d, 0x04, 0x7a, 0xd5, 0x80, 0x19, 0x4b, 0xb3, 0xf7, 0x8a, 0xc0, 0x5a, 0x75, 0x65, - 0x54, 0x03, 0x3b, 0xa2, 0x58, 0x59, 0xe8, 0x76, 0x4a, 0x31, 0x9b, 0x12, 0xc7, 0x38, 0xa2, 0xdf, - 0x36, 0xe0, 0x64, 0xea, 0x1a, 0x2f, 0x4e, 0x1f, 0xc7, 0x08, 0x31, 0x21, 0x49, 0xd7, 0x39, 0xe9, - 0xcd, 0x40, 0xaf, 0x1b, 0x6a, 0x2b, 0xdb, 0x94, 0x47, 0x9c, 0x19, 0xd6, 0xb4, 0xeb, 0x23, 0x9a, - 0xb8, 0x91, 0x41, 0x20, 0x09, 0x57, 0x4e, 0x68, 0x3b, 0xa3, 0x2c, 0xc4, 0x49, 0xf6, 0xe8, 0xf3, - 0x86, 0xdc, 0x1a, 0x55, 0x8b, 0x66, 0x8f, 0xab, 0x45, 0x28, 0xda, 0x69, 0x55, 0x83, 0x12, 0xcc, - 0xd1, 0x87, 0x61, 0xd9, 0xda, 0xf1, 0xfc, 0x30, 0x75, 0xf1, 0x15, 0xe7, 0xd8, 0x32, 0x3a, 0xdb, - 0xed, 0x94, 0x96, 0xcb, 0x7d, 0xb1, 0xf0, 0x21, 0x14, 0xcc, 0xef, 0x8d, 0xc1, 0x0c, 0xbf, 0x5f, - 0x10, 0x5b, 0xd7, 0x37, 0x0c, 0x78, 0xac, 0xd6, 0xf6, 0x7d, 0xe2, 0x86, 0xd5, 0x90, 0xb4, 0x7a, - 0x37, 0x2e, 0xe3, 0x58, 0x37, 0xae, 0xc7, 0xbb, 0x9d, 0xd2, 0x63, 0xab, 0x87, 0xf0, 0xc7, 0x87, - 0xb6, 0x0e, 0xfd, 0x8d, 0x01, 0xa6, 0x40, 0xa8, 0x58, 0xb5, 0x3b, 0x0d, 0xdf, 0x6b, 0xbb, 0xf5, - 0xde, 0x4e, 0xe4, 0x8e, 0xb5, 0x13, 0x4f, 0x76, 0x3b, 0x25, 0x73, 0xf5, 0x81, 0xad, 0xc0, 0x03, - 0xb4, 0x14, 0x5d, 0x82, 0x45, 0x81, 0x75, 0xe1, 0x5e, 0x8b, 0xf8, 0x36, 0x35, 0xa7, 0xc5, 0x6d, - 0x46, 0x74, 0x41, 0x94, 0x44, 0xc0, 0xbd, 0x75, 0x50, 0x00, 0x93, 0x77, 0x89, 0xdd, 0xd8, 0x0b, - 0xa5, 0xf9, 0x34, 0xe2, 0xad, 0x90, 0xb8, 0x43, 0xb8, 0xc5, 0x69, 0x56, 0xa6, 0xe9, 0xf9, 0x5a, - 0xfc, 0xc1, 0x92, 0x93, 0xf9, 0x87, 0x63, 0x00, 0x52, 0xbc, 0x48, 0x0b, 0xfd, 0x1c, 0x4c, 0x05, - 0x24, 0xe4, 0x58, 0xc2, 0x03, 0xc5, 0xdd, 0x5a, 0xb2, 0x10, 0x47, 0x70, 0x74, 0x07, 0xc6, 0x5b, - 0x56, 0x3b, 0x20, 0x62, 0xb2, 0xae, 0x64, 0x32, 0x59, 0x5b, 0x94, 0x22, 0x3f, 0x23, 0xb1, 0x9f, - 0x98, 0xf3, 0x40, 0x9f, 0x36, 0x00, 0x48, 0x7c, 0x80, 0xa7, 0xcf, 0x57, 0x33, 0x61, 0x19, 0xcd, - 0x01, 0x1d, 0x83, 0xca, 0x5c, 0xb7, 0x53, 0x02, 0x6d, 0xaa, 0x34, 0xb6, 0xe8, 0x2e, 0x14, 0x2c, - 0xa9, 0xa3, 0xc7, 0x8e, 0x43, 0x47, 0xb3, 0xa3, 0x8b, 0x12, 0x32, 0xc5, 0x0c, 0x7d, 0xd6, 0x80, - 0xb9, 0x80, 0x84, 0x62, 0xaa, 0xa8, 0xa6, 0x10, 0x06, 0xea, 0x88, 0x42, 0x52, 0x8d, 0xd1, 0xe4, - 0x1a, 0x2f, 0x5e, 0x86, 0x13, 0x7c, 0xcd, 0xef, 0x4d, 0xc3, 0x9c, 0x14, 0x99, 0xc8, 0xe6, 0xe4, - 0x17, 0x9e, 0x7d, 0x6c, 0xce, 0x55, 0x1d, 0x88, 0xe3, 0xb8, 0xb4, 0x32, 0xbf, 0x95, 0x8c, 0x9b, - 0x9c, 0xaa, 0x72, 0x55, 0x07, 0xe2, 0x38, 0x2e, 0x6a, 0xc2, 0x78, 0x10, 0x92, 0x96, 0x74, 0x1a, - 0x5f, 0x1e, 0x6d, 0x34, 0xa2, 0x95, 0x10, 0x39, 0xc6, 0xe8, 0xbf, 0x00, 0x73, 0x2e, 0xe8, 0x0b, - 0x06, 0xcc, 0x85, 0xb1, 0xbb, 0x39, 0x21, 0x06, 0xd9, 0x48, 0x62, 0xfc, 0xda, 0x8f, 0xcf, 0x46, - 0xbc, 0x0c, 0x27, 0xd8, 0xa7, 0x98, 0xa1, 0xe3, 0xc7, 0x68, 0x86, 0xbe, 0x04, 0x85, 0xa6, 0x75, - 0xaf, 0xda, 0xf6, 0x1b, 0x47, 0x37, 0x77, 0xc5, 0xd5, 0x25, 0xa7, 0x82, 0x15, 0x3d, 0xf4, 0x29, - 0x43, 0x5b, 0x5c, 0x93, 0x8c, 0xf8, 0xad, 0x6c, 0x17, 0x97, 0xd2, 0xe2, 0x7d, 0x97, 0x59, 0x8f, - 0x51, 0x58, 0x78, 0xe8, 0x46, 0x21, 0x35, 0x70, 0xf8, 0x02, 0x51, 0x06, 0xce, 0xd4, 0xb1, 0x1a, - 0x38, 0xab, 0x31, 0x66, 0x38, 0xc1, 0x9c, 0xb5, 0x87, 0xaf, 0x39, 0xd5, 0x1e, 0x38, 0xd6, 0xf6, - 0x54, 0x63, 0xcc, 0x70, 0x82, 0x79, 0xff, 0x93, 0xd0, 0xf4, 0xf1, 0x9c, 0x84, 0x66, 0x32, 0x38, - 0x09, 0x1d, 0x6e, 0x24, 0xce, 0x8e, 0x6a, 0x24, 0xa2, 0x2b, 0x80, 0xea, 0x07, 0xae, 0xd5, 0xb4, - 0x6b, 0x42, 0x59, 0xb2, 0x0d, 0x62, 0x8e, 0x9d, 0x94, 0x97, 0x85, 0x22, 0x43, 0x6b, 0x3d, 0x18, - 0x38, 0xa5, 0x96, 0xf9, 0x9f, 0x06, 0x2c, 0xac, 0x3a, 0x5e, 0xbb, 0x7e, 0xcb, 0x0a, 0x6b, 0x7b, - 0xdc, 0x21, 0x8f, 0x5e, 0x80, 0x82, 0xed, 0x86, 0xc4, 0xdf, 0xb7, 0x1c, 0xa1, 0xdb, 0x4d, 0x79, - 0x67, 0xb1, 0x2e, 0xca, 0xef, 0x77, 0x4a, 0x73, 0x6b, 0x6d, 0x9f, 0x85, 0x34, 0xf0, 0x95, 0x8e, - 0x55, 0x1d, 0xf4, 0x55, 0x03, 0x16, 0xb9, 0x4b, 0x7f, 0xcd, 0x0a, 0xad, 0xeb, 0x6d, 0xe2, 0xdb, - 0x44, 0x3a, 0xf5, 0x47, 0x5c, 0xe4, 0xc9, 0xb6, 0x4a, 0x06, 0x07, 0x91, 0xf9, 0xb5, 0x99, 0xe4, - 0x8c, 0x7b, 0x1b, 0x63, 0x7e, 0x31, 0x0f, 0xa7, 0xfb, 0xd2, 0x42, 0xcb, 0x90, 0xb3, 0xeb, 0xa2, - 0xeb, 0x20, 0xe8, 0xe6, 0xd6, 0xeb, 0x38, 0x67, 0xd7, 0xd1, 0x0a, 0xb3, 0x4c, 0x7c, 0x12, 0x04, - 0xd2, 0xe9, 0x3d, 0xa5, 0x8c, 0x08, 0x51, 0x8a, 0x35, 0x0c, 0x54, 0x82, 0x71, 0xc7, 0xda, 0x21, - 0x8e, 0xb0, 0x12, 0x99, 0xad, 0xb3, 0x41, 0x0b, 0x30, 0x2f, 0x47, 0xbf, 0x6c, 0x00, 0xf0, 0x06, - 0x52, 0x1b, 0x53, 0xec, 0x30, 0x38, 0xdb, 0x61, 0xa2, 0x94, 0x79, 0x2b, 0xa3, 0xff, 0x58, 0xe3, - 0x8a, 0xb6, 0x61, 0x82, 0x9a, 0x3d, 0x5e, 0xfd, 0xc8, 0x1b, 0x0a, 0x74, 0x3b, 0xa5, 0x89, 0x2d, - 0x46, 0x03, 0x0b, 0x5a, 0x74, 0xac, 0x7c, 0x12, 0xb6, 0x7d, 0x97, 0x0e, 0x2d, 0xdb, 0x42, 0x0a, - 0xbc, 0x15, 0x58, 0x95, 0x62, 0x0d, 0xc3, 0xfc, 0x93, 0x1c, 0x2c, 0xa5, 0x35, 0x9d, 0x6a, 0xea, - 0x09, 0xde, 0x5a, 0x71, 0xe0, 0x79, 0x7f, 0xf6, 0xe3, 0x23, 0x6e, 0xa7, 0x54, 0x3c, 0x88, 0xb8, - 0x3d, 0x16, 0x7c, 0xd1, 0xfb, 0xd5, 0x08, 0xe5, 0x8e, 0x38, 0x42, 0x8a, 0x72, 0x62, 0x94, 0x1e, - 0x87, 0xb1, 0x80, 0xce, 0x7c, 0x3e, 0xee, 0x96, 0x66, 0x73, 0xc4, 0x20, 0x14, 0xa3, 0xed, 0xda, - 0xa1, 0x88, 0x33, 0x52, 0x18, 0x37, 0x5c, 0x3b, 0xc4, 0x0c, 0x62, 0x7e, 0x39, 0x07, 0xcb, 0xfd, - 0x3b, 0x85, 0xbe, 0x6c, 0x00, 0xd4, 0xa9, 0x51, 0x4b, 0x45, 0x52, 0xde, 0xe6, 0x59, 0xc7, 0x35, - 0x86, 0x6b, 0x92, 0x53, 0x74, 0xb5, 0xab, 0x8a, 0x02, 0xac, 0x35, 0x04, 0x9d, 0x97, 0xa2, 0x7f, - 0xd5, 0x6a, 0x4a, 0x53, 0x50, 0xd5, 0xd9, 0x54, 0x10, 0xac, 0x61, 0xd1, 0x53, 0x8b, 0x6b, 0x35, - 0x49, 0xd0, 0xb2, 0x54, 0x20, 0x19, 0x3b, 0xb5, 0x5c, 0x95, 0x85, 0x38, 0x82, 0x9b, 0x0e, 0x3c, - 0x31, 0x40, 0x3b, 0x33, 0x0a, 0xea, 0x31, 0x7f, 0x64, 0xc0, 0xa9, 0x55, 0xa7, 0x1d, 0x84, 0xc4, - 0xff, 0x3f, 0x73, 0x53, 0xfe, 0x5f, 0x06, 0x3c, 0xda, 0xa7, 0xcf, 0x0f, 0xe1, 0xc2, 0xfc, 0x95, - 0xf8, 0x85, 0xf9, 0x8d, 0x51, 0x45, 0x3a, 0xb5, 0x1f, 0x7d, 0xee, 0xcd, 0x43, 0x98, 0xa5, 0x5a, - 0xab, 0xee, 0x35, 0x32, 0xda, 0x37, 0x9f, 0x80, 0xf1, 0x8f, 0xd2, 0xfd, 0x27, 0x29, 0x63, 0x6c, - 0x53, 0xc2, 0x1c, 0x66, 0xfe, 0x43, 0x0e, 0xb4, 0xf3, 0xea, 0x43, 0x10, 0x2b, 0x37, 0x26, 0x56, - 0x23, 0x9e, 0x40, 0xb5, 0xd3, 0x77, 0xbf, 0x88, 0xbf, 0xfd, 0x44, 0xc4, 0xdf, 0xd5, 0xcc, 0x38, - 0x1e, 0x1e, 0xf0, 0xf7, 0x86, 0x01, 0x8f, 0x46, 0xc8, 0xbd, 0xae, 0x9f, 0x07, 0xeb, 0x88, 0x67, - 0x61, 0xda, 0x8a, 0xaa, 0x89, 0x59, 0x54, 0x41, 0xae, 0x1a, 0x45, 0xac, 0xe3, 0x45, 0x41, 0x57, - 0xf9, 0x23, 0x06, 0x5d, 0x8d, 0x1d, 0x1e, 0x74, 0x65, 0xfe, 0x38, 0x07, 0x67, 0x7a, 0x7b, 0x26, - 0xa5, 0x7b, 0xb0, 0x9b, 0xd1, 0xe7, 0x60, 0x26, 0x14, 0x15, 0x34, 0x5d, 0xad, 0x42, 0xb4, 0xb7, - 0x35, 0x18, 0x8e, 0x61, 0xd2, 0x9a, 0x35, 0xbe, 0xae, 0xaa, 0x35, 0xaf, 0x25, 0xa3, 0xd3, 0x54, - 0xcd, 0x55, 0x0d, 0x86, 0x63, 0x98, 0x2a, 0x1c, 0x64, 0xec, 0xd8, 0xc3, 0xe7, 0xaa, 0x70, 0x52, - 0x46, 0x05, 0x5c, 0xf4, 0xfc, 0x55, 0xaf, 0xd9, 0x72, 0x08, 0x0b, 0x6a, 0x18, 0x67, 0x8d, 0x3d, - 0x23, 0xaa, 0x9c, 0xc4, 0x69, 0x48, 0x38, 0xbd, 0xae, 0xf9, 0x46, 0x1e, 0x4e, 0x44, 0xc3, 0xbe, - 0xea, 0xb9, 0x75, 0x9b, 0xc5, 0x56, 0x3c, 0x0f, 0x63, 0xe1, 0x41, 0x4b, 0x0e, 0xf6, 0xcf, 0xc8, - 0xe6, 0x6c, 0x1f, 0xb4, 0xe8, 0x6c, 0x9f, 0x4a, 0xa9, 0x42, 0x41, 0x98, 0x55, 0x42, 0x1b, 0x6a, - 0x75, 0xf0, 0x19, 0x78, 0x26, 0x2e, 0xcd, 0xf7, 0x3b, 0xa5, 0x94, 0x17, 0x0a, 0x2b, 0x8a, 0x52, - 0x5c, 0xe6, 0xd1, 0x6d, 0x98, 0x73, 0xac, 0x20, 0xbc, 0xd1, 0xaa, 0x5b, 0x21, 0xd9, 0xb6, 0x9b, - 0x44, 0xac, 0xb9, 0x61, 0x22, 0xe1, 0xd4, 0x6d, 0xe1, 0x46, 0x8c, 0x12, 0x4e, 0x50, 0x46, 0xfb, - 0x80, 0x68, 0xc9, 0xb6, 0x6f, 0xb9, 0x01, 0xef, 0x15, 0xe5, 0x37, 0x7c, 0xe4, 0x9d, 0x3a, 0xe2, - 0x6c, 0xf4, 0x50, 0xc3, 0x29, 0x1c, 0xd0, 0x93, 0x30, 0xe1, 0x13, 0x2b, 0x10, 0x93, 0x39, 0x15, - 0xad, 0x7f, 0xcc, 0x4a, 0xb1, 0x80, 0xea, 0x0b, 0x6a, 0xe2, 0x01, 0x0b, 0xea, 0xfb, 0x06, 0xcc, - 0x45, 0xd3, 0xf4, 0x10, 0xb6, 0xb9, 0x66, 0x7c, 0x9b, 0xbb, 0x9c, 0x95, 0x4a, 0xec, 0xb3, 0xb3, - 0x7d, 0x7d, 0x4c, 0xef, 0x1f, 0x8b, 0x05, 0xfb, 0x18, 0x4c, 0xc9, 0x55, 0x2d, 0xed, 0xc7, 0x11, - 0xfd, 0x24, 0x31, 0xcb, 0x42, 0x0b, 0x56, 0x15, 0x4c, 0x70, 0xc4, 0x8f, 0x6e, 0xac, 0x75, 0xb1, - 0x69, 0x0a, 0xb1, 0x57, 0x1b, 0xab, 0xdc, 0x4c, 0xd3, 0x36, 0x56, 0x59, 0x07, 0xdd, 0x80, 0x53, - 0x2d, 0xdf, 0x63, 0x0f, 0x18, 0xd6, 0x88, 0x55, 0x77, 0x6c, 0x97, 0xc8, 0xe3, 0x38, 0xbf, 0xac, - 0x7e, 0xb4, 0xdb, 0x29, 0x9d, 0xda, 0x4a, 0x47, 0xc1, 0xfd, 0xea, 0xc6, 0x83, 0x6e, 0xc7, 0x1e, - 0x1c, 0x74, 0x8b, 0x7e, 0x55, 0x39, 0xbd, 0x48, 0x50, 0x1c, 0x67, 0x83, 0xf8, 0xc1, 0xac, 0xa6, - 0x32, 0x45, 0xad, 0x47, 0x22, 0x55, 0x16, 0x4c, 0xb1, 0x62, 0xdf, 0xdf, 0xb3, 0x32, 0x71, 0x34, - 0xcf, 0x8a, 0xf9, 0xda, 0x38, 0x2c, 0x24, 0x37, 0xdb, 0xe3, 0x0f, 0x28, 0xfe, 0x0d, 0x03, 0x16, - 0xa4, 0xa0, 0x70, 0x9e, 0x44, 0xba, 0x87, 0x37, 0x32, 0x92, 0x4f, 0x6e, 0x36, 0xa8, 0xd7, 0x1d, - 0xdb, 0x09, 0x6e, 0xb8, 0x87, 0x3f, 0x7a, 0x19, 0xa6, 0x95, 0x17, 0xf5, 0x48, 0xd1, 0xc5, 0xf3, - 0xcc, 0x60, 0x88, 0x48, 0x60, 0x9d, 0x1e, 0x7a, 0xcd, 0x00, 0xa8, 0x49, 0x8d, 0x2e, 0x05, 0xe9, - 0x7a, 0x56, 0x82, 0xa4, 0xf6, 0x8a, 0xc8, 0x2e, 0x54, 0x45, 0x01, 0xd6, 0x18, 0xa3, 0x2f, 0x32, - 0xff, 0xa9, 0x32, 0x64, 0xa8, 0xe8, 0xd0, 0x96, 0x7c, 0x20, 0x6b, 0x91, 0x8e, 0xae, 0xf2, 0x94, - 0xd5, 0xa0, 0x81, 0x02, 0x1c, 0x6b, 0x84, 0xf9, 0x3c, 0xa8, 0x68, 0x30, 0xba, 0x42, 0x59, 0x3c, - 0xd8, 0x96, 0x15, 0xee, 0x09, 0x11, 0x54, 0x2b, 0xf4, 0xa2, 0x04, 0xe0, 0x08, 0xc7, 0xfc, 0x08, - 0xcc, 0x5d, 0xf2, 0xad, 0xd6, 0x9e, 0xcd, 0xfc, 0x94, 0xd4, 0xa8, 0x7f, 0x3b, 0x4c, 0x5a, 0xf5, - 0x7a, 0xda, 0xdb, 0xa8, 0x32, 0x2f, 0xc6, 0x12, 0x3e, 0x98, 0xfd, 0xfe, 0x4d, 0x03, 0x96, 0xd6, - 0x83, 0xd0, 0xf6, 0xd6, 0x48, 0x10, 0x52, 0xb5, 0x40, 0x2d, 0x88, 0xb6, 0x43, 0x06, 0xb0, 0xc1, - 0xd6, 0x60, 0x41, 0x5c, 0xa6, 0xb4, 0x77, 0x02, 0x12, 0x6a, 0x76, 0x98, 0x12, 0xce, 0xd5, 0x04, - 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0xc4, 0xad, 0x4a, 0x44, 0x25, 0x1f, 0xa7, 0x52, 0x4d, 0xc0, 0x71, - 0x4f, 0x0d, 0xf3, 0x3b, 0x79, 0x38, 0xc1, 0xba, 0x91, 0x78, 0xbc, 0xf4, 0x79, 0x03, 0xe6, 0xf6, - 0x6d, 0x3f, 0x6c, 0x5b, 0x8e, 0x7e, 0x3d, 0x34, 0xb2, 0x7c, 0x32, 0x5e, 0x37, 0x63, 0x84, 0xb9, - 0x03, 0x39, 0x5e, 0x86, 0x13, 0xcc, 0xd1, 0xaf, 0x1b, 0x30, 0x5f, 0x8f, 0x8f, 0x74, 0x36, 0x07, - 0xe4, 0xb4, 0x39, 0xe4, 0x51, 0x0d, 0x89, 0x42, 0x9c, 0xe4, 0x8f, 0xbe, 0x64, 0xc0, 0x7c, 0xbc, - 0x99, 0x52, 0x65, 0x1d, 0xc3, 0x20, 0xa9, 0x30, 0xc4, 0x78, 0x79, 0x80, 0x93, 0x4d, 0x30, 0xff, - 0xce, 0x10, 0x53, 0x1a, 0xc7, 0x1c, 0x40, 0x30, 0x4d, 0x98, 0xf0, 0xbd, 0x76, 0x28, 0x9c, 0xbc, - 0x53, 0xdc, 0x17, 0x88, 0x59, 0x09, 0x16, 0x10, 0x74, 0x17, 0xa6, 0x42, 0x27, 0xe0, 0x85, 0xa2, - 0xb7, 0x23, 0x5a, 0xf4, 0xdb, 0x1b, 0x55, 0x46, 0x4e, 0xdb, 0x74, 0x45, 0x09, 0x35, 0x1e, 0x24, - 0x2f, 0xf3, 0x6b, 0x06, 0x4c, 0x5d, 0xf1, 0x76, 0xc4, 0x72, 0xfe, 0x70, 0x06, 0xe7, 0x65, 0xb5, - 0xad, 0xaa, 0x6b, 0x8b, 0xc8, 0x52, 0x7b, 0x21, 0x76, 0x5a, 0x7e, 0x4c, 0xa3, 0xbd, 0xc2, 0xde, - 0x14, 0x53, 0x52, 0x57, 0xbc, 0x9d, 0xbe, 0xee, 0x94, 0xdf, 0x19, 0x87, 0xd9, 0x17, 0xad, 0x03, - 0xe2, 0x86, 0xd6, 0xf0, 0x0a, 0x88, 0x1e, 0x40, 0x5b, 0x2c, 0xaa, 0x4e, 0x33, 0x95, 0xa2, 0x03, - 0x68, 0x04, 0xc2, 0x3a, 0x5e, 0xa4, 0x57, 0xf8, 0x13, 0xc7, 0x34, 0x8d, 0xb0, 0x9a, 0x80, 0xe3, - 0x9e, 0x1a, 0xe8, 0x0a, 0x20, 0x11, 0xc7, 0x5f, 0xae, 0xd5, 0xbc, 0xb6, 0xcb, 0x35, 0x0b, 0x3f, - 0x9b, 0x2a, 0x9b, 0x7d, 0xb3, 0x07, 0x03, 0xa7, 0xd4, 0x42, 0x1f, 0x82, 0x62, 0x8d, 0x51, 0x16, - 0x16, 0x9c, 0x4e, 0x91, 0x5b, 0xf1, 0x2a, 0xa2, 0x75, 0xb5, 0x0f, 0x1e, 0xee, 0x4b, 0x81, 0xb6, - 0x34, 0x08, 0x3d, 0xdf, 0x6a, 0x10, 0x9d, 0xee, 0x44, 0xbc, 0xa5, 0xd5, 0x1e, 0x0c, 0x9c, 0x52, - 0x0b, 0x7d, 0x12, 0xa6, 0xc2, 0x3d, 0x9f, 0x04, 0x7b, 0x9e, 0x53, 0x17, 0xf7, 0x98, 0x23, 0x3a, - 0x2c, 0xc4, 0xec, 0x6f, 0x4b, 0xaa, 0x9a, 0x78, 0xcb, 0x22, 0x1c, 0xf1, 0x44, 0x3e, 0x4c, 0x04, - 0xf4, 0xb4, 0x1c, 0x14, 0x0b, 0x59, 0x58, 0xe5, 0x82, 0x3b, 0x3b, 0x80, 0x6b, 0xae, 0x12, 0xc6, - 0x01, 0x0b, 0x4e, 0xe6, 0xb7, 0x72, 0x30, 0xa3, 0x23, 0x0e, 0xa0, 0x22, 0x3e, 0x6d, 0xc0, 0x4c, - 0xcd, 0x73, 0x43, 0xdf, 0x73, 0xb8, 0x1b, 0x80, 0x2f, 0x90, 0x11, 0xdf, 0x01, 0x32, 0x52, 0x6b, - 0x24, 0xb4, 0x6c, 0x47, 0xf3, 0x28, 0x68, 0x6c, 0x70, 0x8c, 0x29, 0xfa, 0x9c, 0x01, 0xf3, 0x51, - 0x80, 0x47, 0xe4, 0x8f, 0xc8, 0xb4, 0x21, 0x4a, 0xe3, 0x5e, 0x88, 0x73, 0xc2, 0x49, 0xd6, 0xe6, - 0x0e, 0x2c, 0x24, 0x67, 0x9b, 0x0e, 0x65, 0xcb, 0x12, 0x6b, 0x3d, 0x1f, 0x0d, 0xe5, 0x96, 0x15, - 0x04, 0x98, 0x41, 0xd0, 0x3b, 0xa0, 0xd0, 0xb4, 0xfc, 0x86, 0xed, 0x5a, 0x0e, 0x1b, 0xc5, 0xbc, - 0xa6, 0x90, 0x44, 0x39, 0x56, 0x18, 0xe6, 0x0f, 0xc7, 0x60, 0x7a, 0x93, 0x58, 0x41, 0xdb, 0x27, - 0xcc, 0x61, 0x78, 0xec, 0x16, 0x79, 0xec, 0x61, 0x5d, 0x3e, 0xbb, 0x87, 0x75, 0xe8, 0x25, 0x80, - 0x5d, 0xdb, 0xb5, 0x83, 0xbd, 0x23, 0x3e, 0xd9, 0x63, 0x37, 0x4f, 0x17, 0x15, 0x05, 0xac, 0x51, - 0x8b, 0xdc, 0xfb, 0xe3, 0x87, 0xbc, 0xd9, 0x7d, 0xcd, 0xd0, 0x36, 0x8f, 0x89, 0x2c, 0xae, 0x33, - 0xb5, 0x89, 0x59, 0x91, 0x9b, 0xc9, 0x05, 0x37, 0xf4, 0x0f, 0x0e, 0xdd, 0x63, 0xb6, 0xa1, 0xe0, - 0x93, 0xa0, 0xdd, 0xa4, 0x67, 0x8b, 0xc9, 0xa1, 0x87, 0x81, 0x45, 0x43, 0x60, 0x51, 0x1f, 0x2b, - 0x4a, 0xcb, 0xcf, 0xc3, 0x6c, 0xac, 0x09, 0x68, 0x01, 0xf2, 0x77, 0xc8, 0x01, 0x97, 0x13, 0x4c, - 0x7f, 0xa2, 0xa5, 0xd8, 0x25, 0x88, 0x18, 0x96, 0xf7, 0xe6, 0x9e, 0x33, 0xcc, 0x1f, 0x4f, 0x80, - 0xb8, 0x30, 0x1b, 0x40, 0x17, 0xe8, 0x7e, 0xf2, 0xdc, 0x11, 0xfc, 0xe4, 0x57, 0x60, 0xc6, 0x76, - 0xed, 0xd0, 0xb6, 0x1c, 0x76, 0x00, 0x15, 0x7b, 0xd5, 0x93, 0x72, 0xfd, 0xaf, 0x6b, 0xb0, 0x14, - 0x3a, 0xb1, 0xba, 0xe8, 0x3a, 0x8c, 0x33, 0x65, 0x2e, 0xe4, 0x69, 0xf8, 0x5b, 0x3d, 0x76, 0xa1, - 0xcb, 0x23, 0xdb, 0x39, 0x25, 0x66, 0x60, 0xf3, 0x57, 0x94, 0xea, 0xdc, 0x24, 0xc4, 0x2a, 0x32, - 0xb0, 0x13, 0x70, 0xdc, 0x53, 0x83, 0x52, 0xd9, 0xb5, 0x6c, 0xa7, 0xed, 0x93, 0x88, 0xca, 0x44, - 0x9c, 0xca, 0xc5, 0x04, 0x1c, 0xf7, 0xd4, 0x40, 0xbb, 0x30, 0x23, 0xca, 0x78, 0x7c, 0xc3, 0xe4, - 0x11, 0x7b, 0xc9, 0xe2, 0x58, 0x2e, 0x6a, 0x94, 0x70, 0x8c, 0x2e, 0x6a, 0xc3, 0xa2, 0xed, 0xd6, - 0x3c, 0xb7, 0xe6, 0xb4, 0x03, 0x7b, 0x9f, 0x44, 0x61, 0xe5, 0x47, 0x61, 0x76, 0xb2, 0xdb, 0x29, - 0x2d, 0xae, 0x27, 0xc9, 0xe1, 0x5e, 0x0e, 0xe8, 0x53, 0x06, 0x9c, 0xac, 0x79, 0x6e, 0xc0, 0xde, - 0x6a, 0xed, 0x93, 0x0b, 0xbe, 0xef, 0xf9, 0x9c, 0xf7, 0xd4, 0x11, 0x79, 0x33, 0xbf, 0xc7, 0x6a, - 0x1a, 0x49, 0x9c, 0xce, 0x09, 0xbd, 0x02, 0x85, 0x96, 0xef, 0xed, 0xdb, 0x75, 0xe2, 0x8b, 0x58, - 0x99, 0x8d, 0x2c, 0x9e, 0x49, 0x6e, 0x09, 0x9a, 0x91, 0x26, 0x90, 0x25, 0x58, 0xf1, 0x33, 0xff, - 0xa0, 0x00, 0x73, 0x71, 0x74, 0xf4, 0x09, 0x80, 0x96, 0xef, 0x35, 0x49, 0xb8, 0x47, 0x54, 0x78, - 0xf0, 0xd5, 0x51, 0x9f, 0x28, 0x4a, 0x7a, 0xf2, 0x8e, 0x9c, 0x6a, 0xd2, 0xa8, 0x14, 0x6b, 0x1c, - 0x91, 0x0f, 0x93, 0x77, 0xf8, 0x9e, 0x26, 0xb6, 0xf8, 0x17, 0x33, 0x31, 0x48, 0x04, 0x67, 0x16, - 0xd7, 0x2a, 0x8a, 0xb0, 0x64, 0x84, 0x76, 0x20, 0x7f, 0x97, 0xec, 0x64, 0xf3, 0x98, 0xee, 0x16, - 0x11, 0x47, 0x85, 0xca, 0x64, 0xb7, 0x53, 0xca, 0xdf, 0x22, 0x3b, 0x98, 0x12, 0xa7, 0xfd, 0xaa, - 0xf3, 0xdb, 0x3e, 0xa1, 0x2a, 0x46, 0xec, 0x57, 0xec, 0xea, 0x90, 0xf7, 0x4b, 0x14, 0x61, 0xc9, - 0x08, 0xbd, 0x02, 0x53, 0x77, 0xad, 0x7d, 0xb2, 0xeb, 0x7b, 0x6e, 0x28, 0x02, 0x33, 0x46, 0x8c, - 0x40, 0xbd, 0x25, 0xc9, 0x09, 0xbe, 0x6c, 0xb7, 0x55, 0x85, 0x38, 0x62, 0x87, 0xf6, 0xa1, 0xe0, - 0x92, 0xbb, 0x98, 0x38, 0x76, 0x4d, 0x04, 0xff, 0x8d, 0x28, 0xd6, 0x57, 0x05, 0x35, 0xc1, 0x99, - 0x6d, 0x43, 0xb2, 0x0c, 0x2b, 0x5e, 0x74, 0x2e, 0x6f, 0x7b, 0x3b, 0x42, 0x51, 0x8d, 0x38, 0x97, - 0xea, 0xd8, 0xc7, 0xe7, 0xf2, 0x8a, 0xb7, 0x83, 0x29, 0x71, 0xba, 0x46, 0x6a, 0x2a, 0x2a, 0x40, - 0xa8, 0xa9, 0xab, 0xd9, 0x46, 0x43, 0xf0, 0x35, 0x12, 0x95, 0x62, 0x8d, 0x23, 0x1d, 0xdb, 0x86, - 0xf0, 0x32, 0x09, 0x45, 0x35, 0xe2, 0xd8, 0xc6, 0x7d, 0x56, 0x7c, 0x6c, 0x65, 0x19, 0x56, 0xbc, - 0xcc, 0x3f, 0x1d, 0x83, 0x19, 0x3d, 0x29, 0xc2, 0x00, 0x7b, 0xb5, 0x32, 0x17, 0x73, 0xc3, 0x98, - 0x8b, 0xd4, 0xda, 0x6f, 0x46, 0xb6, 0x8d, 0x3c, 0xf0, 0xaf, 0x67, 0x66, 0x2d, 0x45, 0xd6, 0xbe, - 0x56, 0x18, 0xe0, 0x18, 0xd3, 0x21, 0xae, 0x48, 0xa9, 0xfd, 0xc7, 0xcd, 0x00, 0xfe, 0x44, 0x4c, - 0xd9, 0x7f, 0xb1, 0x8d, 0xfd, 0x3c, 0x40, 0x94, 0x1e, 0x41, 0xf8, 0xc9, 0x95, 0x8f, 0x54, 0x4b, - 0xdb, 0xa0, 0x61, 0xa1, 0x27, 0x61, 0x82, 0x6e, 0x94, 0xa4, 0x2e, 0xde, 0x6e, 0xa9, 0x23, 0xd5, - 0x45, 0x56, 0x8a, 0x05, 0x14, 0x3d, 0x47, 0x6d, 0x9a, 0x68, 0x7b, 0x13, 0x4f, 0xb2, 0x96, 0x22, - 0x9b, 0x26, 0x82, 0xe1, 0x18, 0x26, 0x6d, 0x3a, 0xa1, 0xbb, 0x11, 0x93, 0x24, 0xad, 0xe9, 0x6c, - 0x8b, 0xc2, 0x1c, 0xc6, 0x8e, 0xf8, 0x89, 0xdd, 0x8b, 0x6d, 0x56, 0xe3, 0xda, 0x11, 0x3f, 0x01, - 0xc7, 0x3d, 0x35, 0xcc, 0x8f, 0xc0, 0x5c, 0x7c, 0x15, 0xd3, 0x21, 0x6e, 0xf9, 0xde, 0xae, 0xed, - 0x90, 0xa4, 0x73, 0x62, 0x8b, 0x17, 0x63, 0x09, 0x1f, 0xcc, 0x3b, 0xfa, 0x57, 0x79, 0x38, 0x71, - 0xb5, 0x61, 0xbb, 0xf7, 0x12, 0x6e, 0xc5, 0xb4, 0xac, 0x4b, 0xc6, 0xb0, 0x59, 0x97, 0xa2, 0xe0, - 0x73, 0x91, 0xd6, 0x2a, 0x3d, 0xf8, 0x5c, 0xe6, 0xbc, 0x8a, 0xe3, 0xa2, 0xef, 0x1b, 0xf0, 0x98, - 0x55, 0xe7, 0x76, 0x95, 0xe5, 0x88, 0xd2, 0x88, 0xa9, 0x94, 0xf1, 0x60, 0x44, 0x2d, 0xd9, 0xdb, - 0xf9, 0x95, 0xf2, 0x21, 0x5c, 0xf9, 0x69, 0xe1, 0x6d, 0xa2, 0x07, 0x8f, 0x1d, 0x86, 0x8a, 0x0f, - 0x6d, 0xfe, 0xf2, 0x35, 0x78, 0xeb, 0x03, 0x19, 0x0d, 0x75, 0x26, 0xf8, 0xb4, 0x01, 0x53, 0xdc, - 0x6b, 0x86, 0xc9, 0x2e, 0x5d, 0x3c, 0x56, 0xcb, 0xbe, 0x49, 0xfc, 0x40, 0xa6, 0x4e, 0xd0, 0x42, - 0xbd, 0xca, 0x5b, 0xeb, 0x02, 0x82, 0x35, 0x2c, 0xaa, 0x9e, 0xee, 0xd8, 0x6e, 0x5d, 0x4c, 0x93, - 0x52, 0x4f, 0x2f, 0xda, 0x6e, 0x1d, 0x33, 0x88, 0x52, 0x60, 0xf9, 0x7e, 0x0a, 0xcc, 0xfc, 0x5d, - 0x03, 0xe6, 0xd8, 0xdb, 0x92, 0xc8, 0x28, 0x7e, 0x56, 0xdd, 0x08, 0xf3, 0x66, 0x9c, 0x89, 0xdf, - 0x08, 0xdf, 0xef, 0x94, 0xa6, 0xf9, 0x6b, 0x94, 0xf8, 0x05, 0xf1, 0x07, 0xc5, 0xc1, 0x96, 0xdd, - 0x5b, 0xe7, 0x86, 0x3e, 0x77, 0x29, 0x37, 0x4e, 0x55, 0x12, 0xc1, 0x11, 0x3d, 0xf3, 0x8f, 0xf2, - 0x70, 0x22, 0x25, 0x48, 0x9a, 0x9e, 0x39, 0x27, 0x58, 0x9c, 0xa8, 0xbc, 0x75, 0x7d, 0x39, 0xf3, - 0x40, 0xec, 0x15, 0x16, 0x8e, 0x2a, 0x24, 0x49, 0xe9, 0x27, 0x5e, 0x88, 0x05, 0x73, 0xf4, 0x9b, - 0x06, 0x4c, 0x5b, 0x9a, 0xb0, 0xf3, 0x8b, 0xe8, 0x9d, 0xec, 0x1b, 0xd3, 0x23, 0xdb, 0x5a, 0x00, - 0x4d, 0x24, 0xca, 0x7a, 0x5b, 0x96, 0xdf, 0x03, 0xd3, 0x5a, 0x17, 0x86, 0x91, 0xd1, 0xe5, 0x17, - 0x60, 0x61, 0x24, 0x19, 0xff, 0x00, 0x0c, 0x9b, 0x8b, 0x83, 0xee, 0x08, 0x77, 0xf5, 0x27, 0x57, - 0x6a, 0xc4, 0xc5, 0x9b, 0x2b, 0x01, 0x35, 0x77, 0x60, 0x21, 0x69, 0x78, 0x67, 0x7e, 0x19, 0xf5, - 0x2e, 0x18, 0x32, 0x7b, 0x86, 0xf9, 0xd7, 0x39, 0x98, 0x14, 0x2f, 0x2d, 0x1e, 0x42, 0xec, 0xd9, - 0x9d, 0x98, 0x37, 0x7d, 0x3d, 0x93, 0x07, 0x22, 0x7d, 0x03, 0xcf, 0x82, 0x44, 0xe0, 0xd9, 0x8b, - 0xd9, 0xb0, 0x3b, 0x3c, 0xea, 0xec, 0x0b, 0x39, 0x98, 0x4f, 0xbc, 0x5c, 0x41, 0x9f, 0x31, 0x7a, - 0x83, 0x2d, 0x6e, 0x64, 0xfa, 0x38, 0x46, 0x45, 0x36, 0x1e, 0x1e, 0x77, 0x11, 0xc4, 0xf2, 0xf1, - 0x5c, 0xcf, 0x2c, 0x67, 0xdb, 0xa1, 0xa9, 0x79, 0xfe, 0xc5, 0x80, 0xd3, 0x7d, 0xdf, 0xf2, 0xb0, - 0x47, 0xca, 0x7e, 0x1c, 0x2a, 0x64, 0x2f, 0xe3, 0xb7, 0x79, 0xca, 0x8b, 0x9b, 0x7c, 0x57, 0x9a, - 0x64, 0x8f, 0x9e, 0x81, 0x19, 0xa6, 0xc7, 0xe9, 0xf2, 0x09, 0x49, 0x4b, 0x24, 0xdb, 0x62, 0x1e, - 0x93, 0xaa, 0x56, 0x8e, 0x63, 0x58, 0xe6, 0x57, 0x0d, 0x28, 0xf6, 0x7b, 0xb2, 0x3a, 0x80, 0x5d, - 0xfe, 0x0b, 0x89, 0x38, 0xb0, 0x52, 0x4f, 0x1c, 0x58, 0xc2, 0x32, 0x97, 0x21, 0x5f, 0x9a, 0x51, - 0x9c, 0x7f, 0x40, 0x98, 0xd3, 0xe7, 0x0d, 0x38, 0xd5, 0x47, 0x70, 0x7a, 0xe2, 0x01, 0x8d, 0x23, - 0xc7, 0x03, 0xe6, 0x06, 0x8d, 0x07, 0x34, 0xff, 0x36, 0x0f, 0x0b, 0xa2, 0x3d, 0xd1, 0x66, 0xfe, - 0x5c, 0x2c, 0x9a, 0xee, 0x6d, 0x89, 0x68, 0xba, 0xa5, 0x24, 0xfe, 0xff, 0x87, 0xd2, 0xfd, 0x74, - 0x85, 0xd2, 0xfd, 0x24, 0x07, 0x27, 0x53, 0x5f, 0xe6, 0xa2, 0xcf, 0xa6, 0x68, 0xc1, 0x5b, 0x19, - 0x3f, 0x01, 0x1e, 0x50, 0x0f, 0x8e, 0x1a, 0x7f, 0xf6, 0x25, 0x3d, 0xee, 0x8b, 0x1f, 0x13, 0x76, - 0x8f, 0xe1, 0x31, 0xf3, 0x90, 0x21, 0x60, 0xe6, 0xaf, 0xe5, 0xe1, 0xa9, 0x41, 0x09, 0xfd, 0x94, - 0x86, 0x08, 0x07, 0xb1, 0x10, 0xe1, 0x87, 0xb3, 0x43, 0x1d, 0x4f, 0xb4, 0xf0, 0xd7, 0xf2, 0x6a, - 0xdb, 0xeb, 0x95, 0xcf, 0x81, 0x2e, 0x55, 0x26, 0xa9, 0x15, 0x23, 0xf3, 0x6b, 0x45, 0xaa, 0x70, - 0xb2, 0xca, 0x8b, 0xef, 0x77, 0x4a, 0x8b, 0x22, 0xe7, 0x4e, 0x95, 0x84, 0xa2, 0x10, 0xcb, 0x4a, - 0xe8, 0x29, 0x28, 0xf8, 0x1c, 0x2a, 0x83, 0x22, 0xc5, 0x45, 0x11, 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, - 0xa9, 0x99, 0x7d, 0x63, 0xc7, 0xf5, 0x38, 0xf4, 0xb0, 0xfb, 0xaf, 0x97, 0xa1, 0x10, 0xc8, 0x4c, - 0x59, 0xdc, 0x2b, 0xfa, 0xf4, 0x80, 0xb1, 0xb6, 0xf4, 0x94, 0x20, 0xd3, 0x66, 0xf1, 0xfe, 0xa9, - 0xa4, 0x5a, 0x8a, 0x24, 0x32, 0x95, 0x81, 0xce, 0x5d, 0x3c, 0x90, 0x62, 0x9c, 0xbf, 0x61, 0xc0, - 0xb4, 0x98, 0xad, 0x87, 0x10, 0xfe, 0x7b, 0x3b, 0x1e, 0xfe, 0x7b, 0x21, 0x13, 0xdd, 0xd1, 0x27, - 0xf6, 0xf7, 0x36, 0xcc, 0xe8, 0xc9, 0x19, 0xd0, 0x4b, 0x9a, 0xee, 0x33, 0x46, 0x79, 0x04, 0x2e, - 0xb5, 0x63, 0xa4, 0x17, 0xcd, 0xaf, 0x14, 0xd4, 0x28, 0xb2, 0x20, 0x63, 0x5d, 0x06, 0x8d, 0x43, - 0x65, 0x50, 0x17, 0x81, 0x5c, 0xf6, 0x22, 0x70, 0x1d, 0x0a, 0x52, 0x41, 0x89, 0x6d, 0xfc, 0x09, - 0x3d, 0x92, 0x87, 0xda, 0x02, 0x94, 0x98, 0x26, 0xb8, 0xec, 0x54, 0xa1, 0xe6, 0x50, 0x29, 0x4e, - 0x45, 0x06, 0xbd, 0x02, 0xd3, 0x77, 0x3d, 0xff, 0x8e, 0xe3, 0x59, 0x2c, 0x07, 0x1e, 0x64, 0xe1, - 0xdf, 0x56, 0xde, 0x15, 0x1e, 0x30, 0x7a, 0x2b, 0xa2, 0x8f, 0x75, 0x66, 0xa8, 0x0c, 0xf3, 0x4d, - 0xdb, 0xc5, 0xc4, 0xaa, 0xab, 0x28, 0xdf, 0x31, 0x9e, 0xa4, 0x4b, 0x1a, 0xb9, 0x9b, 0x71, 0x30, - 0x4e, 0xe2, 0xa3, 0x8f, 0x41, 0x21, 0x10, 0x09, 0x20, 0xb2, 0xb9, 0x89, 0x50, 0xc7, 0x23, 0x4e, - 0x34, 0x1a, 0x3b, 0x59, 0x82, 0x15, 0x43, 0xb4, 0x01, 0x4b, 0xbe, 0x78, 0x62, 0x1d, 0x4b, 0x6b, - 0xcb, 0xd7, 0x27, 0xcb, 0x05, 0x85, 0x53, 0xe0, 0x38, 0xb5, 0x16, 0xb5, 0x62, 0x58, 0x96, 0x11, - 0xee, 0x92, 0x2d, 0x68, 0xef, 0x32, 0x59, 0x29, 0x16, 0xd0, 0xc3, 0xa2, 0xc6, 0x0b, 0x23, 0x44, - 0x8d, 0x57, 0xe1, 0x64, 0x12, 0xc4, 0x1e, 0x82, 0xb3, 0xb7, 0xe7, 0xda, 0xee, 0xb1, 0x95, 0x86, - 0x84, 0xd3, 0xeb, 0xa2, 0x5b, 0x30, 0xe5, 0x13, 0x76, 0xbe, 0x28, 0xcb, 0xbb, 0xcf, 0xa1, 0x83, - 0x2e, 0xb0, 0x24, 0x80, 0x23, 0x5a, 0x74, 0xde, 0xad, 0x78, 0x9e, 0xaa, 0xeb, 0x19, 0x66, 0x60, - 0x17, 0x73, 0xdf, 0x27, 0x41, 0x83, 0xf9, 0xaf, 0x73, 0x30, 0x1b, 0x3b, 0x46, 0xa3, 0x27, 0x60, - 0x9c, 0xbd, 0x8c, 0x67, 0xea, 0xa1, 0x10, 0xa9, 0x30, 0x3e, 0x38, 0x1c, 0x86, 0xbe, 0x60, 0xc0, - 0x7c, 0x2b, 0xe6, 0xf2, 0x93, 0x9a, 0x73, 0xc4, 0x6b, 0x96, 0xb8, 0x1f, 0x51, 0xcb, 0xf0, 0x18, - 0x67, 0x86, 0x93, 0xdc, 0xe9, 0x02, 0x14, 0x71, 0x48, 0x0e, 0xf1, 0x19, 0xb6, 0xb0, 0x71, 0x14, - 0x89, 0xd5, 0x38, 0x18, 0x27, 0xf1, 0xe9, 0x0c, 0xb3, 0xde, 0x8d, 0x92, 0xaf, 0xba, 0x2c, 0x09, - 0xe0, 0x88, 0x16, 0x7a, 0x01, 0xe6, 0x44, 0x7a, 0xa2, 0x2d, 0xaf, 0x7e, 0xd9, 0x0a, 0xf6, 0x84, - 0x71, 0xaf, 0x0e, 0x23, 0xab, 0x31, 0x28, 0x4e, 0x60, 0xb3, 0xbe, 0x45, 0x39, 0xa0, 0x18, 0x81, - 0x89, 0x78, 0x02, 0xcc, 0xd5, 0x38, 0x18, 0x27, 0xf1, 0xd1, 0x3b, 0x34, 0xbd, 0xcf, 0xaf, 0x49, - 0x94, 0x36, 0x48, 0xd1, 0xfd, 0x65, 0x98, 0x6f, 0xb3, 0xb3, 0x50, 0x5d, 0x02, 0xc5, 0x7a, 0x54, - 0x0c, 0x6f, 0xc4, 0xc1, 0x38, 0x89, 0x8f, 0x9e, 0x87, 0x59, 0x9f, 0x6a, 0x37, 0x45, 0x80, 0xdf, - 0x9d, 0xa8, 0x8b, 0x00, 0xac, 0x03, 0x71, 0x1c, 0x17, 0x5d, 0x82, 0xc5, 0x28, 0x67, 0x8a, 0x24, - 0xc0, 0x2f, 0x53, 0x54, 0x12, 0x82, 0x72, 0x12, 0x01, 0xf7, 0xd6, 0x41, 0xbf, 0x08, 0x0b, 0xda, - 0x48, 0xac, 0xbb, 0x75, 0x72, 0x4f, 0xe4, 0xb5, 0x60, 0x1f, 0xa3, 0x58, 0x4d, 0xc0, 0x70, 0x0f, - 0x36, 0x7a, 0x2f, 0xcc, 0xd5, 0x3c, 0xc7, 0x61, 0x3a, 0x8e, 0x27, 0x5f, 0xe4, 0x09, 0x2c, 0x78, - 0xaa, 0x8f, 0x18, 0x04, 0x27, 0x30, 0xd1, 0x15, 0x40, 0xde, 0x4e, 0x40, 0xfc, 0x7d, 0x52, 0xbf, - 0xc4, 0x3f, 0xf6, 0x42, 0xb7, 0xf8, 0xd9, 0x78, 0x14, 0xe4, 0xb5, 0x1e, 0x0c, 0x9c, 0x52, 0x8b, - 0xe5, 0x30, 0xd0, 0x5e, 0x24, 0xcc, 0x65, 0x91, 0xbd, 0x3a, 0x79, 0x72, 0x7f, 0xe0, 0x73, 0x04, - 0x1f, 0x26, 0x78, 0x50, 0x6a, 0x71, 0x3e, 0x8b, 0x3c, 0x2e, 0x7a, 0x1e, 0xb6, 0x68, 0x8f, 0xe0, - 0xa5, 0x58, 0x70, 0x42, 0x9f, 0x80, 0xa9, 0x1d, 0x99, 0x94, 0xb3, 0xb8, 0x90, 0xc5, 0xbe, 0x98, - 0xc8, 0x2f, 0x1b, 0x9d, 0x4c, 0x15, 0x00, 0x47, 0x2c, 0xd1, 0x93, 0x30, 0x7d, 0x79, 0xab, 0xac, - 0xa4, 0x70, 0x91, 0xcd, 0xfe, 0x18, 0xad, 0x82, 0x75, 0x00, 0x5d, 0x61, 0xca, 0x5e, 0x42, 0x6c, - 0x8a, 0xa3, 0xfd, 0xb6, 0xd7, 0xfc, 0xa1, 0xd8, 0xec, 0xee, 0x0b, 0x57, 0x8b, 0x27, 0x12, 0xd8, - 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x32, 0x4c, 0x8b, 0xfd, 0x82, 0xe9, 0xa6, 0xa5, 0xa3, 0xbd, 0x76, - 0xc1, 0x11, 0x09, 0xac, 0xd3, 0x43, 0xcf, 0xc2, 0x74, 0x8b, 0xe5, 0x2a, 0x24, 0x17, 0xdb, 0x8e, - 0x53, 0x3c, 0xc9, 0xf4, 0xa6, 0xba, 0x14, 0xd8, 0x8a, 0x40, 0x58, 0xc7, 0x43, 0x4f, 0xcb, 0x8b, - 0xeb, 0xb7, 0xc4, 0xee, 0x78, 0xd4, 0xc5, 0xb5, 0xb2, 0x72, 0xfb, 0x84, 0x39, 0x9e, 0x7a, 0xc0, - 0x8d, 0xf1, 0x0e, 0x2c, 0x4b, 0x13, 0xab, 0x77, 0x91, 0x14, 0x8b, 0x31, 0x2f, 0xc1, 0xf2, 0xad, - 0xbe, 0x98, 0xf8, 0x10, 0x2a, 0x68, 0x17, 0xf2, 0x96, 0xb3, 0x53, 0x3c, 0x9d, 0x85, 0xad, 0xa8, - 0x3e, 0xde, 0xa4, 0xe5, 0x35, 0xde, 0xa8, 0x60, 0xca, 0xc0, 0xfc, 0x54, 0xe4, 0x84, 0x56, 0x59, - 0xbe, 0x3e, 0xae, 0x4b, 0xb6, 0x91, 0xc5, 0x07, 0x4a, 0x7a, 0xb2, 0xd7, 0xf2, 0x4d, 0x29, 0x55, - 0xae, 0x5b, 0x6a, 0x2d, 0x67, 0xf2, 0xec, 0x3c, 0x9e, 0xc1, 0x8c, 0x9f, 0xe8, 0xe2, 0x2b, 0xd9, - 0xfc, 0xc1, 0x98, 0x72, 0x44, 0x25, 0xee, 0x9e, 0x7d, 0x18, 0xb7, 0x83, 0xd0, 0xf6, 0x32, 0x7c, - 0xc8, 0x92, 0x48, 0xfd, 0xc5, 0x62, 0x08, 0x19, 0x00, 0x73, 0x56, 0x94, 0xa7, 0xdb, 0xb0, 0xdd, - 0x7b, 0xa2, 0xfb, 0xd7, 0x33, 0xbf, 0x54, 0xe6, 0x3c, 0x19, 0x00, 0x73, 0x56, 0xe8, 0x36, 0x97, - 0xb6, 0x6c, 0x3e, 0x46, 0x93, 0xfc, 0xc6, 0x14, 0x8f, 0xc0, 0x91, 0x12, 0x47, 0x79, 0x05, 0x4d, - 0x5b, 0xd8, 0x31, 0x23, 0xf2, 0xaa, 0x6e, 0xae, 0xa7, 0xf1, 0xaa, 0x6e, 0xae, 0x63, 0xca, 0x04, - 0x7d, 0xc6, 0x00, 0xb0, 0xd4, 0xc7, 0x96, 0xb2, 0x49, 0xf5, 0xdc, 0xef, 0xe3, 0x4d, 0x3c, 0xec, - 0x27, 0x82, 0x62, 0x8d, 0xb3, 0xf9, 0xba, 0x01, 0x8b, 0x3d, 0x8d, 0x4d, 0x7e, 0x1a, 0xcb, 0x18, - 0xf0, 0xd3, 0x58, 0x6b, 0xb0, 0x20, 0x92, 0xc3, 0x55, 0x5b, 0x8e, 0x9d, 0xfa, 0x18, 0x6c, 0x3b, - 0x01, 0xc7, 0x3d, 0x35, 0xcc, 0x3f, 0x37, 0x60, 0x5a, 0x8b, 0x5d, 0xa7, 0xf6, 0x35, 0x8b, 0xf1, - 0x17, 0xcd, 0x88, 0xf2, 0xe2, 0x31, 0xdf, 0x1b, 0x87, 0x71, 0x37, 0x70, 0x43, 0x4b, 0x7f, 0x14, - 0xb9, 0x81, 0x69, 0x29, 0x16, 0x50, 0x9e, 0xd8, 0x86, 0xf0, 0xcf, 0x9e, 0xe5, 0xf5, 0xc4, 0x36, - 0xa4, 0x85, 0x19, 0x84, 0xb1, 0xa3, 0x8a, 0x5e, 0xc4, 0xe7, 0x68, 0x69, 0xf8, 0x2c, 0x6a, 0xce, - 0x33, 0x18, 0x3a, 0x03, 0x79, 0xe2, 0xd6, 0x85, 0x55, 0xaa, 0x94, 0xd7, 0x05, 0xb7, 0x8e, 0x69, - 0xb9, 0x79, 0x0d, 0x66, 0xaa, 0xa4, 0xe6, 0x93, 0xf0, 0x45, 0x72, 0x30, 0x70, 0x96, 0xf7, 0x3b, - 0xe4, 0x20, 0x99, 0xe5, 0x9d, 0x56, 0xa7, 0xe5, 0xe6, 0xef, 0x1b, 0x90, 0xc8, 0x8a, 0xa8, 0xb9, - 0x84, 0x8c, 0x7e, 0x2e, 0xa1, 0x98, 0xf3, 0x22, 0x77, 0xa8, 0xf3, 0xe2, 0x0a, 0xa0, 0xa6, 0x15, - 0xd6, 0xf6, 0x62, 0x39, 0x3b, 0xc5, 0x81, 0x20, 0x7a, 0x29, 0xd3, 0x83, 0x81, 0x53, 0x6a, 0x99, - 0xaf, 0x1a, 0xd0, 0xf3, 0xd5, 0x32, 0xba, 0x8d, 0x11, 0x91, 0x40, 0x9b, 0x9f, 0x93, 0xd4, 0x36, - 0x26, 0xf3, 0x66, 0x4b, 0x38, 0x35, 0xa6, 0xa5, 0x3b, 0x46, 0x1e, 0x6e, 0xf9, 0x9b, 0x02, 0x65, - 0x4c, 0xaf, 0xc5, 0xc1, 0x38, 0x89, 0x6f, 0xde, 0x84, 0x82, 0x7c, 0x78, 0xc5, 0x5e, 0x2f, 0xc8, - 0xe3, 0x99, 0xfe, 0x7a, 0x81, 0x9e, 0xce, 0x18, 0x84, 0x0e, 0x53, 0xe0, 0xda, 0x97, 0xbd, 0x20, - 0x94, 0xaf, 0xc5, 0xb8, 0x13, 0xe6, 0xea, 0x3a, 0x2b, 0xc3, 0x0a, 0x6a, 0x2e, 0xc2, 0xbc, 0xf2, - 0xae, 0x70, 0xa1, 0x37, 0xbf, 0x95, 0x87, 0x99, 0xd8, 0x27, 0x4a, 0x1e, 0x3c, 0xd9, 0x83, 0x4f, - 0x4b, 0x8a, 0x97, 0x24, 0x3f, 0xa4, 0x97, 0x44, 0x77, 0x4b, 0x8d, 0x1d, 0xaf, 0x5b, 0x6a, 0x3c, - 0x1b, 0xb7, 0x54, 0x08, 0x93, 0xe2, 0x3b, 0x7d, 0x22, 0xca, 0x73, 0x33, 0xa3, 0x57, 0xd3, 0xe2, - 0xf9, 0x21, 0x0b, 0x6c, 0x95, 0x0a, 0x4c, 0xb2, 0x32, 0xbf, 0x31, 0x0e, 0x73, 0xf1, 0x77, 0xd4, - 0x03, 0xcc, 0xe4, 0x3b, 0x7a, 0x66, 0x72, 0xc8, 0x53, 0x62, 0x7e, 0xd4, 0x53, 0xe2, 0xd8, 0xa8, - 0xa7, 0xc4, 0xf1, 0x23, 0x9c, 0x12, 0x7b, 0xcf, 0x78, 0x13, 0x03, 0x9f, 0xf1, 0xde, 0xa7, 0xae, - 0x38, 0x27, 0x63, 0x77, 0x02, 0xd1, 0x15, 0x27, 0x8a, 0x4f, 0xc3, 0xaa, 0x57, 0x4f, 0xbd, 0x2a, - 0x2e, 0x3c, 0xc0, 0x1a, 0xf6, 0x53, 0x6f, 0x24, 0x87, 0x77, 0x44, 0xbd, 0x65, 0x88, 0xdb, 0xc8, - 0xe8, 0x53, 0x94, 0x6c, 0xf3, 0x83, 0xf8, 0xc6, 0x59, 0x8d, 0x40, 0x58, 0xc7, 0x63, 0x1f, 0xec, - 0x88, 0x7f, 0xa1, 0x84, 0x1d, 0xba, 0xf5, 0x0f, 0x76, 0x24, 0xbe, 0x68, 0x92, 0xc4, 0x37, 0xbf, - 0x9e, 0x87, 0xb9, 0x78, 0xc2, 0x65, 0x74, 0x57, 0x19, 0xac, 0x99, 0xd8, 0xca, 0x9c, 0xac, 0xf6, - 0x92, 0xb8, 0xef, 0x09, 0x94, 0x7f, 0x20, 0x71, 0x47, 0x3d, 0x6b, 0x3e, 0x3e, 0xc6, 0xe2, 0xe8, - 0x27, 0xd8, 0xb1, 0x1c, 0xcd, 0x51, 0x40, 0xa1, 0xb8, 0xd6, 0xcc, 0x9c, 0x7b, 0x14, 0x22, 0xa8, - 0x58, 0x61, 0x8d, 0x2d, 0x55, 0xef, 0xfb, 0xc4, 0xb7, 0x77, 0x6d, 0xf5, 0xb1, 0x08, 0xa6, 0x3c, - 0x6f, 0x8a, 0x32, 0xac, 0xa0, 0xe6, 0xab, 0x39, 0x88, 0x3e, 0x8d, 0xc3, 0x72, 0xbf, 0x06, 0x9a, - 0xd9, 0x20, 0xa6, 0xed, 0xca, 0xa8, 0x09, 0x96, 0x23, 0x8a, 0x22, 0x02, 0x44, 0x2b, 0xc1, 0x31, - 0x8e, 0xff, 0x03, 0x9f, 0xc4, 0xb1, 0x60, 0x3e, 0xf1, 0x00, 0x20, 0xf3, 0x88, 0xb2, 0xaf, 0xe4, - 0x61, 0x4a, 0x3d, 0xa1, 0x40, 0xef, 0x61, 0x69, 0x1b, 0xf7, 0x3c, 0x99, 0x4c, 0xf3, 0xad, 0x5a, - 0x72, 0xc5, 0x3d, 0xaf, 0x7e, 0xbf, 0x53, 0x9a, 0x57, 0xc8, 0xbc, 0x08, 0x8b, 0x0a, 0xd4, 0x48, - 0x6b, 0xfb, 0x4e, 0xd2, 0x48, 0xbb, 0x81, 0x37, 0x30, 0x2d, 0x47, 0xf7, 0x60, 0x72, 0x8f, 0x58, - 0x75, 0xe2, 0xcb, 0x0b, 0xf5, 0xcd, 0x8c, 0x9e, 0x7d, 0x5c, 0x66, 0x54, 0xa3, 0x61, 0xe0, 0xff, - 0x03, 0x2c, 0xd9, 0xd1, 0x8d, 0x6a, 0xc7, 0xab, 0x1f, 0x24, 0x93, 0x31, 0x56, 0xbc, 0xfa, 0x01, - 0x66, 0x10, 0xf4, 0x02, 0xcc, 0x85, 0x76, 0x93, 0xd0, 0xd3, 0xb4, 0xf6, 0xe1, 0x91, 0x7c, 0xe4, - 0x51, 0xdd, 0x8e, 0x41, 0x71, 0x02, 0x9b, 0x6e, 0x74, 0xb7, 0x03, 0xcf, 0x65, 0x49, 0x2b, 0x26, - 0xe2, 0xee, 0x97, 0x2b, 0xd5, 0x6b, 0x57, 0x59, 0xce, 0x0a, 0x85, 0x41, 0xb1, 0x6d, 0x16, 0xa7, - 0xed, 0x13, 0x71, 0xa1, 0xb1, 0x10, 0xbd, 0xa6, 0xe3, 0xe5, 0x58, 0x61, 0x98, 0x37, 0x60, 0x3e, - 0xd1, 0x55, 0x69, 0x0e, 0x1b, 0xe9, 0xe6, 0xf0, 0x60, 0x99, 0x0f, 0xff, 0xd8, 0x80, 0xc5, 0x9e, - 0xc5, 0x3b, 0x68, 0xa8, 0x63, 0x52, 0x93, 0xe7, 0x8e, 0xae, 0xc9, 0xf3, 0xc3, 0x69, 0xf2, 0xca, - 0xca, 0xb7, 0xdf, 0x3c, 0xfb, 0xc8, 0x77, 0xde, 0x3c, 0xfb, 0xc8, 0x77, 0xdf, 0x3c, 0xfb, 0xc8, - 0xab, 0xdd, 0xb3, 0xc6, 0xb7, 0xbb, 0x67, 0x8d, 0xef, 0x74, 0xcf, 0x1a, 0xdf, 0xed, 0x9e, 0x35, - 0x7e, 0xd0, 0x3d, 0x6b, 0xbc, 0xfe, 0xc3, 0xb3, 0x8f, 0xbc, 0x54, 0x90, 0x62, 0xf2, 0xdf, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x1f, 0xc4, 0x47, 0xcd, 0xdf, 0x7c, 0x00, 0x00, + // 6862 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x8c, 0x24, 0x57, + 0x75, 0xb0, 0xab, 0x7f, 0x66, 0x7a, 0xce, 0xfc, 0xdf, 0x9d, 0x65, 0xc7, 0x6b, 0xef, 0xb6, 0x29, + 0x23, 0x7f, 0xe6, 0xfb, 0x60, 0x16, 0xd6, 0xf6, 0x17, 0x83, 0x91, 0x95, 0xee, 0x99, 0x5d, 0xef, + 0xac, 0x67, 0x76, 0x67, 0x6f, 0xcf, 0x7a, 0xc1, 0x60, 0x42, 0x4d, 0xf7, 0x9d, 0x9e, 0xda, 0xad, + 0xae, 0x6a, 0xaa, 0xaa, 0x67, 0x77, 0x0c, 0x02, 0x3b, 0xc8, 0x0e, 0x89, 0x40, 0x38, 0x01, 0x1e, + 0xa2, 0x88, 0x08, 0x45, 0x3c, 0x44, 0x21, 0x0f, 0x11, 0x4a, 0x94, 0x17, 0xa4, 0x44, 0x09, 0x48, + 0xe4, 0x21, 0x11, 0x91, 0x92, 0x00, 0x11, 0x74, 0xa0, 0x09, 0x0f, 0x89, 0x22, 0x45, 0x91, 0x88, + 0x22, 0x56, 0x8a, 0x14, 0xdd, 0xdf, 0xba, 0x55, 0x5d, 0x3d, 0xdb, 0x3d, 0x5d, 0xb3, 0x58, 0x49, + 0xde, 0xba, 0xef, 0x39, 0xf7, 0x9c, 0xfb, 0x73, 0xee, 0xb9, 0xe7, 0xdc, 0x73, 0xee, 0x2d, 0xd8, + 0x68, 0xda, 0xe1, 0x5e, 0x67, 0x67, 0xa5, 0xee, 0xb5, 0xce, 0x59, 0x7e, 0xd3, 0x6b, 0xfb, 0xde, + 0x4d, 0xf6, 0xe3, 0x9d, 0xbe, 0xe7, 0x38, 0x5e, 0x27, 0x0c, 0xce, 0xb5, 0x6f, 0x35, 0xcf, 0x59, + 0x6d, 0x3b, 0x38, 0xa7, 0x4a, 0xf6, 0xdf, 0x6d, 0x39, 0xed, 0x3d, 0xeb, 0xdd, 0xe7, 0x9a, 0xc4, + 0x25, 0xbe, 0x15, 0x92, 0xc6, 0x4a, 0xdb, 0xf7, 0x42, 0x0f, 0xbd, 0x2f, 0xa2, 0xb6, 0x22, 0xa9, + 0xb1, 0x1f, 0xbf, 0x24, 0xeb, 0xae, 0xb4, 0x6f, 0x35, 0x57, 0x28, 0xb5, 0x15, 0x55, 0x22, 0xa9, + 0x9d, 0x7e, 0xa7, 0xd6, 0x96, 0xa6, 0xd7, 0xf4, 0xce, 0x31, 0xa2, 0x3b, 0x9d, 0x5d, 0xf6, 0x8f, + 0xfd, 0x61, 0xbf, 0x38, 0xb3, 0xd3, 0x8f, 0xde, 0x7a, 0x3a, 0x58, 0xb1, 0x3d, 0xda, 0xb6, 0x73, + 0x3b, 0x56, 0x58, 0xdf, 0x3b, 0xb7, 0xdf, 0xd7, 0xa2, 0xd3, 0xa6, 0x86, 0x54, 0xf7, 0x7c, 0x92, + 0x86, 0xf3, 0x64, 0x84, 0xd3, 0xb2, 0xea, 0x7b, 0xb6, 0x4b, 0xfc, 0x83, 0xa8, 0xd7, 0x2d, 0x12, + 0x5a, 0x69, 0xb5, 0xce, 0x0d, 0xaa, 0xe5, 0x77, 0xdc, 0xd0, 0x6e, 0x91, 0xbe, 0x0a, 0xff, 0xff, + 0x5e, 0x15, 0x82, 0xfa, 0x1e, 0x69, 0x59, 0x7d, 0xf5, 0x9e, 0x18, 0x54, 0xaf, 0x13, 0xda, 0xce, + 0x39, 0xdb, 0x0d, 0x83, 0xd0, 0x4f, 0x56, 0x32, 0xbf, 0x91, 0x87, 0xa9, 0xca, 0x46, 0xb5, 0x16, + 0x5a, 0x61, 0x27, 0x40, 0xaf, 0x1b, 0x30, 0xe3, 0x78, 0x56, 0xa3, 0x6a, 0x39, 0x96, 0x5b, 0x27, + 0xfe, 0xb2, 0xf1, 0x88, 0xf1, 0xf8, 0xf4, 0xf9, 0x8d, 0x95, 0x71, 0xe6, 0x6b, 0xa5, 0x72, 0x3b, + 0xc0, 0x24, 0xf0, 0x3a, 0x7e, 0x9d, 0x60, 0xb2, 0x5b, 0x5d, 0xfa, 0x56, 0xb7, 0xfc, 0x40, 0xaf, + 0x5b, 0x9e, 0xd9, 0xd0, 0x38, 0xe1, 0x18, 0x5f, 0xf4, 0x45, 0x03, 0x16, 0xeb, 0x96, 0x6b, 0xf9, + 0x07, 0xdb, 0x96, 0xdf, 0x24, 0xe1, 0x73, 0xbe, 0xd7, 0x69, 0x2f, 0xe7, 0x8e, 0xa1, 0x35, 0x0f, + 0x8a, 0xd6, 0x2c, 0xae, 0x26, 0xd9, 0xe1, 0xfe, 0x16, 0xb0, 0x76, 0x05, 0xa1, 0xb5, 0xe3, 0x10, + 0xbd, 0x5d, 0xf9, 0xe3, 0x6c, 0x57, 0x2d, 0xc9, 0x0e, 0xf7, 0xb7, 0xc0, 0x7c, 0x2d, 0x0f, 0x8b, + 0x95, 0x8d, 0xea, 0xb6, 0x6f, 0xed, 0xee, 0xda, 0x75, 0xec, 0x75, 0x42, 0xdb, 0x6d, 0xa2, 0xb7, + 0xc3, 0xa4, 0xed, 0x36, 0x7d, 0x12, 0x04, 0x6c, 0x22, 0xa7, 0xaa, 0xf3, 0x82, 0xe8, 0xe4, 0x3a, + 0x2f, 0xc6, 0x12, 0x8e, 0x9e, 0x82, 0xe9, 0x80, 0xf8, 0xfb, 0x76, 0x9d, 0x6c, 0x79, 0x7e, 0xc8, + 0x46, 0xba, 0x58, 0x3d, 0x21, 0xd0, 0xa7, 0x6b, 0x11, 0x08, 0xeb, 0x78, 0xb4, 0x9a, 0xef, 0x79, + 0xa1, 0x80, 0xb3, 0x81, 0x98, 0x8a, 0xaa, 0xe1, 0x08, 0x84, 0x75, 0x3c, 0xf4, 0x86, 0x01, 0x0b, + 0x41, 0x68, 0xd7, 0x6f, 0xd9, 0x2e, 0x09, 0x82, 0x55, 0xcf, 0xdd, 0xb5, 0x9b, 0xcb, 0x45, 0x36, + 0x8a, 0x57, 0xc6, 0x1b, 0xc5, 0x5a, 0x82, 0x6a, 0x75, 0xa9, 0xd7, 0x2d, 0x2f, 0x24, 0x4b, 0x71, + 0x1f, 0x77, 0xb4, 0x06, 0x0b, 0x96, 0xeb, 0x7a, 0xa1, 0x15, 0xda, 0x9e, 0xbb, 0xe5, 0x93, 0x5d, + 0xfb, 0xce, 0x72, 0x81, 0x75, 0x67, 0x59, 0x74, 0x67, 0xa1, 0x92, 0x80, 0xe3, 0xbe, 0x1a, 0xe6, + 0x1a, 0x2c, 0x57, 0x5a, 0x3b, 0x56, 0x10, 0x58, 0x0d, 0xcf, 0x4f, 0xcc, 0xc6, 0xe3, 0x50, 0x6a, + 0x59, 0xed, 0xb6, 0xed, 0x36, 0xe9, 0x74, 0xe4, 0x1f, 0x9f, 0xaa, 0xce, 0xf4, 0xba, 0xe5, 0xd2, + 0xa6, 0x28, 0xc3, 0x0a, 0x6a, 0x7e, 0x2f, 0x07, 0xd3, 0x15, 0xd7, 0x72, 0x0e, 0x02, 0x3b, 0xc0, + 0x1d, 0x17, 0x7d, 0x04, 0x4a, 0x54, 0xbb, 0x34, 0xac, 0xd0, 0x12, 0x2b, 0xf2, 0x5d, 0x2b, 0x7c, + 0xb1, 0xaf, 0xe8, 0x8b, 0x3d, 0x1a, 0x17, 0x8a, 0xbd, 0xb2, 0xff, 0xee, 0x95, 0xab, 0x3b, 0x37, + 0x49, 0x3d, 0xdc, 0x24, 0xa1, 0x55, 0x45, 0xa2, 0x17, 0x10, 0x95, 0x61, 0x45, 0x15, 0x79, 0x50, + 0x08, 0xda, 0xa4, 0x2e, 0x56, 0xd8, 0xe6, 0x98, 0x92, 0x1c, 0x35, 0xbd, 0xd6, 0x26, 0xf5, 0xea, + 0x8c, 0x60, 0x5d, 0xa0, 0xff, 0x30, 0x63, 0x84, 0x6e, 0xc3, 0x44, 0xc0, 0x74, 0x8e, 0x58, 0x3c, + 0x57, 0xb3, 0x63, 0xc9, 0xc8, 0x56, 0xe7, 0x04, 0xd3, 0x09, 0xfe, 0x1f, 0x0b, 0x76, 0xe6, 0xdf, + 0x1b, 0x70, 0x42, 0xc3, 0xae, 0xf8, 0xcd, 0x4e, 0x8b, 0xb8, 0x21, 0x7a, 0x04, 0x0a, 0xae, 0xd5, + 0x22, 0x62, 0xa1, 0xa8, 0x26, 0x5f, 0xb1, 0x5a, 0x04, 0x33, 0x08, 0x7a, 0x14, 0x8a, 0xfb, 0x96, + 0xd3, 0x21, 0x6c, 0x90, 0xa6, 0xaa, 0xb3, 0x02, 0xa5, 0xf8, 0x02, 0x2d, 0xc4, 0x1c, 0x86, 0x3e, + 0x0e, 0x53, 0xec, 0xc7, 0x45, 0xdf, 0x6b, 0x65, 0xd4, 0x35, 0xd1, 0xc2, 0x17, 0x24, 0xd9, 0xea, + 0x6c, 0xaf, 0x5b, 0x9e, 0x52, 0x7f, 0x71, 0xc4, 0xd0, 0xfc, 0x07, 0x03, 0xe6, 0xb5, 0xce, 0x6d, + 0xd8, 0x41, 0x88, 0x3e, 0xd4, 0x27, 0x3c, 0x2b, 0xc3, 0x09, 0x0f, 0xad, 0xcd, 0x44, 0x67, 0x41, + 0xf4, 0xb4, 0x24, 0x4b, 0x34, 0xc1, 0x71, 0xa1, 0x68, 0x87, 0xa4, 0x15, 0x2c, 0xe7, 0x1e, 0xc9, + 0x3f, 0x3e, 0x7d, 0x7e, 0x3d, 0xb3, 0x69, 0x8c, 0xc6, 0x77, 0x9d, 0xd2, 0xc7, 0x9c, 0x8d, 0xf9, + 0xb5, 0x42, 0xac, 0x87, 0x54, 0xa2, 0x90, 0x07, 0x93, 0x2d, 0x12, 0xfa, 0x76, 0x9d, 0xaf, 0xab, + 0xe9, 0xf3, 0x6b, 0xe3, 0xb5, 0x62, 0x93, 0x11, 0x8b, 0x94, 0x25, 0xff, 0x1f, 0x60, 0xc9, 0x05, + 0xed, 0x41, 0xc1, 0xf2, 0x9b, 0xb2, 0xcf, 0x17, 0xb3, 0x99, 0xdf, 0x48, 0xe6, 0x2a, 0x7e, 0x33, + 0xc0, 0x8c, 0x03, 0x3a, 0x07, 0x53, 0x21, 0xf1, 0x5b, 0xb6, 0x6b, 0x85, 0x5c, 0xbb, 0x96, 0xaa, + 0x8b, 0x02, 0x6d, 0x6a, 0x5b, 0x02, 0x70, 0x84, 0x83, 0x1c, 0x98, 0x68, 0xf8, 0x07, 0xb8, 0xe3, + 0x2e, 0x17, 0xb2, 0x18, 0x8a, 0x35, 0x46, 0x2b, 0x5a, 0x4c, 0xfc, 0x3f, 0x16, 0x3c, 0xd0, 0x57, + 0x0c, 0x58, 0x6a, 0x11, 0x2b, 0xe8, 0xf8, 0x84, 0x76, 0x01, 0x93, 0x90, 0xb8, 0x54, 0x1b, 0x2e, + 0x17, 0x19, 0x73, 0x3c, 0xee, 0x3c, 0xf4, 0x53, 0xae, 0x3e, 0x2c, 0x9a, 0xb2, 0x94, 0x06, 0xc5, + 0xa9, 0xad, 0x31, 0xbf, 0x57, 0x80, 0xc5, 0x3e, 0x0d, 0x81, 0x9e, 0x84, 0x62, 0x7b, 0xcf, 0x0a, + 0xe4, 0x92, 0x3f, 0x2b, 0xe5, 0x6d, 0x8b, 0x16, 0xde, 0xed, 0x96, 0x67, 0x65, 0x15, 0x56, 0x80, + 0x39, 0x32, 0xdd, 0x53, 0x5b, 0x24, 0x08, 0xac, 0xa6, 0xd4, 0x03, 0x9a, 0x98, 0xb0, 0x62, 0x2c, + 0xe1, 0xe8, 0x57, 0x0c, 0x98, 0xe5, 0x22, 0x83, 0x49, 0xd0, 0x71, 0x42, 0xaa, 0xeb, 0xe8, 0xb0, + 0x5c, 0xce, 0x42, 0x3c, 0x39, 0xc9, 0xea, 0x49, 0xc1, 0x7d, 0x56, 0x2f, 0x0d, 0x70, 0x9c, 0x2f, + 0xba, 0x01, 0x53, 0x41, 0x68, 0xf9, 0x21, 0x69, 0x54, 0x42, 0xb6, 0xab, 0x4d, 0x9f, 0xff, 0xbf, + 0xc3, 0x29, 0x81, 0x6d, 0xbb, 0x45, 0xb8, 0xc2, 0xa9, 0x49, 0x02, 0x38, 0xa2, 0x85, 0x3e, 0x0e, + 0xe0, 0x77, 0xdc, 0x5a, 0xa7, 0xd5, 0xb2, 0xfc, 0x03, 0xb1, 0x83, 0x5f, 0x1a, 0xaf, 0x7b, 0x58, + 0xd1, 0x8b, 0xf6, 0xac, 0xa8, 0x0c, 0x6b, 0xfc, 0xd0, 0xab, 0x06, 0xcc, 0x72, 0x49, 0x94, 0x2d, + 0x98, 0xc8, 0xb8, 0x05, 0x8b, 0x74, 0x68, 0xd7, 0x74, 0x16, 0x38, 0xce, 0xd1, 0xfc, 0xdb, 0xf8, + 0x7e, 0x52, 0x0b, 0xa9, 0x75, 0xdd, 0x3c, 0x40, 0x1f, 0x84, 0x07, 0x83, 0x4e, 0xbd, 0x4e, 0x82, + 0x60, 0xb7, 0xe3, 0xe0, 0x8e, 0x7b, 0xc9, 0x0e, 0x42, 0xcf, 0x3f, 0xd8, 0xb0, 0x5b, 0x76, 0xc8, + 0x24, 0xae, 0x58, 0x3d, 0xd3, 0xeb, 0x96, 0x1f, 0xac, 0x0d, 0x42, 0xc2, 0x83, 0xeb, 0x23, 0x0b, + 0x1e, 0xea, 0xb8, 0x83, 0xc9, 0x73, 0xeb, 0xad, 0xdc, 0xeb, 0x96, 0x1f, 0xba, 0x3e, 0x18, 0x0d, + 0x1f, 0x46, 0xc3, 0xfc, 0x67, 0x03, 0x16, 0x64, 0xbf, 0xb6, 0x49, 0xab, 0xed, 0x50, 0xed, 0x72, + 0xfc, 0x86, 0x48, 0x18, 0x33, 0x44, 0x70, 0x36, 0xdb, 0x89, 0x6c, 0xff, 0x20, 0x6b, 0xc4, 0xfc, + 0x27, 0x03, 0x96, 0x92, 0xc8, 0xf7, 0x61, 0xf3, 0x0c, 0xe2, 0x9b, 0xe7, 0x95, 0x6c, 0x7b, 0x3b, + 0x60, 0x07, 0x7d, 0xbd, 0xd0, 0xdf, 0xd7, 0xff, 0xee, 0xdb, 0x68, 0xb4, 0x2b, 0xe6, 0x7f, 0x9e, + 0xbb, 0x62, 0xe1, 0x4d, 0xb5, 0x2b, 0xfe, 0x6e, 0x01, 0x66, 0x2a, 0x6e, 0x68, 0x57, 0x76, 0x77, + 0x6d, 0xd7, 0x0e, 0x0f, 0xd0, 0x67, 0x72, 0x70, 0xae, 0xed, 0x93, 0x5d, 0xe2, 0xfb, 0xa4, 0xb1, + 0xd6, 0xf1, 0x6d, 0xb7, 0x59, 0xab, 0xef, 0x91, 0x46, 0xc7, 0xb1, 0xdd, 0xe6, 0x7a, 0xd3, 0xf5, + 0x54, 0xf1, 0x85, 0x3b, 0xa4, 0xde, 0x61, 0x5d, 0xe2, 0x8b, 0xa2, 0x35, 0x5e, 0x97, 0xb6, 0x46, + 0x63, 0x5a, 0x7d, 0xa2, 0xd7, 0x2d, 0x9f, 0x1b, 0xb1, 0x12, 0x1e, 0xb5, 0x6b, 0xe8, 0xd3, 0x39, + 0x58, 0xf1, 0xc9, 0x47, 0x3b, 0xf6, 0xf0, 0xa3, 0xc1, 0xb5, 0x96, 0x33, 0xe6, 0xf6, 0x33, 0x12, + 0xcf, 0xea, 0xf9, 0x5e, 0xb7, 0x3c, 0x62, 0x1d, 0x3c, 0x62, 0xbf, 0xcc, 0x3f, 0x37, 0xa0, 0x34, + 0x82, 0xa7, 0x54, 0x8e, 0x7b, 0x4a, 0x53, 0x7d, 0x5e, 0x52, 0xd8, 0xef, 0x25, 0x3d, 0x37, 0xde, + 0xa0, 0x0d, 0xe3, 0x1d, 0xfd, 0xab, 0x01, 0x8b, 0x7d, 0xde, 0x14, 0xda, 0x83, 0xa5, 0xb6, 0xd7, + 0x90, 0x9a, 0xf0, 0x92, 0x15, 0xec, 0x31, 0x98, 0xe8, 0xde, 0x93, 0x74, 0x51, 0x6d, 0xa5, 0xc0, + 0xef, 0x76, 0xcb, 0xcb, 0x8a, 0x48, 0x02, 0x01, 0xa7, 0x52, 0x44, 0x6d, 0x28, 0xed, 0xda, 0xc4, + 0x69, 0x60, 0xb2, 0x2b, 0x24, 0x65, 0x4c, 0x9d, 0x77, 0x51, 0x50, 0xe3, 0x07, 0x09, 0xf2, 0x1f, + 0x56, 0x5c, 0xcc, 0x6b, 0x30, 0x17, 0x3f, 0x56, 0x1a, 0x62, 0xf2, 0xce, 0x40, 0xde, 0xf2, 0x5d, + 0x31, 0x75, 0xd3, 0x02, 0x21, 0x5f, 0xc1, 0x57, 0x30, 0x2d, 0x37, 0x7f, 0x56, 0x80, 0xf9, 0xaa, + 0xd3, 0x21, 0xcf, 0xf9, 0x84, 0x48, 0x4b, 0xba, 0x02, 0xf3, 0x6d, 0x9f, 0xec, 0xdb, 0xe4, 0x76, + 0x8d, 0x38, 0xa4, 0x1e, 0x7a, 0xbe, 0xa0, 0x7f, 0x4a, 0x54, 0x9f, 0xdf, 0x8a, 0x83, 0x71, 0x12, + 0x1f, 0x3d, 0x0b, 0x73, 0x56, 0x3d, 0xb4, 0xf7, 0x89, 0xa2, 0xc0, 0x1b, 0xf0, 0x16, 0x41, 0x61, + 0xae, 0x12, 0x83, 0xe2, 0x04, 0x36, 0xfa, 0x10, 0x2c, 0x07, 0x75, 0xcb, 0x21, 0xd7, 0xdb, 0x82, + 0xd5, 0xea, 0x1e, 0xa9, 0xdf, 0xda, 0xf2, 0x6c, 0x37, 0x14, 0x7e, 0xd3, 0x23, 0x82, 0xd2, 0x72, + 0x6d, 0x00, 0x1e, 0x1e, 0x48, 0x01, 0xfd, 0x89, 0x01, 0x67, 0xda, 0x3e, 0xd9, 0xf2, 0xbd, 0x96, + 0x47, 0x17, 0x44, 0x9f, 0x33, 0x21, 0x8c, 0xea, 0x17, 0xc6, 0x5c, 0xf9, 0xbc, 0xa4, 0xff, 0x30, + 0xe3, 0xad, 0xbd, 0x6e, 0xf9, 0xcc, 0xd6, 0x61, 0x0d, 0xc0, 0x87, 0xb7, 0x0f, 0xfd, 0x99, 0x01, + 0x67, 0xdb, 0x5e, 0x10, 0x1e, 0xd2, 0x85, 0xe2, 0xb1, 0x76, 0xc1, 0xec, 0x75, 0xcb, 0x67, 0xb7, + 0x0e, 0x6d, 0x01, 0xbe, 0x47, 0x0b, 0xcd, 0xde, 0x34, 0x2c, 0x6a, 0xb2, 0x27, 0x2c, 0xed, 0x67, + 0x60, 0x56, 0x0a, 0x03, 0x3f, 0x85, 0xe4, 0xb2, 0xa7, 0x3c, 0xa3, 0x8a, 0x0e, 0xc4, 0x71, 0x5c, + 0x2a, 0x77, 0x4a, 0x14, 0x79, 0xed, 0x84, 0xdc, 0x6d, 0xc5, 0xa0, 0x38, 0x81, 0x8d, 0xd6, 0xe1, + 0x84, 0x28, 0xc1, 0xa4, 0xed, 0xd8, 0x75, 0x6b, 0xd5, 0xeb, 0x08, 0x91, 0x2b, 0x56, 0x4f, 0xf5, + 0xba, 0xe5, 0x13, 0x5b, 0xfd, 0x60, 0x9c, 0x56, 0x07, 0x6d, 0xc0, 0x92, 0xd5, 0x09, 0x3d, 0xd5, + 0xff, 0x0b, 0xae, 0xb5, 0xe3, 0x90, 0x06, 0x13, 0xad, 0x52, 0x75, 0x99, 0x2a, 0xa2, 0x4a, 0x0a, + 0x1c, 0xa7, 0xd6, 0x42, 0x5b, 0x09, 0x6a, 0x35, 0x52, 0xf7, 0xdc, 0x06, 0x9f, 0xe5, 0x62, 0x64, + 0x2f, 0x54, 0x52, 0x70, 0x70, 0x6a, 0x4d, 0xe4, 0xc0, 0x5c, 0xcb, 0xba, 0x73, 0xdd, 0xb5, 0xf6, + 0x2d, 0xdb, 0xa1, 0x4c, 0x84, 0xb7, 0x35, 0xd8, 0x05, 0xe8, 0x84, 0xb6, 0xb3, 0xc2, 0x03, 0x0f, + 0x2b, 0xeb, 0x6e, 0x78, 0xd5, 0xaf, 0x85, 0x74, 0x5f, 0xa9, 0x22, 0x3a, 0xb0, 0x9b, 0x31, 0x5a, + 0x38, 0x41, 0x1b, 0x5d, 0x85, 0x93, 0x6c, 0x39, 0xae, 0x79, 0xb7, 0xdd, 0x35, 0xe2, 0x58, 0x07, + 0xb2, 0x03, 0x93, 0xac, 0x03, 0x0f, 0xf6, 0xba, 0xe5, 0x93, 0xb5, 0x34, 0x04, 0x9c, 0x5e, 0x8f, + 0xfa, 0x4c, 0x71, 0x00, 0x26, 0xfb, 0x76, 0x60, 0x7b, 0x2e, 0xf7, 0x99, 0x4a, 0x91, 0xcf, 0x54, + 0x1b, 0x8c, 0x86, 0x0f, 0xa3, 0x81, 0x7e, 0xcb, 0x80, 0xa5, 0xb4, 0x65, 0xb8, 0x3c, 0x95, 0xc5, + 0xb1, 0x6a, 0x62, 0x69, 0x71, 0x89, 0x48, 0x55, 0x0a, 0xa9, 0x8d, 0x40, 0xaf, 0x18, 0x30, 0x63, + 0x69, 0xf6, 0xde, 0x32, 0xb0, 0x56, 0x5d, 0x1e, 0xd7, 0xeb, 0x88, 0x28, 0x56, 0x17, 0x7a, 0xdd, + 0x72, 0xcc, 0xa6, 0xc4, 0x31, 0x8e, 0xe8, 0xb7, 0x0d, 0x38, 0x99, 0xba, 0xc6, 0x97, 0xa7, 0x8f, + 0x63, 0x84, 0x98, 0x90, 0xa4, 0xeb, 0x9c, 0xf4, 0x66, 0xa0, 0x37, 0x0c, 0xb5, 0x95, 0x6d, 0x4a, + 0xbf, 0x6f, 0x86, 0x35, 0xed, 0xda, 0x98, 0x26, 0x6e, 0x64, 0x10, 0x48, 0xc2, 0xd5, 0x13, 0xda, + 0xce, 0x28, 0x0b, 0x71, 0x92, 0x3d, 0xfa, 0xac, 0x21, 0xb7, 0x46, 0xd5, 0xa2, 0xd9, 0xe3, 0x6a, + 0x11, 0x8a, 0x76, 0x5a, 0xd5, 0xa0, 0x04, 0x73, 0xf4, 0x61, 0x38, 0x6d, 0xed, 0x78, 0x7e, 0x98, + 0xba, 0xf8, 0x96, 0xe7, 0xd8, 0x32, 0x3a, 0xdb, 0xeb, 0x96, 0x4f, 0x57, 0x06, 0x62, 0xe1, 0x43, + 0x28, 0x98, 0xdf, 0x2f, 0xc0, 0x0c, 0x8f, 0xc5, 0x89, 0xad, 0xeb, 0xeb, 0x06, 0x3c, 0x5c, 0xef, + 0xf8, 0x3e, 0x71, 0xc3, 0x5a, 0x48, 0xda, 0xfd, 0x1b, 0x97, 0x71, 0xac, 0x1b, 0xd7, 0x23, 0xbd, + 0x6e, 0xf9, 0xe1, 0xd5, 0x43, 0xf8, 0xe3, 0x43, 0x5b, 0x87, 0xfe, 0xca, 0x00, 0x53, 0x20, 0x54, + 0xad, 0xfa, 0xad, 0xa6, 0xef, 0x75, 0xdc, 0x46, 0x7f, 0x27, 0x72, 0xc7, 0xda, 0x89, 0xc7, 0x7a, + 0xdd, 0xb2, 0xb9, 0x7a, 0xcf, 0x56, 0xe0, 0x21, 0x5a, 0x8a, 0x9e, 0x83, 0x45, 0x81, 0x75, 0xe1, + 0x4e, 0x9b, 0xf8, 0x36, 0x35, 0xa7, 0x45, 0xe4, 0x2f, 0x0a, 0xa6, 0x26, 0x11, 0x70, 0x7f, 0x1d, + 0x14, 0xc0, 0xe4, 0x6d, 0x62, 0x37, 0xf7, 0x42, 0x69, 0x3e, 0x8d, 0x19, 0x41, 0x15, 0xf1, 0xb6, + 0x1b, 0x9c, 0x66, 0x75, 0xba, 0xd7, 0x2d, 0x4f, 0x8a, 0x3f, 0x58, 0x72, 0x32, 0xff, 0xa0, 0x00, + 0x20, 0xc5, 0x8b, 0xb4, 0xd1, 0xff, 0x83, 0xa9, 0x80, 0x84, 0x1c, 0x4b, 0x1c, 0xcb, 0xf1, 0xd3, + 0x4e, 0x59, 0x88, 0x23, 0x38, 0xba, 0x05, 0xc5, 0xb6, 0xd5, 0x09, 0x88, 0x98, 0xac, 0xcb, 0x99, + 0x4c, 0xd6, 0x16, 0xa5, 0xc8, 0x7d, 0x24, 0xf6, 0x13, 0x73, 0x1e, 0xe8, 0x53, 0x06, 0x00, 0x89, + 0x0f, 0xf0, 0xf4, 0xf9, 0x5a, 0x26, 0x2c, 0xa3, 0x39, 0xa0, 0x63, 0x50, 0x9d, 0xeb, 0x75, 0xcb, + 0xa0, 0x4d, 0x95, 0xc6, 0x16, 0xdd, 0x86, 0x92, 0x25, 0x75, 0x74, 0xe1, 0x38, 0x74, 0x34, 0x73, + 0x5d, 0x94, 0x90, 0x29, 0x66, 0xe8, 0xd3, 0x06, 0xcc, 0x05, 0x24, 0x14, 0x53, 0x45, 0x35, 0x85, + 0x30, 0x50, 0xc7, 0x14, 0x92, 0x5a, 0x8c, 0x26, 0xd7, 0x78, 0xf1, 0x32, 0x9c, 0xe0, 0x6b, 0x7e, + 0x7f, 0x1a, 0xe6, 0xa4, 0xc8, 0x44, 0x36, 0x27, 0x4f, 0x0e, 0x18, 0x60, 0x73, 0xae, 0xea, 0x40, + 0x1c, 0xc7, 0xa5, 0x95, 0x79, 0x04, 0x3f, 0x6e, 0x72, 0xaa, 0xca, 0x35, 0x1d, 0x88, 0xe3, 0xb8, + 0xa8, 0x05, 0xc5, 0x20, 0x24, 0x6d, 0x19, 0x4b, 0x18, 0xf3, 0xa8, 0x3b, 0x5a, 0x09, 0xd1, 0x69, + 0x21, 0xfd, 0x17, 0x60, 0xce, 0x05, 0x7d, 0xce, 0x80, 0xb9, 0x30, 0x16, 0xc7, 0x16, 0x62, 0x90, + 0x8d, 0x24, 0xc6, 0x43, 0xe4, 0x7c, 0x36, 0xe2, 0x65, 0x38, 0xc1, 0x3e, 0xc5, 0x0c, 0x2d, 0x1e, + 0xa3, 0x19, 0xfa, 0x22, 0x94, 0x5a, 0xd6, 0x9d, 0x5a, 0xc7, 0x6f, 0x1e, 0xdd, 0xdc, 0x15, 0x61, + 0x7e, 0x4e, 0x05, 0x2b, 0x7a, 0xe8, 0x55, 0x43, 0x5b, 0x5c, 0x93, 0x8c, 0xf8, 0x8d, 0x6c, 0x17, + 0x97, 0xd2, 0xe2, 0x03, 0x97, 0x59, 0x9f, 0x51, 0x58, 0xba, 0xef, 0x46, 0x21, 0x35, 0x70, 0xf8, + 0x02, 0x51, 0x06, 0xce, 0xd4, 0xb1, 0x1a, 0x38, 0xab, 0x31, 0x66, 0x38, 0xc1, 0x9c, 0xb5, 0x87, + 0xaf, 0x39, 0xd5, 0x1e, 0x38, 0xd6, 0xf6, 0xd4, 0x62, 0xcc, 0x70, 0x82, 0xf9, 0x60, 0x4f, 0x68, + 0xfa, 0x78, 0x3c, 0xa1, 0x99, 0x0c, 0x3c, 0xa1, 0xc3, 0x8d, 0xc4, 0xd9, 0x71, 0x8d, 0x44, 0x74, + 0x19, 0x50, 0xe3, 0xc0, 0xb5, 0x5a, 0x76, 0x5d, 0x28, 0x4b, 0xb6, 0x41, 0xcc, 0x31, 0x4f, 0xf9, + 0xb4, 0x50, 0x64, 0x68, 0xad, 0x0f, 0x03, 0xa7, 0xd4, 0x32, 0xff, 0xdd, 0x80, 0x85, 0x55, 0xc7, + 0xeb, 0x34, 0x6e, 0x58, 0x61, 0x7d, 0x8f, 0x47, 0x29, 0xd0, 0xb3, 0x50, 0xb2, 0xdd, 0x90, 0xf8, + 0xfb, 0x96, 0x23, 0x74, 0xbb, 0x29, 0x03, 0x39, 0xeb, 0xa2, 0xfc, 0x6e, 0xb7, 0x3c, 0xb7, 0xd6, + 0xf1, 0x59, 0xfa, 0x0f, 0x5f, 0xe9, 0x58, 0xd5, 0x41, 0x5f, 0x36, 0x60, 0x91, 0xc7, 0x39, 0xd6, + 0xac, 0xd0, 0xba, 0xd6, 0x21, 0xbe, 0x4d, 0x64, 0xa4, 0x63, 0xcc, 0x45, 0x9e, 0x6c, 0xab, 0x64, + 0x70, 0x10, 0x99, 0x5f, 0x9b, 0x49, 0xce, 0xb8, 0xbf, 0x31, 0xe6, 0xe7, 0xf3, 0xf0, 0xe0, 0x40, + 0x5a, 0xe8, 0x34, 0xe4, 0xec, 0x86, 0xe8, 0x3a, 0x08, 0xba, 0xb9, 0xf5, 0x06, 0xce, 0xd9, 0x0d, + 0xb4, 0xc2, 0x2c, 0x13, 0x9f, 0x04, 0x81, 0x3c, 0xf4, 0x9e, 0x52, 0x46, 0x84, 0x28, 0xc5, 0x1a, + 0x06, 0x2a, 0x43, 0xd1, 0xb1, 0x76, 0x88, 0x23, 0xac, 0x44, 0x66, 0xeb, 0x6c, 0xd0, 0x02, 0xcc, + 0xcb, 0xd1, 0x2f, 0x1b, 0x00, 0xbc, 0x81, 0xd4, 0xc6, 0x14, 0x3b, 0x0c, 0xce, 0x76, 0x98, 0x28, + 0x65, 0xde, 0xca, 0xe8, 0x3f, 0xd6, 0xb8, 0xa2, 0x6d, 0x98, 0xa0, 0x66, 0x8f, 0xd7, 0x38, 0xf2, + 0x86, 0x02, 0xbd, 0x6e, 0x79, 0x62, 0x8b, 0xd1, 0xc0, 0x82, 0x16, 0x1d, 0x2b, 0x9f, 0x84, 0x1d, + 0xdf, 0xa5, 0x43, 0xcb, 0xb6, 0x90, 0x12, 0x6f, 0x05, 0x56, 0xa5, 0x58, 0xc3, 0x30, 0xff, 0x38, + 0x07, 0x4b, 0x69, 0x4d, 0xa7, 0x9a, 0x7a, 0x82, 0xb7, 0x56, 0x38, 0x3c, 0xef, 0xcf, 0x7e, 0x7c, + 0x44, 0xc8, 0x4e, 0x05, 0xb6, 0x44, 0x52, 0x81, 0xe0, 0x8b, 0xde, 0xaf, 0x46, 0x28, 0x77, 0xc4, + 0x11, 0x52, 0x94, 0x13, 0xa3, 0xf4, 0x08, 0x14, 0x02, 0x3a, 0xf3, 0xf9, 0xf8, 0xb1, 0x34, 0x9b, + 0x23, 0x06, 0xa1, 0x18, 0x1d, 0xd7, 0x0e, 0x45, 0x4e, 0x9e, 0xc2, 0xb8, 0xee, 0xda, 0x21, 0x66, + 0x10, 0xf3, 0x8b, 0x39, 0x38, 0x3d, 0xb8, 0x53, 0xe8, 0x8b, 0x06, 0x40, 0x83, 0x1a, 0xb5, 0x54, + 0x24, 0x65, 0x88, 0xd3, 0x3a, 0xae, 0x31, 0x5c, 0x93, 0x9c, 0xa2, 0x78, 0xb7, 0x2a, 0x0a, 0xb0, + 0xd6, 0x10, 0x74, 0x5e, 0x8a, 0xfe, 0x15, 0xab, 0x25, 0x4d, 0x41, 0x55, 0x67, 0x53, 0x41, 0xb0, + 0x86, 0x45, 0xbd, 0x16, 0xd7, 0x6a, 0x91, 0xa0, 0x6d, 0xa9, 0xa4, 0x4b, 0xe6, 0xb5, 0x5c, 0x91, + 0x85, 0x38, 0x82, 0x9b, 0x0e, 0x3c, 0x3a, 0x44, 0x3b, 0x33, 0x4a, 0x80, 0x33, 0xff, 0xcd, 0x80, + 0x53, 0xab, 0x4e, 0x27, 0x08, 0x89, 0xff, 0x3f, 0x26, 0x7d, 0xe0, 0x3f, 0x0c, 0x78, 0x68, 0x40, + 0x9f, 0xef, 0x43, 0x16, 0xc1, 0xcb, 0xf1, 0x2c, 0x82, 0xeb, 0xe3, 0x8a, 0x74, 0x6a, 0x3f, 0x06, + 0x24, 0x13, 0x84, 0x30, 0x4b, 0xb5, 0x56, 0xc3, 0x6b, 0x66, 0xb4, 0x6f, 0x3e, 0x0a, 0xc5, 0x8f, + 0xd2, 0xfd, 0x27, 0x29, 0x63, 0x6c, 0x53, 0xc2, 0x1c, 0x66, 0xbe, 0x0f, 0x44, 0xc8, 0x3d, 0xb1, + 0x78, 0x8c, 0x61, 0x16, 0x8f, 0xf9, 0x77, 0x39, 0xd0, 0xbc, 0xdd, 0xfb, 0x20, 0x94, 0x6e, 0x4c, + 0x28, 0xc7, 0xf4, 0x5f, 0x35, 0xdf, 0x7d, 0x50, 0x6e, 0xed, 0x7e, 0x22, 0xb7, 0xf6, 0x4a, 0x66, + 0x1c, 0x0f, 0x4f, 0xad, 0xfd, 0x8e, 0x01, 0x0f, 0x45, 0xc8, 0xfd, 0x07, 0x47, 0xf7, 0xd6, 0x30, + 0x4f, 0xc1, 0xb4, 0x15, 0x55, 0x13, 0x32, 0xa0, 0xd2, 0xc9, 0x35, 0x8a, 0x58, 0xc7, 0x8b, 0x32, + 0xf9, 0xf2, 0x47, 0xcc, 0xe4, 0x2b, 0x1c, 0x9e, 0xc9, 0x67, 0xfe, 0x34, 0x07, 0x67, 0xfa, 0x7b, + 0x26, 0xd7, 0xc6, 0x70, 0x71, 0xd5, 0xa7, 0x61, 0x26, 0x14, 0x15, 0x34, 0x4d, 0xaf, 0x2e, 0x43, + 0x6c, 0x6b, 0x30, 0x1c, 0xc3, 0xa4, 0x35, 0xeb, 0x7c, 0x55, 0xd6, 0xea, 0x5e, 0x5b, 0xe6, 0x81, + 0xaa, 0x9a, 0xab, 0x1a, 0x0c, 0xc7, 0x30, 0x55, 0x86, 0x4d, 0xe1, 0xd8, 0x33, 0x6c, 0x6a, 0x70, + 0x52, 0xe6, 0x14, 0x5c, 0xf4, 0xfc, 0x55, 0xaf, 0xd5, 0x76, 0x88, 0xc8, 0x04, 0xa5, 0x8d, 0x3d, + 0x23, 0xaa, 0x9c, 0xc4, 0x69, 0x48, 0x38, 0xbd, 0xae, 0xf9, 0x9d, 0x3c, 0x9c, 0x88, 0x86, 0x7d, + 0xd5, 0x73, 0x1b, 0x36, 0xcb, 0xcc, 0x78, 0x06, 0x0a, 0xe1, 0x41, 0x5b, 0x0e, 0xf6, 0xff, 0x91, + 0xcd, 0xd9, 0x3e, 0x68, 0xd3, 0xd9, 0x3e, 0x95, 0x52, 0x85, 0x82, 0x30, 0xab, 0x84, 0x36, 0xd4, + 0xea, 0xe0, 0x33, 0xf0, 0x64, 0x5c, 0x9a, 0xef, 0x76, 0xcb, 0x29, 0x77, 0x81, 0x56, 0x14, 0xa5, + 0xb8, 0xcc, 0xa3, 0x9b, 0x30, 0xe7, 0x58, 0x41, 0x78, 0xbd, 0xdd, 0xb0, 0x42, 0xb2, 0x6d, 0xb7, + 0x88, 0x58, 0x73, 0xa3, 0xa4, 0x57, 0xaa, 0x58, 0xe3, 0x46, 0x8c, 0x12, 0x4e, 0x50, 0x46, 0xfb, + 0x80, 0x68, 0xc9, 0xb6, 0x6f, 0xb9, 0x01, 0xef, 0x15, 0xe5, 0x37, 0x7a, 0x3a, 0xa7, 0x72, 0x90, + 0x36, 0xfa, 0xa8, 0xe1, 0x14, 0x0e, 0xe8, 0x31, 0x98, 0xf0, 0x89, 0x15, 0x88, 0xc9, 0x9c, 0x8a, + 0xd6, 0x3f, 0x66, 0xa5, 0x58, 0x40, 0xf5, 0x05, 0x35, 0x71, 0x8f, 0x05, 0xf5, 0x03, 0x03, 0xe6, + 0xa2, 0x69, 0xba, 0x0f, 0x9b, 0x64, 0x2b, 0xbe, 0x49, 0x5e, 0xca, 0x4a, 0x25, 0x0e, 0xd8, 0x17, + 0xbf, 0x5c, 0xd4, 0xfb, 0xc7, 0xd2, 0xeb, 0x3e, 0x06, 0x53, 0x72, 0x55, 0x4b, 0xeb, 0x73, 0xcc, + 0x53, 0x96, 0x98, 0x5d, 0xa2, 0xa5, 0x85, 0x0b, 0x26, 0x38, 0xe2, 0x47, 0xb7, 0xe5, 0x86, 0xd8, + 0x72, 0x85, 0xd8, 0xab, 0x6d, 0x59, 0x6e, 0xc5, 0x69, 0xdb, 0xb2, 0xac, 0x83, 0xae, 0xc3, 0xa9, + 0xb6, 0xef, 0xb1, 0xab, 0x42, 0x6b, 0xc4, 0x6a, 0x38, 0xb6, 0x4b, 0xa4, 0x33, 0xcf, 0x43, 0xdd, + 0x0f, 0xf5, 0xba, 0xe5, 0x53, 0x5b, 0xe9, 0x28, 0x78, 0x50, 0xdd, 0x78, 0x7a, 0x7b, 0x61, 0x88, + 0xf4, 0xf6, 0x5f, 0x55, 0x47, 0x66, 0x24, 0x10, 0x49, 0xe6, 0x1f, 0xcc, 0x6a, 0x2a, 0x53, 0xd4, + 0x7a, 0x24, 0x52, 0x15, 0xc1, 0x14, 0x2b, 0xf6, 0x83, 0xcf, 0x65, 0x26, 0x8e, 0x78, 0x2e, 0x13, + 0x65, 0x29, 0x4e, 0x1e, 0x7f, 0x96, 0xa2, 0xf9, 0x5a, 0x11, 0x16, 0x92, 0x5b, 0xfb, 0xf1, 0xe7, + 0xc4, 0xff, 0x86, 0x01, 0x0b, 0x52, 0x2c, 0x39, 0x4f, 0x22, 0x8f, 0xb2, 0x37, 0x32, 0x5a, 0x0d, + 0xdc, 0x48, 0x51, 0xb7, 0xb6, 0xb6, 0x13, 0xdc, 0x70, 0x1f, 0x7f, 0xf4, 0x12, 0x4c, 0xab, 0x13, + 0xdf, 0x23, 0x25, 0xc8, 0xcf, 0x33, 0xf3, 0x24, 0x22, 0x81, 0x75, 0x7a, 0xe8, 0x35, 0x03, 0xa0, + 0x2e, 0xf7, 0x0f, 0x29, 0xb6, 0xd7, 0xb2, 0x12, 0x5b, 0xb5, 0x33, 0x45, 0x56, 0xa8, 0x2a, 0x0a, + 0xb0, 0xc6, 0x18, 0x7d, 0x9e, 0x9d, 0xf5, 0x2a, 0xb3, 0x89, 0x0a, 0x2a, 0x6d, 0xc9, 0x07, 0xb2, + 0x5e, 0x40, 0x51, 0xd8, 0x51, 0xd9, 0x28, 0x1a, 0x28, 0xc0, 0xb1, 0x46, 0x98, 0xcf, 0x80, 0xca, + 0x5c, 0xa3, 0xfa, 0x80, 0xe5, 0xae, 0x6d, 0x59, 0xe1, 0x9e, 0x10, 0x41, 0xa5, 0x0f, 0x2e, 0x4a, + 0x00, 0x8e, 0x70, 0xcc, 0x8f, 0xc0, 0xdc, 0x73, 0xbe, 0xd5, 0xde, 0xb3, 0xd9, 0x99, 0x2a, 0x75, + 0x40, 0xde, 0x0e, 0x93, 0x56, 0xa3, 0x91, 0x76, 0xe7, 0xb1, 0xc2, 0x8b, 0xb1, 0x84, 0x0f, 0xe7, + 0x6b, 0x7c, 0xc3, 0x80, 0xa5, 0xf5, 0x20, 0xb4, 0xbd, 0x35, 0x12, 0x84, 0x54, 0x09, 0x51, 0x7b, + 0xa5, 0xe3, 0x90, 0x21, 0x2c, 0xbe, 0x35, 0x58, 0x10, 0x81, 0x9f, 0xce, 0x4e, 0x40, 0x42, 0xcd, + 0xea, 0x53, 0xc2, 0xb9, 0x9a, 0x80, 0xe3, 0xbe, 0x1a, 0x94, 0x8a, 0x88, 0x00, 0x45, 0x54, 0xf2, + 0x71, 0x2a, 0xb5, 0x04, 0x1c, 0xf7, 0xd5, 0x30, 0xbf, 0x9d, 0x87, 0x13, 0xac, 0x1b, 0x89, 0x4b, + 0x89, 0x9f, 0x35, 0x60, 0x6e, 0xdf, 0xf6, 0xc3, 0x8e, 0xe5, 0xe8, 0xa1, 0xac, 0xb1, 0xe5, 0x93, + 0xf1, 0x7a, 0x21, 0x46, 0x98, 0x1f, 0x76, 0xc7, 0xcb, 0x70, 0x82, 0x39, 0xfa, 0x75, 0x03, 0xe6, + 0x1b, 0xf1, 0x91, 0xce, 0xc6, 0x99, 0x4f, 0x9b, 0x43, 0x9e, 0x81, 0x91, 0x28, 0xc4, 0x49, 0xfe, + 0xe8, 0x0b, 0x06, 0xcc, 0xc7, 0x9b, 0x29, 0x55, 0xd6, 0x31, 0x0c, 0x92, 0x4a, 0x99, 0x8c, 0x97, + 0x07, 0x38, 0xd9, 0x04, 0xf3, 0x6f, 0x0c, 0x31, 0xa5, 0x71, 0xcc, 0x21, 0x04, 0xd3, 0x84, 0x09, + 0xdf, 0xeb, 0x84, 0xe2, 0x40, 0x7a, 0x8a, 0x9f, 0x5b, 0x62, 0x56, 0x82, 0x05, 0x04, 0xdd, 0x86, + 0xa9, 0xd0, 0x09, 0x78, 0xa1, 0xe8, 0xed, 0x98, 0xfe, 0xc3, 0xf6, 0x46, 0x8d, 0x91, 0xd3, 0xb6, + 0x78, 0x51, 0x42, 0x4d, 0x15, 0xc9, 0xcb, 0xfc, 0xaa, 0x01, 0x53, 0x97, 0xbd, 0x1d, 0xb1, 0x9c, + 0x3f, 0x9c, 0x81, 0x77, 0xae, 0x36, 0x71, 0x15, 0x62, 0x89, 0xec, 0xc2, 0x67, 0x63, 0xbe, 0xf9, + 0xc3, 0x1a, 0xed, 0x15, 0xf6, 0x56, 0x00, 0x25, 0x75, 0xd9, 0xdb, 0x19, 0x78, 0xf4, 0xf3, 0x3b, + 0x45, 0x98, 0x7d, 0xde, 0x3a, 0x20, 0x6e, 0x68, 0x8d, 0xae, 0x80, 0xa8, 0xbb, 0xdb, 0x66, 0x19, + 0x80, 0x9a, 0x61, 0x16, 0xb9, 0xbb, 0x11, 0x08, 0xeb, 0x78, 0x91, 0x5e, 0xe1, 0x57, 0x97, 0xd3, + 0x34, 0xc2, 0x6a, 0x02, 0x8e, 0xfb, 0x6a, 0xa0, 0xcb, 0x80, 0xc4, 0x45, 0x8c, 0x4a, 0xbd, 0xee, + 0x75, 0x5c, 0xae, 0x59, 0xb8, 0x27, 0xac, 0x3c, 0x84, 0xcd, 0x3e, 0x0c, 0x9c, 0x52, 0x0b, 0x7d, + 0x08, 0x96, 0xeb, 0x8c, 0xb2, 0xb0, 0x17, 0x75, 0x8a, 0xdc, 0x67, 0x50, 0xd9, 0xb7, 0xab, 0x03, + 0xf0, 0xf0, 0x40, 0x0a, 0xb4, 0xa5, 0x41, 0xe8, 0xf9, 0x56, 0x93, 0xe8, 0x74, 0x27, 0xe2, 0x2d, + 0xad, 0xf5, 0x61, 0xe0, 0x94, 0x5a, 0xe8, 0x93, 0x30, 0x15, 0xee, 0xf9, 0x24, 0xd8, 0xf3, 0x9c, + 0x86, 0x88, 0xb9, 0x8e, 0x79, 0x3c, 0x22, 0x66, 0x7f, 0x5b, 0x52, 0xd5, 0xc4, 0x5b, 0x16, 0xe1, + 0x88, 0x27, 0xf2, 0x61, 0x22, 0xa0, 0xbe, 0x79, 0xb0, 0x5c, 0xca, 0xc2, 0x07, 0x10, 0xdc, 0x99, + 0xbb, 0xaf, 0x1d, 0xcc, 0x30, 0x0e, 0x58, 0x70, 0x32, 0xbf, 0x99, 0x83, 0x19, 0x1d, 0x71, 0x08, + 0x15, 0xf1, 0x29, 0x03, 0x66, 0xea, 0x9e, 0x1b, 0xfa, 0x9e, 0xc3, 0x0f, 0x1d, 0xf8, 0x02, 0x19, + 0xf3, 0x7e, 0x2f, 0x23, 0xb5, 0x46, 0x42, 0xcb, 0x76, 0xb4, 0xf3, 0x0b, 0x8d, 0x0d, 0x8e, 0x31, + 0x45, 0x9f, 0x31, 0x60, 0x3e, 0x4a, 0x46, 0x89, 0x4e, 0x3f, 0x32, 0x6d, 0x88, 0xd2, 0xb8, 0x17, + 0xe2, 0x9c, 0x70, 0x92, 0xb5, 0xb9, 0x03, 0x0b, 0xc9, 0xd9, 0xa6, 0x43, 0xd9, 0xb6, 0xc4, 0x5a, + 0xcf, 0x47, 0x43, 0xb9, 0x65, 0x05, 0x01, 0x66, 0x10, 0xf4, 0x0e, 0x28, 0xb5, 0x2c, 0xbf, 0x69, + 0xbb, 0x96, 0xc3, 0x46, 0x31, 0xaf, 0x29, 0x24, 0x51, 0x8e, 0x15, 0x86, 0xf9, 0xe3, 0x02, 0x4c, + 0x6b, 0x97, 0x78, 0x8e, 0xdf, 0x22, 0x8f, 0xdd, 0x0d, 0xcd, 0x67, 0x78, 0x37, 0xf4, 0x45, 0x80, + 0x5d, 0xdb, 0xb5, 0x83, 0xbd, 0x23, 0xde, 0x3a, 0x65, 0x51, 0xb2, 0x8b, 0x8a, 0x02, 0xd6, 0xa8, + 0x45, 0xa1, 0x88, 0xe2, 0x21, 0x77, 0xf1, 0x5f, 0x33, 0xb4, 0xcd, 0x63, 0x22, 0x8b, 0xd0, 0xab, + 0x36, 0x31, 0x2b, 0x72, 0x33, 0xb9, 0xe0, 0x86, 0xfe, 0xc1, 0xa1, 0x7b, 0xcc, 0x36, 0x94, 0x7c, + 0x12, 0x74, 0x5a, 0xd4, 0xb7, 0x98, 0x1c, 0x79, 0x18, 0x58, 0xe6, 0x06, 0x16, 0xf5, 0xb1, 0xa2, + 0x74, 0xfa, 0x19, 0x98, 0x8d, 0x35, 0x01, 0x2d, 0x40, 0xfe, 0x16, 0x39, 0xe0, 0x72, 0x82, 0xe9, + 0x4f, 0xb4, 0x14, 0x0b, 0xd8, 0x88, 0x61, 0x79, 0x6f, 0xee, 0x69, 0xc3, 0xf4, 0x20, 0xf5, 0xa6, + 0xd8, 0x51, 0xce, 0xd3, 0xe9, 0x5c, 0x38, 0xda, 0xb5, 0x53, 0x35, 0x17, 0x3c, 0x4d, 0x80, 0xc3, + 0xcc, 0x9f, 0x4e, 0x80, 0x88, 0x26, 0x0e, 0xa1, 0x7c, 0xf4, 0x20, 0x42, 0xee, 0x08, 0x41, 0x84, + 0xcb, 0x30, 0x63, 0xbb, 0x76, 0x68, 0x5b, 0x0e, 0xf3, 0xaf, 0xc5, 0xe6, 0xf8, 0x98, 0x54, 0x38, + 0xeb, 0x1a, 0x2c, 0x85, 0x4e, 0xac, 0x2e, 0xba, 0x06, 0x45, 0xb6, 0x7b, 0x08, 0x01, 0x1e, 0x3d, + 0xe4, 0xc9, 0xa2, 0xdd, 0x3c, 0xed, 0x9f, 0x53, 0x62, 0x16, 0x3d, 0xbf, 0x77, 0xab, 0x1c, 0x35, + 0x21, 0xc7, 0x91, 0x45, 0x9f, 0x80, 0xe3, 0xbe, 0x1a, 0x94, 0xca, 0xae, 0x65, 0x3b, 0x1d, 0x9f, + 0x44, 0x54, 0x26, 0xe2, 0x54, 0x2e, 0x26, 0xe0, 0xb8, 0xaf, 0x06, 0xda, 0x85, 0x19, 0x51, 0xc6, + 0x93, 0x3f, 0x26, 0x8f, 0xd8, 0x4b, 0x96, 0xe4, 0x73, 0x51, 0xa3, 0x84, 0x63, 0x74, 0x51, 0x07, + 0x16, 0x6d, 0xb7, 0xee, 0xb9, 0x75, 0xa7, 0x13, 0xd8, 0xfb, 0x24, 0xca, 0xb9, 0x3f, 0x0a, 0xb3, + 0x93, 0xbd, 0x6e, 0x79, 0x71, 0x3d, 0x49, 0x0e, 0xf7, 0x73, 0x40, 0xaf, 0x1a, 0x70, 0xb2, 0xee, + 0xb9, 0x01, 0xbb, 0xc8, 0xb6, 0x4f, 0x2e, 0xf8, 0xbe, 0xe7, 0x73, 0xde, 0x53, 0x47, 0xe4, 0xcd, + 0x8e, 0x75, 0x56, 0xd3, 0x48, 0xe2, 0x74, 0x4e, 0xe8, 0x65, 0x28, 0xb5, 0x7d, 0x6f, 0xdf, 0x6e, + 0x10, 0x5f, 0x24, 0x12, 0x6d, 0x64, 0x71, 0xb1, 0x76, 0x4b, 0xd0, 0x8c, 0x54, 0x8f, 0x2c, 0xc1, + 0x8a, 0x9f, 0xf9, 0xfb, 0x25, 0x98, 0x8b, 0xa3, 0xa3, 0x4f, 0x00, 0xb4, 0x7d, 0xaf, 0x45, 0xc2, + 0x3d, 0xa2, 0x72, 0xa7, 0xaf, 0x8c, 0x7b, 0x7f, 0x53, 0xd2, 0x93, 0x09, 0x04, 0x54, 0x5d, 0x44, + 0xa5, 0x58, 0xe3, 0x88, 0x7c, 0x98, 0xbc, 0xc5, 0x37, 0x51, 0x61, 0x53, 0x3c, 0x9f, 0x89, 0x05, + 0x24, 0x38, 0xb3, 0xa4, 0x5f, 0x51, 0x84, 0x25, 0x23, 0xb4, 0x03, 0xf9, 0xdb, 0x64, 0x27, 0x9b, + 0x9b, 0x86, 0x37, 0x88, 0xf0, 0x4d, 0xaa, 0x93, 0xbd, 0x6e, 0x39, 0x7f, 0x83, 0xec, 0x60, 0x4a, + 0x9c, 0xf6, 0xab, 0xc1, 0x43, 0xa1, 0x42, 0x55, 0x8c, 0xd9, 0xaf, 0x58, 0x5c, 0x95, 0xf7, 0x4b, + 0x14, 0x61, 0xc9, 0x08, 0xbd, 0x0c, 0x53, 0xb7, 0xad, 0x7d, 0xb2, 0xeb, 0x7b, 0x6e, 0x28, 0xb2, + 0x56, 0xc6, 0x4c, 0xcf, 0xbd, 0x21, 0xc9, 0x09, 0xbe, 0x6c, 0x7b, 0x57, 0x85, 0x38, 0x62, 0x87, + 0xf6, 0xa1, 0xe4, 0x92, 0xdb, 0x98, 0x38, 0x76, 0x5d, 0x64, 0x46, 0x8e, 0x29, 0xd6, 0x57, 0x04, + 0x35, 0xc1, 0x99, 0xed, 0x7b, 0xb2, 0x0c, 0x2b, 0x5e, 0x74, 0x2e, 0x6f, 0x7a, 0x3b, 0x42, 0x51, + 0x8d, 0x39, 0x97, 0xca, 0xcf, 0xe4, 0x73, 0x79, 0xd9, 0xdb, 0xc1, 0x94, 0x38, 0x5d, 0x23, 0x75, + 0x95, 0x32, 0x21, 0xd4, 0xd4, 0x95, 0x6c, 0x53, 0x45, 0xf8, 0x1a, 0x89, 0x4a, 0xb1, 0xc6, 0x91, + 0x8e, 0x6d, 0x53, 0x1c, 0x6b, 0x09, 0x45, 0x35, 0xe6, 0xd8, 0xc6, 0x0f, 0xc9, 0xf8, 0xd8, 0xca, + 0x32, 0xac, 0x78, 0x99, 0x3f, 0x29, 0xc0, 0x8c, 0xfe, 0x90, 0xc8, 0x10, 0x7b, 0xb5, 0xb2, 0x4f, + 0x73, 0xa3, 0xd8, 0xa7, 0xd4, 0xbd, 0xd0, 0x2e, 0xa5, 0xcb, 0x13, 0x86, 0xf5, 0xcc, 0xcc, 0xb3, + 0xc8, 0xbd, 0xd0, 0x0a, 0x03, 0x1c, 0x63, 0x3a, 0x42, 0x04, 0x98, 0x1a, 0x39, 0xdc, 0x0c, 0x28, + 0xc6, 0x8d, 0x9c, 0xd8, 0xc6, 0x7e, 0x1e, 0x20, 0x7a, 0x50, 0x43, 0x84, 0x01, 0x94, 0xf5, 0xa4, + 0x3d, 0xf4, 0xa1, 0x61, 0xa1, 0xc7, 0x60, 0x82, 0x6e, 0x94, 0xa4, 0x21, 0x2e, 0xb6, 0x29, 0x1f, + 0xee, 0x22, 0x2b, 0xc5, 0x02, 0x8a, 0x9e, 0xa6, 0x36, 0x4d, 0xb4, 0xbd, 0x89, 0xfb, 0x6a, 0x4b, + 0x91, 0x4d, 0x13, 0xc1, 0x70, 0x0c, 0x93, 0x36, 0x9d, 0xd0, 0xdd, 0x88, 0x49, 0x92, 0xd6, 0x74, + 0xb6, 0x45, 0x61, 0x0e, 0x63, 0x67, 0x0a, 0x89, 0xdd, 0x8b, 0x6d, 0x56, 0x45, 0xed, 0x4c, 0x21, + 0x01, 0xc7, 0x7d, 0x35, 0x68, 0x67, 0x44, 0x04, 0x63, 0x9a, 0x27, 0xba, 0x0d, 0x88, 0x3d, 0x7c, + 0x04, 0xe6, 0xe2, 0xab, 0x9d, 0x4e, 0x45, 0xdb, 0xf7, 0x76, 0x6d, 0x87, 0x24, 0x4f, 0x4d, 0xb6, + 0x78, 0x31, 0x96, 0xf0, 0xe1, 0x8e, 0x6d, 0xff, 0x22, 0x0f, 0x27, 0xae, 0x34, 0x6d, 0xf7, 0x4e, + 0xe2, 0xbc, 0x33, 0xed, 0x99, 0x37, 0x63, 0xd4, 0x67, 0xde, 0xa2, 0x0c, 0x7e, 0xf1, 0x8e, 0x5e, + 0x7a, 0x06, 0xbf, 0x7c, 0x64, 0x2f, 0x8e, 0x8b, 0x7e, 0x60, 0xc0, 0xc3, 0x56, 0x83, 0xdb, 0x5f, + 0x96, 0x23, 0x4a, 0x23, 0xa6, 0x72, 0x2d, 0x04, 0x63, 0x6a, 0xd3, 0xfe, 0xce, 0xaf, 0x54, 0x0e, + 0xe1, 0xca, 0xdd, 0x98, 0xb7, 0x89, 0x1e, 0x3c, 0x7c, 0x18, 0x2a, 0x3e, 0xb4, 0xf9, 0xa7, 0xaf, + 0xc2, 0x5b, 0xef, 0xc9, 0x68, 0x24, 0x67, 0xe5, 0x53, 0x06, 0x4c, 0xf1, 0xe3, 0x3c, 0x4c, 0x76, + 0xe9, 0x22, 0xb3, 0xda, 0xf6, 0x0b, 0xc4, 0x0f, 0xe4, 0xfb, 0x13, 0x9a, 0x8b, 0x52, 0xd9, 0x5a, + 0x17, 0x10, 0xac, 0x61, 0x51, 0x35, 0x76, 0xcb, 0x76, 0x1b, 0x62, 0x9a, 0x94, 0x1a, 0x7b, 0xde, + 0x76, 0x1b, 0x98, 0x41, 0x94, 0xa2, 0xcb, 0x0f, 0x52, 0x74, 0xe6, 0x57, 0x0c, 0x98, 0x63, 0x17, + 0x74, 0x22, 0xe3, 0xf9, 0x29, 0x15, 0x18, 0xe7, 0xcd, 0x38, 0x13, 0x0f, 0x8c, 0xdf, 0xed, 0x96, + 0xa7, 0xf9, 0x95, 0x9e, 0x78, 0x9c, 0xfc, 0x83, 0xc2, 0xe3, 0x66, 0xe1, 0xfb, 0xdc, 0xc8, 0x0e, + 0xa1, 0x3a, 0x5f, 0xaa, 0x49, 0x22, 0x38, 0xa2, 0x67, 0xfe, 0x61, 0x1e, 0x4e, 0xa4, 0x64, 0x9a, + 0x53, 0x67, 0x78, 0x82, 0x25, 0xdb, 0xca, 0xe0, 0xf3, 0x4b, 0x99, 0x67, 0xb3, 0xaf, 0xb0, 0x9c, + 0x5e, 0x21, 0x49, 0x6a, 0xe9, 0xf3, 0x42, 0x2c, 0x98, 0xa3, 0xdf, 0x34, 0x60, 0xda, 0xd2, 0x84, + 0x9d, 0xc7, 0xe3, 0x77, 0xb2, 0x6f, 0x4c, 0x9f, 0x6c, 0x6b, 0x79, 0x44, 0x91, 0x28, 0xeb, 0x6d, + 0x39, 0xfd, 0x1e, 0x98, 0xd6, 0xba, 0x30, 0x8a, 0x8c, 0x9e, 0x7e, 0x16, 0x16, 0xc6, 0x92, 0xf1, + 0x0f, 0xc0, 0xa8, 0x0f, 0x9a, 0x50, 0x65, 0x7b, 0x5b, 0xbf, 0xb7, 0xa6, 0x46, 0x5c, 0x5c, 0x5c, + 0x13, 0x50, 0x73, 0x07, 0x16, 0x92, 0x06, 0x7a, 0xe6, 0x51, 0xb2, 0x77, 0xc1, 0x88, 0x4f, 0x90, + 0x98, 0x7f, 0x99, 0x83, 0x49, 0x71, 0x5d, 0xe5, 0x3e, 0xa4, 0xe0, 0xdd, 0x8a, 0x1d, 0xf3, 0xaf, + 0x67, 0x72, 0xcb, 0x66, 0x60, 0xfe, 0x5d, 0x90, 0xc8, 0xbf, 0x7b, 0x3e, 0x1b, 0x76, 0x87, 0x27, + 0xdf, 0xfd, 0x67, 0x0e, 0xe6, 0x13, 0xd7, 0x7f, 0xd0, 0xeb, 0x46, 0x7f, 0xce, 0xc9, 0xf5, 0x4c, + 0x6f, 0x18, 0xa9, 0xf4, 0xd0, 0xc3, 0xd3, 0x4f, 0x82, 0xd8, 0x4b, 0x4f, 0xd7, 0x32, 0x7b, 0x24, + 0xf2, 0xcd, 0xf3, 0xe8, 0x93, 0xf9, 0x8f, 0x06, 0x3c, 0x38, 0xf0, 0xfa, 0x15, 0xbb, 0x57, 0xee, + 0xc7, 0xa1, 0x42, 0xd2, 0x33, 0xbe, 0x4e, 0xa9, 0x0e, 0xb3, 0x93, 0x57, 0x81, 0x93, 0xec, 0xd1, + 0x93, 0x30, 0xc3, 0x76, 0x0d, 0xba, 0x58, 0x43, 0xd2, 0x16, 0xa7, 0x77, 0xec, 0x1c, 0xa7, 0xa6, + 0x95, 0xe3, 0x18, 0x96, 0xf9, 0x65, 0x03, 0x96, 0x07, 0xdd, 0x32, 0x1e, 0xc2, 0x5b, 0xf8, 0x85, + 0x44, 0xf2, 0x5d, 0xb9, 0x2f, 0xf9, 0x2e, 0xe1, 0x2f, 0xc8, 0x3c, 0x3b, 0xcd, 0x54, 0xcf, 0xdf, + 0x23, 0xb7, 0xec, 0xb3, 0x06, 0x9c, 0x1a, 0x20, 0xa6, 0x7d, 0x49, 0x98, 0xc6, 0x91, 0x93, 0x30, + 0x73, 0xc3, 0x26, 0x61, 0x9a, 0x7f, 0x9d, 0x87, 0x05, 0xd1, 0x9e, 0xc8, 0x74, 0x78, 0x3a, 0x96, + 0xc2, 0xf8, 0xb6, 0x44, 0x0a, 0xe3, 0x52, 0x12, 0xff, 0x7f, 0xf3, 0x17, 0xdf, 0x5c, 0xf9, 0x8b, + 0x3f, 0xcb, 0xc1, 0xc9, 0xd4, 0xcb, 0xd4, 0xe8, 0xd3, 0x29, 0x3a, 0xf7, 0x46, 0xc6, 0xb7, 0xb6, + 0x87, 0xd4, 0xba, 0xe3, 0x26, 0xfd, 0x7d, 0x41, 0x4f, 0xb6, 0xe3, 0x3a, 0x74, 0xf7, 0x18, 0xee, + 0x9f, 0x8f, 0x98, 0x77, 0x67, 0xfe, 0x5a, 0x1e, 0x1e, 0x1f, 0x96, 0xd0, 0x9b, 0x34, 0x2f, 0x3b, + 0x88, 0xe5, 0x65, 0xdf, 0xa7, 0xfd, 0xf0, 0x58, 0x52, 0xb4, 0xbf, 0x9a, 0x57, 0xdb, 0x5e, 0xbf, + 0x7c, 0x0e, 0x15, 0xea, 0x99, 0xa4, 0x36, 0x93, 0x7c, 0x12, 0x2d, 0x52, 0x85, 0x93, 0x35, 0x5e, + 0x7c, 0xb7, 0x5b, 0x5e, 0x14, 0xcf, 0x24, 0xd5, 0x48, 0x28, 0x0a, 0xb1, 0xac, 0x84, 0x1e, 0x87, + 0x92, 0xcf, 0xa1, 0x32, 0x13, 0x55, 0xc4, 0xcb, 0x78, 0x19, 0x56, 0x50, 0xf4, 0x49, 0xcd, 0xc8, + 0x2c, 0x1c, 0xd7, 0x7d, 0xde, 0xc3, 0xc2, 0x80, 0x2f, 0x41, 0x29, 0x90, 0x8f, 0x9b, 0xf1, 0xb3, + 0xda, 0x27, 0x86, 0x4c, 0x70, 0xa6, 0x3e, 0x89, 0x7c, 0xe9, 0x8c, 0xf7, 0x4f, 0xbd, 0x83, 0xa6, + 0x48, 0x22, 0x53, 0xb9, 0x03, 0xfc, 0xe0, 0x09, 0x52, 0x5c, 0x81, 0xef, 0x18, 0x30, 0x2d, 0x66, + 0xeb, 0x3e, 0xe4, 0x5c, 0xdf, 0x8c, 0xe7, 0x5c, 0x5f, 0xc8, 0x44, 0x77, 0x0c, 0x48, 0xb8, 0xbe, + 0x09, 0x33, 0xfa, 0x7b, 0x1a, 0xe8, 0x45, 0x4d, 0xf7, 0x19, 0xe3, 0xdc, 0xdb, 0x97, 0xda, 0x31, + 0xd2, 0x8b, 0xe6, 0x97, 0x4a, 0x6a, 0x14, 0x59, 0x66, 0xb7, 0x2e, 0x83, 0xc6, 0xa1, 0x32, 0xa8, + 0x8b, 0x40, 0x2e, 0x7b, 0x11, 0xb8, 0x06, 0x25, 0xa9, 0xa0, 0xc4, 0x36, 0xfe, 0xa8, 0x9e, 0xd0, + 0x44, 0x6d, 0x01, 0x4a, 0x4c, 0x13, 0x5c, 0xe6, 0xc3, 0xa8, 0x39, 0x54, 0x8a, 0x53, 0x91, 0x41, + 0x2f, 0xc3, 0xf4, 0x6d, 0xcf, 0xbf, 0xe5, 0x78, 0x16, 0x7b, 0xb6, 0x10, 0xb2, 0x38, 0x75, 0x57, + 0x67, 0x39, 0x3c, 0x6f, 0xf6, 0x46, 0x44, 0x1f, 0xeb, 0xcc, 0x50, 0x05, 0xe6, 0x5b, 0xb6, 0x8b, + 0x89, 0xd5, 0x50, 0xa9, 0xd5, 0x05, 0xfe, 0xae, 0x9a, 0x34, 0x72, 0x37, 0xe3, 0x60, 0x9c, 0xc4, + 0x47, 0x1f, 0x83, 0x52, 0x20, 0xde, 0xec, 0xc8, 0x26, 0x3e, 0xa2, 0x9c, 0x31, 0x4e, 0x34, 0x1a, + 0x3b, 0x59, 0x82, 0x15, 0x43, 0xb4, 0x01, 0x4b, 0xbe, 0xb8, 0x15, 0x1f, 0x7b, 0x9e, 0x99, 0xaf, + 0x4f, 0xf6, 0x7c, 0x17, 0x4e, 0x81, 0xe3, 0xd4, 0x5a, 0xd4, 0x8a, 0x61, 0x0f, 0xc3, 0xf0, 0x83, + 0x62, 0xed, 0x6c, 0x95, 0x09, 0x7c, 0x03, 0x0b, 0xe8, 0x61, 0xa9, 0xfa, 0xa5, 0x31, 0x52, 0xf5, + 0x6b, 0x70, 0x32, 0x09, 0x62, 0x77, 0xf7, 0xd9, 0x73, 0x01, 0xda, 0xee, 0xb1, 0x95, 0x86, 0x84, + 0xd3, 0xeb, 0xa2, 0x1b, 0x30, 0xe5, 0x13, 0xe6, 0x5f, 0x54, 0x64, 0x44, 0x76, 0xe4, 0xdc, 0x13, + 0x2c, 0x09, 0xe0, 0x88, 0x16, 0x9d, 0x77, 0x2b, 0xfe, 0xb4, 0xd8, 0xb5, 0x0c, 0x3f, 0x30, 0x21, + 0xe6, 0x7e, 0xc0, 0x9b, 0x1a, 0xe6, 0x4f, 0xe6, 0x60, 0x36, 0xe6, 0xb4, 0xa3, 0x47, 0xa1, 0xc8, + 0x1e, 0x33, 0x60, 0xea, 0xa1, 0x14, 0xa9, 0x30, 0x3e, 0x38, 0x1c, 0x86, 0x3e, 0x67, 0xc0, 0x7c, + 0x3b, 0x76, 0xc0, 0x28, 0x35, 0xe7, 0x98, 0xc1, 0x9f, 0xf8, 0xa9, 0xa5, 0xf6, 0x28, 0x67, 0x9c, + 0x19, 0x4e, 0x72, 0xa7, 0x0b, 0x50, 0xa4, 0x63, 0x39, 0xc4, 0x67, 0xd8, 0xc2, 0xc6, 0x51, 0x24, + 0x56, 0xe3, 0x60, 0x9c, 0xc4, 0xa7, 0x33, 0xcc, 0x7a, 0x37, 0xce, 0xcb, 0xf3, 0x15, 0x49, 0x00, + 0x47, 0xb4, 0xd0, 0xb3, 0x30, 0x27, 0x5e, 0x94, 0xda, 0xf2, 0x1a, 0x97, 0xac, 0x60, 0x4f, 0x18, + 0xf7, 0xca, 0x19, 0x59, 0x8d, 0x41, 0x71, 0x02, 0x9b, 0xf5, 0x2d, 0x7a, 0xb6, 0x8b, 0x11, 0x98, + 0x88, 0xbf, 0x59, 0xba, 0x1a, 0x07, 0xe3, 0x24, 0x3e, 0x7a, 0x87, 0xa6, 0xf7, 0x79, 0xf0, 0x46, + 0x69, 0x83, 0x14, 0xdd, 0x5f, 0x81, 0xf9, 0x0e, 0xf3, 0x85, 0x1a, 0x12, 0x28, 0xd6, 0xa3, 0x62, + 0x78, 0x3d, 0x0e, 0xc6, 0x49, 0x7c, 0xf4, 0x0c, 0xcc, 0xfa, 0x54, 0xbb, 0x29, 0x02, 0x3c, 0xa2, + 0xa3, 0xc2, 0x0e, 0x58, 0x07, 0xe2, 0x38, 0x2e, 0x7a, 0x0e, 0x16, 0xa3, 0x67, 0x6e, 0x24, 0x01, + 0x1e, 0xe2, 0x51, 0xef, 0x46, 0x54, 0x92, 0x08, 0xb8, 0xbf, 0x0e, 0xfa, 0x45, 0x58, 0xd0, 0x46, + 0x62, 0xdd, 0x6d, 0x90, 0x3b, 0xe2, 0x29, 0x12, 0xf6, 0xad, 0x9d, 0xd5, 0x04, 0x0c, 0xf7, 0x61, + 0xa3, 0xf7, 0xc2, 0x5c, 0xdd, 0x73, 0x1c, 0xa6, 0xe3, 0xf8, 0x7b, 0x99, 0xfc, 0xcd, 0x11, 0xfe, + 0x3a, 0x4b, 0x0c, 0x82, 0x13, 0x98, 0xe8, 0x32, 0x20, 0x6f, 0x27, 0x20, 0xfe, 0x3e, 0x69, 0x3c, + 0xc7, 0xbf, 0x65, 0x45, 0xb7, 0xf8, 0xd9, 0x78, 0x32, 0xe8, 0xd5, 0x3e, 0x0c, 0x9c, 0x52, 0x8b, + 0x3d, 0x3b, 0xa1, 0x5d, 0xcc, 0x98, 0xcb, 0xe2, 0x15, 0xf6, 0xa4, 0xe7, 0x7e, 0xcf, 0x5b, 0x19, + 0x3e, 0x4c, 0xf0, 0xdc, 0xdc, 0xe5, 0xf9, 0x2c, 0x9e, 0xde, 0xd1, 0x9f, 0xce, 0x8b, 0xf6, 0x08, + 0x5e, 0x8a, 0x05, 0x27, 0xf4, 0x09, 0x98, 0xda, 0x91, 0xef, 0xa8, 0x2e, 0x2f, 0x64, 0xb1, 0x2f, + 0x26, 0x9e, 0x04, 0x8e, 0x3c, 0x53, 0x05, 0xc0, 0x11, 0x4b, 0xf4, 0x18, 0x4c, 0x5f, 0xda, 0xaa, + 0x28, 0x29, 0x5c, 0x64, 0xb3, 0x5f, 0xa0, 0x55, 0xb0, 0x0e, 0xa0, 0x2b, 0x4c, 0xd9, 0x4b, 0x88, + 0x4d, 0x71, 0xb4, 0xdf, 0xf6, 0x9b, 0x3f, 0x14, 0x9b, 0x45, 0xda, 0x70, 0x6d, 0xf9, 0x44, 0x02, + 0x5b, 0x94, 0x63, 0x85, 0x81, 0x5e, 0x82, 0x69, 0xb1, 0x5f, 0x30, 0xdd, 0xb4, 0x74, 0xb4, 0x4b, + 0x3f, 0x38, 0x22, 0x81, 0x75, 0x7a, 0xe8, 0x29, 0x98, 0x6e, 0xb3, 0xe7, 0x25, 0xc9, 0xc5, 0x8e, + 0xe3, 0x2c, 0x9f, 0x64, 0x7a, 0x53, 0x85, 0x20, 0xb6, 0x22, 0x10, 0xd6, 0xf1, 0xd0, 0x13, 0x32, + 0x9c, 0xfe, 0x96, 0x58, 0x44, 0x49, 0x85, 0xd3, 0x95, 0x95, 0x3b, 0x20, 0xdb, 0xf3, 0xd4, 0x3d, + 0xe2, 0xd8, 0x3b, 0x70, 0x5a, 0x9a, 0x58, 0xfd, 0x8b, 0x64, 0x79, 0x39, 0x76, 0x4a, 0x70, 0xfa, + 0xc6, 0x40, 0x4c, 0x7c, 0x08, 0x15, 0xb4, 0x0b, 0x79, 0xcb, 0xd9, 0x59, 0x7e, 0x30, 0x0b, 0x5b, + 0x51, 0x7d, 0x9b, 0x4e, 0x7b, 0x8a, 0x7a, 0xa3, 0x8a, 0x29, 0x03, 0xf3, 0xd5, 0xe8, 0xc8, 0x5b, + 0x3d, 0xcc, 0xf6, 0x71, 0x5d, 0xb2, 0x8d, 0x2c, 0xbe, 0xbf, 0xd4, 0xf7, 0xe0, 0x30, 0xdf, 0x94, + 0x52, 0xe5, 0xba, 0xad, 0xd6, 0x72, 0x26, 0x77, 0xfd, 0xe3, 0x8f, 0xce, 0x71, 0x8f, 0x2e, 0xbe, + 0x92, 0xcd, 0x1f, 0x16, 0xd4, 0x41, 0x54, 0x22, 0xd2, 0xed, 0x43, 0xd1, 0x0e, 0x42, 0xdb, 0xcb, + 0xf0, 0x3e, 0x4f, 0xe2, 0xb5, 0x36, 0x96, 0xd9, 0xc8, 0x00, 0x98, 0xb3, 0xa2, 0x3c, 0xdd, 0xa6, + 0xed, 0xde, 0x11, 0xdd, 0xbf, 0x96, 0x79, 0x08, 0x9b, 0xf3, 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x9b, + 0x5c, 0xda, 0xb2, 0xf9, 0xd6, 0x56, 0xf2, 0x13, 0x7a, 0x3c, 0x2f, 0x48, 0x4a, 0x1c, 0xe5, 0x15, + 0xb4, 0x6c, 0x61, 0xc7, 0x8c, 0xc9, 0xab, 0xb6, 0xb9, 0x9e, 0xc6, 0xab, 0xb6, 0xb9, 0x8e, 0x29, + 0x13, 0xf4, 0xba, 0x01, 0x60, 0xa9, 0x6f, 0xc9, 0x65, 0xf3, 0x3a, 0xf7, 0xa0, 0x6f, 0xd3, 0xf1, + 0x64, 0xa4, 0x08, 0x8a, 0x35, 0xce, 0xe6, 0xbf, 0x18, 0xa0, 0x7d, 0x80, 0x27, 0xca, 0x84, 0x31, + 0x86, 0xce, 0x84, 0xc9, 0x8d, 0x98, 0x09, 0x93, 0x1f, 0x29, 0x13, 0xa6, 0x30, 0x7a, 0x26, 0x4c, + 0x71, 0x70, 0x26, 0x8c, 0xf9, 0x86, 0x01, 0x8b, 0x7d, 0x73, 0x93, 0xfc, 0xd0, 0xa1, 0x31, 0xe4, + 0x87, 0x0e, 0xd7, 0x60, 0x41, 0x3c, 0x5f, 0x58, 0x6b, 0x3b, 0x76, 0xea, 0x15, 0xc0, 0xed, 0x04, + 0x1c, 0xf7, 0xd5, 0x30, 0xff, 0xd4, 0x80, 0x69, 0xed, 0xc6, 0x02, 0xed, 0x07, 0xbb, 0xd9, 0x21, + 0x9a, 0x11, 0xbd, 0xdc, 0xc8, 0x8e, 0x1a, 0x39, 0x8c, 0x9f, 0x7a, 0x37, 0xb5, 0x07, 0xba, 0xa2, + 0x53, 0x6f, 0x5a, 0x8a, 0x05, 0x94, 0x3f, 0xbd, 0x44, 0xf8, 0x47, 0x2c, 0xf3, 0xfa, 0xd3, 0x4b, + 0xa4, 0x8d, 0x19, 0x84, 0xb1, 0xa3, 0xfb, 0x9a, 0x48, 0x92, 0xd2, 0x1e, 0x8a, 0xb4, 0xa8, 0xf7, + 0xc2, 0x60, 0xe8, 0x0c, 0xe4, 0x89, 0xdb, 0x10, 0x46, 0xb8, 0xd2, 0xd5, 0x17, 0xdc, 0x06, 0xa6, + 0xe5, 0xe6, 0x55, 0x98, 0xa9, 0x91, 0xba, 0x4f, 0xc2, 0xe7, 0xc9, 0xc1, 0xd0, 0xdf, 0x21, 0xb8, + 0x45, 0x0e, 0x92, 0xdf, 0x21, 0xa0, 0xd5, 0x69, 0xb9, 0xf9, 0x7b, 0x06, 0x24, 0xde, 0xed, 0xd4, + 0x4e, 0xc0, 0x8c, 0x41, 0x27, 0x60, 0xb1, 0xb3, 0x9a, 0xdc, 0xa1, 0x67, 0x35, 0x97, 0x01, 0xb5, + 0xac, 0xb0, 0xbe, 0x17, 0x7b, 0x55, 0x56, 0xf8, 0x3f, 0xd1, 0xfd, 0xa8, 0x3e, 0x0c, 0x9c, 0x52, + 0xcb, 0x7c, 0xc5, 0x80, 0xbe, 0x6f, 0x50, 0xd2, 0x5d, 0x9b, 0x88, 0x27, 0xde, 0xb9, 0x5b, 0xa8, + 0x76, 0x6d, 0xf9, 0xb2, 0xbb, 0x84, 0x53, 0xdf, 0x41, 0x9e, 0x3e, 0x49, 0x5f, 0x9e, 0xdf, 0x24, + 0x51, 0xbe, 0xc3, 0x5a, 0x1c, 0x8c, 0x93, 0xf8, 0xe6, 0x0b, 0x50, 0x92, 0xd7, 0xed, 0xd8, 0x9d, + 0x15, 0xe9, 0x8d, 0xea, 0x77, 0x56, 0xa8, 0x33, 0xca, 0x20, 0x74, 0x98, 0x02, 0xd7, 0xbe, 0xe4, + 0x05, 0xa1, 0xbc, 0x23, 0xc8, 0xcf, 0x9c, 0xae, 0xac, 0xb3, 0x32, 0xac, 0xa0, 0xe6, 0x22, 0xcc, + 0xab, 0xc3, 0x24, 0x2e, 0xf4, 0xe6, 0x37, 0xf3, 0x30, 0x13, 0xfb, 0xb2, 0xd0, 0xbd, 0x27, 0x7b, + 0xf8, 0x69, 0x49, 0x39, 0x14, 0xca, 0x8f, 0x78, 0x28, 0xa4, 0x9f, 0xc2, 0x15, 0x8e, 0xf7, 0x14, + 0xae, 0x98, 0xcd, 0x29, 0x5c, 0x08, 0x93, 0xe2, 0xab, 0xab, 0x22, 0xd5, 0x76, 0x33, 0xa3, 0xbb, + 0xf2, 0xe2, 0xd2, 0x29, 0xcb, 0x2e, 0x96, 0x0a, 0x4c, 0xb2, 0x32, 0xbf, 0x5e, 0x84, 0xb9, 0xf8, + 0xed, 0xf9, 0x21, 0x66, 0xf2, 0x1d, 0x7d, 0x33, 0x39, 0xa2, 0x53, 0x9c, 0x1f, 0xd7, 0x29, 0x2e, + 0x8c, 0xeb, 0x14, 0x17, 0x8f, 0xe0, 0x14, 0xf7, 0xbb, 0xb4, 0x13, 0x43, 0xbb, 0xb4, 0xef, 0x53, + 0x11, 0xdd, 0xc9, 0x58, 0x08, 0x24, 0x8a, 0xe8, 0xa2, 0xf8, 0x34, 0xac, 0x7a, 0x8d, 0xd4, 0xc8, + 0x78, 0xe9, 0x1e, 0xc6, 0xbf, 0x9f, 0x1a, 0x80, 0x1d, 0xfd, 0xdc, 0xed, 0x2d, 0x23, 0x04, 0x5f, + 0xa3, 0x0f, 0x0b, 0xb3, 0xcd, 0x0f, 0xe2, 0x1b, 0x67, 0x2d, 0x02, 0x61, 0x1d, 0x8f, 0x7d, 0x52, + 0x26, 0xfe, 0x0d, 0x1d, 0x76, 0xc6, 0xa0, 0x7f, 0x52, 0x26, 0xf1, 0xcd, 0x9d, 0x24, 0xbe, 0xf9, + 0xb5, 0x3c, 0xcc, 0xc5, 0x9f, 0x04, 0x47, 0xb7, 0x95, 0x7d, 0x9e, 0x89, 0x6b, 0xc0, 0xc9, 0x6a, + 0xf7, 0xc7, 0x07, 0x3a, 0xdc, 0xfc, 0x73, 0xb7, 0x3b, 0xea, 0x32, 0xfb, 0xf1, 0x31, 0x16, 0x9e, + 0xae, 0x60, 0xc7, 0x5e, 0x11, 0x8f, 0xb2, 0x35, 0x45, 0x14, 0x37, 0x73, 0xee, 0x51, 0xfe, 0xa5, + 0x62, 0x85, 0x35, 0xb6, 0x54, 0xbd, 0xef, 0x13, 0xdf, 0xde, 0xb5, 0xd5, 0xe7, 0x4c, 0x98, 0xf2, + 0x7c, 0x41, 0x94, 0x61, 0x05, 0x35, 0x5f, 0xc9, 0x41, 0xf4, 0xf1, 0x26, 0xf6, 0x3a, 0x71, 0xa0, + 0x99, 0x0d, 0x62, 0xda, 0x2e, 0x8f, 0xfb, 0x04, 0x78, 0x44, 0x51, 0x24, 0xbc, 0x68, 0x25, 0x38, + 0xc6, 0xf1, 0xe7, 0xf0, 0xd1, 0x26, 0x0b, 0xe6, 0x13, 0xb7, 0x30, 0x32, 0x4f, 0xd7, 0xfb, 0x52, + 0x1e, 0xa6, 0xd4, 0x3d, 0x16, 0xf4, 0x1e, 0xf6, 0xb0, 0xe8, 0x9e, 0x27, 0x9f, 0x7b, 0x7d, 0xab, + 0xf6, 0xfc, 0xe7, 0x9e, 0xd7, 0xb8, 0xdb, 0x2d, 0xcf, 0x2b, 0x64, 0x5e, 0x84, 0x45, 0x05, 0x6a, + 0xa4, 0x75, 0x7c, 0x27, 0x69, 0xa4, 0x5d, 0xc7, 0x1b, 0x98, 0x96, 0xa3, 0x3b, 0x30, 0xb9, 0x47, + 0xac, 0x06, 0xf1, 0x65, 0xfe, 0xc0, 0x66, 0x46, 0x77, 0x6f, 0x2e, 0x31, 0xaa, 0xd1, 0x30, 0xf0, + 0xff, 0x01, 0x96, 0xec, 0xe8, 0x46, 0xb5, 0xe3, 0x35, 0x0e, 0x92, 0xcf, 0x85, 0x56, 0xbd, 0xc6, + 0x01, 0x66, 0x10, 0xf4, 0x2c, 0xcc, 0x85, 0x76, 0x8b, 0x78, 0x9d, 0x50, 0xff, 0x34, 0x4e, 0x3e, + 0x3a, 0x40, 0xde, 0x8e, 0x41, 0x71, 0x02, 0x9b, 0x6e, 0x74, 0x37, 0x03, 0xcf, 0x65, 0x4f, 0x95, + 0x4c, 0xc4, 0x4f, 0x9b, 0x2e, 0xd7, 0xae, 0x5e, 0x61, 0x2f, 0x95, 0x28, 0x0c, 0x8a, 0x6d, 0xb3, + 0x64, 0x79, 0x9f, 0x88, 0xf8, 0xcd, 0x42, 0x74, 0xa5, 0x91, 0x97, 0x63, 0x85, 0x61, 0x5e, 0x87, + 0xf9, 0x44, 0x57, 0xa5, 0x39, 0x6c, 0xa4, 0x9b, 0xc3, 0xc3, 0xbd, 0xcd, 0xf9, 0x47, 0x06, 0x2c, + 0xf6, 0x2d, 0xde, 0x61, 0xf3, 0x48, 0x93, 0x9a, 0x3c, 0x77, 0x74, 0x4d, 0x9e, 0x1f, 0x4d, 0x93, + 0x57, 0x57, 0xbe, 0xf5, 0xa3, 0xb3, 0x0f, 0x7c, 0xfb, 0x47, 0x67, 0x1f, 0xf8, 0xee, 0x8f, 0xce, + 0x3e, 0xf0, 0x4a, 0xef, 0xac, 0xf1, 0xad, 0xde, 0x59, 0xe3, 0xdb, 0xbd, 0xb3, 0xc6, 0x77, 0x7b, + 0x67, 0x8d, 0x1f, 0xf6, 0xce, 0x1a, 0x6f, 0xfc, 0xf8, 0xec, 0x03, 0x2f, 0x96, 0xa4, 0x98, 0xfc, + 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x63, 0x67, 0xc6, 0x88, 0xad, 0x82, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -3312,6 +3411,34 @@ func (m *AnalysisRunSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.MeasurementRetention) > 0 { + for iNdEx := len(m.MeasurementRetention) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MeasurementRetention[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if len(m.DryRun) > 0 { + for iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DryRun[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } i-- if m.Terminate { dAtA[i] = 1 @@ -3371,6 +3498,28 @@ func (m *AnalysisRunStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.DryRunSummary != nil { + { + size, err := m.DryRunSummary.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + { + size, err := m.RunSummary.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a if m.StartedAt != nil { { size, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i]) @@ -3553,6 +3702,34 @@ func (m *AnalysisTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.MeasurementRetention) > 0 { + for iNdEx := len(m.MeasurementRetention) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MeasurementRetention[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.DryRun) > 0 { + for iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DryRun[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } if len(m.Args) > 0 { for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { { @@ -4626,6 +4803,34 @@ func (m *DatadogMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DryRun) 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 *DryRun) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DryRun) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.MetricName) + copy(dAtA[i:], m.MetricName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *Experiment) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4915,10 +5120,24 @@ func (m *ExperimentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.ScaleDownDelaySeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.ScaleDownDelaySeconds)) - i-- - dAtA[i] = 0x30 + if len(m.DryRun) > 0 { + for iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DryRun[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if m.ScaleDownDelaySeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ScaleDownDelaySeconds)) + i-- + dAtA[i] = 0x30 } if len(m.Analyses) > 0 { for iNdEx := len(m.Analyses) - 1; iNdEx >= 0; iNdEx-- { @@ -5562,6 +5781,37 @@ func (m *Measurement) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MeasurementRetention) 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 *MeasurementRetention) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MeasurementRetention) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.Limit)) + i-- + dAtA[i] = 0x10 + i -= len(m.MetricName) + copy(dAtA[i:], m.MetricName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *Metric) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5819,6 +6069,14 @@ func (m *MetricResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i-- + if m.DryRun { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x58 i = encodeVarintGenerated(dAtA, i, uint64(m.ConsecutiveError)) i-- dAtA[i] = 0x50 @@ -6261,6 +6519,20 @@ func (m *RolloutAnalysis) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.DryRun) > 0 { + for iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DryRun[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } if len(m.Args) > 0 { for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { { @@ -7202,6 +7474,44 @@ func (m *RolloutTrafficRouting) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *RunSummary) 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 *RunSummary) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RunSummary) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.Error)) + i-- + dAtA[i] = 0x28 + i = encodeVarintGenerated(dAtA, i, uint64(m.Inconclusive)) + i-- + dAtA[i] = 0x20 + i = encodeVarintGenerated(dAtA, i, uint64(m.Failed)) + i-- + dAtA[i] = 0x18 + i = encodeVarintGenerated(dAtA, i, uint64(m.Successful)) + i-- + dAtA[i] = 0x10 + i = encodeVarintGenerated(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + func (m *SMITrafficRouting) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -8007,6 +8317,18 @@ func (m *AnalysisRunSpec) Size() (n int) { } } n += 2 + if len(m.DryRun) > 0 { + for _, e := range m.DryRun { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.MeasurementRetention) > 0 { + for _, e := range m.MeasurementRetention { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -8030,6 +8352,12 @@ func (m *AnalysisRunStatus) Size() (n int) { l = m.StartedAt.Size() n += 1 + l + sovGenerated(uint64(l)) } + l = m.RunSummary.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.DryRunSummary != nil { + l = m.DryRunSummary.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -8096,6 +8424,18 @@ func (m *AnalysisTemplateSpec) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if len(m.DryRun) > 0 { + for _, e := range m.DryRun { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.MeasurementRetention) > 0 { + for _, e := range m.MeasurementRetention { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -8489,6 +8829,17 @@ func (m *DatadogMetric) Size() (n int) { return n } +func (m *DryRun) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MetricName) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *Experiment) Size() (n int) { if m == nil { return 0 @@ -8607,6 +8958,12 @@ func (m *ExperimentSpec) Size() (n int) { if m.ScaleDownDelaySeconds != nil { n += 1 + sovGenerated(uint64(*m.ScaleDownDelaySeconds)) } + if len(m.DryRun) > 0 { + for _, e := range m.DryRun { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -8833,6 +9190,18 @@ func (m *Measurement) Size() (n int) { return n } +func (m *MeasurementRetention) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MetricName) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Limit)) + return n +} + func (m *Metric) Size() (n int) { if m == nil { return 0 @@ -8939,6 +9308,7 @@ func (m *MetricResult) Size() (n int) { n += 1 + sovGenerated(uint64(m.Inconclusive)) n += 1 + sovGenerated(uint64(m.Error)) n += 1 + sovGenerated(uint64(m.ConsecutiveError)) + n += 2 return n } @@ -9094,6 +9464,12 @@ func (m *RolloutAnalysis) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if len(m.DryRun) > 0 { + for _, e := range m.DryRun { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -9410,6 +9786,20 @@ func (m *RolloutTrafficRouting) Size() (n int) { return n } +func (m *RunSummary) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Count)) + n += 1 + sovGenerated(uint64(m.Successful)) + n += 1 + sovGenerated(uint64(m.Failed)) + n += 1 + sovGenerated(uint64(m.Inconclusive)) + n += 1 + sovGenerated(uint64(m.Error)) + return n +} + func (m *SMITrafficRouting) Size() (n int) { if m == nil { return 0 @@ -9761,10 +10151,22 @@ func (this *AnalysisRunSpec) String() string { repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "Argument", "Argument", 1), `&`, ``, 1) + "," } repeatedStringForArgs += "}" + repeatedStringForDryRun := "[]DryRun{" + for _, f := range this.DryRun { + repeatedStringForDryRun += strings.Replace(strings.Replace(f.String(), "DryRun", "DryRun", 1), `&`, ``, 1) + "," + } + repeatedStringForDryRun += "}" + repeatedStringForMeasurementRetention := "[]MeasurementRetention{" + for _, f := range this.MeasurementRetention { + repeatedStringForMeasurementRetention += strings.Replace(strings.Replace(f.String(), "MeasurementRetention", "MeasurementRetention", 1), `&`, ``, 1) + "," + } + repeatedStringForMeasurementRetention += "}" s := strings.Join([]string{`&AnalysisRunSpec{`, `Metrics:` + repeatedStringForMetrics + `,`, `Args:` + repeatedStringForArgs + `,`, `Terminate:` + fmt.Sprintf("%v", this.Terminate) + `,`, + `DryRun:` + repeatedStringForDryRun + `,`, + `MeasurementRetention:` + repeatedStringForMeasurementRetention + `,`, `}`, }, "") return s @@ -9783,6 +10185,8 @@ func (this *AnalysisRunStatus) String() string { `Message:` + fmt.Sprintf("%v", this.Message) + `,`, `MetricResults:` + repeatedStringForMetricResults + `,`, `StartedAt:` + strings.Replace(fmt.Sprintf("%v", this.StartedAt), "Time", "v1.Time", 1) + `,`, + `RunSummary:` + strings.Replace(strings.Replace(this.RunSummary.String(), "RunSummary", "RunSummary", 1), `&`, ``, 1) + `,`, + `DryRunSummary:` + strings.Replace(this.DryRunSummary.String(), "RunSummary", "RunSummary", 1) + `,`, `}`, }, "") return s @@ -9839,9 +10243,21 @@ func (this *AnalysisTemplateSpec) String() string { repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "Argument", "Argument", 1), `&`, ``, 1) + "," } repeatedStringForArgs += "}" + repeatedStringForDryRun := "[]DryRun{" + for _, f := range this.DryRun { + repeatedStringForDryRun += strings.Replace(strings.Replace(f.String(), "DryRun", "DryRun", 1), `&`, ``, 1) + "," + } + repeatedStringForDryRun += "}" + repeatedStringForMeasurementRetention := "[]MeasurementRetention{" + for _, f := range this.MeasurementRetention { + repeatedStringForMeasurementRetention += strings.Replace(strings.Replace(f.String(), "MeasurementRetention", "MeasurementRetention", 1), `&`, ``, 1) + "," + } + repeatedStringForMeasurementRetention += "}" s := strings.Join([]string{`&AnalysisTemplateSpec{`, `Metrics:` + repeatedStringForMetrics + `,`, `Args:` + repeatedStringForArgs + `,`, + `DryRun:` + repeatedStringForDryRun + `,`, + `MeasurementRetention:` + repeatedStringForMeasurementRetention + `,`, `}`, }, "") return s @@ -10093,6 +10509,16 @@ func (this *DatadogMetric) String() string { }, "") return s } +func (this *DryRun) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DryRun{`, + `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, + `}`, + }, "") + return s +} func (this *Experiment) String() string { if this == nil { return "nil" @@ -10182,6 +10608,11 @@ func (this *ExperimentSpec) String() string { repeatedStringForAnalyses += strings.Replace(strings.Replace(f.String(), "ExperimentAnalysisTemplateRef", "ExperimentAnalysisTemplateRef", 1), `&`, ``, 1) + "," } repeatedStringForAnalyses += "}" + repeatedStringForDryRun := "[]DryRun{" + for _, f := range this.DryRun { + repeatedStringForDryRun += strings.Replace(strings.Replace(f.String(), "DryRun", "DryRun", 1), `&`, ``, 1) + "," + } + repeatedStringForDryRun += "}" s := strings.Join([]string{`&ExperimentSpec{`, `Templates:` + repeatedStringForTemplates + `,`, `Duration:` + fmt.Sprintf("%v", this.Duration) + `,`, @@ -10189,6 +10620,7 @@ func (this *ExperimentSpec) String() string { `Terminate:` + fmt.Sprintf("%v", this.Terminate) + `,`, `Analyses:` + repeatedStringForAnalyses + `,`, `ScaleDownDelaySeconds:` + valueToStringGenerated(this.ScaleDownDelaySeconds) + `,`, + `DryRun:` + repeatedStringForDryRun + `,`, `}`, }, "") return s @@ -10372,6 +10804,17 @@ func (this *Measurement) String() string { }, "") return s } +func (this *MeasurementRetention) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MeasurementRetention{`, + `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, + `Limit:` + fmt.Sprintf("%v", this.Limit) + `,`, + `}`, + }, "") + return s +} func (this *Metric) String() string { if this == nil { return "nil" @@ -10423,13 +10866,13 @@ func (this *MetricResult) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `Measurements:` + repeatedStringForMeasurements + `,`, `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `Dry-Run:` + fmt.Sprintf("%v", this.DryRun) + `,`, `Count:` + fmt.Sprintf("%v", this.Count) + `,`, `Successful:` + fmt.Sprintf("%v", this.Successful) + `,`, `Failed:` + fmt.Sprintf("%v", this.Failed) + `,`, `Inconclusive:` + fmt.Sprintf("%v", this.Inconclusive) + `,`, `Error:` + fmt.Sprintf("%v", this.Error) + `,`, `ConsecutiveError:` + fmt.Sprintf("%v", this.ConsecutiveError) + `,`, + `DryRun:` + fmt.Sprintf("%v", this.DryRun) + `,`, `}`, }, "") return s @@ -10577,9 +11020,15 @@ func (this *RolloutAnalysis) String() string { repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "AnalysisRunArgument", "AnalysisRunArgument", 1), `&`, ``, 1) + "," } repeatedStringForArgs += "}" + repeatedStringForDryRun := "[]DryRun{" + for _, f := range this.DryRun { + repeatedStringForDryRun += strings.Replace(strings.Replace(f.String(), "DryRun", "DryRun", 1), `&`, ``, 1) + "," + } + repeatedStringForDryRun += "}" s := strings.Join([]string{`&RolloutAnalysis{`, `Templates:` + repeatedStringForTemplates + `,`, `Args:` + repeatedStringForArgs + `,`, + `DryRun:` + repeatedStringForDryRun + `,`, `}`, }, "") return s @@ -10805,6 +11254,20 @@ func (this *RolloutTrafficRouting) String() string { }, "") return s } +func (this *RunSummary) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RunSummary{`, + `Count:` + fmt.Sprintf("%v", this.Count) + `,`, + `Successful:` + fmt.Sprintf("%v", this.Successful) + `,`, + `Failed:` + fmt.Sprintf("%v", this.Failed) + `,`, + `Inconclusive:` + fmt.Sprintf("%v", this.Inconclusive) + `,`, + `Error:` + fmt.Sprintf("%v", this.Error) + `,`, + `}`, + }, "") + return s +} func (this *SMITrafficRouting) String() string { if this == nil { return "nil" @@ -11145,7 +11608,10 @@ func (m *ALBStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11346,7 +11812,10 @@ func (m *ALBTrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11428,7 +11897,10 @@ func (m *AmbassadorTrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11577,7 +12049,10 @@ func (m *AnalysisRun) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11727,7 +12202,10 @@ func (m *AnalysisRunArgument) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11844,7 +12322,10 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11976,61 +12457,11 @@ func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { } } m.Terminate = 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 *AnalysisRunStatus) 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: AnalysisRunStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -12040,7 +12471,128 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + 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.DryRun = append(m.DryRun, DryRun{}) + if err := m.DryRun[len(m.DryRun)-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 MeasurementRetention", 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.MeasurementRetention = append(m.MeasurementRetention, MeasurementRetention{}) + if err := m.MeasurementRetention[len(m.MeasurementRetention)-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 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRunStatus) 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: AnalysisRunStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", 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 } @@ -12160,13 +12712,85 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunSummary", 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.RunSummary.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRunSummary", 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.DryRunSummary == nil { + m.DryRunSummary = &RunSummary{} + } + if err := m.DryRunSummary.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 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12256,7 +12880,10 @@ func (m *AnalysisRunStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12372,7 +12999,10 @@ func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12489,7 +13119,10 @@ func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12601,13 +13234,84 @@ func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", 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.DryRun = append(m.DryRun, DryRun{}) + if err := m.DryRun[len(m.DryRun)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MeasurementRetention", 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.MeasurementRetention = append(m.MeasurementRetention, MeasurementRetention{}) + if err := m.MeasurementRetention[len(m.MeasurementRetention)-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 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12729,7 +13433,10 @@ func (m *AntiAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12880,7 +13587,10 @@ func (m *Argument) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12999,7 +13709,10 @@ func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13113,7 +13826,10 @@ func (m *AwsResourceRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13319,7 +14035,10 @@ func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13769,7 +14488,10 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13959,7 +14681,10 @@ func (m *CanaryStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14173,7 +14898,10 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14653,7 +15381,10 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14769,7 +15500,10 @@ func (m *CloudWatchMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15010,7 +15744,10 @@ func (m *CloudWatchMetricDataQuery) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15190,7 +15927,10 @@ func (m *CloudWatchMetricStat) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15339,7 +16079,10 @@ func (m *CloudWatchMetricStatMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15453,7 +16196,10 @@ func (m *CloudWatchMetricStatMetricDimension) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15569,7 +16315,10 @@ func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15617,7 +16366,127 @@ func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } - var msglen int + 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, ClusterAnalysisTemplate{}) + 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 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DatadogMetric) 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: DatadogMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DatadogMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15627,30 +16496,29 @@ func (m *ClusterAnalysisTemplateList) 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.Interval = DurationString(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15660,25 +16528,23 @@ func (m *ClusterAnalysisTemplateList) 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.Items = append(m.Items, ClusterAnalysisTemplate{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Query = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -15686,7 +16552,10 @@ func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15701,7 +16570,7 @@ func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { } return nil } -func (m *DatadogMetric) Unmarshal(dAtA []byte) error { +func (m *DryRun) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15724,47 +16593,15 @@ func (m *DatadogMetric) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DatadogMetric: wiretype end group for non-group") + return fmt.Errorf("proto: DryRun: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DatadogMetric: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DryRun: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Interval", 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.Interval = DurationString(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15792,7 +16629,7 @@ func (m *DatadogMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Query = string(dAtA[iNdEx:postIndex]) + m.MetricName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -15800,7 +16637,10 @@ func (m *DatadogMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15949,7 +16789,10 @@ func (m *Experiment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16127,7 +16970,10 @@ func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16315,7 +17161,10 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16559,7 +17408,10 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16676,7 +17528,10 @@ func (m *ExperimentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -16880,13 +17735,50 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { } } m.ScaleDownDelaySeconds = &v + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", 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.DryRun = append(m.DryRun, DryRun{}) + if err := m.DryRun[len(m.DryRun)-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 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17138,7 +18030,10 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17220,7 +18115,10 @@ func (m *FieldRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17334,7 +18232,10 @@ func (m *GraphiteMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17480,7 +18381,10 @@ func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17636,7 +18540,10 @@ func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17784,7 +18691,10 @@ func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -17900,7 +18810,10 @@ func (m *JobMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18209,7 +19122,10 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18357,7 +19273,10 @@ func (m *KayentaScope) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18445,7 +19364,10 @@ func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -18773,7 +19695,7 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -18826,7 +19748,114 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MeasurementRetention) 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: MeasurementRetention: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MeasurementRetention: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricName", 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.MetricName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) + } + m.Limit = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Limit |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19213,7 +20242,10 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19587,7 +20619,10 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19860,7 +20895,26 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveError", wireType) } - m.ConsecutiveError = 0 + m.ConsecutiveError = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ConsecutiveError |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType) + } + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -19870,18 +20924,22 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ConsecutiveError |= int32(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.DryRun = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -19995,7 +21053,10 @@ func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20219,7 +21280,7 @@ func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -20236,7 +21297,10 @@ func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20382,7 +21446,10 @@ func (m *ObjectRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20497,7 +21564,10 @@ func (m *PauseCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20657,7 +21727,7 @@ func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -20784,7 +21854,7 @@ func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -20801,7 +21871,10 @@ func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20870,7 +21943,10 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -20984,7 +22060,10 @@ func (m *PrometheusMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21034,7 +22113,10 @@ func (m *RequiredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21183,7 +22265,10 @@ func (m *Rollout) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21295,13 +22380,50 @@ func (m *RolloutAnalysis) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", 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.DryRun = append(m.DryRun, DryRun{}) + if err := m.DryRun[len(m.DryRun)-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 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21404,7 +22526,10 @@ func (m *RolloutAnalysisBackground) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21550,7 +22675,10 @@ func (m *RolloutAnalysisRunStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21652,7 +22780,10 @@ func (m *RolloutAnalysisTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -21896,7 +23027,10 @@ func (m *RolloutCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22046,7 +23180,10 @@ func (m *RolloutExperimentStep) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22234,7 +23371,10 @@ func (m *RolloutExperimentStepAnalysisTemplateRef) Unmarshal(dAtA []byte) error if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22457,7 +23597,10 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22574,7 +23717,10 @@ func (m *RolloutList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -22660,7 +23806,10 @@ func (m *RolloutPause) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23039,7 +24188,10 @@ func (m *RolloutSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23779,7 +24931,10 @@ func (m *RolloutStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -23901,7 +25056,10 @@ func (m *RolloutStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24131,7 +25289,158 @@ func (m *RolloutTrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RunSummary) 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: RunSummary: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunSummary: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Successful", wireType) + } + m.Successful = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Successful |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) + } + m.Failed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Failed |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Inconclusive", wireType) + } + m.Inconclusive = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Inconclusive |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + m.Error = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Error |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24245,7 +25554,10 @@ func (m *SMITrafficRouting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24442,7 +25754,10 @@ func (m *ScopeDetail) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24556,7 +25871,10 @@ func (m *SecretKeyRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24666,7 +25984,10 @@ func (m *SetCanaryScale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24755,7 +26076,10 @@ func (m *StickinessConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24856,7 +26180,10 @@ func (m *TLSRoute) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -24906,7 +26233,10 @@ func (m *TemplateService) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25132,7 +26462,10 @@ func (m *TemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25474,7 +26807,10 @@ func (m *TemplateStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25645,7 +26981,10 @@ func (m *TrafficWeights) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25767,7 +27106,10 @@ func (m *ValueFrom) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -25881,7 +27223,10 @@ func (m *WavefrontMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -26132,7 +27477,10 @@ func (m *WebMetric) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -26246,7 +27594,10 @@ func (m *WebMetricHeader) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -26379,7 +27730,10 @@ func (m *WeightDestination) Unmarshal(dAtA []byte) error { if err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index 7885f04580..300a6337e3 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2021 The Kubernetes sample-controller Authors. +Copyright 2022 The Kubernetes sample-controller Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,6 +24,8 @@ package github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1; import "k8s.io/api/batch/v1/generated.proto"; import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". @@ -114,6 +116,18 @@ message AnalysisRunSpec { // Terminate is used to prematurely stop the run (e.g. rollout completed and analysis is no longer desired) optional bool terminate = 3; + + // DryRun object contains the settings for running the analysis in Dry-Run mode + // +patchMergeKey=metricName + // +patchStrategy=merge + // +optional + repeated DryRun dryRun = 4; + + // MeasurementRetention object contains the settings for retaining the number of measurements during the analysis + // +patchMergeKey=metricName + // +patchStrategy=merge + // +optional + repeated MeasurementRetention measurementRetention = 5; } // AnalysisRunStatus is the status for a AnalysisRun resource @@ -129,6 +143,12 @@ message AnalysisRunStatus { // StartedAt indicates when the analysisRun first started optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 4; + + // RunSummary contains the final results from the metric executions + optional RunSummary runSummary = 5; + + // DryRunSummary contains the final results from the metric executions in the dry-run mode + optional RunSummary dryRunSummary = 6; } // AnalysisRunStrategy configuration for the analysis runs and experiments to retain @@ -172,6 +192,18 @@ message AnalysisTemplateSpec { // +patchStrategy=merge // +optional repeated Argument args = 2; + + // DryRun object contains the settings for running the analysis in Dry-Run mode + // +patchMergeKey=metricName + // +patchStrategy=merge + // +optional + repeated DryRun dryRun = 3; + + // MeasurementRetention object contains the settings for retaining the number of measurements during the analysis + // +patchMergeKey=metricName + // +patchStrategy=merge + // +optional + repeated MeasurementRetention measurementRetention = 4; } // AntiAffinity defines which inter-pod scheduling rule to use for anti-affinity injection @@ -492,6 +524,13 @@ message DatadogMetric { optional string query = 2; } +// DryRun defines the settings for running the analysis in Dry-Run mode. +message DryRun { + // Name of the metric which needs to be evaluated in the Dry-Run mode. Wildcard '*' is supported and denotes all + // the available metrics. + optional string metricName = 1; +} + // Experiment is a specification for an Experiment resource // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -604,6 +643,12 @@ message ExperimentSpec { // more information // +optional optional int32 scaleDownDelaySeconds = 6; + + // DryRun object contains the settings for running the analysis in Dry-Run mode + // +patchMergeKey=metricName + // +patchStrategy=merge + // +optional + repeated DryRun dryRun = 7; } // ExperimentStatus is the status for a Experiment resource @@ -748,6 +793,15 @@ message Measurement { optional k8s.io.apimachinery.pkg.apis.meta.v1.Time resumeAt = 7; } +// MeasurementRetention defines the settings for retaining the number of measurements during the analysis. +message MeasurementRetention { + // MetricName is the name of the metric on which this retention policy should be applied. + optional string metricName = 1; + + // Limit is the maximum number of measurements to be retained for this given metric. + optional int32 limit = 2; +} + // Metric defines a metric in which to perform analysis message Metric { // Name is the name of the metric @@ -859,6 +913,9 @@ message MetricResult { // ConsecutiveError is the number of times an error was encountered during measurement in succession // Resets to zero when non-errors are encountered optional int32 consecutiveError = 10; + + // DryRun indicates whether this metric is running in a dry-run mode or not + optional bool dryRun = 11; } // NewRelicMetric defines the newrelic query to perform canary analysis @@ -950,6 +1007,12 @@ message RolloutAnalysis { // +patchMergeKey=name // +patchStrategy=merge repeated AnalysisRunArgument args = 2; + + // DryRun object contains the settings for running the analysis in Dry-Run mode + // +patchMergeKey=metricName + // +patchStrategy=merge + // +optional + repeated DryRun dryRun = 3; } // RolloutAnalysisBackground defines a template that is used to create a background analysisRun @@ -1265,6 +1328,24 @@ message RolloutTrafficRouting { optional AmbassadorTrafficRouting ambassador = 5; } +// RunSummary contains the final results from the metric executions +message RunSummary { + // This is equal to the sum of Successful, Failed, Inconclusive + optional int32 count = 1; + + // Successful is the number of times the metric was measured Successful + optional int32 successful = 2; + + // Failed is the number of times the metric was measured Failed + optional int32 failed = 3; + + // Inconclusive is the number of times the metric was measured Inconclusive + optional int32 inconclusive = 4; + + // Error is the number of times an error was encountered during measurement + optional int32 error = 5; +} + // SMITrafficRouting configuration for TrafficSplit Custom Resource to control traffic routing message SMITrafficRouting { // RootService holds the name of that clients use to communicate. diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index 67a31048bf..7e24562d25 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2021 The Kubernetes sample-controller Authors. +Copyright 2022 The Kubernetes sample-controller Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -58,6 +58,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ClusterAnalysisTemplate": schema_pkg_apis_rollouts_v1alpha1_ClusterAnalysisTemplate(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ClusterAnalysisTemplateList": schema_pkg_apis_rollouts_v1alpha1_ClusterAnalysisTemplateList(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DatadogMetric": schema_pkg_apis_rollouts_v1alpha1_DatadogMetric(ref), + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun": schema_pkg_apis_rollouts_v1alpha1_DryRun(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Experiment": schema_pkg_apis_rollouts_v1alpha1_Experiment(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ExperimentAnalysisRunStatus": schema_pkg_apis_rollouts_v1alpha1_ExperimentAnalysisRunStatus(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ExperimentAnalysisTemplateRef": schema_pkg_apis_rollouts_v1alpha1_ExperimentAnalysisTemplateRef(ref), @@ -75,6 +76,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.KayentaScope": schema_pkg_apis_rollouts_v1alpha1_KayentaScope(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.KayentaThreshold": schema_pkg_apis_rollouts_v1alpha1_KayentaThreshold(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Measurement": schema_pkg_apis_rollouts_v1alpha1_Measurement(ref), + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention": schema_pkg_apis_rollouts_v1alpha1_MeasurementRetention(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Metric": schema_pkg_apis_rollouts_v1alpha1_Metric(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MetricProvider": schema_pkg_apis_rollouts_v1alpha1_MetricProvider(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MetricResult": schema_pkg_apis_rollouts_v1alpha1_MetricResult(ref), @@ -101,6 +103,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutStatus": schema_pkg_apis_rollouts_v1alpha1_RolloutStatus(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutStrategy": schema_pkg_apis_rollouts_v1alpha1_RolloutStrategy(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutTrafficRouting": schema_pkg_apis_rollouts_v1alpha1_RolloutTrafficRouting(ref), + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RunSummary": schema_pkg_apis_rollouts_v1alpha1_RunSummary(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.SMITrafficRouting": schema_pkg_apis_rollouts_v1alpha1_SMITrafficRouting(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ScopeDetail": schema_pkg_apis_rollouts_v1alpha1_ScopeDetail(ref), "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.SecretKeyRef": schema_pkg_apis_rollouts_v1alpha1_SecretKeyRef(ref), @@ -420,12 +423,52 @@ func schema_pkg_apis_rollouts_v1alpha1_AnalysisRunSpec(ref common.ReferenceCallb Format: "", }, }, + "dryRun": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "DryRun object contains the settings for running the analysis in Dry-Run mode", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun"), + }, + }, + }, + }, + }, + "measurementRetention": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "MeasurementRetention object contains the settings for retaining the number of measurements during the analysis", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention"), + }, + }, + }, + }, + }, }, Required: []string{"metrics"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Argument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Metric"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Argument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Metric"}, } } @@ -471,12 +514,25 @@ func schema_pkg_apis_rollouts_v1alpha1_AnalysisRunStatus(ref common.ReferenceCal Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, + "runSummary": { + SchemaProps: spec.SchemaProps{ + Description: "RunSummary contains the final results from the metric executions", + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RunSummary"), + }, + }, + "dryRunSummary": { + SchemaProps: spec.SchemaProps{ + Description: "DryRunSummary contains the final results from the metric executions in the dry-run mode", + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RunSummary"), + }, + }, }, Required: []string{"phase"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MetricResult", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MetricResult", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RunSummary", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } @@ -645,12 +701,52 @@ func schema_pkg_apis_rollouts_v1alpha1_AnalysisTemplateSpec(ref common.Reference }, }, }, + "dryRun": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "DryRun object contains the settings for running the analysis in Dry-Run mode", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun"), + }, + }, + }, + }, + }, + "measurementRetention": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "MeasurementRetention object contains the settings for retaining the number of measurements during the analysis", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention"), + }, + }, + }, + }, + }, }, Required: []string{"metrics"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Argument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Metric"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Argument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.MeasurementRetention", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.Metric"}, } } @@ -1429,6 +1525,28 @@ func schema_pkg_apis_rollouts_v1alpha1_DatadogMetric(ref common.ReferenceCallbac } } +func schema_pkg_apis_rollouts_v1alpha1_DryRun(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DryRun defines the settings for running the analysis in Dry-Run mode.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "metricName": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the metric which needs to be evaluated in the Dry-Run mode. Wildcard '*' is supported and denotes all the available metrics.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"metricName"}, + }, + }, + } +} + func schema_pkg_apis_rollouts_v1alpha1_Experiment(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -1772,12 +1890,32 @@ func schema_pkg_apis_rollouts_v1alpha1_ExperimentSpec(ref common.ReferenceCallba Format: "int32", }, }, + "dryRun": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "DryRun object contains the settings for running the analysis in Dry-Run mode", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun"), + }, + }, + }, + }, + }, }, Required: []string{"templates"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ExperimentAnalysisTemplateRef", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateSpec"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.ExperimentAnalysisTemplateRef", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateSpec"}, } } @@ -2275,6 +2413,36 @@ func schema_pkg_apis_rollouts_v1alpha1_Measurement(ref common.ReferenceCallback) } } +func schema_pkg_apis_rollouts_v1alpha1_MeasurementRetention(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "MeasurementRetention defines the settings for retaining the number of measurements during the analysis.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "metricName": { + SchemaProps: spec.SchemaProps{ + Description: "MetricName is the name of the metric on which this retention policy should be applied.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "limit": { + SchemaProps: spec.SchemaProps{ + Description: "Limit is the maximum number of measurements to be retained for this given metric.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"metricName", "limit"}, + }, + }, + } +} + func schema_pkg_apis_rollouts_v1alpha1_Metric(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -2513,6 +2681,13 @@ func schema_pkg_apis_rollouts_v1alpha1_MetricResult(ref common.ReferenceCallback Format: "int32", }, }, + "dryRun": { + SchemaProps: spec.SchemaProps{ + Description: "DryRun indicates whether this metric is running in a dry-run mode or not", + Type: []string{"boolean"}, + Format: "", + }, + }, }, Required: []string{"name", "phase"}, }, @@ -2852,11 +3027,31 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutAnalysis(ref common.ReferenceCallb }, }, }, + "dryRun": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "DryRun object contains the settings for running the analysis in Dry-Run mode", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, } } @@ -2901,6 +3096,26 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutAnalysisBackground(ref common.Refe }, }, }, + "dryRun": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "metricName", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "DryRun object contains the settings for running the analysis in Dry-Run mode", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun"), + }, + }, + }, + }, + }, "startingStep": { SchemaProps: spec.SchemaProps{ Description: "StartingStep indicates which step the background analysis should start on If not listed, controller defaults to 0", @@ -2912,7 +3127,7 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutAnalysisBackground(ref common.Refe }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.AnalysisRunArgument", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.DryRun", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.RolloutAnalysisTemplate"}, } } @@ -3662,6 +3877,54 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutTrafficRouting(ref common.Referenc } } +func schema_pkg_apis_rollouts_v1alpha1_RunSummary(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RunSummary contains the final results from the metric executions", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "count": { + SchemaProps: spec.SchemaProps{ + Description: "This is equal to the sum of Successful, Failed, Inconclusive", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "successful": { + SchemaProps: spec.SchemaProps{ + Description: "Successful is the number of times the metric was measured Successful", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "failed": { + SchemaProps: spec.SchemaProps{ + Description: "Failed is the number of times the metric was measured Failed", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "inconclusive": { + SchemaProps: spec.SchemaProps{ + Description: "Inconclusive is the number of times the metric was measured Inconclusive", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "error": { + SchemaProps: spec.SchemaProps{ + Description: "Error is the number of times an error was encountered during measurement", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + func schema_pkg_apis_rollouts_v1alpha1_SMITrafficRouting(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{