From 898dc86ea61a4a4db6cd13c72e0ce4f2b482949b Mon Sep 17 00:00:00 2001 From: lgtm <1gtm@users.noreply.github.com> Date: Sat, 9 Oct 2021 13:43:14 -0700 Subject: [PATCH] Prepare for release 2.6.1 (#9) ProductLine: Stash Release: v2021.10.11 Release-tracker: https://github.com/stashed/CHANGELOG/pull/41 Signed-off-by: 1gtm <1gtm@appscode.com> --- go.mod | 4 +- go.sum | 8 +- vendor/modules.txt | 4 +- .../apimachinery/apis/constants.go | 21 +- .../v1alpha1/openapi_generated.go | 31 ++ .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../repositories/zz_generated.deepcopy.go | 1 + .../apis/stash/v1alpha1/openapi_generated.go | 31 ++ .../stash/v1alpha1/zz_generated.deepcopy.go | 1 + .../apis/stash/v1beta1/generated.pb.go | 509 +++++++++++------- .../apis/stash/v1beta1/generated.proto | 8 + .../apis/stash/v1beta1/openapi_generated.go | 61 +++ .../stash/v1beta1/restore_session_types.go | 3 +- .../apimachinery/apis/stash/v1beta1/types.go | 6 + .../stash/v1beta1/zz_generated.deepcopy.go | 11 + .../stash.appscode.com_backupbatches.yaml | 6 + ...ash.appscode.com_backupconfigurations.yaml | 6 + .../stash.appscode.com_restorebatches.yaml | 7 + .../stash.appscode.com_restoresessions.yaml | 7 + .../apimachinery/pkg/conditions/restore.go | 18 + .../pkg/invoker/restore_invoker.go | 36 +- .../apimachinery/pkg/restic/backup.go | 1 + .../apimachinery/pkg/restic/commands.go | 12 +- .../apimachinery/pkg/restic/config.go | 2 + .../apimachinery/pkg/restic/restore.go | 2 + .../apimachinery/pkg/restic/setup.go | 11 +- 28 files changed, 565 insertions(+), 245 deletions(-) diff --git a/go.mod b/go.mod index 1ac297c3..3d638e24 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.15 require ( github.com/spf13/cobra v1.1.3 go.bytebuilders.dev/license-verifier/kubernetes v0.9.3 - golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b // indirect gomodules.xyz/flags v0.1.2 gomodules.xyz/go-sh v0.1.0 gomodules.xyz/logs v0.0.4 @@ -15,9 +14,8 @@ require ( k8s.io/klog/v2 v2.8.0 kmodules.xyz/client-go v0.0.0-20210928133955-8df5bb467db6 kmodules.xyz/custom-resources v0.0.0-20211007080833-72bd9e8cae6e - kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e // indirect kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61 - stash.appscode.dev/apimachinery v0.15.0 + stash.appscode.dev/apimachinery v0.16.0 ) replace bitbucket.org/ww/goautoneg => gomodules.xyz/goautoneg v0.0.0-20120707110453-a547fc61f48d diff --git a/go.sum b/go.sum index f13e1404..59f2b098 100644 --- a/go.sum +++ b/go.sum @@ -1023,19 +1023,15 @@ k8s.io/system-validators v1.4.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6g k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= kmodules.xyz/client-go v0.0.0-20210617233340-13d22e91512b/go.mod h1:A6GAK6xP5zBuWK6A/vUkkjKzcuywkms7fIxRf5wblO4= -kmodules.xyz/client-go v0.0.0-20210719120358-dd0503cf99cf/go.mod h1:E/vGngai00UtVwP8R4PWpPUBF/EZa6Ub9WS5+tVcs4M= kmodules.xyz/client-go v0.0.0-20210822203828-5e9cebbf1dfa/go.mod h1:0gkPeALtYjB27OHt4rd6+ZmMgoVTHVLtEJQeU23/gtA= kmodules.xyz/client-go v0.0.0-20210928133955-8df5bb467db6 h1:o+SymmN26C8bqh1nLTFjT0UdOtAYrTLbp6v49iRe5MY= kmodules.xyz/client-go v0.0.0-20210928133955-8df5bb467db6/go.mod h1:0gkPeALtYjB27OHt4rd6+ZmMgoVTHVLtEJQeU23/gtA= kmodules.xyz/constants v0.0.0-20210218100002-2c304bfda278/go.mod h1:DbiFk1bJ1KEO94t1SlAn7tzc+Zz95rSXgyUKa2nzPmY= kmodules.xyz/crd-schema-fuzz v0.0.0-20210618002152-fae23aef5fb4/go.mod h1:IIkUctlfoptoci0BOrsUf8ya+MOG5uaeh1PE4uzaIbA= -kmodules.xyz/custom-resources v0.0.0-20210618003440-c6bb400da153/go.mod h1:/NLuNSf299U0XVuNEh2swtw3EczWFRL3Sx24WhNoWCM= kmodules.xyz/custom-resources v0.0.0-20211007080833-72bd9e8cae6e h1:0IEUFAJPgwPx3+Zb1BMcHLywKhJtXMk6YCHNsjWJwYQ= kmodules.xyz/custom-resources v0.0.0-20211007080833-72bd9e8cae6e/go.mod h1:pGabego8q4oi/2sNjhdtFkgVaVw4AyGv14GO6VtAjTw= -kmodules.xyz/objectstore-api v0.0.0-20210618005912-71f8a80f48f9/go.mod h1:8sCfgZQImwjTLh2mDxYiim6+GecFN+DamkPSF9joyu4= kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e h1:2QZBUcUI6r7mLU5/9+Xxd1eDClEIEkZkJlyCU91UoY8= kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e/go.mod h1:Tkcf9uTplnrJ6C8o0zlw2kpgS1SaWAiMO5P2YgLjTo8= -kmodules.xyz/offshoot-api v0.0.0-20210618005544-5217a24765da/go.mod h1:3LECbAL3FgbyK80NP3V3Pmiuo/a3hFWg/PR6SPFhTns= kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61 h1:J56UGmRFddu6tERRd8BELmP5QbXxievzb+6vAjFptiM= kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61/go.mod h1:3LECbAL3FgbyK80NP3V3Pmiuo/a3hFWg/PR6SPFhTns= kmodules.xyz/prober v0.0.0-20210618020259-5836fb959027 h1:rtSPsruEkoBOLcbJkxMQjnPafpv8/vJnfWlTIj9yRBg= @@ -1064,5 +1060,5 @@ sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -stash.appscode.dev/apimachinery v0.15.0 h1:vpwPKV6LP4ieZ87/2ri3ms4r3ZnE8bES24y8bbLYxqE= -stash.appscode.dev/apimachinery v0.15.0/go.mod h1:ColOw+Y5IeI3DO5bu1WZWw2AAhinz99K6fKKVLNkd2U= +stash.appscode.dev/apimachinery v0.16.0 h1:6mvmPatv9nR5Wc+PCt3Cg9R7WRJRqhy2yLu2b/HmXhA= +stash.appscode.dev/apimachinery v0.16.0/go.mod h1:unpV/YyHVECNrAdFjFg/SetmPeUjfvc2+P8cnGjih/U= diff --git a/vendor/modules.txt b/vendor/modules.txt index d1141056..bdf13430 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -134,7 +134,6 @@ go.bytebuilders.dev/license-verifier/info ## explicit go.bytebuilders.dev/license-verifier/kubernetes # golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b -## explicit golang.org/x/crypto/pkcs12 golang.org/x/crypto/pkcs12/internal/rc2 # golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 @@ -562,7 +561,6 @@ kmodules.xyz/custom-resources/client/clientset/versioned/typed/auditor/v1alpha1 kmodules.xyz/custom-resources/client/clientset/versioned/typed/metrics/v1alpha1 kmodules.xyz/custom-resources/crds # kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e -## explicit kmodules.xyz/objectstore-api/api/v1 # kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61 ## explicit @@ -578,7 +576,7 @@ sigs.k8s.io/structured-merge-diff/v4/typed sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.2.0 sigs.k8s.io/yaml -# stash.appscode.dev/apimachinery v0.15.0 +# stash.appscode.dev/apimachinery v0.16.0 ## explicit stash.appscode.dev/apimachinery/apis stash.appscode.dev/apimachinery/apis/repositories diff --git a/vendor/stash.appscode.dev/apimachinery/apis/constants.go b/vendor/stash.appscode.dev/apimachinery/apis/constants.go index c965ab89..29cae41c 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/constants.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/constants.go @@ -56,6 +56,7 @@ const ( InvokerKind = "INVOKER_KIND" InvokerName = "INVOKER_NAME" + AddonImage = "ADDON_IMAGE" ExcludePatterns = "EXCLUDE_PATTERNS" IncludePatterns = "INCLUDE_PATTERNS" @@ -105,14 +106,16 @@ const ( PrefixStashBackup = "stash-backup" PrefixStashRestore = "stash-restore" PrefixStashVolumeSnapshot = "stash-vs" + PrefixStashTrigger = "stash-trigger" - StashContainer = "stash" - StashInitContainer = "stash-init" - LocalVolumeName = "stash-local" - ScratchDirVolumeName = "stash-scratchdir" - TmpDirVolumeName = "tmp-dir" - TmpDirMountPath = "/tmp" - PodinfoVolumeName = "stash-podinfo" + StashContainer = "stash" + StashInitContainer = "stash-init" + StashCronJobContainer = "stash-trigger" + LocalVolumeName = "stash-local" + ScratchDirVolumeName = "stash-scratchdir" + TmpDirVolumeName = "tmp-dir" + TmpDirMountPath = "/tmp" + PodinfoVolumeName = "stash-podinfo" RecoveryJobPrefix = "stash-recovery-" ScaledownCronPrefix = "stash-scaledown-cron-" @@ -201,6 +204,10 @@ const ( StashInitContainerInjected = "StashInitContainerInjected" // RestoreJobCreated indicates whether the restore job was created RestoreJobCreated = "RestoreJobCreated" + // RestoreCompleted condition indicates whether the restore process has been completed or not. + // This condition is particularly helpful when the restore addon require some additional operations to perform + // before marking the RestoreSession Succeeded/Failed. + RestoreCompleted = "RestoreCompleted" // GlobalPreBackupHookSucceeded indicates whether the global PreBackupHook was executed successfully or not GlobalPreBackupHookSucceeded = "GlobalPreBackupHookSucceeded" diff --git a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go index 608de4cd..938957f4 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/openapi_generated.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* @@ -338,6 +339,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref), "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref), "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref), + "kmodules.xyz/client-go/api/v1.ObjectReference": schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref), "kmodules.xyz/client-go/api/v1.ResourceID": schema_kmodulesxyz_client_go_api_v1_ResourceID(ref), "kmodules.xyz/client-go/api/v1.TLSConfig": schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref), "kmodules.xyz/client-go/api/v1.X509Subject": schema_kmodulesxyz_client_go_api_v1_X509Subject(ref), @@ -16687,6 +16689,35 @@ func schema_kmodulesxyz_client_go_api_v1_Condition(ref common.ReferenceCallback) } } +func schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + func schema_kmodulesxyz_client_go_api_v1_ResourceID(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.conversion.go b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.conversion.go index 21d0e777..bc14d58c 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.conversion.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.deepcopy.go b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.deepcopy.go index 8b00ff17..8a5d97f1 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.defaults.go b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.defaults.go index 77dbb914..ce88c555 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.defaults.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/repositories/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/stash.appscode.dev/apimachinery/apis/repositories/zz_generated.deepcopy.go b/vendor/stash.appscode.dev/apimachinery/apis/repositories/zz_generated.deepcopy.go index c12bc933..bcb2e303 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/repositories/zz_generated.deepcopy.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/repositories/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go index 7ea40b93..26095da2 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/openapi_generated.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* @@ -338,6 +339,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref), "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref), "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref), + "kmodules.xyz/client-go/api/v1.ObjectReference": schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref), "kmodules.xyz/client-go/api/v1.ResourceID": schema_kmodulesxyz_client_go_api_v1_ResourceID(ref), "kmodules.xyz/client-go/api/v1.TLSConfig": schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref), "kmodules.xyz/client-go/api/v1.X509Subject": schema_kmodulesxyz_client_go_api_v1_X509Subject(ref), @@ -16699,6 +16701,35 @@ func schema_kmodulesxyz_client_go_api_v1_Condition(ref common.ReferenceCallback) } } +func schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + func schema_kmodulesxyz_client_go_api_v1_ResourceID(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/zz_generated.deepcopy.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/zz_generated.deepcopy.go index 7330dae1..0f554b35 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.pb.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.pb.go index abcbb8bb..d246ee77 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.pb.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.pb.go @@ -1476,212 +1476,213 @@ func init() { } var fileDescriptor_1fd74570add6e14f = []byte{ - // 3276 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xdb, 0x6f, 0x63, 0x57, - 0xd5, 0x9f, 0xe3, 0x5b, 0xe2, 0xe5, 0x5c, 0xf7, 0xcc, 0xb4, 0xee, 0xa8, 0x8d, 0xd3, 0x33, 0xfa, - 0xbe, 0x2f, 0xfa, 0xbe, 0x8e, 0xd3, 0xc9, 0x07, 0xbd, 0x40, 0x6f, 0x71, 0x32, 0x33, 0x99, 0xb6, - 0x69, 0xcd, 0x76, 0x3a, 0x08, 0xe8, 0xd0, 0x9e, 0xd8, 0xdb, 0xf6, 0x21, 0x3e, 0x17, 0xce, 0x39, - 0x4e, 0x9b, 0x3e, 0x20, 0x44, 0x2b, 0x95, 0xf2, 0x50, 0x21, 0xde, 0x78, 0xe2, 0x91, 0x27, 0x78, - 0x42, 0x42, 0x02, 0x89, 0xb7, 0xd2, 0x11, 0xa0, 0xd2, 0x17, 0x44, 0x11, 0x6a, 0x44, 0x0d, 0xbc, - 0xf1, 0x07, 0xa0, 0x41, 0x42, 0x68, 0xdf, 0xce, 0xcd, 0x76, 0x32, 0x39, 0x76, 0x3c, 0x45, 0xe2, - 0x29, 0x3e, 0x6b, 0xaf, 0xbd, 0xd6, 0x5e, 0x7b, 0xef, 0xb5, 0x7e, 0x6b, 0xaf, 0xbd, 0x03, 0x15, - 0xd7, 0xd3, 0xdc, 0x76, 0x59, 0xb3, 0x6d, 0xb7, 0x6e, 0x35, 0x48, 0xb9, 0x41, 0xf6, 0x57, 0x35, - 0x5b, 0x37, 0xb4, 0x7a, 0x5b, 0x37, 0x89, 0x73, 0x40, 0x3f, 0xdc, 0x55, 0xc6, 0xb4, 0xba, 0x7f, - 0x79, 0x97, 0x78, 0xda, 0xe5, 0xd5, 0x16, 0x31, 0x89, 0xa3, 0x79, 0xa4, 0x51, 0xb6, 0x1d, 0xcb, - 0xb3, 0xd0, 0x5a, 0xbf, 0x8c, 0x72, 0x58, 0x06, 0xfd, 0x70, 0xcb, 0x9c, 0x49, 0xc8, 0xb8, 0x70, - 0xa9, 0xa5, 0x7b, 0xed, 0xee, 0x6e, 0xb9, 0x6e, 0x19, 0xab, 0x2d, 0xab, 0x65, 0xad, 0x32, 0x51, - 0xbb, 0xdd, 0x26, 0xfb, 0x62, 0x1f, 0xec, 0x17, 0x57, 0x71, 0x41, 0xdd, 0x7b, 0xcc, 0x2d, 0xeb, - 0x16, 0x1d, 0xcd, 0x6a, 0xdd, 0x72, 0xc8, 0xea, 0x7e, 0xdf, 0x30, 0x2e, 0x7c, 0x26, 0xe0, 0x09, - 0x86, 0x6f, 0xef, 0xb5, 0x58, 0x27, 0x87, 0xb8, 0x56, 0xd7, 0xa9, 0x93, 0x13, 0xf5, 0x72, 0x57, - 0x0d, 0xe2, 0x69, 0x83, 0x74, 0xad, 0x0e, 0xeb, 0xe5, 0x74, 0x4d, 0x4f, 0x37, 0xfa, 0xd5, 0x3c, - 0x72, 0x5c, 0x07, 0xb7, 0xde, 0x26, 0x86, 0xd6, 0xd7, 0xef, 0xd2, 0x9e, 0x61, 0x35, 0xba, 0x1d, - 0xe2, 0x96, 0x5f, 0x3f, 0x78, 0x63, 0xb5, 0xde, 0xd1, 0x89, 0xe9, 0x5d, 0x6a, 0xf1, 0x89, 0x18, - 0x30, 0xae, 0x87, 0x23, 0xec, 0x56, 0xb3, 0xe9, 0xb6, 0x2d, 0xcb, 0xbb, 0x44, 0xb9, 0x87, 0xf4, - 0xf8, 0xdf, 0x48, 0x0f, 0xdb, 0xb1, 0x76, 0x89, 0x33, 0x8c, 0x77, 0xe3, 0x44, 0x9b, 0x45, 0xeb, - 0xd8, 0xed, 0xfe, 0xdd, 0xa2, 0xbe, 0x97, 0x82, 0x42, 0x45, 0xab, 0xef, 0x75, 0xed, 0x8a, 0xe6, - 0xd5, 0xdb, 0xe8, 0x55, 0x98, 0xa6, 0xb3, 0xdc, 0xd0, 0x3c, 0xad, 0xa8, 0x2c, 0x2b, 0x2b, 0x85, - 0xb5, 0x87, 0xcb, 0x7c, 0xb2, 0xa2, 0x9b, 0xc8, 0xde, 0x6b, 0xf1, 0x8d, 0x44, 0xb9, 0xcb, 0xfb, - 0x97, 0xcb, 0x2f, 0xee, 0x7e, 0x8d, 0xd4, 0xbd, 0x6d, 0xe2, 0x69, 0x15, 0x74, 0xeb, 0xb0, 0x74, - 0xa6, 0x77, 0x58, 0x82, 0x80, 0x86, 0x7d, 0xa9, 0x88, 0x40, 0xc6, 0xb5, 0x49, 0xbd, 0x98, 0x62, - 0xd2, 0x37, 0xca, 0x27, 0xdf, 0xae, 0xe5, 0xd0, 0x80, 0x6b, 0x36, 0xa9, 0x57, 0x66, 0x84, 0xc2, - 0x0c, 0xfd, 0xc2, 0x4c, 0x3c, 0x32, 0x20, 0xe7, 0x7a, 0x9a, 0xd7, 0x75, 0x8b, 0x69, 0xa6, 0xe8, - 0xca, 0xa8, 0x8a, 0x98, 0xb0, 0xca, 0x9c, 0x50, 0x95, 0xe3, 0xdf, 0x58, 0x28, 0x51, 0x7f, 0xa7, - 0xc0, 0x7c, 0x88, 0xfb, 0x79, 0xdd, 0xf5, 0xd0, 0xcb, 0x7d, 0x73, 0x59, 0xbe, 0xb3, 0xb9, 0xa4, - 0xbd, 0xd9, 0x4c, 0x2e, 0x08, 0x6d, 0xd3, 0x92, 0x12, 0x9a, 0xc7, 0x06, 0x64, 0x75, 0x8f, 0x18, - 0x6e, 0x31, 0xb5, 0x9c, 0x5e, 0x29, 0xac, 0x3d, 0x3d, 0xa2, 0x7d, 0x95, 0x59, 0xa1, 0x2b, 0x7b, - 0x9d, 0x4a, 0xc5, 0x5c, 0xb8, 0xfa, 0xf7, 0x5c, 0xc4, 0x2e, 0x3a, 0xc1, 0xe8, 0x1b, 0x30, 0x65, - 0x10, 0x63, 0x97, 0x38, 0x6e, 0x51, 0x61, 0xba, 0x6b, 0xc9, 0x75, 0x6f, 0x58, 0x66, 0x53, 0x6f, - 0x75, 0x1d, 0xcd, 0xd3, 0x2d, 0x73, 0x87, 0x18, 0x76, 0x47, 0xf3, 0x08, 0x5b, 0xd4, 0x79, 0x31, - 0x9e, 0xa9, 0x6d, 0xae, 0x0b, 0x4b, 0xa5, 0xe8, 0x21, 0x98, 0xa6, 0xfe, 0x49, 0xfd, 0x84, 0xed, - 0xa2, 0x7c, 0x30, 0x4f, 0x35, 0x41, 0xc7, 0x3e, 0x07, 0xf2, 0x60, 0x5e, 0x78, 0x75, 0x8d, 0x78, - 0x9e, 0x6e, 0xb6, 0xe4, 0x8e, 0xb8, 0x5c, 0x0e, 0x3b, 0x5b, 0x59, 0xba, 0xe7, 0x2b, 0x9a, 0xad, - 0xd3, 0xf1, 0xd2, 0x85, 0xc0, 0xd1, 0x8e, 0x95, 0x7b, 0x85, 0x9e, 0xf9, 0x58, 0x03, 0x8e, 0xab, - 0x40, 0x9f, 0x85, 0x5c, 0xc3, 0xd1, 0xf7, 0x89, 0x53, 0xcc, 0xb0, 0x11, 0x3e, 0x20, 0xf7, 0xcd, - 0x26, 0xa3, 0xde, 0x3e, 0x2c, 0x15, 0x6a, 0xa6, 0x66, 0xbb, 0x6d, 0xcb, 0xf3, 0x88, 0x83, 0x05, - 0x33, 0x7a, 0x19, 0xc0, 0x21, 0xb6, 0xe5, 0xea, 0x9e, 0xe5, 0x1c, 0x14, 0xb3, 0x6c, 0x9c, 0x2b, - 0xa1, 0x4d, 0x53, 0xa6, 0xe1, 0x96, 0x6d, 0x11, 0xab, 0xae, 0x75, 0xb8, 0x7f, 0x61, 0xd2, 0x24, - 0x0e, 0x31, 0xeb, 0x24, 0x70, 0x3c, 0xec, 0xcb, 0xc0, 0x21, 0x79, 0xe8, 0x6d, 0x05, 0xe6, 0x1d, - 0xe2, 0x11, 0x93, 0x4e, 0x76, 0xd5, 0xea, 0xe8, 0xf5, 0x83, 0x62, 0x8e, 0xe9, 0xd8, 0x3c, 0xd9, - 0x0a, 0xf2, 0x60, 0x52, 0xc6, 0x51, 0x59, 0xa1, 0xe9, 0x89, 0x36, 0xe0, 0xb8, 0x56, 0xf4, 0xdf, - 0x90, 0xb3, 0xb5, 0xae, 0x4b, 0x1a, 0xc5, 0xa9, 0x65, 0x65, 0x65, 0x3a, 0x70, 0xab, 0x2a, 0xa3, - 0x62, 0xd1, 0x8a, 0xae, 0x02, 0xda, 0x65, 0xfb, 0x64, 0x4b, 0x77, 0xa9, 0x09, 0xcf, 0xeb, 0x86, - 0xee, 0x15, 0xa7, 0x97, 0x95, 0x95, 0x6c, 0xe5, 0x9e, 0xde, 0x61, 0x09, 0x55, 0xfa, 0x5a, 0xf1, - 0x80, 0x1e, 0xe8, 0x55, 0xc8, 0xb6, 0x2d, 0x6b, 0xcf, 0x2d, 0xe6, 0x99, 0xb9, 0x23, 0x38, 0xcb, - 0x16, 0x15, 0x53, 0xc9, 0x53, 0x47, 0x61, 0x3f, 0x31, 0x17, 0x8c, 0xaa, 0x30, 0x47, 0x5e, 0x27, - 0xf5, 0x2e, 0x35, 0xf2, 0x45, 0xa7, 0x41, 0x9c, 0x22, 0xb0, 0x85, 0x5f, 0x11, 0x96, 0xcd, 0x5d, - 0x89, 0xb4, 0xde, 0xee, 0xa3, 0xe0, 0x58, 0x7f, 0xf5, 0x57, 0x29, 0x58, 0xec, 0x0b, 0x40, 0xe8, - 0x59, 0x40, 0xd6, 0xae, 0x4b, 0x9c, 0x7d, 0xd2, 0xb8, 0xc6, 0x63, 0xb9, 0x6e, 0x99, 0x2c, 0xbc, - 0xa4, 0x2b, 0x17, 0x84, 0x2e, 0xf4, 0x62, 0x1f, 0x07, 0x1e, 0xd0, 0x8b, 0xee, 0xb6, 0xba, 0x65, - 0x36, 0x74, 0xfa, 0x21, 0xe3, 0xc8, 0x4a, 0xd4, 0x2b, 0x38, 0xc6, 0xbd, 0xd2, 0xb2, 0xa4, 0x4b, - 0x6c, 0xc8, 0x0e, 0xc1, 0x6e, 0xf3, 0x49, 0x2e, 0x0e, 0xc9, 0x43, 0xdf, 0x51, 0x60, 0x81, 0xbb, - 0x6c, 0xc0, 0x50, 0x4c, 0x33, 0x25, 0x9b, 0x49, 0xe6, 0x7f, 0x3b, 0x26, 0xab, 0x52, 0x14, 0x03, - 0x58, 0x88, 0xb7, 0xe0, 0x3e, 0xbd, 0xea, 0x61, 0x10, 0x9f, 0x3b, 0x5d, 0x62, 0x3b, 0xba, 0xe9, - 0x4d, 0x00, 0xeb, 0xf4, 0x08, 0xd6, 0x5d, 0x1b, 0x21, 0x44, 0xcb, 0x41, 0x0f, 0xc3, 0x3b, 0xf5, - 0x63, 0x05, 0xce, 0xc6, 0x78, 0x27, 0x00, 0x42, 0xed, 0x28, 0x08, 0x6d, 0x8c, 0xc1, 0xc2, 0x21, - 0x40, 0xf4, 0xb7, 0x5c, 0x9f, 0x7d, 0x0c, 0x8c, 0xde, 0x54, 0x60, 0x2e, 0x08, 0x71, 0x94, 0x24, - 0xcc, 0xdc, 0x48, 0x18, 0xd2, 0xc2, 0xa2, 0x2a, 0xf7, 0x48, 0xef, 0x8d, 0xd2, 0x71, 0x4c, 0xe5, - 0x09, 0x21, 0xe9, 0x26, 0x64, 0x3c, 0xcd, 0xdd, 0x13, 0x38, 0xf4, 0xf9, 0x24, 0x93, 0xb6, 0xa3, - 0xb9, 0x7b, 0x98, 0x34, 0x83, 0xad, 0xc0, 0x08, 0x4c, 0xec, 0xc0, 0x30, 0x9f, 0xb9, 0x2b, 0x61, - 0x7e, 0x00, 0xf6, 0x66, 0x4f, 0x1f, 0x7b, 0x2d, 0x98, 0xf2, 0x88, 0x61, 0x6f, 0xea, 0x4e, 0x32, - 0x74, 0xe3, 0x33, 0x7c, 0xc5, 0xb0, 0xbd, 0x83, 0x4d, 0xdd, 0xf1, 0x07, 0xe0, 0x27, 0x24, 0x3b, - 0x5c, 0x38, 0x96, 0x5a, 0xd0, 0xb7, 0x15, 0x38, 0xaf, 0x9b, 0x1e, 0x71, 0x74, 0xe3, 0x86, 0xd5, - 0xe9, 0x1a, 0x44, 0x26, 0x32, 0x0c, 0xdd, 0x0a, 0x6b, 0x8f, 0x1e, 0x6f, 0x6d, 0x95, 0x38, 0xae, - 0xee, 0xd2, 0xd9, 0xe3, 0x12, 0x36, 0x3a, 0x9a, 0x6e, 0x54, 0xee, 0xeb, 0x1d, 0x96, 0xce, 0x5f, - 0x1f, 0x24, 0x19, 0x0f, 0x56, 0x38, 0x2e, 0xc0, 0x54, 0x3f, 0x4e, 0x49, 0x77, 0x8b, 0x64, 0x68, - 0x13, 0x88, 0x99, 0x46, 0x24, 0x66, 0x3e, 0x37, 0xa6, 0xd4, 0x72, 0xe8, 0x39, 0xa1, 0x1b, 0x3b, - 0x27, 0x6c, 0x8f, 0x4b, 0xe1, 0xd1, 0xe7, 0x85, 0xbf, 0x2a, 0x70, 0xef, 0x80, 0x5e, 0x13, 0x08, - 0xd9, 0x9d, 0x68, 0xc8, 0xbe, 0x36, 0x26, 0x7b, 0x87, 0x84, 0xed, 0x1f, 0x64, 0x07, 0xda, 0xc9, - 0x82, 0xe6, 0x2f, 0x15, 0x28, 0xed, 0x1e, 0x7d, 0x0a, 0x10, 0xf6, 0x9f, 0xca, 0x01, 0xe3, 0x7f, - 0xc4, 0x80, 0x4b, 0xc7, 0x30, 0xe2, 0xe3, 0x06, 0x79, 0xc2, 0xe8, 0x1f, 0x1c, 0x0d, 0xd2, 0xc9, - 0x8f, 0x06, 0x99, 0x09, 0x1c, 0x0d, 0xb2, 0x77, 0xf9, 0x68, 0x90, 0x4b, 0x70, 0x34, 0x98, 0x3a, - 0x71, 0xa4, 0x7b, 0x4f, 0x81, 0xfb, 0x86, 0xfa, 0xef, 0xbf, 0x4f, 0xba, 0xad, 0xfe, 0x2c, 0x0b, - 0xc7, 0xed, 0x64, 0x3f, 0xf1, 0x50, 0x4e, 0x27, 0xf1, 0x68, 0x40, 0xce, 0xd3, 0x9c, 0x16, 0xf1, - 0x44, 0xf0, 0x7e, 0x26, 0xb9, 0xdb, 0xee, 0x30, 0x39, 0x15, 0xa0, 0x0b, 0xcf, 0x7f, 0x63, 0x21, - 0xfb, 0x2e, 0x1d, 0xe8, 0x43, 0x49, 0x45, 0xe6, 0x2e, 0x27, 0x15, 0xd9, 0x49, 0x27, 0x15, 0xfe, - 0xe9, 0x39, 0x77, 0x4a, 0xa7, 0x67, 0xf5, 0x27, 0x8a, 0x2c, 0x43, 0x6e, 0x89, 0xd3, 0x74, 0xde, - 0x76, 0x08, 0xa7, 0x88, 0xdd, 0x7a, 0x31, 0x6a, 0x2f, 0xaf, 0x8d, 0x4a, 0x4b, 0xb7, 0x34, 0xb3, - 0xd1, 0x21, 0x4e, 0x65, 0xb6, 0x77, 0x58, 0xca, 0x57, 0x65, 0x4f, 0x1c, 0x08, 0x41, 0x35, 0x00, - 0xdb, 0x72, 0x3d, 0x21, 0x32, 0x75, 0xe7, 0x22, 0xe7, 0xa8, 0xcf, 0x55, 0xfd, 0xae, 0x38, 0x24, - 0x46, 0x7d, 0x4b, 0x81, 0x05, 0xfe, 0xf3, 0xba, 0xb9, 0x6f, 0xed, 0x11, 0x07, 0x93, 0x26, 0x45, - 0x03, 0xcd, 0xd6, 0xaf, 0x39, 0x96, 0x18, 0x7a, 0x08, 0x0d, 0xd6, 0xab, 0xd7, 0x19, 0x1d, 0xfb, - 0x1c, 0x68, 0x19, 0x32, 0x7b, 0xba, 0xd9, 0x10, 0xb8, 0xe1, 0x7b, 0xd5, 0x73, 0xba, 0xd9, 0xc0, - 0xac, 0x85, 0x72, 0x98, 0x9a, 0x41, 0x04, 0x5a, 0xf8, 0x1c, 0x2f, 0x68, 0x06, 0xc1, 0xac, 0x45, - 0xfd, 0x75, 0x0a, 0x66, 0xf9, 0x30, 0x6a, 0xc4, 0x75, 0x27, 0x93, 0xa6, 0xb5, 0x22, 0x69, 0xda, - 0x08, 0xd5, 0x55, 0x31, 0xe4, 0xa1, 0x09, 0x9a, 0x15, 0x4b, 0xd0, 0xae, 0x8d, 0xae, 0xea, 0xe8, - 0xd4, 0xec, 0x0f, 0x8a, 0xac, 0xbb, 0x08, 0xfe, 0x09, 0x24, 0x65, 0xcd, 0x68, 0x52, 0xb6, 0x3e, - 0xb2, 0x8d, 0x43, 0xd2, 0xb1, 0xb7, 0xe2, 0xb6, 0xd5, 0xf8, 0x14, 0x4f, 0xe9, 0x7c, 0xff, 0x0a, - 0xd3, 0x36, 0x93, 0xeb, 0x0f, 0x1c, 0x21, 0x88, 0x6d, 0x92, 0x26, 0xb5, 0xa8, 0x7f, 0xf1, 0x4f, - 0x17, 0x91, 0x25, 0x41, 0x8f, 0x43, 0xd6, 0x6e, 0x6b, 0x2e, 0x11, 0x7e, 0x73, 0x51, 0xda, 0x50, - 0xa5, 0xc4, 0xdb, 0x3e, 0xa6, 0x8b, 0x4e, 0x8c, 0x8a, 0x79, 0x0f, 0xb4, 0x0e, 0xf3, 0x2e, 0x27, - 0x6f, 0x0a, 0xe4, 0x13, 0x2e, 0xe5, 0x87, 0xf8, 0x5a, 0xb4, 0x19, 0xc7, 0xf9, 0xd1, 0xd7, 0x61, - 0x8a, 0x43, 0x8c, 0x2c, 0x53, 0x5d, 0x1d, 0x15, 0xbf, 0xc4, 0x4e, 0x0b, 0x82, 0x3c, 0x17, 0x8f, - 0xa5, 0x9e, 0x58, 0x4a, 0x90, 0x19, 0x73, 0x4a, 0xf0, 0xa3, 0x34, 0xcc, 0x84, 0x87, 0x83, 0x2e, - 0x42, 0x56, 0xeb, 0xe8, 0x9a, 0x2b, 0xe6, 0xd7, 0xdf, 0x23, 0xeb, 0x94, 0x88, 0x79, 0x1b, 0x7a, - 0x19, 0xd2, 0x0e, 0x69, 0x0a, 0xc7, 0x7e, 0x32, 0x59, 0x8e, 0xc0, 0x00, 0x9b, 0x34, 0x2b, 0x05, - 0xa1, 0x21, 0x8d, 0x49, 0x13, 0x53, 0xb1, 0xa8, 0x04, 0x59, 0x5b, 0xf3, 0xda, 0x7c, 0x8a, 0xf3, - 0x1c, 0x0a, 0xaa, 0x94, 0x80, 0x39, 0x1d, 0x7d, 0x09, 0x66, 0xf6, 0x19, 0xfc, 0x6c, 0x5b, 0x5d, - 0xd3, 0x93, 0x93, 0x52, 0x1a, 0x94, 0xe9, 0xde, 0x08, 0xf8, 0x2a, 0xe7, 0x84, 0xa6, 0x99, 0x10, - 0xd1, 0xc5, 0x11, 0x51, 0x68, 0x05, 0xa6, 0x1d, 0x62, 0x77, 0xf4, 0xba, 0xc6, 0xeb, 0x10, 0xd9, - 0xca, 0x0c, 0xf5, 0x47, 0x2c, 0x68, 0xd8, 0x6f, 0x45, 0xdb, 0xb0, 0xe8, 0x8a, 0x1c, 0x7c, 0xa3, - 0xa3, 0xb9, 0x2e, 0x0d, 0xb6, 0x0c, 0xfd, 0xf2, 0x95, 0x92, 0x50, 0x74, 0x2f, 0x57, 0x54, 0x8b, - 0xb3, 0xe1, 0xfe, 0x9e, 0xe8, 0xbf, 0x60, 0x8a, 0xbc, 0x5e, 0xef, 0x74, 0x1b, 0xa4, 0x38, 0xc5, - 0xcc, 0x2e, 0xd0, 0xdd, 0x70, 0x85, 0x93, 0xb0, 0x6c, 0x53, 0xdf, 0x4f, 0x03, 0xea, 0xdf, 0x3e, - 0x72, 0x41, 0x94, 0xd3, 0x59, 0x90, 0x32, 0x80, 0x67, 0x79, 0x5a, 0x67, 0xcb, 0x72, 0x3d, 0x97, - 0xad, 0x7a, 0x96, 0x63, 0xde, 0x8e, 0x4f, 0xc5, 0x21, 0x0e, 0xb4, 0x26, 0x7d, 0x94, 0xe3, 0xd1, - 0xfd, 0x71, 0x1f, 0x2d, 0x70, 0x65, 0x11, 0xe7, 0x6c, 0x43, 0x96, 0x06, 0x57, 0xb9, 0x98, 0x89, - 0xca, 0x84, 0x5b, 0x3e, 0xec, 0xd2, 0x69, 0x71, 0x83, 0xcd, 0xcb, 0x3e, 0x31, 0x57, 0x80, 0x9e, - 0x81, 0x05, 0x1f, 0xf3, 0xd7, 0xeb, 0xdc, 0xad, 0xb2, 0x6c, 0xca, 0xcf, 0xf5, 0x0e, 0x4b, 0x0b, - 0xd5, 0x58, 0x1b, 0xee, 0xe3, 0x46, 0x1b, 0xb0, 0x18, 0x20, 0xbc, 0x14, 0x91, 0x63, 0x22, 0xce, - 0xf7, 0x0e, 0x4b, 0x8b, 0xd5, 0x78, 0x23, 0xee, 0xe7, 0x57, 0xff, 0xa1, 0xc0, 0x42, 0x3c, 0xd7, - 0x43, 0xcf, 0x42, 0xce, 0x20, 0x0d, 0xbd, 0x6b, 0x08, 0xf7, 0x5b, 0x93, 0x00, 0xb4, 0xcd, 0xa8, - 0xb7, 0x0f, 0x4b, 0xcb, 0xfd, 0x17, 0xeb, 0xe5, 0x9a, 0x67, 0x39, 0x5a, 0x8b, 0x70, 0x1e, 0x2c, - 0x24, 0xa0, 0xaf, 0x40, 0xde, 0xd5, 0xdf, 0x20, 0xfc, 0xd0, 0x93, 0x3a, 0x1e, 0x8f, 0xca, 0xf2, - 0xca, 0xbd, 0xfc, 0x85, 0xae, 0x66, 0x7a, 0xba, 0x77, 0xc0, 0x73, 0xa5, 0x9a, 0x14, 0x82, 0x03, - 0x79, 0xe8, 0x29, 0x98, 0x6b, 0xe8, 0xae, 0xb6, 0xdb, 0x21, 0x1b, 0x4c, 0x4e, 0x8b, 0xad, 0xf5, - 0x74, 0x50, 0x0d, 0xdd, 0x8c, 0xb4, 0xe2, 0x18, 0xb7, 0xfa, 0xb1, 0x02, 0xf9, 0xab, 0x7a, 0x87, - 0xb0, 0x95, 0xf1, 0x37, 0x18, 0xa5, 0xb8, 0xe2, 0xe8, 0x14, 0x6c, 0x30, 0x46, 0xc5, 0x21, 0x0e, - 0xea, 0xa5, 0x26, 0x79, 0x8d, 0x73, 0xa7, 0x18, 0x37, 0xf3, 0xd2, 0x17, 0x04, 0x0d, 0xfb, 0xad, - 0xe8, 0x51, 0x98, 0x35, 0xac, 0x86, 0xde, 0xd4, 0x49, 0x83, 0xb3, 0xa7, 0x19, 0xfb, 0x62, 0xef, - 0xb0, 0x34, 0xbb, 0x1d, 0x6e, 0xc0, 0x51, 0x3e, 0xf4, 0x24, 0xcc, 0x77, 0xcd, 0x68, 0xd7, 0x0c, - 0xeb, 0x7a, 0x96, 0x02, 0xc5, 0x4b, 0xd1, 0x26, 0x1c, 0xe7, 0x55, 0x3f, 0x54, 0x60, 0xfa, 0x6a, - 0xd7, 0xac, 0x4f, 0xa8, 0x22, 0xb6, 0x1b, 0x49, 0xb5, 0x12, 0x1d, 0xaa, 0xe4, 0x68, 0x87, 0x5e, - 0x1f, 0xfc, 0x56, 0x81, 0x19, 0xc9, 0x34, 0x81, 0x7c, 0x47, 0x8b, 0xe6, 0x3b, 0x4f, 0x8c, 0x62, - 0xd3, 0x90, 0x54, 0xe7, 0x7b, 0x0a, 0x14, 0x24, 0x0b, 0x4d, 0xcb, 0x65, 0x1a, 0xad, 0x0c, 0x4b, - 0xa3, 0x91, 0x06, 0x39, 0x5b, 0x73, 0x34, 0x7f, 0x54, 0x8f, 0x27, 0x19, 0x55, 0x95, 0x4a, 0x08, - 0x17, 0x2d, 0xa8, 0x40, 0x2c, 0x04, 0xab, 0xff, 0xcc, 0x04, 0xd3, 0xcc, 0x52, 0xaf, 0x8b, 0x90, - 0xd5, 0x0d, 0xad, 0x45, 0xe2, 0x88, 0x7c, 0x9d, 0x12, 0x31, 0x6f, 0xa3, 0xf0, 0x51, 0xb7, 0x0c, - 0x43, 0x63, 0xc7, 0x04, 0x1f, 0x3e, 0x36, 0x38, 0x09, 0xcb, 0x36, 0x74, 0x3f, 0x64, 0x34, 0xa7, - 0x25, 0x91, 0x75, 0x9a, 0x5a, 0xb7, 0xee, 0xb4, 0x5c, 0xcc, 0xa8, 0x68, 0x0d, 0xe0, 0x35, 0xcb, - 0xd9, 0xd3, 0xcd, 0x96, 0x3c, 0xc3, 0xe6, 0x83, 0x7d, 0xf7, 0x45, 0xbf, 0x05, 0x87, 0xb8, 0xd0, - 0x55, 0xc8, 0xda, 0x96, 0xe3, 0xf1, 0x10, 0x5a, 0x58, 0x7b, 0x70, 0x10, 0x08, 0x6f, 0x58, 0xa6, - 0xa7, 0xd1, 0xe9, 0xa8, 0x5a, 0x4e, 0xe8, 0xf2, 0x86, 0x7e, 0x51, 0x4c, 0xa7, 0x7f, 0xfa, 0x30, - 0x3d, 0x37, 0x3e, 0x4c, 0xbf, 0x09, 0xb3, 0xfc, 0x7b, 0x93, 0xec, 0xeb, 0x75, 0xe2, 0x32, 0x80, - 0x2d, 0xac, 0x2d, 0x0f, 0x97, 0xcd, 0x19, 0x2b, 0xe7, 0x85, 0xf0, 0xd9, 0x30, 0xd5, 0xc5, 0x51, - 0x69, 0xe8, 0xa0, 0xbf, 0xd8, 0x30, 0xcd, 0xbc, 0xe1, 0x73, 0xc7, 0x1f, 0xbf, 0xfd, 0x99, 0x89, - 0x57, 0x1d, 0xce, 0xde, 0x51, 0xc5, 0xa1, 0x06, 0xe7, 0x6d, 0xab, 0x51, 0x23, 0xf5, 0xae, 0xa3, - 0x7b, 0x07, 0xbc, 0x3a, 0xc6, 0xf2, 0x90, 0x7c, 0xa4, 0x6c, 0x78, 0xbe, 0x3a, 0x88, 0x09, 0x0f, - 0xee, 0xab, 0xfe, 0x22, 0x05, 0xf3, 0x31, 0x24, 0xa5, 0x07, 0xd6, 0xb6, 0xe5, 0x7a, 0x21, 0xef, - 0xf0, 0x5d, 0x77, 0x4b, 0xd0, 0xb1, 0xcf, 0x81, 0x1e, 0x91, 0xf8, 0xcf, 0xd3, 0xeb, 0xe5, 0x38, - 0xfe, 0x87, 0xc4, 0x47, 0x72, 0x00, 0x07, 0xf2, 0x32, 0x31, 0x92, 0xf9, 0x75, 0xa2, 0x63, 0x8e, - 0x4c, 0xb8, 0x78, 0x16, 0xb0, 0x28, 0xd4, 0xe7, 0x25, 0xd9, 0xc5, 0x81, 0x1a, 0x6a, 0x59, 0x43, - 0x9e, 0x06, 0x32, 0x51, 0xcb, 0xfc, 0x63, 0x80, 0xcf, 0x41, 0x7d, 0x91, 0x38, 0x8e, 0xe5, 0xb0, - 0xdc, 0x30, 0xe4, 0x8b, 0x57, 0x28, 0x11, 0xf3, 0x36, 0xf5, 0x37, 0x0a, 0x2c, 0x50, 0x0b, 0x31, - 0x71, 0x3d, 0xcb, 0x21, 0x49, 0x66, 0xf0, 0xd1, 0xe8, 0x0c, 0x3e, 0x18, 0x9f, 0xc1, 0xb0, 0xfc, - 0xc8, 0x14, 0x86, 0xcd, 0x49, 0xdf, 0xb9, 0x39, 0x99, 0x23, 0xcc, 0xf9, 0xbd, 0x02, 0x7d, 0xd7, - 0xe7, 0x88, 0xf8, 0x75, 0xbc, 0xb1, 0xe4, 0x9c, 0x7e, 0x30, 0x8c, 0x15, 0xf2, 0x4e, 0xb7, 0x1e, - 0xfa, 0x02, 0x64, 0x59, 0xf0, 0xbd, 0x83, 0xc0, 0x7f, 0x11, 0xb2, 0xfb, 0x5a, 0xa7, 0x2b, 0x17, - 0xc4, 0x9f, 0xa9, 0x1b, 0x94, 0x88, 0x79, 0x9b, 0x7a, 0x2b, 0x05, 0x33, 0x62, 0x51, 0x26, 0xf5, - 0x54, 0xae, 0x19, 0x01, 0xfe, 0x44, 0x87, 0xf2, 0xf0, 0x88, 0x87, 0x96, 0x58, 0xcc, 0x58, 0x89, - 0xe5, 0xea, 0xc8, 0x9a, 0x8e, 0xae, 0xb0, 0xd0, 0x4d, 0x17, 0x66, 0x9f, 0x40, 0xc2, 0x41, 0xa2, - 0x09, 0xc7, 0x33, 0xa3, 0x5a, 0x38, 0x24, 0xe9, 0xf8, 0x20, 0x1d, 0xb5, 0x8c, 0x61, 0x7c, 0x70, - 0xe1, 0xa3, 0x24, 0xbf, 0xf0, 0x49, 0x8d, 0xf9, 0xc2, 0xc7, 0x0e, 0x1e, 0xf1, 0xf1, 0x60, 0x7c, - 0x65, 0x84, 0x29, 0x11, 0xc7, 0xd5, 0xa3, 0x9f, 0xed, 0xf5, 0xbf, 0x90, 0xca, 0x8c, 0xf6, 0x42, - 0x8a, 0x66, 0x91, 0xbc, 0x2e, 0x9d, 0x4d, 0x9e, 0x19, 0x0b, 0x0b, 0x86, 0x15, 0xa6, 0x0f, 0x53, - 0x80, 0xfa, 0x77, 0x36, 0xfa, 0xff, 0x68, 0xa1, 0xea, 0x81, 0x78, 0x08, 0x9f, 0x19, 0x14, 0xbe, - 0xc7, 0x50, 0xa2, 0x8a, 0x86, 0xcc, 0xf4, 0x98, 0x5f, 0x6c, 0x39, 0xc1, 0x9e, 0xc8, 0x24, 0xbf, - 0x1c, 0x16, 0xa6, 0xf3, 0xf5, 0x8f, 0x57, 0xc0, 0xe2, 0xbb, 0x42, 0xfd, 0xb9, 0xe2, 0x87, 0x55, - 0x5e, 0xfa, 0xaf, 0x01, 0xd8, 0x0e, 0x11, 0xa4, 0x93, 0xd4, 0xfe, 0x79, 0xa1, 0xde, 0xef, 0x8a, - 0x43, 0x62, 0xd0, 0x0d, 0x28, 0xd8, 0x01, 0xa8, 0x9e, 0xa4, 0xfc, 0x3f, 0xdf, 0x3b, 0x2c, 0x15, - 0xaa, 0x41, 0x5f, 0x1c, 0x16, 0xa4, 0xfe, 0x30, 0x0d, 0x67, 0x07, 0xd8, 0x7b, 0xca, 0x25, 0x9b, - 0xd3, 0x7d, 0xb7, 0x17, 0x2d, 0x08, 0xa5, 0x8f, 0x2d, 0x08, 0xf9, 0x45, 0xdb, 0xcc, 0x90, 0xa2, - 0x6d, 0x24, 0x48, 0x44, 0x3c, 0x42, 0x97, 0x75, 0xa1, 0x6c, 0xf2, 0x67, 0x81, 0xf1, 0x64, 0x6c, - 0x70, 0x61, 0x48, 0xfd, 0x20, 0x05, 0x73, 0x92, 0x6d, 0x62, 0x97, 0x24, 0xed, 0x08, 0x80, 0x8f, - 0x02, 0xab, 0xc7, 0xdd, 0x92, 0xd8, 0x31, 0x08, 0xdf, 0x1a, 0x83, 0xae, 0xa3, 0x41, 0xfc, 0x8f, - 0x8a, 0x1f, 0x19, 0x27, 0x77, 0x4f, 0xd2, 0x8a, 0xc2, 0x78, 0x65, 0x74, 0x2b, 0x87, 0x00, 0xf9, - 0xf7, 0xd3, 0x71, 0xeb, 0x18, 0x94, 0xbf, 0xab, 0xc0, 0xa2, 0x13, 0xc7, 0x3c, 0x61, 0xe7, 0x98, - 0x00, 0xf4, 0x3e, 0x31, 0x9e, 0xc5, 0xbe, 0x26, 0xdc, 0xaf, 0x3a, 0x94, 0x5b, 0xa4, 0x92, 0xe7, - 0x16, 0xe9, 0x31, 0xe7, 0x16, 0x37, 0x21, 0xeb, 0x74, 0x79, 0x51, 0x8d, 0xae, 0xd2, 0x63, 0x89, - 0x26, 0xa6, 0xdb, 0x21, 0xc1, 0xda, 0xd0, 0x2f, 0x17, 0x73, 0xa9, 0xea, 0xdb, 0x69, 0x38, 0x37, - 0x68, 0xab, 0x26, 0x43, 0xe5, 0x93, 0xd6, 0xbf, 0x07, 0xa0, 0x78, 0xfa, 0x84, 0x28, 0xae, 0x47, - 0xcb, 0xe1, 0xa7, 0x18, 0xf6, 0x62, 0x50, 0x91, 0x1d, 0xf3, 0x19, 0xeb, 0x5b, 0x19, 0x98, 0x8d, - 0x6c, 0xd3, 0x4f, 0xc3, 0x0d, 0x53, 0xbc, 0xd8, 0x94, 0x3e, 0x9d, 0x0b, 0xa4, 0xcc, 0x91, 0x17, - 0x48, 0xef, 0x28, 0x70, 0x6e, 0x3f, 0x78, 0x74, 0x21, 0x9f, 0x52, 0xc8, 0x25, 0x48, 0xfc, 0x78, - 0x43, 0x5e, 0xb7, 0x9c, 0xbb, 0x31, 0x40, 0x38, 0x1e, 0xa8, 0x32, 0x70, 0xc7, 0xdc, 0xa9, 0xb8, - 0xe3, 0x8f, 0xb3, 0xd0, 0x1f, 0xab, 0x4e, 0xfb, 0xa9, 0x11, 0x89, 0x3d, 0x35, 0x5a, 0x1f, 0x39, - 0xf8, 0xfe, 0xe7, 0xad, 0xd1, 0xa7, 0xe2, 0xad, 0x91, 0x16, 0x7d, 0x6b, 0x74, 0x1a, 0x67, 0xba, - 0x77, 0x52, 0x90, 0xa1, 0x3b, 0x18, 0x5d, 0x86, 0x02, 0x5f, 0x67, 0x1e, 0xfb, 0x15, 0x56, 0x37, - 0x67, 0x09, 0xff, 0x4e, 0x40, 0xc6, 0x61, 0x1e, 0xb4, 0x06, 0xc0, 0xef, 0xd1, 0xe8, 0xa7, 0xc0, - 0x5c, 0x3f, 0x4a, 0xd6, 0xfc, 0x16, 0x1c, 0xe2, 0x42, 0xff, 0x17, 0xaf, 0x7c, 0xe6, 0xc5, 0xdd, - 0xdb, 0xa0, 0x92, 0xa5, 0x7f, 0x3f, 0x9e, 0x19, 0x72, 0x3f, 0x1e, 0xba, 0x4b, 0xce, 0x0e, 0xbf, - 0x4b, 0xa6, 0x6c, 0xba, 0xc9, 0xd9, 0x72, 0x01, 0xdb, 0x75, 0x53, 0xb0, 0x89, 0x36, 0xb5, 0x97, - 0x82, 0xd9, 0x48, 0x45, 0xf5, 0x0e, 0xca, 0x65, 0xcb, 0x90, 0xa1, 0x43, 0x89, 0x3f, 0x59, 0xa2, - 0xa3, 0xc4, 0xac, 0x05, 0xad, 0x42, 0x9e, 0x21, 0x66, 0x4d, 0x7f, 0x83, 0xbf, 0x81, 0xcf, 0x07, - 0x85, 0xda, 0x1d, 0xd9, 0x80, 0x03, 0x1e, 0xf4, 0x10, 0x4c, 0x77, 0xed, 0x8e, 0xa5, 0x35, 0x48, - 0x23, 0x5e, 0xa8, 0x7d, 0x49, 0xd0, 0xb1, 0xcf, 0x81, 0x9e, 0x82, 0x39, 0xdb, 0xb1, 0xea, 0x14, - 0x55, 0xcd, 0xd6, 0x8e, 0x6e, 0x10, 0x51, 0xb1, 0xf5, 0xef, 0x27, 0xab, 0x91, 0x56, 0x1c, 0xe3, - 0x46, 0x26, 0xe4, 0x9b, 0xf2, 0x7a, 0x52, 0xec, 0xb3, 0x44, 0x28, 0xe4, 0xdf, 0x71, 0x06, 0xd6, - 0xf9, 0x24, 0x1c, 0xa8, 0x50, 0xdf, 0x54, 0x20, 0xef, 0x23, 0x16, 0xdd, 0x42, 0x9a, 0xad, 0xdf, - 0xa0, 0xfe, 0x22, 0x9e, 0x92, 0x86, 0xb6, 0xd0, 0x7a, 0xf5, 0xba, 0x68, 0xc1, 0x21, 0xae, 0xb1, - 0xbc, 0x12, 0xbb, 0xa5, 0x00, 0x8b, 0xa0, 0x13, 0x38, 0xf7, 0x7c, 0x35, 0x72, 0xee, 0x79, 0x22, - 0x69, 0xf0, 0x1f, 0x7a, 0x5b, 0xf9, 0xbe, 0x02, 0xd3, 0x94, 0x61, 0x02, 0x27, 0x8e, 0x9b, 0xd1, - 0x13, 0xc7, 0x63, 0x49, 0x6d, 0x19, 0x72, 0xce, 0x78, 0x57, 0x81, 0x29, 0x81, 0x73, 0x9f, 0x8e, - 0x1b, 0xca, 0x9f, 0x8a, 0xa9, 0x65, 0x20, 0xde, 0xa0, 0x89, 0x2a, 0xb1, 0xe5, 0xff, 0xf9, 0x3e, - 0x3d, 0xca, 0x35, 0x2d, 0x45, 0xf2, 0x50, 0x8e, 0x4a, 0x6c, 0x96, 0xa3, 0x12, 0xdb, 0x45, 0x57, - 0x60, 0x8a, 0xe7, 0x2d, 0xd2, 0xac, 0x0b, 0xc3, 0x73, 0xb5, 0x00, 0xc4, 0xf8, 0xb7, 0x8b, 0x65, - 0xdf, 0xca, 0xa5, 0x5b, 0x9f, 0x2c, 0x9d, 0xf9, 0xf0, 0x93, 0xa5, 0x33, 0x1f, 0x7d, 0xb2, 0x74, - 0xe6, 0x9b, 0xbd, 0x25, 0xe5, 0x56, 0x6f, 0x49, 0xf9, 0xb0, 0xb7, 0xa4, 0x7c, 0xd4, 0x5b, 0x52, - 0xfe, 0xd4, 0x5b, 0x52, 0xbe, 0xfb, 0xe7, 0xa5, 0x33, 0x5f, 0x9e, 0x12, 0xe3, 0xfa, 0x57, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x6a, 0x12, 0x97, 0x38, 0x6c, 0x41, 0x00, 0x00, + // 3288 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xdd, 0x6f, 0x63, 0x47, + 0x15, 0xdf, 0xeb, 0xcf, 0xf8, 0x38, 0x9f, 0xb3, 0xbb, 0xad, 0xbb, 0x6a, 0xe3, 0xd4, 0xab, 0x42, + 0x04, 0x5d, 0xa7, 0x1b, 0xa0, 0x1f, 0xd0, 0xaf, 0x38, 0xd9, 0xdd, 0xa4, 0x6d, 0x5a, 0x33, 0x4e, + 0x17, 0x01, 0x5d, 0xda, 0x1b, 0x7b, 0x6c, 0x5f, 0x62, 0xdf, 0x7b, 0xb9, 0x73, 0x9d, 0x36, 0x7d, + 0x40, 0x48, 0xad, 0x54, 0xca, 0x43, 0x85, 0x78, 0xe3, 0x09, 0xde, 0x78, 0xe3, 0x09, 0x09, 0x09, + 0x24, 0xde, 0x4a, 0x57, 0x14, 0x95, 0xbe, 0x20, 0x8a, 0x50, 0x23, 0x6a, 0xe0, 0x8d, 0x3f, 0x00, + 0x2d, 0x12, 0x42, 0xf3, 0x75, 0xbf, 0x6c, 0x27, 0x1b, 0xdb, 0xf1, 0x16, 0x89, 0xa7, 0x8d, 0xcf, + 0x9c, 0x39, 0x67, 0xce, 0xdc, 0x73, 0xce, 0xef, 0xcc, 0x99, 0x59, 0x28, 0x51, 0x57, 0xa7, 0xcd, + 0xa2, 0x6e, 0xdb, 0xb4, 0x6a, 0xd5, 0x48, 0xb1, 0x46, 0xf6, 0x57, 0x74, 0xdb, 0x68, 0xeb, 0xd5, + 0xa6, 0x61, 0x12, 0xe7, 0x80, 0xfd, 0xa0, 0x2b, 0x9c, 0x69, 0x65, 0xff, 0xf2, 0x2e, 0x71, 0xf5, + 0xcb, 0x2b, 0x0d, 0x62, 0x12, 0x47, 0x77, 0x49, 0xad, 0x68, 0x3b, 0x96, 0x6b, 0xa1, 0xd5, 0x5e, + 0x19, 0xc5, 0xa0, 0x0c, 0xf6, 0x83, 0x16, 0x05, 0x93, 0x94, 0x71, 0xe1, 0x52, 0xc3, 0x70, 0x9b, + 0x9d, 0xdd, 0x62, 0xd5, 0x6a, 0xaf, 0x34, 0xac, 0x86, 0xb5, 0xc2, 0x45, 0xed, 0x76, 0xea, 0xfc, + 0x17, 0xff, 0xc1, 0xff, 0x12, 0x2a, 0x2e, 0x14, 0xf6, 0x1e, 0xa5, 0x45, 0xc3, 0x62, 0xab, 0x59, + 0xa9, 0x5a, 0x0e, 0x59, 0xd9, 0xef, 0x59, 0xc6, 0x85, 0x2f, 0xfa, 0x3c, 0xfe, 0xf2, 0xed, 0xbd, + 0x06, 0x9f, 0xe4, 0x10, 0x6a, 0x75, 0x9c, 0x2a, 0x39, 0xd1, 0x2c, 0xba, 0xd2, 0x26, 0xae, 0xde, + 0x4f, 0xd7, 0xca, 0xa0, 0x59, 0x4e, 0xc7, 0x74, 0x8d, 0x76, 0xaf, 0x9a, 0x87, 0x8f, 0x9b, 0x40, + 0xab, 0x4d, 0xd2, 0xd6, 0x7b, 0xe6, 0x5d, 0xda, 0x6b, 0x5b, 0xb5, 0x4e, 0x8b, 0xd0, 0xe2, 0x6b, + 0x07, 0xaf, 0xaf, 0x54, 0x5b, 0x06, 0x31, 0xdd, 0x4b, 0x0d, 0xb1, 0x11, 0x7d, 0xd6, 0xf5, 0x50, + 0x88, 0xdd, 0xaa, 0xd7, 0x69, 0xd3, 0xb2, 0xdc, 0x4b, 0x8c, 0x7b, 0xc0, 0x8c, 0xcf, 0x85, 0x66, + 0xd8, 0x8e, 0xb5, 0x4b, 0x9c, 0x41, 0xbc, 0xeb, 0x27, 0x72, 0x16, 0xbd, 0x65, 0x37, 0x7b, 0xbd, + 0xa5, 0xf0, 0x6e, 0x0c, 0xb2, 0x25, 0xbd, 0xba, 0xd7, 0xb1, 0x4b, 0xba, 0x5b, 0x6d, 0xa2, 0x57, + 0x60, 0x8a, 0xed, 0x72, 0x4d, 0x77, 0xf5, 0x9c, 0xb6, 0xa4, 0x2d, 0x67, 0x57, 0x1f, 0x2a, 0x8a, + 0xcd, 0x0a, 0x3b, 0x91, 0xbd, 0xd7, 0x10, 0x8e, 0xc4, 0xb8, 0x8b, 0xfb, 0x97, 0x8b, 0x2f, 0xec, + 0x7e, 0x9b, 0x54, 0xdd, 0x6d, 0xe2, 0xea, 0x25, 0x74, 0xf3, 0x30, 0x7f, 0xa6, 0x7b, 0x98, 0x07, + 0x9f, 0x86, 0x3d, 0xa9, 0x88, 0x40, 0x82, 0xda, 0xa4, 0x9a, 0x8b, 0x71, 0xe9, 0xeb, 0xc5, 0x93, + 0xbb, 0x6b, 0x31, 0xb0, 0xe0, 0x8a, 0x4d, 0xaa, 0xa5, 0x69, 0xa9, 0x30, 0xc1, 0x7e, 0x61, 0x2e, + 0x1e, 0xb5, 0x21, 0x45, 0x5d, 0xdd, 0xed, 0xd0, 0x5c, 0x9c, 0x2b, 0xba, 0x32, 0xaa, 0x22, 0x2e, + 0xac, 0x34, 0x2b, 0x55, 0xa5, 0xc4, 0x6f, 0x2c, 0x95, 0x14, 0xfe, 0xa8, 0xc1, 0x5c, 0x80, 0xfb, + 0x39, 0x83, 0xba, 0xe8, 0xa5, 0x9e, 0xbd, 0x2c, 0xde, 0xde, 0x5e, 0xb2, 0xd9, 0x7c, 0x27, 0xe7, + 0xa5, 0xb6, 0x29, 0x45, 0x09, 0xec, 0x63, 0x0d, 0x92, 0x86, 0x4b, 0xda, 0x34, 0x17, 0x5b, 0x8a, + 0x2f, 0x67, 0x57, 0x9f, 0x1a, 0xd1, 0xbe, 0xd2, 0x8c, 0xd4, 0x95, 0xdc, 0x62, 0x52, 0xb1, 0x10, + 0x5e, 0xf8, 0x57, 0x2a, 0x64, 0x17, 0xdb, 0x60, 0xf4, 0x5d, 0x48, 0xb7, 0x49, 0x7b, 0x97, 0x38, + 0x34, 0xa7, 0x71, 0xdd, 0x95, 0xe1, 0x75, 0xaf, 0x5b, 0x66, 0xdd, 0x68, 0x74, 0x1c, 0xdd, 0x35, + 0x2c, 0x73, 0x87, 0xb4, 0xed, 0x96, 0xee, 0x12, 0xfe, 0x51, 0xe7, 0xe4, 0x7a, 0xd2, 0xdb, 0x42, + 0x17, 0x56, 0x4a, 0xd1, 0x83, 0x30, 0xc5, 0xe2, 0x93, 0xc5, 0x09, 0xf7, 0xa2, 0x8c, 0xbf, 0x4f, + 0x15, 0x49, 0xc7, 0x1e, 0x07, 0x72, 0x61, 0x4e, 0x46, 0x75, 0x85, 0xb8, 0xae, 0x61, 0x36, 0x94, + 0x47, 0x5c, 0x2e, 0x06, 0x83, 0xad, 0xa8, 0xc2, 0xf3, 0x65, 0xdd, 0x36, 0xd8, 0x7a, 0xd9, 0x87, + 0xc0, 0xe1, 0x89, 0xa5, 0xbb, 0xa5, 0x9e, 0xb9, 0xc8, 0x00, 0x8e, 0xaa, 0x40, 0x5f, 0x82, 0x54, + 0xcd, 0x31, 0xf6, 0x89, 0x93, 0x4b, 0xf0, 0x15, 0xde, 0xa7, 0xfc, 0x66, 0x83, 0x53, 0x6f, 0x1d, + 0xe6, 0xb3, 0x15, 0x53, 0xb7, 0x69, 0xd3, 0x72, 0x5d, 0xe2, 0x60, 0xc9, 0x8c, 0x5e, 0x02, 0x70, + 0x88, 0x6d, 0x51, 0xc3, 0xb5, 0x9c, 0x83, 0x5c, 0x92, 0xaf, 0x73, 0x39, 0xe0, 0x34, 0x45, 0x96, + 0x6e, 0xb9, 0x8b, 0x58, 0x55, 0xbd, 0x25, 0xe2, 0x0b, 0x93, 0x3a, 0x71, 0x88, 0x59, 0x25, 0x7e, + 0xe0, 0x61, 0x4f, 0x06, 0x0e, 0xc8, 0x43, 0x6f, 0x69, 0x30, 0xe7, 0x10, 0x97, 0x98, 0x6c, 0xb3, + 0xcb, 0x56, 0xcb, 0xa8, 0x1e, 0xe4, 0x52, 0x5c, 0xc7, 0xc6, 0xc9, 0xbe, 0xa0, 0x48, 0x26, 0x45, + 0x1c, 0x96, 0x15, 0xd8, 0x9e, 0xf0, 0x00, 0x8e, 0x6a, 0x45, 0x9f, 0x81, 0x94, 0xad, 0x77, 0x28, + 0xa9, 0xe5, 0xd2, 0x4b, 0xda, 0xf2, 0x94, 0x1f, 0x56, 0x65, 0x4e, 0xc5, 0x72, 0x14, 0x5d, 0x05, + 0xb4, 0xcb, 0xfd, 0x64, 0xd3, 0xa0, 0xcc, 0x84, 0xe7, 0x8c, 0xb6, 0xe1, 0xe6, 0xa6, 0x96, 0xb4, + 0xe5, 0x64, 0xe9, 0xae, 0xee, 0x61, 0x1e, 0x95, 0x7a, 0x46, 0x71, 0x9f, 0x19, 0xe8, 0x15, 0x48, + 0x36, 0x2d, 0x6b, 0x8f, 0xe6, 0x32, 0xdc, 0xdc, 0x11, 0x82, 0x65, 0x93, 0x89, 0x29, 0x65, 0x58, + 0xa0, 0xf0, 0x3f, 0xb1, 0x10, 0x8c, 0xca, 0x30, 0x4b, 0x5e, 0x23, 0xd5, 0x0e, 0x33, 0xf2, 0x05, + 0xa7, 0x46, 0x9c, 0x1c, 0xf0, 0x0f, 0xbf, 0x2c, 0x2d, 0x9b, 0xbd, 0x12, 0x1a, 0xbd, 0xd5, 0x43, + 0xc1, 0x91, 0xf9, 0x85, 0xdf, 0xc5, 0x60, 0xa1, 0x27, 0x01, 0xa1, 0x67, 0x00, 0x59, 0xbb, 0x94, + 0x38, 0xfb, 0xa4, 0x76, 0x4d, 0xe4, 0x72, 0xc3, 0x32, 0x79, 0x7a, 0x89, 0x97, 0x2e, 0x48, 0x5d, + 0xe8, 0x85, 0x1e, 0x0e, 0xdc, 0x67, 0x16, 0xf3, 0xb6, 0xaa, 0x65, 0xd6, 0x0c, 0xf6, 0x43, 0xe5, + 0x91, 0xe5, 0x70, 0x54, 0x08, 0x8c, 0x7b, 0xb9, 0x61, 0xa9, 0x90, 0x58, 0x57, 0x13, 0x7c, 0x6f, + 0xf3, 0x48, 0x14, 0x07, 0xe4, 0xa1, 0x1f, 0x68, 0x30, 0x2f, 0x42, 0xd6, 0x67, 0xc8, 0xc5, 0xb9, + 0x92, 0x8d, 0x61, 0xf6, 0x7f, 0x3b, 0x22, 0xab, 0x94, 0x93, 0x0b, 0x98, 0x8f, 0x8e, 0xe0, 0x1e, + 0xbd, 0x85, 0x43, 0x3f, 0x3f, 0xb7, 0x3a, 0xc4, 0x76, 0x0c, 0xd3, 0x9d, 0x00, 0xd6, 0x19, 0x21, + 0xac, 0xbb, 0x36, 0x42, 0x8a, 0x56, 0x8b, 0x1e, 0x84, 0x77, 0x85, 0x8f, 0x35, 0x38, 0x1b, 0xe1, + 0x9d, 0x00, 0x08, 0x35, 0xc3, 0x20, 0xb4, 0x3e, 0x06, 0x0b, 0x07, 0x00, 0xd1, 0x3f, 0x53, 0x3d, + 0xf6, 0x71, 0x30, 0x7a, 0x43, 0x83, 0x59, 0x3f, 0xc5, 0x31, 0x92, 0x34, 0x73, 0x7d, 0xc8, 0x94, + 0x16, 0x14, 0x55, 0xba, 0x4b, 0x45, 0x6f, 0x98, 0x8e, 0x23, 0x2a, 0x4f, 0x08, 0x49, 0x37, 0x20, + 0xe1, 0xea, 0x74, 0x4f, 0xe2, 0xd0, 0x57, 0x86, 0xd9, 0xb4, 0x1d, 0x9d, 0xee, 0x61, 0x52, 0xf7, + 0x5d, 0x81, 0x13, 0xb8, 0xd8, 0xbe, 0x69, 0x3e, 0x71, 0x47, 0xd2, 0x7c, 0x1f, 0xec, 0x4d, 0x9e, + 0x3e, 0xf6, 0x5a, 0x90, 0x76, 0x49, 0xdb, 0xde, 0x30, 0x9c, 0xe1, 0xd0, 0x4d, 0xec, 0xf0, 0x95, + 0xb6, 0xed, 0x1e, 0x6c, 0x18, 0x8e, 0xb7, 0x00, 0xaf, 0x20, 0xd9, 0x11, 0xc2, 0xb1, 0xd2, 0x82, + 0xbe, 0xaf, 0xc1, 0x79, 0xc3, 0x74, 0x89, 0x63, 0xb4, 0xaf, 0x5b, 0xad, 0x4e, 0x9b, 0xa8, 0x42, + 0x86, 0xa3, 0x5b, 0x76, 0xf5, 0x91, 0xe3, 0xad, 0x2d, 0x13, 0x87, 0x1a, 0x94, 0xed, 0x9e, 0x90, + 0xb0, 0xde, 0xd2, 0x8d, 0x76, 0xe9, 0x9e, 0xee, 0x61, 0xfe, 0xfc, 0x56, 0x3f, 0xc9, 0xb8, 0xbf, + 0xc2, 0x71, 0x01, 0x66, 0xe1, 0xe3, 0x98, 0x0a, 0xb7, 0x50, 0x85, 0x36, 0x81, 0x9c, 0xd9, 0x0e, + 0xe5, 0xcc, 0x67, 0xc7, 0x54, 0x5a, 0x0e, 0x3c, 0x27, 0x74, 0x22, 0xe7, 0x84, 0xed, 0x71, 0x29, + 0x3c, 0xfa, 0xbc, 0xf0, 0x0f, 0x0d, 0xee, 0xee, 0x33, 0x6b, 0x02, 0x29, 0xbb, 0x15, 0x4e, 0xd9, + 0xd7, 0xc6, 0x64, 0xef, 0x80, 0xb4, 0xfd, 0x93, 0x64, 0x5f, 0x3b, 0x79, 0xd2, 0xfc, 0xad, 0x06, + 0xf9, 0xdd, 0xa3, 0x4f, 0x01, 0xd2, 0xfe, 0x53, 0x39, 0x60, 0x7c, 0x56, 0x2e, 0x38, 0x7f, 0x0c, + 0x23, 0x3e, 0x6e, 0x91, 0x27, 0xcc, 0xfe, 0xfe, 0xd1, 0x20, 0x3e, 0xfc, 0xd1, 0x20, 0x31, 0x81, + 0xa3, 0x41, 0xf2, 0x0e, 0x1f, 0x0d, 0x52, 0x43, 0x1c, 0x0d, 0xd2, 0x27, 0xce, 0x74, 0xef, 0x6a, + 0x70, 0xcf, 0xc0, 0xf8, 0xfd, 0xdf, 0x29, 0xb7, 0x0b, 0xbf, 0x4a, 0xc2, 0x71, 0x9e, 0xec, 0x15, + 0x1e, 0xda, 0xe9, 0x14, 0x1e, 0x35, 0x48, 0xb9, 0xba, 0xd3, 0x20, 0xae, 0x4c, 0xde, 0x4f, 0x0f, + 0x1f, 0xb6, 0x3b, 0x5c, 0x4e, 0x09, 0xd8, 0x87, 0x17, 0x7f, 0x63, 0x29, 0xfb, 0x0e, 0x1d, 0xe8, + 0x03, 0x45, 0x45, 0xe2, 0x0e, 0x17, 0x15, 0xc9, 0x49, 0x17, 0x15, 0xde, 0xe9, 0x39, 0x75, 0x4a, + 0xa7, 0xe7, 0xc2, 0x2f, 0x34, 0xd5, 0x86, 0xdc, 0x94, 0xa7, 0xe9, 0x8c, 0xed, 0x10, 0x41, 0x91, + 0xde, 0x7a, 0x31, 0x6c, 0xaf, 0xe8, 0x8d, 0x2a, 0x4b, 0x37, 0x75, 0xb3, 0xd6, 0x22, 0x4e, 0x69, + 0xa6, 0x7b, 0x98, 0xcf, 0x94, 0xd5, 0x4c, 0xec, 0x0b, 0x41, 0x15, 0x00, 0xdb, 0xa2, 0xae, 0x14, + 0x19, 0xbb, 0x7d, 0x91, 0xb3, 0x2c, 0xe6, 0xca, 0xde, 0x54, 0x1c, 0x10, 0x53, 0x78, 0x53, 0x83, + 0x79, 0xf1, 0xe7, 0x96, 0xb9, 0x6f, 0xed, 0x11, 0x07, 0x93, 0x3a, 0x43, 0x03, 0xdd, 0x36, 0xae, + 0x39, 0x96, 0x5c, 0x7a, 0x00, 0x0d, 0xd6, 0xca, 0x5b, 0x9c, 0x8e, 0x3d, 0x0e, 0xb4, 0x04, 0x89, + 0x3d, 0xc3, 0xac, 0x49, 0xdc, 0xf0, 0xa2, 0xea, 0x59, 0xc3, 0xac, 0x61, 0x3e, 0xc2, 0x38, 0x4c, + 0xbd, 0x4d, 0x24, 0x5a, 0x78, 0x1c, 0xcf, 0xeb, 0x6d, 0x82, 0xf9, 0x48, 0xe1, 0xfd, 0x18, 0xcc, + 0x88, 0x65, 0x54, 0x08, 0xa5, 0x93, 0x29, 0xd3, 0x1a, 0xa1, 0x32, 0x6d, 0x84, 0xee, 0xaa, 0x5c, + 0xf2, 0xc0, 0x02, 0xcd, 0x8a, 0x14, 0x68, 0xd7, 0x46, 0x57, 0x75, 0x74, 0x69, 0xf6, 0x67, 0x4d, + 0xf5, 0x5d, 0x24, 0xff, 0x04, 0x8a, 0xb2, 0x7a, 0xb8, 0x28, 0x5b, 0x1b, 0xd9, 0xc6, 0x01, 0xe5, + 0xd8, 0x9b, 0x51, 0xdb, 0x2a, 0x62, 0x8b, 0xd3, 0x86, 0xf0, 0x5f, 0x69, 0xda, 0xc6, 0xf0, 0xfa, + 0xfd, 0x40, 0xf0, 0x73, 0x9b, 0xa2, 0x29, 0x2d, 0x85, 0xbf, 0x7b, 0xa7, 0x8b, 0xd0, 0x27, 0x41, + 0x8f, 0x41, 0xd2, 0x6e, 0xea, 0x94, 0xc8, 0xb8, 0xb9, 0xa8, 0x6c, 0x28, 0x33, 0xe2, 0x2d, 0x0f, + 0xd3, 0xe5, 0x24, 0x4e, 0xc5, 0x62, 0x06, 0x5a, 0x83, 0x39, 0x2a, 0xc8, 0x1b, 0x12, 0xf9, 0x64, + 0x48, 0x79, 0x29, 0xbe, 0x12, 0x1e, 0xc6, 0x51, 0x7e, 0xf4, 0x1d, 0x48, 0x0b, 0x88, 0x51, 0x6d, + 0xaa, 0xab, 0xa3, 0xe2, 0x97, 0xf4, 0x34, 0x3f, 0xc9, 0x0b, 0xf1, 0x58, 0xe9, 0x89, 0x94, 0x04, + 0x89, 0x31, 0x97, 0x04, 0xef, 0xc7, 0x61, 0x3a, 0xb8, 0x1c, 0x74, 0x11, 0x92, 0x7a, 0xcb, 0xd0, + 0xa9, 0xdc, 0x5f, 0xcf, 0x47, 0xd6, 0x18, 0x11, 0x8b, 0x31, 0xf4, 0x12, 0xc4, 0x1d, 0x52, 0x97, + 0x81, 0xfd, 0xc4, 0x70, 0x35, 0x02, 0x07, 0x6c, 0x52, 0x2f, 0x65, 0xa5, 0x86, 0x38, 0x26, 0x75, + 0xcc, 0xc4, 0xa2, 0x3c, 0x24, 0x6d, 0xdd, 0x6d, 0x8a, 0x2d, 0xce, 0x08, 0x28, 0x28, 0x33, 0x02, + 0x16, 0x74, 0xf4, 0x75, 0x98, 0xde, 0xe7, 0xf0, 0xb3, 0x6d, 0x75, 0x4c, 0x57, 0x6d, 0x4a, 0xbe, + 0x5f, 0xa5, 0x7b, 0xdd, 0xe7, 0x2b, 0x9d, 0x93, 0x9a, 0xa6, 0x03, 0x44, 0x8a, 0x43, 0xa2, 0xd0, + 0x32, 0x4c, 0x39, 0xc4, 0x6e, 0x19, 0x55, 0x5d, 0xf4, 0x21, 0x92, 0xa5, 0x69, 0x16, 0x8f, 0x58, + 0xd2, 0xb0, 0x37, 0x8a, 0xb6, 0x61, 0x81, 0xca, 0x1a, 0x7c, 0xbd, 0xa5, 0x53, 0xca, 0x92, 0x2d, + 0x47, 0xbf, 0x4c, 0x29, 0x2f, 0x15, 0xdd, 0x2d, 0x14, 0x55, 0xa2, 0x6c, 0xb8, 0x77, 0x26, 0x7a, + 0x00, 0xd2, 0xe4, 0xb5, 0x6a, 0xab, 0x53, 0x23, 0xb9, 0x34, 0x37, 0x3b, 0xcb, 0xbc, 0xe1, 0x8a, + 0x20, 0x61, 0x35, 0x86, 0xee, 0x85, 0x84, 0xee, 0x34, 0x68, 0x6e, 0x8a, 0xf3, 0x4c, 0xb1, 0x44, + 0xb8, 0xe6, 0x34, 0x28, 0xe6, 0xd4, 0xc2, 0x7b, 0x71, 0x40, 0xbd, 0xce, 0xa5, 0x3e, 0x97, 0x76, + 0x3a, 0x9f, 0xab, 0x08, 0xe0, 0x5a, 0xae, 0xde, 0xda, 0xb4, 0xa8, 0x4b, 0xb9, 0x4f, 0x24, 0x05, + 0x22, 0xee, 0x78, 0x54, 0x1c, 0xe0, 0x40, 0xab, 0x2a, 0x82, 0x05, 0x5a, 0xdd, 0x1b, 0x8d, 0xe0, + 0xac, 0x50, 0x16, 0x0a, 0xdd, 0x26, 0x24, 0x59, 0xea, 0x55, 0x9f, 0x7a, 0xa8, 0x26, 0xe2, 0xa6, + 0x07, 0xca, 0x6c, 0x5b, 0xa8, 0xef, 0xda, 0xfc, 0x27, 0x16, 0x0a, 0xd0, 0xd3, 0x30, 0xef, 0x55, + 0x04, 0x6b, 0x55, 0x11, 0x74, 0x49, 0xbe, 0xd9, 0xe7, 0xba, 0x87, 0xf9, 0xf9, 0x72, 0x64, 0x0c, + 0xf7, 0x70, 0xa3, 0x75, 0x58, 0xf0, 0xf1, 0x5f, 0x89, 0x48, 0x71, 0x11, 0xe7, 0xbb, 0x87, 0xf9, + 0x85, 0x72, 0x74, 0x10, 0xf7, 0xf2, 0x17, 0xfe, 0xad, 0xc1, 0x7c, 0xb4, 0x12, 0x44, 0xcf, 0x40, + 0xaa, 0x4d, 0x6a, 0x46, 0xa7, 0x2d, 0x83, 0x73, 0x55, 0xc1, 0xd3, 0x36, 0xa7, 0xde, 0x3a, 0xcc, + 0x2f, 0xf5, 0x5e, 0xbb, 0x17, 0x2b, 0xae, 0xe5, 0xe8, 0x0d, 0x22, 0x78, 0xb0, 0x94, 0x80, 0xbe, + 0x09, 0x19, 0x6a, 0xbc, 0x4e, 0xc4, 0x91, 0x28, 0x76, 0x3c, 0x5a, 0x15, 0xd5, 0x85, 0x7c, 0xf1, + 0xab, 0x1d, 0xdd, 0x74, 0x0d, 0xf7, 0x40, 0x54, 0x52, 0x15, 0x25, 0x04, 0xfb, 0xf2, 0xd0, 0x93, + 0x30, 0x5b, 0x33, 0xa8, 0xbe, 0xdb, 0x22, 0xeb, 0x5c, 0x4e, 0x83, 0x7f, 0xeb, 0x29, 0xbf, 0x57, + 0xba, 0x11, 0x1a, 0xc5, 0x11, 0xee, 0xc2, 0xc7, 0x1a, 0x64, 0xae, 0x1a, 0x2d, 0xc2, 0xbf, 0x8c, + 0xe7, 0x60, 0x8c, 0x42, 0xe5, 0xc1, 0xca, 0x77, 0x30, 0x4e, 0xc5, 0x01, 0x0e, 0x16, 0xc3, 0x26, + 0x79, 0x55, 0x70, 0xc7, 0x38, 0x37, 0x8f, 0xe1, 0xe7, 0x25, 0x0d, 0x7b, 0xa3, 0xe8, 0x11, 0x98, + 0x69, 0x5b, 0x35, 0xa3, 0x6e, 0x90, 0x9a, 0x60, 0x8f, 0x73, 0xf6, 0x85, 0xee, 0x61, 0x7e, 0x66, + 0x3b, 0x38, 0x80, 0xc3, 0x7c, 0xe8, 0x09, 0x98, 0xeb, 0x98, 0xe1, 0xa9, 0x09, 0x3e, 0xf5, 0x2c, + 0x83, 0x91, 0x17, 0xc3, 0x43, 0x38, 0xca, 0x5b, 0xf8, 0x50, 0x83, 0xa9, 0xab, 0x1d, 0xb3, 0x3a, + 0xa1, 0x7e, 0xd9, 0x6e, 0xa8, 0x10, 0x1b, 0xea, 0xc8, 0xa5, 0x56, 0x3b, 0xf0, 0x72, 0xe1, 0x0f, + 0x1a, 0x4c, 0x2b, 0xa6, 0x09, 0x54, 0x43, 0x7a, 0xb8, 0x1a, 0x7a, 0x7c, 0x14, 0x9b, 0x06, 0x14, + 0x42, 0x3f, 0xd2, 0x20, 0xab, 0x58, 0x58, 0xd1, 0xae, 0x8a, 0x6c, 0x6d, 0x50, 0x91, 0x8d, 0x74, + 0x48, 0xd9, 0xba, 0xa3, 0x7b, 0xab, 0x7a, 0x6c, 0x98, 0x55, 0x95, 0x99, 0x84, 0x60, 0x4b, 0x83, + 0x09, 0xc4, 0x52, 0x70, 0xe1, 0x3f, 0x09, 0x7f, 0x9b, 0x79, 0x61, 0x76, 0x11, 0x92, 0x46, 0x5b, + 0x6f, 0x90, 0x28, 0x5e, 0x6f, 0x31, 0x22, 0x16, 0x63, 0x0c, 0x5c, 0xaa, 0x56, 0xbb, 0xad, 0xf3, + 0x43, 0x84, 0x07, 0x2e, 0xeb, 0x82, 0x84, 0xd5, 0x98, 0x07, 0x2e, 0xf1, 0x7e, 0xe0, 0x82, 0x56, + 0x01, 0x5e, 0xb5, 0x9c, 0x3d, 0xc3, 0x6c, 0xa8, 0x13, 0x6e, 0xc6, 0xf7, 0xbb, 0xaf, 0x79, 0x23, + 0x38, 0xc0, 0x85, 0xae, 0x42, 0xd2, 0xb6, 0x1c, 0x57, 0xa4, 0xd0, 0xec, 0xea, 0xfd, 0xfd, 0x20, + 0x7a, 0xdd, 0x32, 0x5d, 0x9d, 0x6d, 0x47, 0xd9, 0x72, 0x02, 0x57, 0x3b, 0xec, 0x17, 0x43, 0x7c, + 0xf6, 0x4f, 0x0f, 0xe2, 0xa7, 0xc6, 0x87, 0xf8, 0x37, 0x60, 0x46, 0xfc, 0xde, 0x20, 0xfb, 0x46, + 0x95, 0x50, 0x0e, 0xbf, 0xd9, 0xd5, 0xa5, 0xc1, 0xb2, 0x05, 0x63, 0xe9, 0xbc, 0x14, 0x3e, 0x13, + 0xa4, 0x52, 0x1c, 0x96, 0x86, 0x0e, 0x7a, 0x5b, 0x11, 0x53, 0x3c, 0x1a, 0xbe, 0x7c, 0xfc, 0xe1, + 0xdc, 0xdb, 0x99, 0x68, 0x4f, 0xe2, 0xec, 0x6d, 0xf5, 0x23, 0x2a, 0x70, 0xde, 0xb6, 0x6a, 0x15, + 0x52, 0xed, 0x38, 0x86, 0x7b, 0x20, 0x7a, 0x67, 0xbc, 0x4a, 0xc9, 0x84, 0x9a, 0x8a, 0xe7, 0xcb, + 0xfd, 0x98, 0x70, 0xff, 0xb9, 0x85, 0xdf, 0xc4, 0x60, 0x2e, 0x82, 0xa4, 0xec, 0x38, 0xdb, 0xb4, + 0xa8, 0x1b, 0x88, 0x0e, 0x2f, 0x74, 0x37, 0x25, 0x1d, 0x7b, 0x1c, 0xe8, 0x61, 0x85, 0xff, 0xa2, + 0xf8, 0x5e, 0x8a, 0xe2, 0x7f, 0x40, 0x7c, 0xa8, 0x06, 0x70, 0x20, 0xa3, 0xca, 0x26, 0x55, 0x7d, + 0x0f, 0x75, 0x08, 0x52, 0xe5, 0x98, 0xa8, 0x02, 0x16, 0xa4, 0xfa, 0x8c, 0x22, 0x53, 0xec, 0xab, + 0x61, 0x96, 0xd5, 0xd4, 0x59, 0x21, 0x11, 0xb6, 0xcc, 0x3b, 0x24, 0x78, 0x1c, 0x2c, 0x16, 0x89, + 0xe3, 0x58, 0x0e, 0xaf, 0x1c, 0x03, 0xb1, 0x78, 0x85, 0x11, 0xb1, 0x18, 0x2b, 0xfc, 0x5e, 0x83, + 0x79, 0x66, 0x21, 0x26, 0xd4, 0xb5, 0x1c, 0x32, 0xcc, 0x0e, 0x3e, 0x12, 0xde, 0xc1, 0xfb, 0xa3, + 0x3b, 0x18, 0x94, 0x1f, 0xda, 0xc2, 0xa0, 0x39, 0xf1, 0xdb, 0x37, 0x27, 0x71, 0x84, 0x39, 0x7f, + 0xd2, 0xa0, 0xe7, 0x72, 0x1d, 0x11, 0xaf, 0xcb, 0x37, 0x96, 0x9a, 0xd3, 0x4b, 0x86, 0x91, 0x36, + 0xdf, 0xe9, 0x76, 0x4b, 0x9f, 0x87, 0x24, 0x4f, 0xbe, 0xb7, 0x91, 0xf8, 0x2f, 0x42, 0x72, 0x5f, + 0x6f, 0x75, 0xd4, 0x07, 0xf1, 0x76, 0xea, 0x3a, 0x23, 0x62, 0x31, 0x56, 0xb8, 0x19, 0x83, 0x69, + 0xf9, 0x51, 0x26, 0xf5, 0x90, 0xae, 0x1e, 0x02, 0xfe, 0xa1, 0x8e, 0xec, 0xc1, 0x15, 0x0f, 0x6c, + 0xc0, 0x98, 0x91, 0x06, 0xcc, 0xd5, 0x91, 0x35, 0x1d, 0xdd, 0x7f, 0x61, 0x4e, 0x17, 0x64, 0x9f, + 0x40, 0xc1, 0x41, 0xc2, 0x05, 0xc7, 0xd3, 0xa3, 0x5a, 0x38, 0xa0, 0xe8, 0xf8, 0x20, 0x1e, 0xb6, + 0x8c, 0x63, 0xbc, 0x7f, 0x1d, 0xa4, 0x0d, 0x7f, 0x1d, 0x14, 0x1b, 0xf3, 0x75, 0x90, 0xed, 0x3f, + 0xf1, 0x13, 0xc9, 0xf8, 0xca, 0x08, 0x5b, 0x22, 0x8f, 0xab, 0x47, 0x3f, 0xea, 0xeb, 0x7d, 0x3f, + 0x95, 0x18, 0xed, 0xfd, 0x14, 0xab, 0x22, 0x45, 0xd7, 0x3a, 0x39, 0x7c, 0x65, 0x2c, 0x2d, 0x18, + 0xd4, 0xb6, 0x3e, 0x8c, 0x01, 0xea, 0xf5, 0x6c, 0xf4, 0x85, 0x70, 0x1b, 0xeb, 0xbe, 0x68, 0x0a, + 0x9f, 0xee, 0x97, 0xbe, 0xc7, 0xd0, 0xc0, 0x0a, 0xa7, 0xcc, 0xf8, 0x98, 0xdf, 0x73, 0x39, 0xbe, + 0x4f, 0x24, 0x86, 0xbf, 0x3a, 0x96, 0xa6, 0x8b, 0xef, 0x1f, 0xed, 0x8f, 0x45, 0xbd, 0xa2, 0xf0, + 0x6b, 0xcd, 0x4b, 0xab, 0xe2, 0x62, 0xa0, 0x02, 0x60, 0x3b, 0x44, 0x92, 0x4e, 0x72, 0x33, 0x20, + 0xda, 0xf8, 0xde, 0x54, 0x1c, 0x10, 0x83, 0xae, 0x43, 0xd6, 0xf6, 0x41, 0xf5, 0x24, 0x97, 0x03, + 0x73, 0xdd, 0xc3, 0x7c, 0xb6, 0xec, 0xcf, 0xc5, 0x41, 0x41, 0x85, 0x9f, 0xc5, 0xe1, 0x6c, 0x1f, + 0x7b, 0x4f, 0xb9, 0x65, 0x73, 0xba, 0xaf, 0xfa, 0xc2, 0x0d, 0xa1, 0xf8, 0xb1, 0x0d, 0x21, 0xaf, + 0xa5, 0x9b, 0x18, 0xd0, 0xd2, 0x0d, 0x25, 0x89, 0x50, 0x44, 0x18, 0xaa, 0x2f, 0x94, 0x1c, 0xfe, + 0xd1, 0x60, 0xb4, 0x18, 0xeb, 0xdf, 0x18, 0x2a, 0x7c, 0x10, 0x83, 0x59, 0xc5, 0x36, 0xb1, 0x2b, + 0x94, 0x66, 0x08, 0xc0, 0x47, 0x81, 0xd5, 0xe3, 0xee, 0x50, 0xec, 0x08, 0x84, 0x6f, 0x8e, 0x41, + 0xd7, 0xd1, 0x20, 0xfe, 0x17, 0xcd, 0xcb, 0x8c, 0x93, 0xbb, 0x45, 0x69, 0x84, 0x61, 0xbc, 0x34, + 0xba, 0x95, 0x03, 0x80, 0xfc, 0xc7, 0xf1, 0xa8, 0x75, 0x1c, 0xca, 0xdf, 0xd1, 0x60, 0xc1, 0x89, + 0x62, 0x9e, 0xb4, 0x73, 0x4c, 0x00, 0x7a, 0x8f, 0x5c, 0xcf, 0x42, 0xcf, 0x10, 0xee, 0x55, 0x1d, + 0xa8, 0x2d, 0x62, 0xc3, 0xd7, 0x16, 0xf1, 0x31, 0xd7, 0x16, 0x37, 0x20, 0xe9, 0x74, 0x44, 0x53, + 0x8d, 0x7d, 0xa5, 0x47, 0x87, 0xda, 0x98, 0x4e, 0x8b, 0xf8, 0xdf, 0x86, 0xfd, 0xa2, 0x58, 0x48, + 0x2d, 0xbc, 0x15, 0x87, 0x73, 0xfd, 0x5c, 0x75, 0x38, 0x54, 0x3e, 0x69, 0xff, 0xbb, 0x0f, 0x8a, + 0xc7, 0x4f, 0x88, 0xe2, 0x46, 0xb8, 0x1d, 0x7e, 0x8a, 0x69, 0x2f, 0x02, 0x15, 0xc9, 0x31, 0x9f, + 0xb1, 0x7e, 0x9a, 0x80, 0x99, 0x90, 0x9b, 0x7e, 0x1a, 0xee, 0x9f, 0xa2, 0xcd, 0xa6, 0xf8, 0xe9, + 0x5c, 0x2f, 0x25, 0x8e, 0xbc, 0x5e, 0x7a, 0x5b, 0x83, 0x73, 0xfb, 0xfe, 0x93, 0x0c, 0xf5, 0xd0, + 0x42, 0x7d, 0x82, 0xa1, 0x9f, 0x76, 0xa8, 0xeb, 0x96, 0x73, 0xd7, 0xfb, 0x08, 0xc7, 0x7d, 0x55, + 0xfa, 0xe1, 0x98, 0x3a, 0x8d, 0x70, 0xf4, 0xda, 0x8e, 0xe9, 0xbe, 0x77, 0x5a, 0x3f, 0x4f, 0x42, + 0x6f, 0x26, 0x3b, 0xed, 0x67, 0x4a, 0x24, 0xf2, 0x4c, 0x69, 0x6d, 0xe4, 0xd4, 0xfc, 0xff, 0x77, + 0x4a, 0x9f, 0x8a, 0x77, 0x4a, 0x7a, 0xf8, 0x9d, 0xd2, 0x69, 0x9c, 0xf8, 0xde, 0x8e, 0x41, 0x82, + 0xf9, 0x37, 0xba, 0x0c, 0x59, 0xf1, 0x9d, 0x05, 0x32, 0x68, 0xdc, 0xbd, 0xf9, 0x71, 0x60, 0xc7, + 0x27, 0xe3, 0x20, 0x0f, 0x5a, 0x05, 0x10, 0xb7, 0x6c, 0xec, 0xa7, 0x44, 0x64, 0x2f, 0x87, 0x56, + 0xbc, 0x11, 0x1c, 0xe0, 0x42, 0x9f, 0x8f, 0xf6, 0x45, 0x33, 0xf2, 0x66, 0xae, 0x5f, 0x43, 0xd3, + 0xbb, 0x5b, 0x4f, 0x0c, 0xb8, 0x5b, 0x0f, 0xdc, 0x43, 0x27, 0x8f, 0xb8, 0x87, 0x7e, 0x00, 0xd2, + 0x86, 0x29, 0xd8, 0x52, 0x3e, 0xdb, 0x96, 0x29, 0xd9, 0xe4, 0x58, 0xa1, 0x1b, 0x83, 0x99, 0x50, + 0xbf, 0xf5, 0x36, 0x9a, 0x69, 0x4b, 0x90, 0x60, 0x4b, 0x89, 0x3e, 0x77, 0x62, 0xab, 0xc4, 0x7c, + 0x04, 0xad, 0x40, 0x86, 0xe3, 0x69, 0xc5, 0x78, 0x5d, 0xbc, 0x9f, 0xcf, 0xf8, 0x6d, 0xdc, 0x1d, + 0x35, 0x80, 0x7d, 0x1e, 0xf4, 0x20, 0x4c, 0x75, 0xec, 0x96, 0xa5, 0xd7, 0x48, 0x2d, 0xda, 0xc6, + 0x7d, 0x51, 0xd2, 0xb1, 0xc7, 0x81, 0x9e, 0x84, 0x59, 0xdb, 0xb1, 0xaa, 0x0c, 0x73, 0xcd, 0xc6, + 0x8e, 0xd1, 0x26, 0xb2, 0x9f, 0xeb, 0xdd, 0x5e, 0x96, 0x43, 0xa3, 0x38, 0xc2, 0x8d, 0x4c, 0xc8, + 0xd4, 0xd5, 0xe5, 0xa5, 0xf4, 0xb3, 0xa1, 0x30, 0xca, 0xbb, 0x01, 0xf5, 0xad, 0xf3, 0x48, 0xd8, + 0x57, 0x51, 0x78, 0x43, 0x83, 0x8c, 0x87, 0x67, 0xcc, 0x85, 0x74, 0xdb, 0xb8, 0xce, 0xe2, 0x45, + 0x3e, 0x43, 0x0d, 0xb8, 0xd0, 0x5a, 0x79, 0x4b, 0x8e, 0xe0, 0x00, 0xd7, 0x58, 0x5e, 0x98, 0xdd, + 0xd4, 0x80, 0x67, 0xd0, 0x09, 0x9c, 0x8a, 0xbe, 0x15, 0x3a, 0x15, 0x3d, 0x3e, 0x6c, 0xf2, 0x1f, + 0x78, 0x97, 0xf9, 0x9e, 0x06, 0x53, 0x8c, 0x61, 0x02, 0xe7, 0x91, 0x1b, 0xe1, 0xf3, 0xc8, 0xa3, + 0xc3, 0xda, 0x32, 0xe0, 0x14, 0xf2, 0x8e, 0x06, 0x69, 0x89, 0x73, 0x9f, 0x8e, 0xfb, 0xcb, 0x5f, + 0xca, 0xad, 0xe5, 0x20, 0x5e, 0x63, 0x65, 0x2c, 0xb1, 0xd5, 0xff, 0x11, 0x7e, 0x6a, 0x94, 0x4b, + 0x5c, 0x86, 0xe4, 0x81, 0x0a, 0x96, 0xd8, 0xbc, 0x82, 0x25, 0x36, 0x45, 0x57, 0x20, 0x2d, 0xaa, + 0x1a, 0x65, 0xd6, 0x85, 0xc1, 0x95, 0x9c, 0x0f, 0x62, 0xe2, 0x37, 0xc5, 0x6a, 0x6e, 0xe9, 0xd2, + 0xcd, 0x4f, 0x16, 0xcf, 0x7c, 0xf8, 0xc9, 0xe2, 0x99, 0x8f, 0x3e, 0x59, 0x3c, 0xf3, 0xbd, 0xee, + 0xa2, 0x76, 0xb3, 0xbb, 0xa8, 0x7d, 0xd8, 0x5d, 0xd4, 0x3e, 0xea, 0x2e, 0x6a, 0x7f, 0xed, 0x2e, + 0x6a, 0x3f, 0xfc, 0xdb, 0xe2, 0x99, 0x6f, 0xa4, 0xe5, 0xba, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, + 0x17, 0x2e, 0xa8, 0x8c, 0xa8, 0x41, 0x00, 0x00, } func (m *BackupBatch) Marshal() (dAtA []byte, err error) { @@ -2734,6 +2735,15 @@ func (m *BackupTarget) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Args[iNdEx]) + copy(dAtA[i:], m.Args[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } if len(m.Exclude) > 0 { for iNdEx := len(m.Exclude) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Exclude[iNdEx]) @@ -3978,6 +3988,15 @@ func (m *RestoreTarget) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Args[iNdEx]) + copy(dAtA[i:], m.Args[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx]))) + i-- + dAtA[i] = 0x3a + } + } if len(m.Rules) > 0 { for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { { @@ -4873,6 +4892,12 @@ func (m *BackupTarget) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if len(m.Args) > 0 { + for _, s := range m.Args { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -5352,6 +5377,12 @@ func (m *RestoreTarget) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if len(m.Args) > 0 { + for _, s := range m.Args { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -5827,6 +5858,7 @@ func (this *BackupTarget) String() string { `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, `VolumeSnapshotClassName:` + fmt.Sprintf("%v", this.VolumeSnapshotClassName) + `,`, `Exclude:` + fmt.Sprintf("%v", this.Exclude) + `,`, + `Args:` + fmt.Sprintf("%v", this.Args) + `,`, `}`, }, "") return s @@ -6212,6 +6244,7 @@ func (this *RestoreTarget) String() string { `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, `VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`, `Rules:` + repeatedStringForRules + `,`, + `Args:` + fmt.Sprintf("%v", this.Args) + `,`, `}`, }, "") return s @@ -9561,6 +9594,38 @@ func (m *BackupTarget) Unmarshal(dAtA []byte) error { } m.Exclude = append(m.Exclude, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", 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.Args = append(m.Args, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -13257,6 +13322,38 @@ func (m *RestoreTarget) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", 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.Args = append(m.Args, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.proto b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.proto index 78b3a3d8..3f4c3e2f 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.proto +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/generated.proto @@ -370,6 +370,10 @@ message BackupTarget { // Supported only for "Restic" driver // +optional repeated string exclude = 7; + + // Args specifies a list of arguments to pass to the backup driver. + // +optional + repeated string args = 8; } message BackupTargetStatus { @@ -766,6 +770,10 @@ message RestoreTarget { // Rules specifies different restore options for different hosts // +optional repeated Rule rules = 6; + + // Args specifies a list of arguments to pass to the restore driver. + // +optional + repeated string args = 7; } message RestoreTargetSpec { diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go index b77064c2..c7030ff7 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* @@ -338,6 +339,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref), "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref), "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref), + "kmodules.xyz/client-go/api/v1.ObjectReference": schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref), "kmodules.xyz/client-go/api/v1.ResourceID": schema_kmodulesxyz_client_go_api_v1_ResourceID(ref), "kmodules.xyz/client-go/api/v1.TLSConfig": schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref), "kmodules.xyz/client-go/api/v1.X509Subject": schema_kmodulesxyz_client_go_api_v1_X509Subject(ref), @@ -16733,6 +16735,35 @@ func schema_kmodulesxyz_client_go_api_v1_Condition(ref common.ReferenceCallback) } } +func schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + func schema_kmodulesxyz_client_go_api_v1_ResourceID(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -20017,6 +20048,21 @@ func schema_apimachinery_apis_stash_v1beta1_BackupTarget(ref common.ReferenceCal }, }, }, + "args": { + SchemaProps: spec.SchemaProps{ + Description: "Args specifies a list of arguments to pass to the backup driver.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, }, }, }, @@ -21190,6 +21236,21 @@ func schema_apimachinery_apis_stash_v1beta1_RestoreTarget(ref common.ReferenceCa }, }, }, + "args": { + SchemaProps: spec.SchemaProps{ + Description: "Args specifies a list of arguments to pass to the restore driver.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, }, }, }, diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go index a00028f7..63e518ac 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/restore_session_types.go @@ -121,12 +121,13 @@ const ( RestorePhaseUnknown RestorePhase = "Unknown" ) -// +kubebuilder:validation:Enum=Succeeded;Failed;Unknown +// +kubebuilder:validation:Enum=Succeeded;Failed;Running;Unknown type HostRestorePhase string const ( HostRestoreSucceeded HostRestorePhase = "Succeeded" HostRestoreFailed HostRestorePhase = "Failed" + HostRestoreRunning HostRestorePhase = "Running" HostRestoreUnknown HostRestorePhase = "Unknown" ) diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go index 5289fa0a..280c155f 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/types.go @@ -75,6 +75,9 @@ type BackupTarget struct { // Supported only for "Restic" driver // +optional Exclude []string `json:"exclude,omitempty" protobuf:"bytes,7,rep,name=exclude"` + // Args specifies a list of arguments to pass to the backup driver. + // +optional + Args []string `json:"args,omitempty" protobuf:"bytes,8,rep,name=args"` } type RestoreTarget struct { @@ -100,6 +103,9 @@ type RestoreTarget struct { // Rules specifies different restore options for different hosts // +optional Rules []Rule `json:"rules,omitempty" protobuf:"bytes,6,rep,name=rules"` + // Args specifies a list of arguments to pass to the restore driver. + // +optional + Args []string `json:"args,omitempty" protobuf:"bytes,7,rep,name=args"` } type Rule struct { diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go index 58785997..93d8fde6 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* @@ -564,6 +565,11 @@ func (in *BackupTarget) DeepCopyInto(out *BackupTarget) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } return } @@ -1210,6 +1216,11 @@ func (in *RestoreTarget) DeepCopyInto(out *RestoreTarget) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } return } diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml index ffedf650..4f17e46d 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupbatches.yaml @@ -3175,6 +3175,12 @@ spec: or will be used to generate the `hostname` for the restic repository. type: string + args: + description: Args specifies a list of arguments to pass + to the backup driver. + items: + type: string + type: array exclude: description: Exclude specifies a list of patterns for the files to ignore during backup. Stash will ignore those diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml index 62901a5f..08493737 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupconfigurations.yaml @@ -2762,6 +2762,12 @@ spec: data in the repository. This will be used as `hostname` or will be used to generate the `hostname` for the restic repository. type: string + args: + description: Args specifies a list of arguments to pass to the + backup driver. + items: + type: string + type: array exclude: description: Exclude specifies a list of patterns for the files to ignore during backup. Stash will ignore those files that diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml index cfbf33b6..44ef6326 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restorebatches.yaml @@ -3169,6 +3169,12 @@ spec: up data in the repository. This will be used as `sourceHost` and `targetHosts` or will be used to generate them. type: string + args: + description: Args specifies a list of arguments to pass + to the restore driver. + items: + type: string + type: array ref: description: Ref refers to the restore,target properties: @@ -3827,6 +3833,7 @@ spec: enum: - Succeeded - Failed + - Running - Unknown type: string type: object diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml index cd99e4f4..84074a6e 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_restoresessions.yaml @@ -2761,6 +2761,12 @@ spec: data in the repository. This will be used as `sourceHost` and `targetHosts` or will be used to generate them. type: string + args: + description: Args specifies a list of arguments to pass to the + restore driver. + items: + type: string + type: array ref: description: Ref refers to the restore,target properties: @@ -3320,6 +3326,7 @@ spec: enum: - Succeeded - Failed + - Running - Unknown type: string type: object diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/conditions/restore.go b/vendor/stash.appscode.dev/apimachinery/pkg/conditions/restore.go index d5661dff..49b2e6a5 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/conditions/restore.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/conditions/restore.go @@ -106,3 +106,21 @@ func SetInitContainerInjectedConditionToFalse(inv invoker.RestoreInvoker, tref a Message: fmt.Sprintf("Failed to inject Stash init-container. Reason: %v", err.Error()), }) } + +func SetRestoreCompletedConditionToTrue(inv invoker.RestoreInvoker, tref api_v1beta1.TargetRef, msg string) error { + return inv.SetCondition(&tref, kmapi.Condition{ + Type: apis.RestoreCompleted, + Status: core.ConditionTrue, + Reason: "PostRestoreTasksExecuted", + Message: msg, + }) +} + +func SetRestoreCompletedConditionToFalse(inv invoker.RestoreInvoker, tref api_v1beta1.TargetRef, msg string) error { + return inv.SetCondition(&tref, kmapi.Condition{ + Type: apis.RestoreCompleted, + Status: core.ConditionFalse, + Reason: "PostRestoreTasksNotExecuted", + Message: msg, + }) +} diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/invoker/restore_invoker.go b/vendor/stash.appscode.dev/apimachinery/pkg/invoker/restore_invoker.go index 07d32c78..336e7635 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/invoker/restore_invoker.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/invoker/restore_invoker.go @@ -83,7 +83,7 @@ type RestoreInvoker struct { SetCondition func(*v1beta1.TargetRef, kmapi.Condition) error IsConditionTrue func(*v1beta1.TargetRef, string) (bool, error) NextInOrder func(v1beta1.TargetRef, []v1beta1.RestoreMemberStatus) bool - EnsureKubeDBIntegration func(appClient appcatalog_cs.Interface) error + EnsureKubeDBIntegration func(appClient appcatalog_cs.Interface) (map[string]string, error) UpdateRestoreInvokerStatus func(status RestoreInvokerStatus) (RestoreInvokerStatus, error) CreateEvent func(eventType, source, reason, message string) error @@ -258,7 +258,7 @@ func ExtractRestoreInvokerInfo(kubeClient kubernetes.Interface, stashClient cs.I }, metav1.CreateOptions{}) return err } - invoker.EnsureKubeDBIntegration = func(appClient appcatalog_cs.Interface) error { + invoker.EnsureKubeDBIntegration = func(appClient appcatalog_cs.Interface) (map[string]string, error) { for i := range restoreBatch.Spec.Members { target := restoreBatch.Spec.Members[i].Target // Don't do anything if the target is not an AppBinding @@ -272,7 +272,7 @@ func ExtractRestoreInvokerInfo(kubeClient kubernetes.Interface, stashClient cs.I if kerr.IsNotFound(err) { continue } - return err + return nil, err } // If the AppBinding is not managed by KubeDB, then don't do anything if manager, err := meta.GetStringValue(appBinding.Labels, meta.ManagedByLabelKey); err != nil || manager != "kubedb.com" { @@ -281,17 +281,20 @@ func ExtractRestoreInvokerInfo(kubeClient kubernetes.Interface, stashClient cs.I // Extract the name, and managed-by labels. We are not passing "instance" label because there could be multiple AppBindings. appLabels, err := extractLabels(appBinding.Labels, meta.ManagedByLabelKey, meta.NameLabelKey) if err != nil { - return err + return nil, err } // Add the labels to the invoker - _, _, err = v1beta1_util.PatchRestoreBatch(context.TODO(), stashClient.StashV1beta1(), restoreBatch, func(in *v1beta1.RestoreBatch) *v1beta1.RestoreBatch { + restoreBatch, _, err := v1beta1_util.PatchRestoreBatch(context.TODO(), stashClient.StashV1beta1(), restoreBatch, func(in *v1beta1.RestoreBatch) *v1beta1.RestoreBatch { in.Labels = meta.OverwriteKeys(in.Labels, appLabels) return in }, metav1.PatchOptions{}) - return err + if err != nil { + return nil, err + } + return restoreBatch.Labels, nil } - return nil + return nil, nil } case v1beta1.ResourceKindRestoreSession: // get RestoreSession @@ -449,36 +452,39 @@ func ExtractRestoreInvokerInfo(kubeClient kubernetes.Interface, stashClient cs.I }, metav1.CreateOptions{}) return err } - invoker.EnsureKubeDBIntegration = func(appClient appcatalog_cs.Interface) error { + invoker.EnsureKubeDBIntegration = func(appClient appcatalog_cs.Interface) (map[string]string, error) { // Don't do anything if the target is not an AppBinding if restoreSession.Spec.Target == nil || !TargetOfGroupKind(restoreSession.Spec.Target.Ref, appcat.SchemeGroupVersion.Group, appcat.ResourceKindApp) { - return nil + return nil, nil } // Get the AppBinding appBinding, err := appClient.AppcatalogV1alpha1().AppBindings(restoreSession.Namespace).Get(context.TODO(), restoreSession.Spec.Target.Ref.Name, metav1.GetOptions{}) if err != nil { // If the AppBinding does not exist, then don't do anything. if kerr.IsNotFound(err) { - return nil + return nil, nil } - return err + return nil, err } // If the AppBinding is not managed by KubeDB, then don't do anything if manager, err := meta.GetStringValue(appBinding.Labels, meta.ManagedByLabelKey); err != nil || manager != "kubedb.com" { - return nil + return nil, nil } // Extract the name, instance, and managed-by labels. appLabels, err := extractLabels(appBinding.Labels, meta.InstanceLabelKey, meta.ManagedByLabelKey, meta.NameLabelKey) if err != nil { - return err + return nil, err } // Add the labels to the invoker - _, _, err = v1beta1_util.PatchRestoreSession(context.TODO(), stashClient.StashV1beta1(), restoreSession, func(in *v1beta1.RestoreSession) *v1beta1.RestoreSession { + restoreSession, _, err = v1beta1_util.PatchRestoreSession(context.TODO(), stashClient.StashV1beta1(), restoreSession, func(in *v1beta1.RestoreSession) *v1beta1.RestoreSession { in.Labels = meta.OverwriteKeys(in.Labels, appLabels) return in }, metav1.PatchOptions{}) - return err + if err != nil { + return nil, err + } + return restoreSession.Labels, nil } default: return invoker, fmt.Errorf("failed to extract invoker info. Reason: unknown invoker") diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/restic/backup.go b/vendor/stash.appscode.dev/apimachinery/pkg/restic/backup.go index 1fc1f492..7c0bfedc 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/restic/backup.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/restic/backup.go @@ -148,6 +148,7 @@ func (w *ResticWrapper) runBackup(backupOption BackupOptions) (api_v1beta1.HostB path: path, host: backupOption.Host, excludes: backupOption.Exclude, + args: backupOption.Args, } out, err := w.backup(params) if err != nil { diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/restic/commands.go b/vendor/stash.appscode.dev/apimachinery/pkg/restic/commands.go index b2358a14..631f8206 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/restic/commands.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/restic/commands.go @@ -56,6 +56,7 @@ type backupParams struct { host string tags []string excludes []string + args []string } type restoreParams struct { @@ -65,6 +66,7 @@ type restoreParams struct { destination string excludes []string includes []string + args []string } func (w *ResticWrapper) listSnapshots(snapshotIDs []string) ([]Snapshot, error) { @@ -131,6 +133,10 @@ func (w *ResticWrapper) backup(params backupParams) ([]byte, error) { args = append(args, "--exclude") args = append(args, exclude) } + // add additional arguments passed by user to the backup process + for i := range params.args { + args = append(args, params.args[i]) + } args = w.appendCacheDirFlag(args) args = w.appendCleanupCacheFlag(args) args = w.appendCaCertFlag(args) @@ -256,6 +262,10 @@ func (w *ResticWrapper) restore(params restoreParams) ([]byte, error) { args = append(args, "--exclude") args = append(args, exclude) } + // add additional arguments passed by user to the restore process + for i := range params.args { + args = append(args, params.args[i]) + } args = w.appendCacheDirFlag(args) args = w.appendCaCertFlag(args) args = w.appendMaxConnectionsFlag(args) @@ -318,7 +328,7 @@ func (w *ResticWrapper) stats(snapshotID string) ([]byte, error) { args = append(args, snapshotID) } args = w.appendMaxConnectionsFlag(args) - args = append(args, "--quiet", "--json") + args = append(args, "--quiet", "--json", "--mode", "raw-data") args = w.appendCaCertFlag(args) return w.run(Command{Name: ResticCMD, Args: args}) diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/restic/config.go b/vendor/stash.appscode.dev/apimachinery/pkg/restic/config.go index 6bbf8a01..db04f4da 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/restic/config.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/restic/config.go @@ -54,6 +54,7 @@ type BackupOptions struct { StdinFileName string // default "stdin" RetentionPolicy v1alpha1.RetentionPolicy Exclude []string + Args []string } // RestoreOptions specifies restore information @@ -65,6 +66,7 @@ type RestoreOptions struct { Destination string // destination path where snapshot will be restored, used in cli Exclude []string Include []string + Args []string } type DumpOptions struct { diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/restic/restore.go b/vendor/stash.appscode.dev/apimachinery/pkg/restic/restore.go index 61363fec..36aac007 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/restic/restore.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/restic/restore.go @@ -233,6 +233,7 @@ func (w *ResticWrapper) runRestore(restoreOptions RestoreOptions) error { snapshotId: snapshot, excludes: restoreOptions.Exclude, includes: restoreOptions.Include, + args: restoreOptions.Args, } if _, err := w.restore(params); err != nil { return err @@ -246,6 +247,7 @@ func (w *ResticWrapper) runRestore(restoreOptions RestoreOptions) error { destination: restoreOptions.Destination, excludes: restoreOptions.Exclude, includes: restoreOptions.Include, + args: restoreOptions.Args, } if _, err := w.restore(params); err != nil { return err diff --git a/vendor/stash.appscode.dev/apimachinery/pkg/restic/setup.go b/vendor/stash.appscode.dev/apimachinery/pkg/restic/setup.go index 863a2e09..95f3112d 100644 --- a/vendor/stash.appscode.dev/apimachinery/pkg/restic/setup.go +++ b/vendor/stash.appscode.dev/apimachinery/pkg/restic/setup.go @@ -27,9 +27,10 @@ import ( ) const ( - RESTIC_REPOSITORY = "RESTIC_REPOSITORY" - RESTIC_PASSWORD = "RESTIC_PASSWORD" - TMPDIR = "TMPDIR" + RESTIC_REPOSITORY = "RESTIC_REPOSITORY" + RESTIC_PASSWORD = "RESTIC_PASSWORD" + RESTIC_PROGRESS_FPS = "RESTIC_PROGRESS_FPS" + TMPDIR = "TMPDIR" AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID" AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY" @@ -81,6 +82,10 @@ const ( ) func (w *ResticWrapper) setupEnv() error { + // Set progress report frequency. + // 0.016666 is for one report per minute. + // ref: https://restic.readthedocs.io/en/stable/manual_rest.html + w.sh.SetEnv(RESTIC_PROGRESS_FPS, "0.016666") if v, err := ioutil.ReadFile(filepath.Join(w.config.SecretDir, RESTIC_PASSWORD)); err != nil { return err